un grazie enorme ad angelom per le dritte che mi ha dato e per le cose che mi ha insegnato riguardanti il modding!
Requisiti:
--->SDK android Android SDK | Android Developers
--->JDK Java Development Kit Java SE Downloads
--->File allegati a fine post
---> conoscere i comandi basilari del terminale/prompt
Modifica di base di una ROM
Per modificare una ROM in modo abbastanza basilare non c’e’ bisogno di molto sforzo, basta scompattare il file zip e inserire all’interno i file dello script scaricato.
Per esempio prendiamo in considerazione una ROM AOSP e lo script DATA2WHATEVER:
struttura della ROM
--cartella principale
-----boot.img
-----META-INF
-----system
--------app
--------bin
--------lib
--------etc
-----------init.d
E altre carelle in /system ma queste sono quelle che ci interessano nell’esempio
Struttura dello script
Cartella principale
----META-INF
----system
----bin
-------e2fsck
-------tune2fs
----etc
-------init.local
-------init.d
-----------01data2whatever
-----------98zipalign
----data_internal
----data2whatever_firstboot
La cartella META-INF serve per “dire” alla recovery cosa deve fare del pacchetto quindi lasciatela com’e’!
Ora dovrete effettuare manualmente quello che la recovery farebbe durante il flash dello zip, ossia copiare i file delo script nell’identica cartella all’interno della ROM e se non e’ presente dovete crearla o copiarla all’interno della ROM nella stessa posizione, quindi:
prendete i file “e2fsck” e “tune2fs” dello script e copiateli nella cartella “/system/bin” della rom, sostituendo quelli presenti
copiate il file “init.local” dello script in “/system/etc qui pero’ non dovrete sostituire nulla, va solo aggiunto
prendete i 2 file “01data2whatever” e “98zipalign” dello script e copiateli in /system/etc/init.d, dopodoche’ eliminate i 2 file “cachedalvikcache” e “40app2sd”
copiate la cartella “data_internal” e il file “data2whatever_firstboot” in /system
bene avete finito!
Ora dovete rizippare la ROM quindi aprite winrar o un qualsiasi altro programma per archivi e zippate la ROM ma attenzione, questa deve essere la struttura finale:
struttura corretta:
ROM.zip
---boot.img
---META-INF
---system
Struttura errata
ROM.zip
---ROM
------boot.img
------META-INF
------system
Una volta fatto questo se volete potete gia’ flasharla, ma dovete disabilitare la verifica della signature in recovery, oppure potete signare il vostro zip (descritto in seguito)
Creare uno zip di un’applicazione flashabile da recovery
-procuratevi l’apk
Quindi:
create una cartella con la seguente struttura:
cartella principale
--META-INF
-----com
--------google
-----------android
--system
-----app
In “app” mettete il file .apk dell’applicazione
Ora dovete “dire” alla recovery cosa fare quindi dovete creare un file con i comandi:
scaricate un programma come notepad++
inserite questi comandi(validi solo per gli zip delle app non per le ROM):
codice:
mount("MTD", "system", "/system");
show_progress(0.500000, 2);
package_extract_dir("system", "/system");
show_progress(0.200000, 0);
unmount("/system");
salvate il file con il nome “updater-script” senza dare nessuna estensione al file!!!
Mettetelo nella cartella META-INF/com/google/android
Ora zippate il file con questa struttura:
struttura corretta:
app.zip
---META-INF
---system
Struttura errata
app.zip
---app
------boot.img
------META-INF
------system
(nello zip allegato trovate anche l'intera cartella META-INF pronta con i relativi file)
Come modificare un’ .apk (applicazione):
-rinominate il file togliendo l’estensione .apk e mettete l’estensione .zip
-scompattate l’archivio con un normale programma di gestione archivi
-effettuate le modifiche desiderate (per esempio sostituire le icone)
-una volta finito ricompattate il file e fate la procedura inversa, ossia rimuovete l’estenzione.zip e rimettete l’estenzione .apk
come signare l’app.apk
-procuratevi e installate l’SDK di android e il JDK (java development kit)
-estraete l’SDK sul desktop e instalate il JDK
dopo aver effettuato le modifiche desiderate dovrete signare l’apk prima di inserirlo nello zip flashabile (anch’esso da signare) oppure prima di poterlo installare, poiche’ android accetta solo app certificate (signed)
quindi si procede in questo modo:
nell’archivio allegato e’ presente il file SignApk.rar, scompattatelo dove volete e procedete come segue:
aprite il terminale e digitate:
codice:
cd directory che preferite(per esempio C:/Users/…./desktop)
codice:
java -jar signapk.jar certificate.pem key.pk8 app.apk app-signed.apk
sostituite a “signapk.jar” la directory in cui si trova signapk.jar
per esempio :
codice:
C:/Users/…./desktop/signapk/signapk.jar
sostituite a “app.apk” la directory in cui si trova l’apk modificato
per esempio:
codice:
C:/Users/…./desktop/app.apk
mentre per "app-signed.apk" dovrete solo riscrivere il nome del file .apk accompagnato dalla dicitura “signed” per riconoscerlo
verra’ creata una copia del file signata nella directory che avete scelto all’inizio con “cd” ,e quindi pronta all’installazione o ad essere aggiunta ad uno zip flashabile!
Sign per flash da recovery di apk.zip e ROM.zip
Bene ora bisogna signare il file per fare in modo che la recovery lo riconosca come certificato quindi
-scompattate testsign.zip in SDK/tools (vovrebbe crearvi la cartella sign con all’interno testsign.jar
Bene ora aprite il terminale e digitate
Per cambiare directory , per esempio desktop:
codice:
cd C:/Users/……/desktop
ora signamo il file con:
codice:
java -classpath <SDK>/tools/sign/testsign.ja testsign file1.zip file1-signed.zip
dovrete sostituire “<SDK>/tools/sign/testsign.jar” con la directory in cui e’ posizionato il file testsign.jar , per esempio:
codice:
C:/Users/……./desktop/SDK/tools/sign/testsign.jar
Dovete sostituire “file1.zip” con la directory in cui e’ posizionato il vostro file zippato della ROM o dell’app che volete flashare:
per esempio: C:/Users/Utente/desktop/ROM.zip
sostituite poi “file1-signed.zip”, non con una directory’ questa volta ma semplicemente con il nome della ROM, in questo caso , siccome il nostro file e’ ROM.zip, scriveremo semplicemente ROM-signed.zip
ricapitolando dovrete avere una cosa simile:
codice:
java –classpath C:/Users/……/desktop/SDK/tools/sign/testsign.jar testsign C:/Users/…../desktop/ROM.zip ROM-signed.zip
premete invio e avete finito!! Sul desktop vi ritroverete il vostro file zip con la dicitura “signed” quindi potete flashare o installare la vostra app o rom che sia!