applicazioni di sistemaLa gestione delle applicazioni Android non è sempre cosa facile. La limitata memoria dei dispositivi di fascia bassa spesso può portare all’esaurimento dello spazio di archiviazione interno, quindi all’impossibilità di installare aggiornamenti o nuove applicazioni. Ecco quindi che diventa importante sfruttare anche la partizione di sistema, che ha dello spazio normalmente non utilizzabile.

Prima di procedere è doveroso segnalare che tale operazione richiede i permessi di root ed è potenzialmente pericolosa. Qualora non si operasse in maniera corretta esiste il rischio di rendere inutilizzabile lo smartphone.

Per gestire (o convertire) le applicazioni di sistema e quelle utente, esistono principalmente due vie: tramite applicazione dedicata e tramite riga di comando. La prima via è certamente la più comoda, ma spesso le applicazioni di questo genere sono a pagamento (un esempio è Titanium Backup PRO 4,99€ – nella versione free la feature è disabilitata). Utilizzando la riga di comando, invece, potremo eseguire le stesse operazioni avendo pieno controllo di quello che facciamo e risparmiando sul costo dell’applicazione.

L’operazione manuale è estremamente semplice, poiché richiede semplicemente i permessi di scrittura nella partizione /system (come spiegato in questo articolo). Ora non resta che spostare (o eventualmente cancellare) le applicazioni di nostro interesse tra le cartelle /system/app (dove sono presenti tutte le applicazioni di sistema) e /data/app (dove sono contenuti tutti gli apk dei programmi installati tramite il Play Store).

Il comando da lanciare con ADB o simili è:
cp [source] [destination]
rm [source]

Dove vanno opportunamente cambiati [source] e [destination] rispettivamente con il nome e percorso del pacchetto sorgente e percorso/nome per il file di destinazione. Si rende necessario fare una copia ed una successiva cancellazione perché con il comando mv si copierebbe solo l’hardlink, non i dati. Quando dovete spostare un file tra filesystem diversi, questo è il modo corretto di operare (in alternativa si spera che riceviate un errore del tipo: “Cross-device link”).

La particolarità della directory /system/app è proprio quella di essere protetta dalla scrittura: le applicazioni presenti qui non potranno essere disinstallate nella maniera tradizionale e restano presenti anche dopo un ripristino delle condizioni iniziali. Eventuali aggiornamenti delle applicazioni non verranno inclusi in questo percorso, ma in /data/app, occupando quindi il doppio dello spazio. Se tentate di disinstallare una applicazione di sistema che è stata aggiornata, potete notare che l’unica operazione consentita è quella di rimuovere gli aggiornamenti, tornando alla versione inclusa nella cartella di sistema. Il consiglio è quello di mantenere una sola copia dell’applicazione, tenendo solo l’apk più aggiornato.

Bisogna fare attenzione alle differenze di nomi assegnate agli apk all’interno delle due directory: /system/app contiene nomi generalmente più compatti ma comprensibili, mentre /data/app ha il nome dei pacchetti per esteso. Per fare un esempio, potrebbe essere presente un pacchetto di nome com.facebook.katana-1 in /data/app ed uno di nome Facebook in /system/app. Fondamentalmente i due apk rappresentano la stessa applicazione, con l’eccezione che quello in /system/app è la versione iniziale dell’applicazione, quella già preinstallata al momento dell’acquisto del terminale, mentre l’apk in /data/app è la versione più aggiornata scaricata dal Play Store.

Insomma, prendendo dimestichezza con alcuni i nomi delle applicazioni, diventerà estremamente facile gestire in completa autonomia le proprie applicazioni di sistema, arrivando ad un utilizzo ottimale della memoria.

Alcuni esempi di nomi di pacchetti e relativi nomi “normalizzati” che potreste trovare:

com.google.android.apps.maps -> Maps
com.google.android.voicesearch -> VoiceSearch
com.google.android.street -> StreetView
com.google.android.googlequicksearchbox -> GoogleQuickSearchBox
com.android.vending -> Vending
com.google.android.gm -> GMail
com.google.android.marvin.talkback -> Talkback
com.facebook.katana -> Facebook
it.sineo.android.noFrillsCPU -> NoFrillsCPU
com.noshufou.android.su -> Superuser
eu.chainfire.supersu -> SuperSU
com.buak.Link2SD -> Link2SD
com.google.android.youtube -> Youtube
de.schaeuffelhut.android.openvpn -> OpenVPN-Settings
com.fede.launcher -> LauncherPro
com.twitter.android -> Twitter
xcxin.filexpert -> FileExpert
com.rechild.advancedtaskkiller -> Atk