Skip to content

Module WebUI

Selain menjalankan skrip boot dan memodifikasi berkas sistem, modul KernelSU dapat menampilkan antarmuka dan berinteraksi langsung dengan pengguna.

Modul dapat mendefinisikan halaman HTML + CSS + JavaScript dengan teknologi web apa pun. Manajer KernelSU menampilkan halaman tersebut lewat WebView dan menyediakan API untuk berinteraksi dengan sistem, misalnya menjalankan perintah shell.

Direktori webroot

Berkas sumber daya web harus ditempatkan di subdirektori webroot di direktori root modul, dan HARUS ada berkas bernama index.html sebagai pintu masuk halaman modul. Struktur modul paling sederhana yang mempunyai antarmuka web adalah sebagai berikut:

txt
❯ tree .
.
|-- module.prop
`-- webroot
    `-- index.html

WARNING

Saat modul dipasang, KernelSU otomatis mengatur izin serta konteks SELinux untuk direktori ini. Jika Anda tidak paham benar apa yang dilakukan, jangan mengubah izin direktori ini sendiri!

Jika halaman Anda memiliki CSS atau JavaScript, letakkan juga di direktori ini.

JavaScript API

Jika hanya berupa halaman tampilan, ia akan berfungsi layaknya halaman web biasa. Namun yang paling penting, KernelSU menyediakan serangkaian API sistem sehingga modul bisa mewujudkan fungsi khususnya.

KernelSU menyediakan pustaka JavaScript yang dirilis di npm dan bisa dipakai pada kode JavaScript halaman Anda.

Sebagai contoh, Anda bisa menjalankan perintah shell untuk memperoleh konfigurasi tertentu atau mengubah suatu properti:

JavaScript
import { exec } from 'kernelsu';

const { errno, stdout } = exec("getprop ro.product.model");

Anda juga dapat membuat halaman menjadi layar penuh atau menampilkan toast.

Dokumentasi API

Jika API yang ada belum memenuhi kebutuhan atau kurang nyaman digunakan, silakan beri kami masukan di sini!

Beberapa tips

  1. Anda dapat menggunakan localStorage seperti biasa untuk menyimpan data, namun ingat bahwa data akan hilang jika aplikasi manager dihapus. Jika butuh penyimpanan permanen, simpan data secara manual pada direktori tertentu.
  2. Untuk halaman sederhana kami menyarankan menggunakan parceljs untuk proses bundling. Ia tidak butuh konfigurasi awal dan sangat mudah dipakai. Namun jika Anda ahli front-end atau punya preferensi sendiri, silakan gunakan alat pilihan Anda!

Rilis Dibawah Lisensi GPL3.