Archivi tag: Developer

Appunti su Android

Introduzione

Quante volte vi capita di entrare in una stanza e, improvvisamente, vi dimenticate il motivo per cui siete entrati? Bene, gli scienziati hanno codificato questo strano effetto battezzandolo con il nome di Doorway effetc: l’effetto della porta d’ingresso.

Ecco, a me non serve passare da una porta d’ingresso per dimenticare qualcosa, ci riesco con molta più facilità! Per questo motivo spesso mi capita di prendere degli appunti in modo da mitigare questo effetto.

Voglio condividere con tutti voi i miei appunti sul Sistema Android, dalla struttura di sistema fino ai comandi di base, spero possa esservi utile!

Partizioni

La struttura di un hard disk android è cambiata molto nel tempo, ma queste partizioni, ovviamente simil-linux, sono rimaste abbastanza inalterate:

  • misc – Partizione “miscellaneous”, letteralmente partizione di dati di tipo “Varie”, qualsiasi tipo di dato che non rientra nella competenza delle altre partizioni;
  • recovery – Partizione di boot nel caso in cui avviamo il dispositivo in Recovery Mode;
  • boot – Classica partizione di boot di un sistema linux;
  • system – Partizione di sistema, tecnicamente qui ci stanno tutti i dati della ROM installata;
  • cache – Partizione di cache;
  • userdata – Partizione con tutti i dati dell’utente (comprese le applicazioni non di sistema installate).

Filesystem

Il filesystem di un sistema android è molto simile a quello linux, non mi dilungo quindi nel spiegare la tutta la struttura ma resto focalizzato soltanto nelle differenze che particolarizzano un sistema andorid:

  • /system/app – Applicazioni di sistema che non è possibile disinstallare
  • /data/app – Applicazioni installate
  • /data/data/<package> – Dati dell’applicazione

Comandi adb

L’Android Debug Bridge (ADB) è il comando per la gestione di un dispositivo android collegato via USB ad un PC.

Di seguito un elenco dei comandi più comuni:

  • abd devices – Visualizza tutti i dispositivi correttamente connessi al PC;
  • adb reboot – Riavvia il dispositivo;
  • adb reboot bootloader – Riavvia il dispositivo in  modalità bootloader (la schermata bianca con i tre android sullo skateboard);
  • adb reboot recovery – Riavvia il dispositivo in modalità Recovery;
  • adb shell – Avvia una shell del sistema (terminale linux);
  • adb remount – Monta nuovamente la partizione system in modalità read/write;
  • adb logcat – visualizza il log di sistema;
  • adb install <apk> – installa una applicazione;
  • adb push – copia file nel device;
  • adb uninstall <apk> – rimuove una applicazione.

Comandi fastboot

Fastboot è il comando per effettuare il flash del filesystem di un dispositivo android collegato via USB ad un PC. Per utilizzare questo tool il dispositivo deve essere avviato visualizzando il bootloader e selezionando Fastboot.

Di seguito un elenco dei principali comandi:

  • fastboot devices – Visualizza tutti i dispositivi correttamente connessi al PC;
  • fastboot reboot – Riavvia il dispositivo;
  • fastboot erase <partizione> – Cancella i dati dalla partizione selezionata. Questo comando può essere usato per ripulire il device;
  • fastboot flash <partizione> <file.img> – Effettua il flash della partizione con il file specificato;
  • fastboot boot <file.img> – Avvia il sistema utilizzando come partizione di boot il file specificato ma senza effettuare il flash.

Glossario

  • Nandroid – Backup di tutto il sistema effettuabile avviando il dispositivo in Recovery Mode. Questa operazione crea una copia esatta del stato del dispositivo. Paragonabile ad operazioni di Ghost sul PC. In poche parole crea un file img per ogni partizione android di sistema.
  • SPL o Second Program Loader – Parte di codice che si occupa dell’avvio del terminale, tecnicamente è paragonabile al BIOS di un normale PC. Questo controlla se durante l’avvio sono stati premuti tasti particolari (proprio come il bios) ed, in base a particolari combinazioni di tasti, decide se far partire il sistema tramite la partizione di boot (opzione di default) o se avviare il Recovery Mode o il bootloader. Questa, essendo eseguita quasi immediatamente durante l’operazione di boot, è una delle aree più delicate del sistema: se il flash di questa parte (ovvero sovrascriverla o aggiornarla con una SPL personalizzata) non va a buon fine, le probabilità di aver trasformato il vostro dispositivo in un mattoncino è elevatissima (Brick del sispositivo). SPL può essere rilasciato in due modalità Security-On e Security-Off (S-ON e S-OFF).
  • Brick – Se qualcosa va male, ma veramente male, il telefono diventa un mattoncino (Brick, appunto). In poche parole avete “rotto” il cellulare e non potete più ripararlo. Solo un centro assistenza autorizzato può ripristinarlo. Esistono solo poche (e rischiose operazioni) che portano il dispositivo in Brick: errore durante il root del cellulare; errore durante l’aggiornamento dell’SPL; flashare una radio non compatibile con SPL.
  • Recovery Mode – Particolare partizione del dispositivo avviabile durante il boot. Permette operazioni come l’hard wipe (cancellazione di tutti le impostazioni dalla partizione data) o effettuare aggiornamenti tramite file update.zip. In caso di Recovery modificate (tramite processo di root del dispositivo) è possibile effettuare anche l’operazione di nandroid backup o flash.