# Shizuku Privileged API {{#include ../../banners/hacktricks-training.md}} Shizuku, **`app_process`** kullanarak ayrıcalıklı bir Java süreci **oluşturan** ve seçilen **Android sistem API'lerini Binder üzerinden açığa çıkaran** açık kaynaklı bir hizmettir. Süreç, ADB'nin kullandığıyla aynı **`shell` UID yetenekleriyle** başlatıldığından, dışa aktarılan AIDL arayüzüne bağlanan herhangi bir uygulama (veya terminal), genellikle **`WRITE_SECURE_SETTINGS`, `INSTALL_PACKAGES`, `/data` içinde dosya I/O** gibi işlemleri gerçekleştirebilir – **cihazı rootlamadan**. Tipik kullanım senaryoları: * Rootlanmamış bir cihazdan güvenlik denetimi * Bloatware kaldırma / sistem uygulamalarını debloat etme * Blue-team/DFIR için günlükler, Wi-Fi anahtarları, süreç ve soket bilgileri toplama * Özel uygulamalar veya shell betikleri aracılığıyla cihaz yapılandırmasını otomatikleştirme --- ## 1. Ayrıcalıklı hizmeti başlatma `moe.shizuku.privileged.api`, üç farklı şekilde başlatılabilir – sonuçta oluşan Binder hizmeti hepsinde aynı şekilde davranır. ### 1.1 Kablosuz ADB (Android 11+) 1. **Geliştirici Seçenekleri ➜ Kablosuz hata ayıklama**'yı etkinleştir ve cihazı eşleştir. 2. Shizuku uygulaması içinde **“Kablosuz hata ayıklama ile başlat”** seçeneğini seç ve eşleştirme kodunu kopyala. 3. Hizmet, bir sonraki yeniden başlatmaya kadar devam eder (kablosuz hata ayıklama oturumları önyüklemede temizlenir). ### 1.2 USB / yerel ADB tek satır ```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 ``` Aynı script, **network ADB** bağlantısı üzerinden çalıştırılabilir (`adb connect :5555`). ### 1.3 Rootlu cihazlar Eğer cihaz zaten rootlanmışsa şunu çalıştırın: ```bash su -c sh /data/adb/shizuku/start.sh ``` ### 1.4 Çalıştığını Doğrulama ```bash adb shell dumpsys activity service moe.shizuku.privileged.api | head ``` Başarılı bir başlangıç, `Running services (1)` ile birlikte ayrıcalıklı sürecin PID'sini döndürür. --- ## 2. Bir uygulamadan bağlanma Üçüncü taraf uygulamaların yalnızca `AndroidManifest.xml` dosyalarında aşağıdakilere ihtiyacı vardır: ```xml ``` Çalışma zamanında binder'ı elde ederler: ```java IBinder binder = ShizukuProvider.getBinder(); IPackageManager pm = IPackageManager.Stub.asInterface(binder); ``` Bu andan itibaren uygulama, **`shell` kullanıcısının** çağırabileceği herhangi bir yöntemi çağırabilir – örneğin: ```java pm.installPackage(new Uri("file:///sdcard/app.apk"), null, 0, null); Settings.Global.putInt(resolver, Settings.Global.ADB_ENABLED, 1); ``` **170'ten fazla Shizuku destekli uygulamanın** derlenmiş listesi [awesome-shizuku](https://github.com/timschneeb/awesome-shizuku) adresinde bulunmaktadır. --- ## 3. Rish – Termux içinde yükseltilmiş shell Shizuku ayarları ekranı **“Terminal uygulamalarında Shizuku'yu kullan”** seçeneğini sunar. Bunu etkinleştirmek *rish* (`/data/local/tmp/rish`) indirir. ```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 Kullanışlı komutlar rish shell'den * Verilen bir paketin çalışan süreçlerini listele: ```bash ps -A | grep com.facebook.katana ``` * Dinleyen soketleri listele ve bunları paketlere eşle: ```bash netstat -tuln for pid in $(lsof -nP -iTCP -sTCP:LISTEN -t); do printf "%s -> %s\n" "$pid" "$(cat /proc/$pid/cmdline)"; done ``` * Her uygulamanın loglarını dök: ```bash logcat -d | grep -iE "(error|exception)" ``` * Saklanan Wi-Fi kimlik bilgilerini oku (Android 11 +): ```bash cat /data/misc/wifi/WifiConfigStore.xml | grep -i "" ``` * Toplu debloat (örnek): ```bash pm uninstall --user 0 com.miui.weather2 ``` --- ## 4. Güvenlik dikkate alındığında / tespit 1. Shizuku **ADB hata ayıklama** ayrıcalıklarına ihtiyaç duyar, bu nedenle _Geliştirici Seçenekleri → USB/Kablosuz hata ayıklama_ **etkinleştirilmelidir**. Kuruluşlar bunu bir MDM aracılığıyla veya `settings put global development_settings_enabled 0` ile engelleyebilir. 2. Servis kendini `moe.shizuku.privileged.api` adı altında kaydeder. Basit bir `adb shell service list | grep shizuku` (veya Endpoint Security kuralı) varlığını tespit eder. 3. Yetenekler, `shell` kullanıcısının zaten yapabileceği şeylerle sınırlıdır – **root** değildir. `system` veya `root` kullanıcısını gerektiren hassas API'ler hala erişilemez. 4. Oturumlar **bir yeniden başlatmada hayatta kalmaz**; cihaz köklü değilse ve Shizuku bir başlangıç daemon'u olarak yapılandırılmamışsa. --- ## 5. Azaltma * Üretim cihazlarında USB/Kablosuz hata ayıklamayı devre dışı bırakın. * `moe.shizuku.privileged.api`'yi açığa çıkaran Binder hizmetlerini izleyin. * Yönetilmeyen uygulamalardan AIDL arayüzünü engellemek için SELinux politikalarını (Android enterprise) kullanın. --- ## Referanslar - [Blog – Shizuku: Root Olmadan Gelişmiş Android Yeteneklerini Açma](https://www.mobile-hacker.com/2025/07/14/shizuku-unlocking-advanced-android-capabilities-without-root/) - [Shizuku Resmi Dokümantasyonu](https://shizuku.rikka.app/) - [awesome-shizuku – desteklenen uygulamaların listesi](https://github.com/timschneeb/awesome-shizuku) - [rish shell (ayrılmış ters-adb shell)](https://github.com/RikkaApps/Shizuku/blob/master/RISH.md) {{#include ../../banners/hacktricks-training.md}}