Gli "smanettoni" lo sanno bene: diventare root su Android ti consente di fare letteralmente di tutto sul tuo dispositivo (anche danni gravi!) e, fino a non molto tempo fa, era l'unico modo per fare operazioni semplici come bloccare efficacemente la pubblicità su browser e app, rimuovere i cosiddetti "bloatware" o personalizzare l'interfaccia. Ma l'informatica, si sa, è in continua e velocissima evoluzione e ciò che oggi è indispensabile, domani può facilmente diventare obsoleto. Con questo bene in mente, mi sono domandato: è ancora necessario il root sulle ultime versioni di Android??

Android: è ancora necessario diventare root??

NOTA: in questo articolo ho raccolto applicazioni, comandi e trucchi, alcuni dei quali hanno un articolo dedicato, molti altri li ho provati personalmente riportando le mie considerazioni qui, ma, purtroppo, alcuni non sono proprio riuscito a provarli per mancanza di tempo e dispositivi!

Partiamo dalle tre cose appena citate: abbiamo già visto come sia possibile avere un adblock efficace ed efficiente senza per forza essere root; abbiamo addirittura l'imbarazzo della scelta:

» Leggi: Blocca le pubblicità su Android senza root 4: guida completa a Nebulo (Ad Block)

» Leggi: Blocca le pubblicità su Android senza root 3: guida completa a DNSfilter (ad block)

» Leggi: Blocca le pubblicità su Android senza root 2: guida completa a Blokada (ad block)

» Leggi: Blocca le pubblicità su Android senza root: guida completa a DNS66 (ad block)

Da Android 9 (Pie), è anche possibile impostare un DNS "privato" (nel senso che utilizza una connessione criptata e nello specifico utilizza il protocollo DOT). Possiamo sfruttare questa possibilità per bloccare le pubblicità specificando i DNS di Adguard o, per avere un controllo molto più completo su ciò che possiamo bloccare, possiamo utilizzare i DNS di NextDNS:

» Leggi: Bloccare malware, siti pericolosi e pubblicità senza installare programmi: guida a Nextdns

Purtroppo tutte questi sistemi sopra elencati, non sono in grado di rimuovere le pubblicità da Youtube, ma non dobbiamo disperare: esistono app dedicate proprio per consentirci di vedere i filmati di Youtube senza le fastidiosissime pubblicità! La migliore a mio avviso è NewPipe, ma le alternative certo non mancano:

» Leggi: Video YouTube senza pubblicità su Android: guida a NewPipe (ad block)

Abbiamo visto anche come, con l'aiuto di ADB, sia possibile disinstallare le app preinstallate, comprese quelle di sistema, senza i massimi permessi di amministratore.

» Leggi: Android: come disinstallare le app di sistema senza root!

Purtroppo però, questo metodo non ci consente di guadagnare molto spazio per l'installazione di nuove app, ma anche in questo caso possiamo risolvere senza root. Tramite root si poteva spostare le app sulla scheda SD, ma da Android 6 (Marshmallow) è possibile configurare una scheda SD come fosse la memoria interna del telefono aggirando in questo modo il problema dello spazio.

» Leggi: Scheda SD su Android: memoria interna o memoria portabile?

Root non è più necessario da un bel pezzo, neanche per fare a meno dell'account di Google e di tutte le sue app.

» Leggi: Android senza account Google: si può anche senza root o custom ROM!

Da Android 10 (Q) è, finalmente, possibile vedere e condividere le password delle reti WiFi salvate sul nostro dispositivo! Per farlo possiamo andare in Impostazioni, Rete e Internet, WiFi, Reti Salvate, selezionare la rete interessata e scegliere Condividi; autorizziamo la richiesta con la password/pin oppure con l'impronta e apparirà un codice QR per la condivisione della rete; sotto sarà presente la password scritta in chiaro.

Android: è ancora necessario diventare root??

Sempre rimanendo in tema WiFi, da Android 8 (Oreo) è possibile "randomizzare" l'indirizzo MAC della scheda di rete, in modo da essere meno tracciabili ed aumentare la privacy quando, per esempio, ci connettiamo ad una rete di hotspot. Questa funzione però non è abilitata di default (fatto salvo alcune Custom ROM) ma possiamo abilitarla facilmente dalle Opzioni Sviluppatore

