diff --git a/manager/app/src/main/res/values-in/strings.xml b/manager/app/src/main/res/values-in/strings.xml index 6c77fc80..364d3cd6 100644 --- a/manager/app/src/main/res/values-in/strings.xml +++ b/manager/app/src/main/res/values-in/strings.xml @@ -28,7 +28,7 @@ Tidak ada module terpasang Module Hapus - Pasang + Memasang module Pasang Reboot perangkat Pengaturan diff --git a/website/docs/.vitepress/locales/id_ID.ts b/website/docs/.vitepress/locales/id_ID.ts index 621e9b7f..32f65a75 100644 --- a/website/docs/.vitepress/locales/id_ID.ts +++ b/website/docs/.vitepress/locales/id_ID.ts @@ -50,6 +50,8 @@ function sidebarGuide() { { text: 'Bagaimana cara buildnya?', link: '/id_ID/guide/how-to-build' }, { text: 'Integrasi untuk perangkat non-GKI', link: '/id_ID/guide/how-to-integrate-for-non-gki'}, { text: 'Perangkat yang didukung secara tidak resmi', link: '/id_ID/guide/unofficially-support-devices.md' }, + { text: 'Petunjuk module', link: '/id_ID/guide/module.md' }, + { text: 'Antisipasi dari bootloop', link: '/id_ID/guide/rescue-from-bootloop.md' }, { text: 'FAQ', link: '/id_ID/guide/faq' }, ] } diff --git a/website/docs/id_ID/guide/difference-with-magisk.md b/website/docs/id_ID/guide/difference-with-magisk.md new file mode 100644 index 00000000..c6cf99f1 --- /dev/null +++ b/website/docs/id_ID/guide/difference-with-magisk.md @@ -0,0 +1,26 @@ +# Perbedaan dengan Magisk + +Meskipun ada banyak kesamaan antara modul KernelSU dan modul Magisk, pasti ada beberapa perbedaan karena mekanisme implementasinya yang sangat berbeda. Jika Anda ingin modul Anda berjalan di Magisk dan KernelSU, Anda harus memahami perbedaan ini. + +## Kesamaan + +- Format file modul: keduanya menggunakan format zip untuk mengatur modul, dan format modulnya hampir sama +- Direktori pemasangan modul: keduanya terletak di `/data/adb/modules` +- Tanpa sistem: keduanya mendukung modifikasi / sistem dengan cara tanpa sistem melalui modul +- post-fs-data.sh: waktu eksekusi dan semantiknya persis sama +- service.sh: waktu eksekusi dan semantiknya persis sama +- system.prop: sepenuhnya sama +- sepolicy.rule: sama persis +- BusyBox: skrip dijalankan di BusyBox dengan "mode mandiri" diaktifkan di kedua kasus + +## Perbedaan + +Sebelum memahami perbedaannya, Anda perlu mengetahui cara membedakan apakah modul Anda berjalan di KernelSU atau Magisk. Anda dapat menggunakan variabel lingkungan `KSU` untuk membedakannya di semua tempat di mana Anda dapat menjalankan skrip modul (`customize.sh`, `post-fs-data.sh`, `service.sh`). Di KernelSU, variabel lingkungan ini akan disetel ke `true`. + +Berikut beberapa perbedaannya: + +- Modul KernelSU tidak dapat diinstal dalam mode Pemulihan. +- Modul KernelSU tidak memiliki dukungan bawaan untuk Zygisk (tetapi Anda dapat menggunakan modul Zygisk melalui [ZygiskOnKernelSU](https://github.com/Dr-TSNG/ZygiskOnKernelSU). +- Metode untuk mengganti atau menghapus file dalam modul KernelSU sama sekali berbeda dari Magisk. KernelSU tidak mendukung metode `.replace`. Sebagai gantinya, Anda perlu membuat file dengan nama yang sama dengan `mknod filename c 0 0` untuk menghapus file terkait. +- Direktori untuk BusyBox berbeda. BusyBox bawaan di KernelSU terletak di `/data/adb/ksu/bin/busybox`, sedangkan di Magisk terletak di `/data/adb/magisk/busybox`. **Perhatikan bahwa ini adalah perilaku internal KernelSU dan dapat berubah di masa mendatang!** +- KernelSU tidak mendukung file `.replace`; namun, KernelSU mendukung variabel `REMOVE` dan `REPLACE` untuk menghapus atau mengganti file dan folder. diff --git a/website/docs/id_ID/guide/module.md b/website/docs/id_ID/guide/module.md new file mode 100644 index 00000000..bd3fc48b --- /dev/null +++ b/website/docs/id_ID/guide/module.md @@ -0,0 +1,255 @@ +# Panduan module + +KernelSU menyediakan mekanisme modul yang mencapai efek memodifikasi direktori sistem dengan tetap menjaga integritas partisi sistem. Mekanisme ini umumnya dikenal sebagai "tanpa sistem". + +Mekanisme modul KernelSU hampir sama dengan Magisk. Jika Anda terbiasa dengan pengembangan modul Magisk, mengembangkan modul KernelSU sangat mirip. Anda dapat melewati pengenalan modul di bawah ini dan hanya perlu membaca [difference-with-magisk](difference-with-magisk.md). + +## Busybox + +KernelSU dikirimkan dengan fitur biner BusyBox yang lengkap (termasuk dukungan penuh SELinux). Eksekusi terletak di `/data/adb/ksu/bin/busybox`. BusyBox KernelSU mendukung "Mode Shell Standalone Shell" yang dapat dialihkan waktu proses. Apa yang dimaksud dengan mode mandiri ini adalah bahwa ketika dijalankan di shell `ash` dari BusyBox, setiap perintah akan langsung menggunakan applet di dalam BusyBox, terlepas dari apa yang ditetapkan sebagai `PATH`. Misalnya, perintah seperti `ls`, `rm`, `chmod` **TIDAK** akan menggunakan apa yang ada di `PATH` (dalam kasus Android secara default akan menjadi `/system/bin/ls`, ` /system/bin/rm`, dan `/system/bin/chmod` masing-masing), tetapi akan langsung memanggil applet BusyBox internal. Ini memastikan bahwa skrip selalu berjalan di lingkungan yang dapat diprediksi dan selalu memiliki rangkaian perintah lengkap, apa pun versi Android yang menjalankannya. Untuk memaksa perintah _not_ menggunakan BusyBox, Anda harus memanggil yang dapat dieksekusi dengan path lengkap. + +Setiap skrip shell tunggal yang berjalan dalam konteks KernelSU akan dieksekusi di shell `ash` BusyBox dengan mode mandiri diaktifkan. Untuk apa yang relevan dengan pengembang pihak ke-3, ini termasuk semua skrip boot dan skrip instalasi modul. + +Bagi yang ingin menggunakan fitur “Standalone Mode” ini di luar KernelSU, ada 2 cara untuk mengaktifkannya: + +1. Tetapkan variabel lingkungan `ASH_STANDALONE` ke `1`
Contoh: `ASH_STANDALONE=1 /data/adb/ksu/bin/busybox sh