DjangoManouche

ROM e modding

ROM e modding

Come ben sappiamo quelli che noi chiamiamo Rom sono una popolazione nomade originaria dell’India del nord che a partire dal 1500 ac gironzola per il mondo…

…No, non parlerò dei Rom (perchè lo so che voi italiani siete razzisti e li odiate) ma di ROM, acronimo di Read Only Memory ossia quei bei file zip che gli androidiani utilizzano per brickare i propri device.

 

Ne scrivo con cognizione di causa perchè dal lontano 2008 mi diletto con la pratica del modding. Ecco il mio curriculum:

DjangoManouche X

Inaspettatamente ho avuto un gran successo (tant’è che il thread per Optimus 2x che ho appena linkato l’ho ricreato dopo che avevo cancellato l’originale perchè non ci si capiva più nulla, erano circa 900 pagine) e mi sono ritrovato con blog russi, spagnoli, tedeschi, ecc. che mi chiedevano di supportare i loro utenti. Ciò mi ha fatto molto piacere ma ad un certo punto è diventato troppo impegnativo quindi ho deciso di smettere (per un po’) e passare al favoloso mondo Nexus  (supportato dal top del top dei developer).

Ma bando alle ciance e concentriamoci sul modding!

Oggi iniziamo dalla base, ossia la definizione di ROM: La ROM (Read Only Memory) è un file installabile sui nostri device contenente il sistema operativo, GUI e applicazioni.

Nel mondo Android, generalmente, una ROM può essere di due tipi:

  1. File Zip contenente il file .img del kernel e ramdisk + tutte le cartelle per la partizione /system e quella /data (ossia file di sistema e eventuali applicazioni)
  2. File Zip contenente il file .img del kernel e ramdisk + files .img della partizione /system e /data

Ovviamente il primo tipo è più semplice da modificare perchè i file sono disponibili nel nostro file zip e quindi facilmente estraibili e decompilabili. Il secondo tipo invece necessita di un passaggio in più, ossia l’estrazione dei file .img, operazione facilmente eseguibile con la dsixda’s Android Kitchen che impareremo a conoscere nelle prossime puntate.

Andiamo a vedere leggermente più nel dettaglio i termini utilizzati finora:

  • Kernel: Il Kernel di Android è basato su Linux. Possiamo considerare il kernel come una sorta di interfaccia tra i meandri più reconditi del sistema e tutto l’hardware (compresa la scocca in policarbonato) del nostro device. Quel Nocciolo che decide come le cose devono avvenire e con quali specifiche. Esempi: Gestione della memoria (LowMemoryKiller), Led di notifica, Driver della CPU, GPU, Bluetooth, Wifi, ecc… il 99% dei problemi dei device è dovuto alla mancanza di ottimizzazione del codice facente parte del kernel. Il 99% delle case produttrici inoltre, non rilascia il codice sorgente dei driver, costringendo di fatto gli sviluppatori a sfide epiche e coding spietato 🙂
  • Partizioni: Anche in questo caso, in maniera simile ai sistemi operativi derivanti da UNIX, Android contiene diverse partizioni, ognuna delle quali formattata ad hoc e contenente dati specifici. Vediamole:
    • /boot: è quella che contiene i dati per far avviare il dispositivo, ossia il kernel (zImage) e il RamDisk. come potrete intuire dal nome, senza i dati di questa partizione il vostro device è INUTILE.
    • /system: è quella che contiene il resto del sistema operativo, tranne il kernel e il ramdisk. Contiene quindi i binari per eseguire i processi, le librerie di sistema, il framework, la GUI e le applicazioni di sistema (i vari servizi google, le app quali telefono, sms ecc..). Come per la partizione precedente, senza i suoi dati il vostro device è un HTC (questa è per Carl)
    • /recovery: possiamo considerarla come una partizione boot di emergenza per le operazioni di manutenzione e aggiornamento. Installandone una modificata possiamo avere accesso al mondo del modding (vi dicono nulla TWRP o ClockWorkod recovery?)
    • /data: è la partizione contenente i dati dell’utente e le applicazioni installate dal Playstore. Formattandola perdiamo i nostri dati ma il sistema resta funzionante (ho appena spiegato il famoso wipe dei dati, che insieme al wipe della partizione di sistema effettua il factory reset :))
    • /cache: è la partizione contente dati temporanei per l’ottimizzazione del sistema. molto spesso fare il wipe di questa partizione aiuta a risolvere piccoli problemi derivanti da aggiornamenti di app o rallentamenti dovuti da frammentazione dei dati stessi (nella mia rom li eliminavo ogni notte alle 3 con un cron job).
    • /misc: contiene dati specifici di un device o di una zona geografica.
    • /sdcard: contiene i dati memorizzati nella scheda di memoria interna del nostro device. Spesso viene linkata in questa partizione anche l’accesso alla memoria esterna.

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 🙂

Saluti, baci, abbracci a tutti.

Carburano.

 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+


'ROM e modding' has 1 comment

  1. 24 Febbraio 2014 @ 20:00 Il pacchetto .zip installabile da recovery - Officina Wazo

    […] Pingback: WazoTech: ROM e modding – Officina Wazo […]

    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