» Leggi: Guida Android: come abilitare il Debug USB / interfaccia di Android Debug Bridge (ADB) e le Opzioni sviluppatore

Android: è ancora necessario diventare root??

ATTENZIONE: se avete configurato un filtro MAC sul vostro router di casa, il cellulare potrebbe non connettersi più se non dopo aver rimosso questa opzione!

Per quanto riguarda la personalizzazione dell'interfaccia grafica abbiamo di che sbizzarrirci: possiamo affidarci ai numerosissimi "launcher" alternativi (nella grafica ma anche nel funzionamento), ai "pacchetti icone" e ai temi preconfigurati che consentono di dare il giusto look al nostro dispositivo. Ma se volessimo anche modificare l'aspetto, il tema di tutte le altre applicazioni? Se abbiamo un dispositivo con almeno Android 8, possiamo avvalerci di Substratum, se necessario, con l'ausilio dei plugin Andromeda o Synergy.

ATTENZIONE: queste app potrebbero non essere totalmente compatibili con dispositivi Huawei, Xiaomi e altri oppure su alcune versioni di Android potrebbe richiedere necessariamente root. Assicuratevi di leggere tutta la documentazione prima di provare queste app!

Se invece il vostro dispositivo supporta Project Treble (se avete installato Termux potete verificarlo con un semplice comando getprop ro.treble.enabled ; se l'output è true allora la risposta è sì!) potreste pensare di installare una GSI o Generic System Image di una ROM a piacere.

Anche se Project Treble nasce allo scopo di velocizzare (e magari prolungare) gli aggiornamenti di Android è possibili sfruttarlo per creare Custom ROM in maniera molto più semplice e non specifica per dispositivo ma, appunto generica.

Android: è ancora necessario diventare root??

In questo caso sarà comunque necessario avere il bootloader sbloccato e fare ulteriori verifiche per controllare che il proprio dispositivo sia compatibile con le ROM GSI!

» Leggi: [risposto] Cosa significa sbloccare il bootloader di Android (bootloader unlock)? è rischioso? invalida la garanzia? come si annulla?

» Leggi: Sbloccare il bootloader di Android (bootloader unlock): guida facile in italiano (Motorola, HTC, LG, Samsung, OnePlus, Huawei, Honor, Lenovo)

Con le Custom Rom si ottiene una modifica, nell'aspetto e nella funzionalità, delle app di sistema ma, sempre senza root, possiamo modificare anche l'aspetto e il funzionamento delle app utente. Qualcuno conosce Xposed? Questo è un sistema che, agendo con i permessi di root e con l'ausilio di appositi moduli creati ad hoc, consente proprio la modifica delle app, comprese quelle di sistema. Virtual Xposed è in grado di fare la stessa cosa ma solo con le app installate dall'utente e utilizza gli stessi moduli di Xposed, anche se non tutti potrebbero funzionare correttamente.

Virtual Xposed si presenta come un launcher alternativo che si affianca a quello esistente e richiede la clonazione delle app utente. È anche possibile installare le app solo in Virtual Xposed, fornendo il file apk dell'app desiderata (così, per esempio, possiamo installare l'app ufficiale di Youtube e bloccare le pubblicità con l'apposito modulo!!). Una volta installata l'app in Virtual Xposed dovremo scaricare dal pratico repository integrato, installare e attivare i moduli ma non sarà necessario riavviare il dispositivo, sarà sufficiente premere Reboot nelle Impostazioni di Virtual Xposed e il modulo, se tutto va bene, sarà funzionante! Ci tengo a specificare "se tutto va bene" perché durante le mie prove non tutto è andato liscio ed alcune volte le app sono crashate o alcuni moduli non hanno funzionato a dovere.

Android: è ancora necessario diventare root??

Abbiamo anche la possibilità di rimappare la funzione dei tasti fisici del nostro dispositivo (ad esempio, quelli del volume) e aggiungere ad essi altre funzioni che si possono richiamare con un doppio tap o una pressione prolungata con Button Mapper. Questa app può funzionare senza root perché utilizza i permessi speciali concessi solitamente alle app per facilitare l'accessibilità al dispositivo ai diversamente abili e quindi ha il limite di funzionare solo con lo schermo accesso.

Android: è ancora necessario diventare root??

Infine, aiutandoci con ADB, possiamo anche modificare le icone di sistema che appaiono nella barra di stato o i collegamenti nell'avvio veloce: SystemUI Tuner è l'app che ci serve.

Android: è ancora necessario diventare root??

Questa app tenta di accedere ai permessi di root ma per funzionare correttamente gli occorre un solo permesso in più e non i massimi privilegi. Per concedere questo permesso in più, come già accennato, dobbiamo utilizzare ADB. Mi soffermo un po' su questo punto perché come vedremo sarà utile in seguito anche per altre app. Installato ADB sul nostro PC, sbloccate le Opzioni Sviluppatore, attivato il Debug USB sul nostro dispositivo e collegato quest'ultimo al computer, potremo impartire i comandi necessari a concedere il permesso all'app interessata. Il comando generale sarà

adb shell pm grant nome.pacchetto.applicazione nome.permesso.da.concedere

Nel caso dell'app SystemUI Tuner, il comando sarà:

adb shell pm grant com.zacharee1.systemuituner android.permission.WRITE_SECURE_SETTINGS

In questo modo l'app avrà le autorizzazioni minime indispensabili per poter funzionare correttamente.

Lo stesso permesso di cui sopra può essere concesso a Navigation Gesture, un'app che consente di rimuovere la barra di navigazione dallo schermo (quella in basso con i tre simboli, per intenderci) e di sostituirla con un cursore (che può anche essere reso invisibile, magari dopo un po' di pratica... ). Questa app necessità anche di altri permessi che possono essere concessi direttamente dal dispositivo e sono il già visto permesso di Accessibilità e il permesso di posizionarsi sopra le altre app

