# Shizuku Privileged API {{#include ../../banners/hacktricks-training.md}} Shizuku is 'n oop-bron diens wat **'n bevoorregte Java-proses genereer met behulp van `app_process`** en stel geselekteerde **Android-stelsels API's oor Binder** beskikbaar. Omdat die proses met dieselfde **`shell` UID vermoëns wat ADB gebruik**, enige toepassing (of terminal) wat aan die uitgevoerde AIDL-koppelvlak bind, kan baie aksies uitvoer wat normaalweg **`WRITE_SECURE_SETTINGS`, `INSTALL_PACKAGES`, lêer I/O binne `/data`,** ens. vereis – **sonder om die toestel te root**. Tipiese gebruiksgevalle: * Sekuriteitsouditing vanaf 'n nie-ge-root toestel * Verwydering van bloatware / debloating stelsels toepassings * Versameling van logs, Wi-Fi sleutels, proses en sokketinligting vir blue-team/DFIR * Outomatisering van toestelkonfigurasie vanaf pasgemaakte toepassings of shell skripte --- ## 1. Starting the privileged service `moe.shizuku.privileged.api` kan op drie verskillende maniere begin word – die resulterende Binder-diens gedra dieselfde in al drie. ### 1.1 Wireless ADB (Android 11+) 1. Aktiveer **Ontwikkelaarsopsies ➜ Draadlose foutopsporing** en koppel die toestel. 2. Binne die Shizuku-toepassing kies **“Begin via Draadlose foutopsporing”** en kopieer die paar kode. 3. Die diens oorleef tot die volgende herlaai (draadlose-foutopsporing sessies word op opstart skoongemaak). ### 1.2 USB / local ADB one-liner ```bash adb push start.sh \ /storage/emulated/0/Android/data/moe.shizuku.privileged.api/ # spawn the privileged process adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh ``` Die dieselfde skrip kan oor 'n **network ADB**-verbinding uitgevoer word (`adb connect :5555`). ### 1.3 Geroote toestelle As die toestel reeds geroote is, voer uit: ```bash su -c sh /data/adb/shizuku/start.sh ``` ### 1.4 Verifieer dat dit loop ```bash adb shell dumpsys activity service moe.shizuku.privileged.api | head ``` 'n Succesvolle begin keer `Running services (1)` saam met die PID van die bevoorregte proses terug. --- ## 2. Binding vanaf 'n toepassing Derdeparty-apps het net die volgende binne hul `AndroidManifest.xml` nodig: ```xml ``` By uitvoering verkry hulle die binder: ```java IBinder binder = ShizukuProvider.getBinder(); IPackageManager pm = IPackageManager.Stub.asInterface(binder); ``` Vanaf hierdie oomblik kan die app enige metode aanroep wat die **`shell` gebruiker** mag aanroep – byvoorbeeld : ```java pm.installPackage(new Uri("file:///sdcard/app.apk"), null, 0, null); Settings.Global.putInt(resolver, Settings.Global.ADB_ENABLED, 1); ``` 'n Gekure lys van meer as **170 Shizuku-geaktiveerde toepassings** word by [awesome-shizuku](https://github.com/timschneeb/awesome-shizuku) onderhou. --- ## 3. Rish – verhoogde skulp binne Termux Die Shizuku instellingskerm stel **“Gebruik Shizuku in terminal toepassings”** bloot. Om dit te aktiveer, laai dit *rish* (`/data/local/tmp/rish`) af. ```bash pkg install wget wget https://rikka.app/rish/latest -O rish && chmod +x rish # start elevated shell (inherits the binder connection) ./rish whoami # ➜ shell id # uid=2000(shell) gid=2000(shell) groups=... context=u:r:shell:s0 ``` ### 3.1 Nuttige opdragte van die rish-skaal * Lys lopende prosesse van 'n gegewe pakket: ```bash ps -A | grep com.facebook.katana ``` * Enumereer luisterende sokke en koppel hulle aan pakkette (bv. **CVE-2019-6447 ES File Explorer**): ```bash netstat -tuln for pid in $(lsof -nP -iTCP -sTCP:LISTEN -t); do printf "%s -> %s\n" "$pid" "$(cat /proc/$pid/cmdline)"; done ``` * Dump elke toepassing se logs: ```bash logcat -d | grep -iE "(error|exception)" ``` * Lees gestoor Wi-Fi geloofsbriewe (Android 11 +): ```bash cat /data/misc/wifi/WifiConfigStore.xml | grep -i "" ``` * Massiewe debloat (voorbeeld): ```bash pm uninstall --user 0 com.miui.weather2 ``` --- ## 4. Sekuriteits oorwegings / opsporing 1. Shizuku benodig **ADB-foutopsporing** regte, daarom moet _Ontwikkelaar Opsies → USB/Draadlose foutopsporing_ **geaktiveer** wees. Organisasies kan dit blokkeer deur 'n MDM of via `settings put global development_settings_enabled 0`. 2. Die diens registreer homself onder die naam `moe.shizuku.privileged.api`. 'n Eenvoudige `adb shell service list | grep shizuku` (of Endpoint Security-reël) detecteer sy teenwoordigheid. 3. Vermoëns is beperk tot wat die `shell` gebruiker reeds kan doen – dit is **nie root** nie. Sensitiewe API's wat die `system` of `root` gebruiker vereis, is steeds ontoeganklik. 4. Sessies oorleef **nie 'n herbegin** nie, tensy die toestel ge-root is en Shizuku as 'n opstart-daeemon geconfigureer is. --- ## 5. Versagting * Deaktiveer USB/Draadlose foutopsporing op produksietoestelle. * Monitor vir Binder dienste wat `moe.shizuku.privileged.api` blootstel. * Gebruik SELinux-beleide (Android enterprise) om die AIDL-koppelvlak van nie-gemandeerde toepassings te blokkeer. --- ## Verwysings - [Blog – Shizuku: Ontsluiting van Gevorderde Android Vermoëns Sonder Root](https://www.mobile-hacker.com/2025/07/14/shizuku-unlocking-advanced-android-capabilities-without-root/) - [Shizuku Amptelike Dokumentasie](https://shizuku.rikka.app/) - [awesome-shizuku – lys van ondersteunde toepassings](https://github.com/timschneeb/awesome-shizuku) - [rish shell (privileged reverse-adb shell)](https://github.com/RikkaApps/Shizuku/blob/master/RISH.md) {{#include ../../banners/hacktricks-training.md}}