cwm-recovery

Il pacchetto .zip installabile da recovery

Il pacchetto .zip installabile da recovery

Ed eccoci al secondo appuntamento della rubrica WazoTech, dove i Rom e la tecnologia vanno a braccetto.

Oggi vedremo nel dettaglio la struttura di un file .zip flashabile da recovery modificata (CWM o TWRP). Dentro questa categoria di file troviamo tutto ciò che i cuochi, i themer e gli sviluppatori rilasciano sui forum specializzati in giro per la rete.

Questi package sono abbastanza semplici da creare a patto che si conosca la struttura delle partizioni di Aandroid (vedi puntata precedente) e che si conosca un minimo il device che si sta utilizzando.

Partiamo con la struttura del file .zip – Utilizzerò come esempio l’installazione di un’app di sistema contenente tutta la magia e le fantasmagoriche innovazioni di iOS7. 

Screenshot

Immagine 1 – Root del file .zip

Contenuto della cartella system

Immagine 2 – Contenuto della cartella system

Contenuto della cartella app

Immagine 3 – Contenuto della cartella app

 

Il file .zip deve essere sempre composto da:

  • La cartella META-INF  che contiene il binario necessario alla recovery del nostro device per installare il pacchetto e il file con le istruzioni per l’installazione dello stesso (il percorso completo di questi due files è rispettivamente /META-INF/com/google/android/update-binary e /META-INF/com/google/android/updater-script)
  • Le cartelle con i file da installare.  Nelle immagini sopra riportate vedrete il percorso completo delle cartelle e del file che andremo a scrivere nella partizione di sistema (il leggendario iOS7.apk).

Andiamo un po’ più nel dettaglio e vediamo come possiamo far capire al nostro device che deve installare quel file.

Per fare in modo che il file venga correttamente installato nella cartella desiderata, oltre a strutturare correttamente i file e le cartelle del nostro  .zip, dobbiamo “dire” ad Android come e dove le deve estrarre. Per far questo  abbiamo bisogno dei due file sopra citati:

  • update-binary: ATTENZIONE questo file è un binario e non è uguale per ogni device. Domandone: quante volte vi è capitato di flashare uno .zip e la recovery vi ha restituito errore (abort)? Ecco… la causa, se l’autore dello zip non ha fatto cazzate, è questo file qui 🙂
  • updater-script: come dice il nome stesso del file, questo script conterrà le istruzioni con le quali la recovery installerà i file. Sempre considerando il nostro esempio, lo script dovrà contenere queste istruzioni (per crearlo usate un editor di testo come Notepad++):

ui_print(“”);
ui_print(“Installing iOS7”);
ui_print(“by Carburano”);
ui_print(“”);

run_program(“/sbin/busybox”, “mount”, “/system”);

ui_print(“Extracting System Files…”);
package_extract_dir(“system”, “/system”);

ui_print(“Setting Permissions…”);

set_perm_recursive(0, 0, 0755, 0644, “/system/app”);

unmount(“/system”);

ui_print(“”);
ui_print(“Done! :-)”);

Ve le spiego:

Le istruzioni col comando ui_print sono quelle che appariranno a schermo da recovery mentre installate il package.

L’istruzione run_program(“/sbin/busybox”, “mount”, “/system”); monta la partizione di sistema (grazie al tool busybox) e la rende disponibile ad Android.

L’istruzione package_extract_dir(“system”, “/system”); significa: prendi tutto quello che c’è nella cartella /system del nostro file zip ed estrailo nella cartella /system dello smartphone. In questo momento, per la precisione, la nostra app è stata copiata nella cartella /system/app di Android.

A questo punto non dobbiamo fare altro che verificare che i permessi sulle cartelle siano corretti. Il comando per fare ciò è set_perm_recursive(0, 0, 0755, 0644, “/system/app”); che tradotto vuol dire: dài al proprietario (root) i permessi di scrittura, lettura ed esecuzione alla cartella /app e sue sottocartelle mentre gli altri leggono ed eseguono e basta e dài i permessi di lettura e scrittura per i file contenuti nella cartella /app al proprietario (root) mentre gli altri leggono e basta.

Per concludere “smontiamo” la partizione di sistema con il comando: unmount(“/system”); 

Ora dobbiamo solo prendere il nostro file .zip, metterlo nella Sdcard, riavviare in recovery e installarlo… Ecco il risultato se il device non va in bootloop:

iOs7

Bello vero? Ha funzionato!!

E ora un elenco di cose che succedono spesso quando installate un package .zip da recovery:

– Ho installato un tema e il device ora è in bootloop. Causa: state installando un tema non appropriato al vostro device o alla versione di Android del vostro device (di solito il framework viene aggiornato contestualmente alle versioni di Android). Cercate subito uno zip di ripristino sul forum del vostro device su XDA.

– Ho installato il launcher portato dal sony xperia z1 ma non la trovo al riavvio. Causa: probabilmente l’updater script conteneva degli errori oppure avete utilizzato uno .zip non adatto al vostro device. La cosa migliore da fare è prendere i file contenuti nel pacchetto scaricato  e ricreare il file updater-script più adatto alla struttura del vostro device.

– Ho flashato un file .zip ed è apparsa un’installazione guidata fighissima, con la scritta Aroma Installer. Che è? Risposta: Aroma installer è un’estensione grafica all’update-binary realizzata per personalizzare e rendere più semplice la configurazione e l’installazione dei pacchetti .zip e soprattutto delle ROM. Io lo usavo per i miei kernel, i miei pacchetti di customizzazione grafica e le mie ROM, è davvero figo, ma non ve lo spiegherò perchè ci vorrebbe troppo.

Beh mi sono rotto il cazzo di acculturarvi.

Alla prossima… vedremo la struttura di sistema di una ROM e delle cartelle più importanti.

W Jony Ive

 Condividi su G+



Mi chiamo Francesco ma sul web sono presente da sempre con lo stupido nickname "carburano" (acronimo di Carmine Burano). Nella vita virtuale sono un geek appassionato di modding Android (in passato ho realizzato ROM, Kernel e altre cosine del genere), nella vita reale invece mi occupo di tecnologie per l'e-Learning, di SEO e sono una persona che crede ancora nell'ideologia e nel rock'n'roll! Se avete voglia di fare due chiacchiere con me per sfogare le vostre frustrazioni tecnologiche o politiche... beh... questo blog è il vostro posto!


Commenta utilizzando Google+


'Il pacchetto .zip installabile da recovery' has 1 comment

  1. 16 Ottobre 2013 @ 16:52 WazoTech: ROM e modding - Officina Wazo

    […] Cliccando qui potrete leggere il secondo articolo Wazotech dove darò le info di base su come si monta una ROM e quali sono le istruzioni di base per fare in modo che il device non vada in bootloop […]

    Reply


Would you like to share your thoughts?

Your email address will not be published.

artic    Officina Wazo - Idee geek e pensiero consapevole è un blog ideato e gestito da Francesco Montanari - 2015