Android: è ancora necessario diventare root?? - navigationgesture

Anche le app di automazione (come Tasker, Automate, ... ) che consentono di programmare operazioni da eseguire in maniera automatica in base ad eventi definiti, si sono adeguate per utilizzare tutti i possibili permessi disponibili, alcuni concessi sempre tramite adb, per riuscire a fare il 90% o più delle operazioni che solitamente richiedevano root.

Android: è ancora necessario diventare root??

Essere root però non significa solo personalizzare l'interfaccia grafica ma significa anche aumentare la privacy tramite installazioni di firewall e gestione fine dei permessi. Anche in questi casi possiamo trovare una valida alternativa: per il firewall abbiamo già visto una possibile soluzione che consente, tra l'altro, di bloccare le pubblicità (cosa importante dato che è incompatibile con Nebulo e gli altri!) e, nella versione a pagamento, anche di monitorare ed ispezionare tutto il traffico delle app!

» Leggi: Android: risparmia batteria e traffico dati, aumenta la privacy e blocca la pubblicità con una sola app (e senza root!). Guida a Netguard

Mentre per la gestione dei permessi dobbiamo dire che Android è andato nella giusta direzione, offrendo la possibilità di concedere o rimuovere alcuni permessi alle app installate, anche a quelle di sistema. Ma i permessi che possiamo gestire sono molto di più se utilizziamo AppOpsX.

Android: è ancora necessario diventare root??

Questa app è molto interessante e sfrutta anch'essa ADB ma in maniera totalmente diversa a come abbiamo precedentemente visto. Anche in questo caso conviene spendere due parole in più sul funzionamento di ADB. Quando attiviamo il Debug USB quello che andiamo a fare sul dispositivo è avviare un demone (i servizi in esecuzione in background su Unix/Linux si chiamano così) che rimane in ascolto per comandi che arrivano tramite un server comandato dal client adb che abbiamo installato sul computer.

Android: è ancora necessario diventare root??

