In seguito ad una esperienza maturata in questi giorni qui nel forum e dopo molte ricerche ho deciso di assemblare questa guida in modo da permettere a chiunque lo desideri, di crearsi un firmware su misura partendo da quello di fabbrica oppure intervenendo direttamente sul firware Finless oppure ancora un firmware modificato ibrido nel caso in cui non fosse presente nessun firmware modificato per il proprio dispositivo, combinando il kernel in dotazione con il firmware di fabbrica del proprio dispositivo con i moduli ottimizzati offerti dal firmware Finless.
LIVELLO BASE: creazione di firmware ibrido. (da eseguire in Windows, io ho utilizzato Windows xp, se avete Linux utilizzate ad esempio VirtualBox per emulare Windows)
cosa vi serve:
- un firmware che sia composto da un unico file con estensione .img
- il tool per la scompattazione: RK29xxImageTools_v2.1.zip download - 2shared
1) prendere il file .img contenente il firmware, copiarlo nella cartella dove abbiamo salvato il tool di scompattazione e rinominarlo come wendal.img
2) eseguire il file runme.bat, avrete 3 possibilità: unpack, pack oppure exit, scegliete unpack premendo 1 e lasciate lavorare il software
3) al termine avrete una sottocartella Temp con all'interno alcuni script di avvio un loader e un'altra cartella Image al suo interno dove troverete tutti i files .img che si trovano normalmente all'interno della Finless, per ora ci concentreremo solo sul file kernel.img
Dovreste ottenere un log simile a questo:
Allegato 56050
contenuto della cartella Temp:
Allegato 56051
contenuto della cartella Image:
Allegato 56052
4) eseguire la procedura n°2 per il flash del firmware Finless: e prima di flashare selezionare il kernel che avete estratto precedentemente nella cartella Image al punto 3.
LIVELLO AVANZATO: creazione di firmware personalizzato.
cosa vi serve:
- un firmware di fabbrica tipo quello utilizzato nella guida precedente oppure il firmware modificato Finless
- un gestore di macchine virtuali, consigliato VirtualBox che è gratuito per uso personale (non considerate questa opzione se avete già un pc con Linux installato)
- una distribuzione Linux da installare in VirtualBox oppure una macchina virtuale con Linux già installato: la potete trovare qui: VirtualBox Virtual Appliances | VirtualBoxImages.com (serve un disco virtuale con almeno 500MB liberi)
1) Avviate il pc emulato con VirtualBox
2) copiateci dentro il file system.img che si trova tra quelli che avete estratto al punto 3 della guida precedente.
ad esempio potreste usare la cartella /tmp come destinazione che viene utilizzata da Linux per depositare i suoi files temporanei.
3) aprite il terminale e digitate i seguenti comandi:
cd /mnt
mkdir system
per creare la cartella dove verranno estratti i contenuti del file system.img
4) sempre da terminale spostatevi nella cartella dove avete precedentemente copiato il file system.img
supponiamo che abbiate copiato il file system.img nella cartella /tmp, per spostarsi in quella cartella digitate:
cd /tmp
quindi digitate il seguente comando:
sudo mount -o loop system.img /mnt/system
se questo comando vi dovesse restituire degli errori allora digitate:
sudo mount -t ext3 -o loop system.img /mnt/system
5) Ora avete l'intera struttura della cartella system del firmware all'interno della cartella /mnt/system
e potete sbizzarrirvi a fare tutte le modifiche che desiderate.
Ad esempio le applicazioni di sistema le troverete in /mnt/system/app potete togliere quelle che non considerate necessarie ed aggiungerne delle altre
Per cambiare l'animazione di avvio potete fare così:
a - cercate Una boot animation personalizzata tramite Google
b - Accertatevi che il pacchetto contenente l’animazione sia nominato in bootanimation.zip
c - copiate questo pacchetto in /mnt/system/media
6) Terminate le modifiche dovete smontare il file system montato in /mnt/system con i seguenti comandi:
cd .. (per uscire dalla cartella /mnt/system e risalire alla cartella /mnt)
sudo umount system
7) copiate il file system.img nel pc Windows all'interno della cartella Image dove avete gli altri files .img estratti precedentemente nella guida di base.
8) Fatto! Adesso per flashare avete due metodi a seconda di quale firmware avete usato
a) se avete usato il firmware Finless usate il metodo n°2 che trovate qui: https://www.androidiani.com/forum/mi...oot-flash.html
b) se avete usato il firmware di fabbrica dovete prima reimpacchettare tutti i file img in un'unico file eseguendo nuovamente il file runme.bat che avete utilizzato nella guida di base al punto 2 soltanto che dovete scegliere in questo caso la voce pack premendo il tasto 2. Al termine procedete con il flash secondo la procedura prevista dalla casa madre.
EDIT:
GUIDA PER LA MODIFICA DELLO SPAZIO RISERVATO ALLE APPLICAZIONI.
1) aprite il file parameter che trovate all'interno della cartella temp ottenuta al punto 3 della guida di base:
file parameter.jpg
2) la parte che vi interessa si trova nell'ultima riga, quella che inizia con CMDLINE ed è evidenziata nella figura allegata:
0x00300000@0x00118000(userdata)
Si compone di tre parti, la prima che è quella su cui andremo ad operare rappresenta in esadecimale la dimensione della partizione,la seconda sempre in esadecimale, separata dalla prima dal carattere "@" rappresenta l'indirizzo di partenza della partizione, la terza tra parentesi indica il tipo di partizione, nel nostro caso è quella riservata alle applicazioni da installare "(userdata)".
il valore 0x00300000 corrisponde a 1.5GB, per modificare il valore vi potete basare su questa lista di esempio:
- 0.5GB = 0x00100000
- 1GB = 0x00200000
- 1.5GB = 0x00300000
- 2GB = 0x00400000
- 2.5GB = 0x00500000
- 3GB = 0x00600000
- 3.5GB = 0x00700000
Attenzione a non impostare un valore troppo grande poichè lo spazio totale a disposizione è di circa 7.4-7.5 GB effettivi con memoria interna da 8GB e di 3.7GB effettivi con memoria interna da 4GB e bisogna tenere in considerazione oltre allo spazio per le applicazioni, lo spazio dedicato al kernel, alla cache, alla recovery, al boot, al system e ai dati utente.
Lo spazio riservato ai dati utente, "(user)" come potete notare alla fine della riga, non contiene una dimensione prefissata, in quanto viene calcolato automaticamente dal sistema in base allo spazio rimasto a disposizione dopo la creazione delle altre partizioni.
4) dopo aver definito la dimensione della partizione riservata alle applicazioni, dobbiamo anche modificare l'indirizzo di partenza delle partizioni successive altrimenti il sistema dopo il flash della rom non sarà in grado di caricarle correttamente e quindi non potrà avviarsi completamente.
Per fare questo dobbiamo modificare i valori che troviamo dopo il carattere "@" rispettivamente delle partizioni identificate da (kpanic), (system) e (user).
Esempio:
Partizione standard da 1.5GB
0x00300000@0x00118000(userdata),0x00002000@0x00418 000(kpanic),0x00100000@0x0041A000(system),-@0x0053A000(user)
La modifico a 2GB:
0x00400000@0x00118000(userdata),0x00002000@0x00518 000(kpanic),0x00100000@0x0051A000(system),-@0x0063A000(user)
come vedete, visto che ho aumentato di 100000 esadecimale il valore in (userdata), aggiungo (cioè sposto in avanti) 100000 all'indirizzo di (kpanic) (kpanic), (system) e (user) che da 0x00418000,0x0041A000 e 0x0053A000 diventano rispettivamente 0x00518000,0x0051A000 e 0x0063A000
Se avessi portato il tutto a 1GB avrei dovuto fare l'inverso, cioè togliere 100000 sia dal valore della partizione che da tutti e tre gli indirizzi successivi.
Mi raccomando di non sbagliare in questa fase perchè da questa dipende il buon esito del flash della rom!