Shizuku è uno strumento che consente alle applicazioni di accedere a specifiche API di sistema di Android con privilegi elevati, senza la necessità di disporre dei permessi di root. A differenza del rooting, che richiede la modifica del sistema operativo e comporta potenziali rischi per la sicurezza, Shizuku sfrutta ADB (Android Debug Bridge) per permettere alle applicazioni di eseguire (diverse) operazioni che normalmente richiederebbero permessi elevati, come disinstallare applicazioni bloatware di sistema.
Avvio tramite wireless debugging
Il metodo di avvio tramite wireless debugging è disponibile su dispositivi che eseguono Android 11 o versioni successive. Questa modalità di avvio non richiede una connessione a un computer, ma a causa delle limitazioni di Android, i vari passaggi devono essere ripetuti dopo ogni riavvio (nei paragrafi successivi vedremo come automatizzare questa procedura).
Abilitare il wireless debugging
- Attivare le opzioni sviluppatore
- Attivare
Debugging USB, quindiwireless debuggingper la propria rete. Questa impostazione consente di eseguire comandi ADB in modalità wireless, eliminando la necessità di collegare lo smartphone a un computer tramite cavo - Il metodo più semplice per attivare il wireless debugging consiste nell’utilizzare un tile dedicato nelle impostazioni rapide. Per aggiungere questo tile, è necessario attivarlo all’interno delle Opzioni Sviluppatore alla voce
Quick settings developer tiles.
Pairing
L’associazione deve essere effettuata solo la prima volta.
- Aprire l’app Shizuku e avviare il pairing
- Assicurarsi di aver abilitato il wireless debugging
- Selezionare Pair device with pairing code nel menu del wireless debugging
- Inserire il codice di associazione nella notifica pop-up di Shizuku
- Avviare Shizuku
Avvio automatico di Shizuku
Tutte queste operazioni devono essere eseguite una sola volta, quindi non è necessario preoccuparsi della loro complessità.
- Installare Termux
- Installare le dipendenze necessarie e inizializzare Termux con i seguenti comandi:
Assicurarsi di aver dato a Termux il permesso di accedere ai file di sistema.
- Aprire Termux e la pagina di wireless debugging in split-screen
- Selezionare l’opzione Pair device with pairing code
- Eseguire il comando ADB di associazione in Termux:
|
|
- In Shizuku selezionare l’opzione
Use Shizuku in terminal apps, successivamenteExport files - Esportare i file, ad esempio, in
/storage/emulated/0/shizuku. Il filerish_shizuku.dexcontiene il codice necessario per interagire con Shizuku, permettendo di eseguire comandi ADB - Creare, nella stessa directory, un file
copy.shincludendo lo script riportato di seguito:
|
|
- Eseguire lo script in Termux con il seguente comando:
bash /storage/emulated/0/Shizuku/copy.sh
In breve, lo script copy.sh crea un file denominato shizuku nella directory /data/data/com.termux/files/usr/bin di Termux. Questo script esegue il comando nmap per identificare le porte aperte nel range compreso tra 30000 e 50000. Per ciascuna porta trovata, lo script tenta di connettersi utilizzando ADB. Se la connessione ha successo, Shizuku viene avviato e il wireless debugging disabilitato. In caso contrario, viene visualizzato un messaggio di errore.
copy.sh crea poi un secondo script denominato rish, nella medesima directory, che consente di eseguire comandi ADB attraverso le API di Shizuku.
Al termine del processo, entrambi i file vengono resi eseguibili. Inoltre, il file DEX viene copiato dalla sua posizione originale alla home dell’utente, disabilitando i permessi di scrittura su di esso, in modo da garantirne l’integrità.
Lo script non é nostro, ma dell’utente Knud3
Utilizzo
Di seguito i comandi da eseguire in Termux:
shizuku: attiva Shizukurish: apre la shell ADB o esegue un comando nella shell ADB
È possibile migliorare ulteriormente il processo automatizzando completamente l’intera procedura, eliminando la necessità di aprire Termux e inserire manualmente il comando.
Termux:Boot
Si tratta di un add-on di Termux, scaricabile da F-Droid, per eseguire comandi al boot del sistema.
- Consentire all’app
Termux:Bootdi essere eseguita all’avvio del sistema - Aprire Termux e creare la directory
~/.termux/boot/ - Posizionare gli script che si desidera eseguire all’interno della suddetta directory. Se ci sono più file, verranno eseguiti in ordine alfabetico.
- Quindi, per avviare Shizuku in automatico, creare lo script
~/.termux/boot/shizuku:
Ora la configurazione è completa. Lo script viene eseguito automaticamente all’avvio e successivamente é disabilito il wireless debugging, poiché non è necessario che rimanga attivo in background affinché Shizuku funzioni correttamente.
awesome-shizuku
Al seguente repository è disponibile un elenco delle migliori applicazioni che sfruttano le funzionalità di Shizuku. Alcuni dei migliori esempi:
- Hail: consente di congelare le applicazioni Android
- Canta Debloater: permette di disinstallare qualsiasi applicazione di sistema, senza richiedere i permessi di root
- TaskManager
- delta: applicazione che offre accesso a impostazioni avanzate dell’hotspot, consentendo di visualizzare un elenco dei dispositivi connessi, generare QR code ecc.
- LogFox: strumento per la lettura dei log di sistema
- ShizuWall: firewall che blocca le connessioni di rete delle applicazioni selezionate senza richiedere accesso root o l’uso di VPN
- App Lock: permette di aprire applicazioni solo previa autenticazione biometrica
- LockscreenWidgets
- Swift Backup: un app
proprietariache consente di eseguire il backup delle applicazioni e dei loro dati. Purtroppo, nella versione free, non é possibile schedulare i backup - Gli store Droid-ify, FFUpdater, Aurora Store e Obtainium possono sfruttare Shizuku per attivare l’installazione completamente automatica degli aggiornamenti delle applicazioni
Shizuku vs root
| Aspetto | Shizuku | Root |
|---|---|---|
| Accesso | Limitato, tramite API ADB | Completo, senza restrizioni |
| Sicurezza | Basso rischio | Rischi potenziali (alcune app potrebbero non funzionare) |
| Installazione | Semplice, senza modifiche sistema | Complessa, con modifiche sistema |
| Funzionalità | Solo app compatibili | Illimitate |
Rispetto alle funzionalità, Shizuku permette di usare applicazioni che richiedono permessi avanzati, quali operazioni di automazione, backup dei dati e modifica di impostazioni di sistema, ma solo se le queste ultime risultino compatibili con l’API di Shizuku. Il root, invece, permette di avere un controllo pieno e totale sul proprio smartphone: modifica file di sistema, installazione di moduli Magisk, overclock/underclock della CPU, personalizzazione profonda dell’interfaccia e molto altro. Risulta più complesso da installare e alcune applicazioni, come quelle di home banking, potrebbero non funzionare su dispositivi rootati.
Per approfondimenti, si veda l’articolo su come Ottenere i permessi di root con APatch.