Bene quello che dovremo fare per permettere il corretto funzionamento di AppOpsX è far sì che riesca a dialogare direttamente con il demone adbd del nostro dispositivo. Possiamo farlo lanciando uno script tramite adb dal nostro computer dopo aver attivato le opzioni interessate nelle impostazioni di AppOpsX

Android: è ancora necessario diventare root??

Per prima cosa dovremo configurare adb affinché rimanga in ascolto sulla porta 5555 così come descritto in questa guida. Poi passeremo a lanciare lo script che viene salvato dall'app nel percorso /sdcard/Android/data/com.zzzmode.appopsx/opsx.sh e il comando da impartire con adb sarà quindi:

adb shell sh /sdcard/Android/data/com.zzzmode.appopsx/opsx.sh &

Attenzione alla & finale che servirà per liberare la shell. Una volta finito, potremo uscire dal terminale digitando Ctrl+C e potremo gestire a nostro piacere i permessi di ogni app, comprese quelle di sistema! Unico neo, la procedura di lanciare lo script va eseguita ogni volta che riavviamo il dispositivo.

Una soluzione più semplice per gestire i permessi è l'utilizzo di Bouncer - Temporary App Permissions: questa app, sfruttando i servizi di accessibilità, consente, ad esempio, di concedere temporaneamente un permesso ad una app; quando chiuderemo questa app, Bouncer rimuoverà il permesso concesso! È anche possibile programmare la concessione dei permessi in un dato momento o per un dato lasso di tempo.

Android: è ancora necessario diventare root??

Un'altra opzione per utilizzare le app senza condividere troppi dati è quella di confinarle in un profilo dedicato e separato da quello principale con l'aiuto di Shelter

» Leggi: Android, confina le app spione in un profilo separato: guida a Shelter [no root]

Possiamo anche falsificare la nostra posizione, grazie ancora una volta un'opzione per sviluppatori e a Private Location. Questa app una volta installata ci offre la possibilità di selezionare su una mappa un luogo da impostare per far credere ad ogni app che accede alla posizione di essere effettivamente lì. È possibile selezionare più luoghi e aggiungerli ai preferiti in modo da impostarli più velocemente. Per funzionare correttamente Private Location ha bisogno di essere indicata in Opzioni sviluppatore, Scegli app di posizione fittizia ed è inoltre necessario disattivare la ricerca della posizione tramite WiFi o Bluetooth da Impostazioni, Sicurezza e posizione, Geolocalizzazione, Avanzate, Scansione.

Android: è ancora necessario diventare root??

Un'altra cosa che possiamo fare senza per forza essere root è modificare i settaggi nascosti come, ad esempio, escludere il controllo dei captive portale o escludere l'APN dun per permettere il tethering senza pagare l'obolo all'operatore. Settings Database Editor ci consente di fare proprio questo. Sarà necessario concedere il solito permesso android.permission.WRITE_SECURE_SETTINGS già visto in precedenza.

Android: è ancora necessario diventare root??

E per quanto riguarda la durata della batteria, cosa possiamo fare? Possiamo utilizzare Greenify! Questa app consente di ibernare le app che lavorano in backgroud e "scongelarle" alla bisogna. Greenify può funzionare bene anche appena installata senza settaggi aggiuntivi ma, anche in questo caso, dobbiamo concedergli qualche permesso in più se vogliamo che le funzioni che consentono il maggior risparmio di batteria vengano attivate, alcuni possono essere attivati dal dispositivo (Accessibilità, Amministratore del dispositivo, Sovrapposizione sopra le altre), altri richiedono ADB.

Android: è ancora necessario diventare root??

In alternativa possiamo avvalerci ancora una volta di ADB per fare quello che fa BackgroundRestrictor con i permessi di root, ovvero impedire l'esecuzione automatica delle applicazioni se non aperte dall'utente molto utile per risparmiare batteria e dati. Il comando da impartire è

adb shell cmd appops set nome.pacchetto.applicazione RUN_IN_BACKGROUND ignore

