Lewati ke konten

Isi plugin ​

Struktur repositori ​

server/    Server HTTP Go (+ halaman tes tertanam) ........ inti
client/    axbridge.js / axbridge.d.ts ................... client browser, dipublish sebagai axbridge-api
plugin/    Plugin AxManager: module.prop, skrip, WebUI (tanpa binary)
scripts/   package.sh (membuat ZIP yang bisa di-flash)
docs/      situs ini (VitePress)

Skrip plugin ​

FileKapan jalanFungsinya
module.propid=axbridge, versi, axeronPlugin=19100
customize.shinstalasiMenyimpan binary sesuai CPU perangkat, menghapus yang lain, mengatur izin
service.shboot, dan saat restartMenghentikan server lama, menyusun daftar origin, menjalankan binary, memastikan ia naik
action.shtombol ActionMenjalankan service.sh, lalu membuka halaman tes dengan token
ctl.shWebUISatu-satunya pintu WebUI ke shell (lihat di bawah)
uninstall.shpencopotanMenghentikan server, menghapus folder datanya

service.sh menguji apakah binary bisa dieksekusi dari folder plugin. Kalau shell mengembalikan 126 atau 127, binary disalin ke /data/local/tmp (ubah dengan AXBRIDGE_TMP) dan dijalankan dari sana. Server dijalankan dengan setsid jika tersedia, pid file diverifikasi, dan log ditulis ke $AXERONDIR/logs/axbridge.log.

ctl.sh ​

WebUI tidak pernah menyusun string shell. Ia memanggil ctl.sh <perintah> dan membaca outputnya.

Perintah
tokenMencetak token
statusrunning atau stopped
restartRestart server, mencetak ekor log kalau gagal
diagABI, izin, uji eksekusi, ekor log
openMembuka halaman tes dengan #token=…
origins-listSatu origin per baris
origins-add <origin>Memvalidasi dan menambahkan (huruf kecil)
origins-del <origin>Menghapus satu

origins-add menerima https://host[:port], atau http://localhost / http://127.0.0.1 dengan port opsional. Selain itu ditolak, jadi file tidak bisa berisi sesuatu yang akan ditolak server.

File di perangkat ​

Path
$AXERONDIR/axbridge/tokenToken (mode 600, dibuat saat pertama menyala)
$AXERONDIR/axbridge/originsOrigin yang diizinkan, satu per baris
$AXERONDIR/axbridge/pidPid server
$AXERONDIR/logs/axbridge.logLog server dan startup

WebUI ​

HTML, CSS, dan ES module polos. Tanpa build step, tanpa framework.

plugin/webroot/
├── index.html          markup saja
├── css/
│   ├── tokens.css      warna, radius, font (terang + gelap)
│   ├── base.css        reset, layout halaman, top bar, judul
│   └── components.css  kartu status, row, field form, tombol, snackbar
└── js/
    ├── main.js         entry point, menyambungkan semua modul
    ├── ctl.js          menjalankan ctl.sh lewat ksu.exec
    ├── status.js · server.js · origins.js · token.js · diagnostics.js
    └── layout.js · icons.js · dom.js

ctl.js memakai bentuk callback ksu.exec, jadi halaman tidak pernah terblokir selama perintah berjalan. AxManager mengembalikan moduleDir sebagai string di sebagian versi dan sebagai { path } di versi lain, dan ctl.js menerima keduanya.

Server ​

Satu file Go yang hanya memakai standard library. index.html (halaman tes) ditanam dengan go:embed. Penanganan request: readRequest (method, content type, token, body, nama env), buildCmd (shell atau langsung), lalu doExec atau doSpawn.

Released under the MIT License. Based on RiProG-ADB-Panel (MIT).