Ecco come visualizzare file e directory nel filesystem di android da Linux e come modificarlo montando la ROM in lettura e scrittura.
Oltre per il fatto che dove ho detto come installare applicazioni sull'emulatore di Android riferivo che avrei scritto altri "trucchi" riguardanti questo sistema operativo, correlati con il computer, online, praticamente tutti i tutorial non solo italiani che dicono come fare il root al proprio dispositivo dotato di Android, come rimuovere le applicazioni di sistema, come sbloccare il bootleader, come cambiare la ROM ed altre cose simili sono pensati per windows, e, sono "solo" applicazioni o sono software, che comunque utilizzano tool dell'SDK di Android per fare il tutto.
Programmi per windows per hackerare Android a tutti gli effetti sono "fork" per windows di tool linux, le applicazioni hanno al loro interno eseguibili Linux, l'hacking però, anche per Android, lo si fa con Linux, e, una guida seppur minima manca, in questo post la farò e spiegherò com'è semplice accedere in lettura e scrittura al filesystem di Android, in pratica alla ROM, potrà permettere di fare tutto quello che ho menzionato nel paragrafo precedente e molto di più.
Come accedere in lettura e scrittura alla ROM di Android
Acedere in lettura e scrittura al filesystem di Android tramite un computer con montato linux è semplice, basta solamente utilizzare l'SDK di Android ed i tool in esso presenti, adb
in particolare, e serve ovviamente un cavo USB per collegare normalmente il dispositivo al computer, per far riconoscere il filesystem al sistema operativo non servono driver, basta solamente creare una regola per udev.
Da come ben si capisce, dopo aver scaricato l'SDK (ovviamente per Linux) ed averlo scompattato, la prima cosa da fare è permettere al sistema operativo di riconoscere non solo la scheda SD, che da Linux viene riconosciuta senza installare assolutamente niente, per fare questo basta creare una regola per UDEV ovvero fare un file e chiamarlo 51-android.rules
nella directory /etc/udev/rules.d/
ed al suo interno inserirvi:
SUBSYSTEM=="usb", ATTR=="XXX", MODE="0666", GROUP="plugdev"
Al posto delle tre ics (XXX) nello snippet qui sopra vi andrà messo il numero identificativo (ID) della marca del vostro dispositivo mobile, per sapere qual'è il vostro basta che andiate in fondo a questa pagina, vederlo nella colonna "USB Vendor ID" e potrete copiare quello sulla stessa riga della marca del vostro disposotivo.
La ROM di Android verrà ora riconosciuta da Linux, per potervi accedere bisogna però bisogna configurare il telefono/tablet in modo che faccia il debug USB, quindi abilitatelo in "impostazioni/applicazzioni/sviluppo" selezionando "Debug USB" nel vostro dispositivo, bisogna anche acconsentire l'installazione di applicazione provenienti da origini sconosciute, per far questo dovete selezionare "Origini Sconosciute" in "impostazioni/applicazzioni/" nel vostro dispositivo.
Tornando al tutorial, ora che Linux è pronto per accedere ad Android ed anche nel il dispositivo si sono impostati i permessi per accedere al filesystem, per potervi accedere bisogna per prima cosa identificare il numero di serie del dispositivo, per far questo occorre portarsi tramite shell nella directory "platform-tools/" che è una cartella dell'SDK di android, e digitare il comando ./adb devices
:
Identificato il numero di serie del vostro dispositivo Android, sempre con la shell nella directory "platform-tools/" tramite Android Debug Bridge (adb) tramite l'opzione -s
seguita dal numero di serie del dispositivo si potranno eseguire comandi sul dispositivo, ad esempio se il numero di serie del vostro dispositivo è "123" per accedere alla shell di android dovrete digitare:
./adb -s 123 shell
Adesso che si è con la shell all'interno del dispositivo, per modificare il sistema, ovvero per avere il permesso di accesso in lettura e scrittura bisogna innanzitutto vedere in che partizione è il sistema ovvero la directory system/
del filesystem, la quale contiene i file principali e più interessanti per poter smanettare su Android e per modificarlo, per far questo, sempre nella shell di android bisogna digitare il comando mount
:
Com'è possibile vedere dall'immagine presente precedentemente, sicuramente per motivi di sicurezza Android suddivide le varie directory di sistema in filesystem i quali hanno vari permessi, anche se questo non centra con l'articolo non ho potuto esimermi da menzionarlo dato che è molto interessante e bisogna prendere esempio anche per il partizionamento dei normali computer con montato Linux.
Comunque, una volta che avrete identificato in che filesystem "virtuale" all'interno della ROM è montata la directory system
e se corrispondono le altre directory, ovvero controllate prima di copiare/incollare il comando, per montarla in lettura e scrittura basta digitare dalla shell dell'SDK prima il comando su
, poi:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
Fatto questo, senza il bisogno di accedere nuovamente tramite l'SDK avrete tutti i permessi per eliminare le odiose applicazioni che il produttore del dispositivo ha messo, è stata la prima cosa che ho fatto, che non si disinstallano neanche con applicazioni apposite per Android, potrete creare ed editare files di sistema ed ovviamente prima di combinare danni potrete esplorare la gerarchia del filesystem.
Anche se montare in lettura e scrittura il filesystem di Android per modificarlo può essere un vantaggio per la sicurezza dato che non bisogna fare il root del dispositivo per personalizzarlo totalmente, se non si sa cosa si tocca è meglio affidarsi ancora ad applicazioni dato che si potrebbe rendere inutilizzabile lo smartphone/il tablet.
Concludo dicendo che, anche se ho testato il tutto con linux, installando l'SDK per Windows, togliendo la slash ed il punto anteposti ai comandi, installando il driver USB di Google o quello di produttori OEM al posto di fare la regola per UDEV potrete visualizzare e modificare il FileSystem di Android anche con Windows, vi potrebbe evitare l'installazione di applicazioni sul dispositivo e/o software dannosi sul computer, purtroppo chi non utilizza Linux dovrà impararsi almeno i comandi principali, però, se non utilizzate Linux ma usate Android, vedete quant'è semplice da usare Linux, i comandi s'impartiscono solo in casi particolari al giorno d'oggi.
Fonti parziali: Android Tricks ed Android Developer Guide.
Complimenti per la guida. Purtroppo sto tribolando per effettuare le stesse operazioni sul Samsung Galaxy Tab2 7.0 ma non ci sono riuscito. I permessi di root vengono negati...
Grazie Callajeon, presumo che dipenda dalla versione di Android e/o dal brand del produttore quindi i filesystem da montare possono essere differenti, prova a vedere sul forum di XdaDevelopers che al 99% dopo una ricerca trovi dov'è montata la ROM e che tipo di filesystem ha.
Ciao,
Yuri.
Ciao questa guida va bene per me che ho un sony z3 compact? Vorrei poter installare come app di sistema cerberus ma non voglio né effettuare il root ne sbloccare il bootloader per invalidare la garanzia.
A presto
In teoria (non ho testato quindi la sicurezza non l'ho) funziona Adminonimo, in base la versione di Android e del dispositivo potrebbero cambiare il percorso delle directory ed il filesystem da montare.
Quindi anche a te consiglio di dare la lettura a qualche post su XdaDevelopers che dice le specifiche tecniche del tuo dispositivo prima.
Buona serata,
Yuri.
Ciao, dove trovo "il numero identificativo (ID) della marca del vostro dispositivo mobile"? Il link mi da errore... Grazie in anticipo.
Ciao Eman,
ho corretto il link, ora lo puoi trovare seguendolo.
Ciao,
Yuri.