Nelle ultime versioni di Android è anche possibile limitare nativamente sia i dati che l'utilizzo della batteria per le app che sono in background: è sufficiente andare in Impostazioni, App e notifiche, mostrare tutte le app e scegliere quella che vogliamo limitare, selezionare prima Utilizzo Dati e commutare lo switch a Dati in backgroud. Torniamo adesso alla schermata precedente e selezioniamo questa volta Avanzate, poi Batteria, tappiamo adesso Limitazione in backgroud e Limita sul pop-up che ci verrà mostrato.

Android: è ancora necessario diventare root??

Abbiamo visto come, con l'avanzare delle versioni di Android, siano aumentate le possibilità di intervenire sul sistema modificando impostazioni prima inaccessibili senza root ma purtroppo una caratteristica, per alcuni fondamentale, prima disponibile, adesso è stata tolta: la possibilità di registrare le chiamate. Anche se sullo store ci sono molte app che consentono di registrare una chiamata senza root, la qualità dell'audio della registrazione lascia molto a desiderare e in alcuni casi è assolutamente incomprensibile. Questo perché da Android 9, Google ha rimosso la possibilità per le app di intercettare il canale audio delle chiamate e le app di registrazione (che funzionano senza root) prendono l'audio direttamente dalla cassa del telefono. Ma per avere una registrazione di una chiamata di alta qualità non serve per forza essere root, è necessario però un hardware esterno come, ad esempio, degli auricolari con registratore incorporato. Se ne trovano di tutti i tipi e ci sono anche wireless!

Android: è ancora necessario diventare root?? - cuffieregistratore

Un'altra cosa che possiamo fare se si è root, è tentare il recupero dei file cancellati per errore (conoscete DiskDigger?). Ci sono moltissime applicazioni che si vantano di riuscire a recuperare le foto cancellate per errore anche senza i permessi di root; chi le ha provate sa bene che i risultati sono poco soddisfacenti perché queste app recuperano le foto cancellate prelevandole dai file di anteprima delle app di galleria e la risoluzione e la qualità delle foto recuperate sono di molto inferiori all'originale. Per recuperare le foto vere e proprie si deve accedere per forza al "disco grezzo" e per questo sono richiesti i permessi di root quindi non è possibile trovare una vera e propria alternativa ma possiamo cercare di prevenire invece che "curare" (che si dice sia meglio... ). Anche se esistono numerose app "Cestino" sul PlayStore, tutte quelle che ho provato o annoiano l'utente con continue richieste di acquistare la versione Premium o non sono totalmente efficaci perché non funzionano con tutti i tipi di file. Meglio quindi affidarsi ad una soluzione semplice e funzionale come utilizzare un gestore di file che integra un cestino, ricordandosi poi di eliminare i file (anche e soprattutto, le foto!!) solo attraverso questa app: anche in questo caso ci sono diverse alternative ma quella che vi consiglio è Cx File Explorer. Gratuita, senza pubblicità e ricca di altre interessanti funzioni che non sto qui ad elencare.

Android: è ancora necessario diventare root??

Se abbiamo un dispositivo abbastanza potente e, soprattutto, con una buona dotazione di RAM, possiamo anche installare una distro Linux attraverso UserLand

» Leggi: Guida a UserLand: il sistema più semplice per installare Ubuntu (ma non solo) sui dispositivi Android [no root]

Possiamo anche controllare una vera installazione di Linux (o Windows, o MacOS) tramite, ad esempio, TeamViewer o, se abbiamo un account Google, con remotedesktop.google.com.

» Leggi: Guida a TeamViewer: Assistenza e controllo remoto non saranno più un problema

» Leggi: Chrome Remote Desktop permette di connettersi a un computer remoto anche da un tablet o uno smartphone

Senza bisogno di root, è anche possibile il contrario, cioè controllare il nostro dispositivo Android da Windows (o Linux, o MacOS), in remoto, sempre con Teamviewer o in locale sfruttando ancora ADB, tramite scrcpy

» Leggi: Come accedere da remoto ad un dispositivo Android con TeamViewer

» Leggi: Controllare lo smartphone Android dal PC Windows 10, gratis: guida a scrcpy (no root! free!)

Questo ultimo programma ci consente anche di registrare lo schermo ed è possibile registrare l'attività anche di quelle app che, avendo impostato il FLAG_SECURE, normalmente non lo consentono.

