Android è il sistema operativo per dispositivi mobili più diffuso sul mercato. Parte del successo è dovuto alla sua natura di software a sorgente aperto che consente a qualunque produttore di cellulari/tablet di prendere questo sistema, personalizzarlo più o meno pesantemente e distribuirlo installato sui suoi prodotti. Tutto questo ha, ovviamente, anche molti lati negativi e uno di questi è la "farcitura" del sistema con applicazioni, per la maggior parte degli utenti, inutili, che occupano spazio, memoria, consumano batteria, violano la nostra privacy e che alcune volte non possono essere rimosse o disattivate. Almeno non direttamente dal dispositivo perché è possibile disinstallare quasi tutte le app di sistema tramite ADB!!!
Un po' di teoria
Abbiamo già visto come installare e utilizzare Android Debug Bridge e adesso vedremo come utilizzare questo strumento per rimuovere qualsiasi app di sistema!
Ma, prima di impartire i comandi necessari, vediamo un po' più in dettaglio che cosa andremo a fare; dato che stiamo utilizzando uno strumento piuttosto potente (ADB) è buona regola avere un'idea chiara di quello che succederà, di quelle che potrebbero essere le conseguenze ed eventualmente come poter rimediare. Anzitutto diciamo che è meglio non rimuovere le app di cui non siamo sicuri, quelle la cui funzione non è chiara perché potremo rendere il nostro sistema instabile, compromettere il funzionamento di altre applicazioni che vogliamo utilizzare o peggio ancora incappare in continui crash di app vitali al funzionamento. La buona notizia è che qualunque modifica potrà essere annullata con un ripristino alle condizioni di fabbrica! Questo sistema infatti disinstalla le app di sistema solo per l'utente corrente ma l'applicazione rimarrà, completamente inattiva, nella partizione di sistema (diversamente da quello che succede con la disinstallazione tramite root!). Questo comporta un altro enorme vantaggio: infatti, lasciando la partizione di sistema intatta, non si perderà la possibilità di effettuare gli aggiornamenti rilasciati dal produttore del dispositivo! Per contro, un aggiornamento, un passaggio di versione di Android, potrebbe resettare tutte le modifiche fatte. Ora che abbiamo visto pro e contro possiamo cominciare.Adesso la pratica
Una volta rese visibili le Opzioni Sviluppatore
, abilitato il Debug USB
, collegato il nostro dispositivo al PC e avviato adb, se il nostro dispositivo viene rilevato dal comando adb devices
, siamo pronti a rimuovere un po' di bloatware dal nostro sistema!
Il comando da impartire è semplice:
adb shell pm uninstall --user 0 nome.della.applicazione
In pratica, tramite adb
andremo ad avviare una shell
che invoca l'eseguibile pm
(che altro non è che un package manager, un gestore delle applicazioni), con l'opzione uninstall
(dall'ovvio significato), l'opzione --user 0
(per indicare l'utente principale del telefono) (se vogliamo conservare i dati della applicazione che andremo a rimuovere, possiamo aggiungere un ulteriore opzione -k
) e infine il nome del pacchetto dell'applicazione. Dovremo prestare attenzione a quest'ultima parte: il nome dell'applicazione che viene mostrato nei menu di Android infatti può essere molto diverso dal nome del pacchetto di quella stessa applicazione!
Per risalire al nome del pacchetto possiamo utilizzare due metodi:
- il primo funziona egregiamente se l'app da rimuovere può essere contraddistinta facilmente da una parola chiave e sfrutta sempre adb con l'eseguibile pm. Digitando il comando:
adb shell pm list packages | grep parola-chiave
con l'aiuto di un pipe e di grep, otterremo una lista con i nomi dei pacchetti installati, contenenti la parola chiave cercata. A questo punto possiamo procedere con la disinstallazione con il comando visto in precedenza.
- il secondo metodo permette di identificare più facilmente una app perché mette in diretta correlazione non solo il nome dell'app con quella del pacchetto ma anche con l'icona! Per questo si deve installare un'applicazione come, per esempio, Applications Info (potete trovarla anche sul PlayStore!)
Adesso che abbiamo il nome del pacchetto, sappiamo cosa fare...
Se la disinstallazione dell'app andrà a buon fine, il comando impartito restituirà un rassicurante Success
come output e l'applicazione, pur sempre visibile da Impostazioni
, Applicazioni
, sarà "marcata" come Non istallata per l'utente.
Funziona anche da Terminal Emulator / Termux?
No. Il motivo è semplice: i permessi con cui vengono eseguiti i comandi impartiti dalle app sono piuttosto limitati se paragonati a quelli impartiti attraverso adb.
Meglio disinstallare o disattivare?
Dato che con questa disinstallazione le applicazioni non vengono effettivamente rimosse dal sistema (non si guadagna molto spazio, purtroppo!), se disponibile, è molto meglio preferire la disattivazione dell'app alla sua disinstallazione. Non solo perché, a parità di risultato (l'app non sarà più attiva sul dispositivo, ne si aggiornerà più), sarà sufficiente un tap nel menu di Android al posto di un comando inviato tramite adb ma anche perché, in caso di ripensamenti, sarà molto più facile riattivare l'app (sempre con un tap) che reinstallarla! Meglio quindi utilizzare questa procedura solo per le app non disattivabili!!
Si possono rimuovere proprio tutte le app di sistema?
Purtroppo (o per fortuna!!), no. Alcune app resistono anche ad adb. Durante le mie prove infatti sono riuscito a rimuovere quasi tutte le app di Google tranne Google Play Service e non dubito che ce ne possano essere anche altre.