Cucinarsi la propria CyanogenMod 7 [Gingerbread 2.3.2]

Diego Stamigni

Una cosa è certa: la cucina è una vera e propria e scienza, e chi di noi non ha mai guardato la mamma cucinare, o addirittura la propria nonna, e magari perché no, la si ha anche aiutata.

La cucina è una scienza, e noi oggi siamo qui per imparare una ricetta che spero alla fine vi piaccia molto; state attenti però, a mettere le mani sul fuoco ci si scotta.

Bene, ciò che andremo a cucinare oggi è un dolce, un dessert, un pò per sfizio, un pò perché ci piace: oggi cuciniamo Pan di Zenzero, ma non quello normale, no, perché le persone normali mangiano le cose normali. Noi no: noi mangiamo tra uno streaming e l’altro, tra una linea di codice e una partita a WoW, tra una studiata e una dormita.


Che Google sappia cucinare bene è quasi ovvio, ma si sa, le persone prendono le ricette e le modificano, ci aggiungono dei pizzichi di gioia e delle vasche di sudate derivate da sforzi per portare nei nostri piatti quella bontà assunta con l’esperienza. Certo, la Coca Cola ci nasconde la ricetta, come altre note aziende, ma non è il caso nostro, BigG risparmia, e va di GPL.

Per una giusta cottura e una buona resa del piatto finale, c’è una giusta scelta degli ingredienti, per cui andiamo a fare la spesa:

  1. Leggete questo e sistemate a dovere come consigliato (NOTE: Non dovete compilare la roba dell’articolo linkato, ma solo rispettare i prerequisiti lì esposti, divisi per Sistema Operativo);
  2. Per il punto precedente, darò per scontato il sistema operativo, che sia GNU/Linux o Mac (no, non ho dimenticato niente);
  3. Per eventuali problemi, postate nella sezione riguardante quest’articolo in Guide

NOTE: Questa guida può essere eseguita da un vasto gruppo di devices, se rientrate in questa lista, probabilmente non avrete alcun problema:

Veniamo al dunque: se siete utenti Mac montate la vostra immagine disco, dopo di che, insieme agli utenti Linux (che non hanno niente da montare, lol) create una cartella e con un terminale, entriamoci. Ora scaricheremo i sorgenti di Pan di Zenzero by Cyanogen attraverso repo. Ci metterà davvero tanto, quasi 2 ore, dipende poi in modo particolare dalla vostra connessione:

Rispondete correttamente se vi vengono fatte domande circa qual’è il vostro nome, e qual’è la vostra email, dopo di che inizierà lo scaricamento vero e proprio dei codici CyanogenMod. Come potete vedere dai comandi, stiamo scaricando proprio la CyanogenMod 7, con Pan di Zenzero. Finito il sync, viene la parte vera e propria: se prima abbiamo lavato i pomodori, preparato pentole, tegami e quant’altro, ora ci accingiamo ad accendere i fornelli, a mettere la carne sul fuoco ed a prepare l’insalata (si, con anche i pomodori). Una premessa: è bene conoscere il tipo/nome del nostro dispositivo; ad esempio il mio Nexus One è passion, della famiglia degli HTC, mentre se avessi avuto un HTC Magic, si sarebbe chiamato dream_sapphire. Da ora in avanti qualora incontraste la parola PASSION nei miei comandi, sappiate che dovete cambiarla con il modello del vostro smartphone.

Iniziamo la cottura:

Fatto ciò, se tutto è andato al meglio, troveremo la nostra ROM flashabile in

$MASTER/out/target/product/

Ecco un’esempio preso dalla mia macchina:

[osiris@iside] ~ $ pwd
/Volumes/Workspace/android/system
[osiris@iside] ~ $ ls out/target/product/passion/ | grep update
-rw-r--r-- 1 osiris staff 81824100 3 Feb 13:21 update-cm-7.0.0-RC0-N1-KANG-signed.zip
[osiris@iside] ~ $

Ed ecco fatto, non è poi così difficile vero ? Sappiate che quei sorgenti li avete direttamente dal luogo di sviluppo del team di Cyanogen; questo vuol dire che le Nightly Build vengono compilate proprio come avete fatto voi, giorno dopo giorno, attraverso i sorgenti che avete anche voi.

Se volessi ricompilare ? Come potrei fare ? Dovrei rifare tutto da capo ?

E qui vi vengo io incontro, scrivendo, come mio solito, qualche script che vi facilita il tutto: sulle linee guida di Cyanogen, ho scritto un semplice script che non fa altro che ricompilare tutto, rilasciandovi in una directory sia la ROM che la recovery.img, bello no ?

Lo script funziona su Mac e Linux (ancora una volta no, non ho dimenticato nessuno) e lo trovate, al solito, nel mio repository git, nel progetto Nexus (sta nel progetto Nexus, ma è generico, infatti prenderà il nome del vostro dispositivo da input, facendovi quindi una domanda su quale dispositivo usate, occhio a non sbagliare, altrimenti fallisce tutto):

Al solito, se trovate problemi con lo script fatemelo sapere, o per qualunque altra cosa, contatattemi.

Ad ogni modo, dovete posizionare quello script nella cartella dei sorgenti che avete scaricato, dargli i diritti di esecuzione, e lanciarlo:

chmod +x rebuild_source.sh
./rebuild_source.sh

Una particolarità interessante che non poteva mancare nella ricetta è la modifica della ROM, ed è proprio per questo che ho aggiunto la possibilità nello script di patchare i sorgenti aggiungendo la possibilità di compilare il supporto ext4 per la SDCard spiegato qui; ho scritto possibilità perchè ci verrà chiesto se vorrete abilitarlo, altrimenti non verrà patchato assolutamente niente.

La maniera utilizzata nel mio script per attivare una funzionalità nella ROM è simile a quella che si dovrebbe utilizzare per aggiungere altre funzionalità, quali ad esempio la registrazione di video HD, o chissà cos’altro; proprio l’aggiunta di altre funzionalità potrebbe essere oggetto del prossimo articolo.

Cosa ne pensate, miei cari chefs ?