Senza root, possiamo anche fare un backup completo del nostro sistema. In questo caso però dobbiamo avere il bootloader sbloccato e aver installato TWRP

» Leggi: Guida al backup di Android con TWRP: come salvare un'immagine di sistema Nandroid e la ROM originale dello smartphone sul PC

Root e falsi miti

So che i falsi miti sono duri da sfatare una volta che sono radicati ma con questo paragrafo voglio provare a fare un po' di chiarezza.

Molti di questi riguardano la batteria e sono già stati ampiamente trattati in questo ottimo articolo:

» Leggi: Dieci miti da sfatare sulle batterie agli ioni di litio

Un'altra cosa che è possibile con root è fare pulizia della cache delle app e dei file non necessari. So quello che state pensando "non è necessario il root!! *nome applicazione* può farlo!!". In realtà, da Android 6 non è più consentito ad una normale app di accedere (e quindi anche cancellare) la cache di un'altra app! L'unica cosa che queste app andranno a cancellare, saranno alcuni file temporanei o di log che sono presenti nella memoria condivisa e quindi facilmente accessibili anche all'utente che può scegliere e selezionare manualmente quelli che realmente vale la pena di cancellare. Alcune app di questo tipo, infatti, per far risultare una quantità di spazio recuperato più grande, cancellano anche file che, pur avendo carattere temporaneo, sarebbe meglio non cancellare: un esempio su tutti sono i file di anteprima delle foto, creati dalle app "Galleria" che consentono a queste ultime di mostrarci i piccoli riquadri delle nostre foto, prima di scegliere quale vogliamo aprire; cancellare questi file, non fa altro che rallentare l'app Galleria (qualunque essa sia, fatto salvo alcune eccezioni)) che comunque dovrà ricreare quei file all'avvio successivo. Meglio quindi fare una ricerca manuale di tanto in tanto per eliminare solo i file di cui davvero non abbiamo bisogno.

Per quanto riguarda la cache, che alcune app che accedono al root possono riuscire a pulire, sarà meglio spiegare cos'è e perché, in condizioni normali, cancellarla è controproducente per le prestazioni. La cache di un app è utilizzata per lo stoccaggio di file che sono necessari per il funzionamento ma possono avere una durata/validità limitata. Cancellando la cache di un app andremo a recuperare un po' di spazio e potremo liberare un po' di RAM ma poiché i file in essa contenuti sono necessari al funzionamento di un app, quando andremo ad avviarla questa dovrà ricreare i file nella cache prima di essere disponibile all'utilizzo e questo si traduce in tempi di avvio delle app più lunghi e maggior consumo della batteria. Allora perché è possibile cancellare la cache di un app, anche senza essere root, direttamente dalle impostazioni di Android? Perché alcune volte i file contenuti nella cache possono corrompersi (per la chiusura forzata dell'app, per un aggiornamento, per un bug, ... ) e questo potrebbe impedire la corretta esecuzione o addirittura l'avvio dell'app. Inoltre è anche possibile che alcune app abbiamo una gestione della cache, per così dire, discutibile e possano arrivare ad occupare anche alcuni Giga di spazio. Questo però non giustifica la cancellazione in blocco di tutte le cache delle app installate ma è sempre meglio individuare le app problematiche e procedere ad un cancellazione manuale, mirata e con periodicità generalmente non superiore ad una volta ogni 3-4 mesi (anche se questo dipende molto dal tipo di app e dal tempo di utilizzo; in ogni caso non è mai giustificabile cancellare la cache una o più volte al giorno!).

Un discorso analogo si può fare riguardo alla chiusura delle app in background sempre con alcune app che accedono a root oppure anche manualmente tramite lo swipe in alto (o nelle versioni più datate di Android, verso destra): con questa operazione si può riuscire a liberare un bel po' di RAM ma se l'app che andremo a chiudere è la stessa che apriamo di continuo (ad esempio, per vedere i nuovi messaggi) od è comunque un'app che utilizziamo molto spesso, ogni volta il sistema dovrà "leggere" l'app dalla memoria interna che, seppur veloce, sarà sempre più lenta della RAM. Anche in questo caso, chiudere sempre tutte le app in background avrà come sicuro effetto quello di rallentare l'avvio delle app che utilizziamo più di frequente e aumentare il consumo di batteria. Allora perché alcuni produttori hanno integrato nella loro versione di Android, un'app di sistema per pulire la cache e chiudere tutte le app in background? Il motivo è semplicissimo: per venire incontro alle esigenze dell'utente medio che è erroneamente convinto, utilizzando questi sistemi, di velocizzare il dispositivo, guadagnare un sacco di spazio e aumentare la durata della batteria. Al contrario, questi strumenti hanno il solo effetto di impedire il corretto funzionamento delle app, tanto da far creare un apposito sito ad alcuni sviluppatori, per denunciarne la cosa e suggerire un rimedio, drastico ma efficace: la disattivazione e/o rimozione di tali strumenti. Insomma, non è certo un caso se Google (il creatore di Android) non ha implementato una funzione del genere direttamente all'origine!!

C'è un'altra cosa che le app di ottimizzazione che accedono a root si vantano di fare: l'ottimizzazione dei file database. Android è infatti pieno di database SQL. Vediamo di chiarire anche questo punto. Il normale utilizzo di questi database comporta la periodica aggiunta e rimozione di voci. Quando si rimuove una voce, questa lascia uno spazio vuoto che viene marcato come riscrivibile e non viene immediatamente cancellato: l'operazione di ottimizzazione che viene eseguita è quella di forzare la cancellazione di questi spazi vuoti e diminuire la frammentazione con il comando VACUUM), con il risultato di compattare il database ed è un'operazione che gli amministratori di sistema conoscono bene perché in caso di grossi database che vengono aggiornati di frequente, un'operazione di questo tipo può fare guadagnare spazio e diminuire il tempo di riposta. Ma questo vale anche per i database presenti su Android? Vediamo un po'... Proviamo con il mio dispositivo dove ci sono installate circa 102 app e che non è mai stato "ottimizzato" da quando ho sostituito la ROM circa 4 anni fa (il mio cellulare è vecchio, lo so). Cerchiamo tutti i database presenti; per fare ciò su un dispositivo "rootato" potremo utilizzare Termux e un piccolo script che valuta ogni file presente nella partizione /data (che comprende anche la memoria condivisa) per verificare che sia un database (la ricerca per estensione potrebbe non includere tutti i database dato che ce ne sono alcuni senza estensione!!). Lo script potrebbe essere questo:

find /data/ -print -exec file {} + | grep SQL | wc -l

Praticamente valutiamo con file tutto ciò che contiene le partizione /data, scandagliata con find e selezioniamo solo i database SQL (grep SQL) che poi andremo a contare (wc -l).

ATTENZIONE: portate pazienza perché lo script potrebbe impiegare molto tempo prima di terminare!

Android: è ancora necessario diventare root??

Come possiamo vedere dallo screenshot sopra il numero è davvero notevole (388)! Si potrebbe pensare che vale decisamente la pena ottimizzare tutti questi database ma aspettiamo a saltare alle conclusioni... Infatti se aggiungiamo l'opzione -size a find per cercare i database più grandi di 100KB il numero scende vertiginosamente; se ripetiamo ancora la ricerca escludendo i file più piccoli di 250KB, 500KB e 1MB il numero dei database presenti crolla fino a 27. Se filtriamo ulteriormente quelli con dimensione superiore a 5M e poi ancora a 10M otterremo rispettivamente 8 e 4

Android: è ancora necessario diventare root??

È facile comprendere come per database di queste dimensioni il recupero di spazio sia tale da non fare la differenza (spesso è dell'ordine di poche centinaia di KB). Inoltre, considerata la grandezza di questi file e la velocità di lettura/scrittura della memoria interna del dispositivo, anche parlare di incremento di prestazioni, pur su telefoni datati, è risibile. Per completezza di informazione, provando ad ottimizzare i quattro database più grandi presenti sul mio dispositivo che sono, rispettivamente, da 134MB, da 79MB, da 17MB e da 14MB, ho ottenuto un guadagno in termini di dimensioni di appena 7MB in totale. Per ottimizzare questi due database sempre tramite Termux, in una shell di root, il comando è

sqlite3 /path/to/database "VACUUM;"

In particolare, ho ottenuto una diminuzione rispettivamente di 6MB, 0, 1MB e di nuovo 0. Potete capire che non è certo questa ottimizzazione che vi farà guadagnare lo spazio che vi manca...

Ci sono controindicazioni a fare il root?

Purtroppo . Anzitutto è bene precisare che difficilmente vi verrà riconosciuta la garanzia su un telefono "rotato": se il venditore si accorge del root, potrebbe facilmente appellarsi alla "manomissione" per giustificare qualunque problema presenti il vostro telefono. Anche i centri assistenza ufficiali potrebbero fare storie ma la cosa varia molto da produttore a produttore: in alcuni casi occorrerà quanto meno ripristinare la ROM originale (e quindi perdere il root) per poterlo mandare in assistenza ma ci sono alcuni produttori (vedi Samsung) che comunque potrebbero non riconoscere la garanzia.

Come diceva il compianto zio Ben: "da un grande potere derivano grandi responsabilità": come detto in apertura a questo articolo, una volta che abbiamo accesso come root al nostro dispositivo, possiamo fare di tutto, anche gravi danni! Benché con i telefoni moderni è molto raro arrivare al brick totale, è comunque una possibilità da tenere in conto. Senza arrivare ad una conclusione così drammatica, sarà comunque importante concedere i permessi di root solo ad app fidate e scaricate da fonti sicure (consiglio quest'ultimo che vale comunque per qualunque app!) perché un app in esecuzione con i massimi privilegi può controllare anche tutte le altre e dato la quantità di dati personali che passano dai nostri cellulari è bene essere accorti. Inoltre, alcune app, se rilevano che il dispositivo ha il root, potrebbero non funzionare: nonostante il sistema migliore per avere root (Magisk) implementa una funzione in grado di nascondere ad alcune app indicate la presenza del root, alcune volte può fallire, compromettendo il funzionamento di app come, ad esempio, Netflix, le app delle banche o quelle che permettono pagamenti contactless. Ponderate bene, quindi, se il root vi serve veramente o no, altrimenti rischiate seriamente di fare un'operazione che invece di darvi benefici, vi toglie qualcosa per voi indispensabile.

» Leggi: Guida a Magisk: il nuovo root per Android

Allora perché dovrei fare il root?

Come abbiamo visto, è possibile trovare qualche alternativa "senza root" per le operazioni che generalmente sfruttavano i massimi privilegi ma root è ancora necessario per molte cose. Una su tutte, il backup delle singole app con la possibilità di ripristinarle anche su un dispositivo diverso o semplicemente se decidiamo di cambiare la ROM. Il backup tramite Google, riesce a ripristinare molte cose ma non è ancora in grado di ripristinare tutte le impostazioni interne delle app o del sistema e tutti i nostri settaggi preferiti, cosa possibile se si è root, ad esempio, tramite Titanium Backup. Anche la funzione di backup tramite adb lascia molto a desiderare e sarà presto deprecata.

Ancora: il root è necessario se vogliamo modificare i parametri del kernel (ad esempio, con Kernel Adiutor) in modo da ottenere davvero prestazioni migliori o ridurre il consumo di batteria; o se vogliamo utilizzare app che necessitano di accedere direttamente all'hardware (come, ad esempio, l'app di pentest Zanti). Ultimo ma non ultimo: il root è necessario per la soddisfazione personale di avere pieno controllo del nostro dispositivo. In futuro poi, potrebbe essere l'unico modo per fare molte delle operazioni che abbiamo visto richiedere i permessi di Accessibilità in quanto Google sta pensando di permettere l'accesso a detti permessi alle sole app per diversamente abili e anche l'unico modo avere accesso ai file delle altre applicazioni dato che da Android 11 sembra che Google (salvo ripensamenti dell'ultima ora) abbia rimosso la cosiddetta memoria condivisa.

Il problema è che per ogni versione di Android che esce è sempre più difficile diventare root...