Wie werden die CustomROM Daten verändert?

Auf mehrfachen Wunsch hier nochmal die Anleitung, wie die einzelnen Komponenten des AV7 CustomRoms entpackt, verändert und wieder zusammengesetzt werden. Je mehr Leute sich an Custom Roms beteiligen, desto interessanter werden die Geräte 🙂

Die 4 wichtigsten Files:

  • system.img.lzo  (das ist der /system Ordner des Sytems… sprich das eigentliche Android System)
    • interessant: /apps und /xbin fürs root
    • interessant: /etc/install-recovery.sh zum starten von cron und co
    • interessant: /media für Bootanimation
  • boot.img  (regulärer Kernel samt Ramdisk… also der / Basisordner)
    • besonders interessant: init.rc und default.prop
  • uramdisk.img (wie boot.img aber wird beim Flashen / Updaten ausgeführt)
  • recovery.img (wie boot.img aber wird ausgeführt wenn ins Recovery gebootet wird)

Anbei die einzelnen Befehle – die jeweiligen Bytewerte beim splitten sind auf Basis von StockUpdate 5 berechnet. Wer das manuell berechnen will:

  • beim Output von mkimage -l die Filegrössen der beiden Images notieren
  • erstes dd startet bei skip=76 wegen des Headers/Offsets und counted nach der Dateigröße
  • zweites dd startet bei Dateigröße der ersten Datei plus 76 Header und counted nach der Dateigröße 2
  • Spungpunkte 40a08000 beim verpacken nicht vergessen!

Befehle:

# Filesizes auf Stand StockUpdate 5!

#------------------------------------------------------------------------------------
system.img.lzo:    /system Partition
#------------------------------------------------------------------------------------

#SYSTEM ENTPACKEN
cp ../update/images/system.img.lzo .
lzop -d system.img.lzo
sudo mount system.img /mnt/test/
gksu thunar

#SYSTEM PACKEN
chmod 644 system.img
rm system.img.lzo
lzop -o system.img.lzo system.img
chmod 766 system.img.lzo
md5sum system.img.lzo

#------------------------------------------------------------------------------------
boot.img:   Kernel und Ramdisk des normalen Betriebes
#------------------------------------------------------------------------------------

#ENTPACKEN boot.img
mkimage  -l ../update/images/boot.img
dd if=../update/images/boot.img of=boot.image1 bs=1 skip=76 count=8159620
dd if=../update/images/boot.img of=boot.image2 bs=1 skip=8159696 count=174314
cd inhalt-boot/
gunzip -c ../boot.image2 | cpio -i

#PACKEN boot.img
cd inhalt-boot/
find . | cpio -o -H newc | gzip > ../boot.image2.changed
cd ../
mkimage -A arm -T multi -C none -n 'MStar-linux' -a 40a08000 -e 40a08000  -d boot.image1:boot.image2.changed boot.img

#------------------------------------------------------------------------------------
uramdisk.img:  Kernel und Ramdisk des UPDATE-Modus
#------------------------------------------------------------------------------------

#ENTPACKEN Uramdisk.img
mkimage -l ../update/bin/uramdisk.img
dd if=../update/bin/uramdisk.img of=uramdisk.image1 bs=1 skip=76 count=8159620
dd if=../update/bin/uramdisk.img  of=uramdisk.image2 bs=1 skip=8159696 count=2618276
cd inhalt-uramdisk/
gunzip -c ../uramdisk.image2 | cpio -i

#PACKEN uramdisk.img
cd inhalt-uramdisk/
find . | cpio -o -H newc | gzip > ../uramdisk.image2.changed
cd ../
mkimage -A arm -T multi -C none -n 'Cardroid-linux' -a 40a08000 -e 40a08000  -d uramdisk.image1:uramdisk.image2.changed uramdisk.img


#------------------------------------------------------------------------------------
recovery.img:  Kernel und Ramdisk des Recoverymodus
#------------------------------------------------------------------------------------

#ENTPACKEN recovery.img
mkimage -l ../update/images/recovery.img
dd if=../update/images/recovery.img of=recovery.image1 bs=1 skip=76 count=8159620
dd if=../update/images/recovery.img  of=recovery.image2 bs=1 skip=8159696 count=1900911
cd inhalt-recovery/
gunzip -c ../recovery.image2 | cpio -i

#PACKEN recovery.img
cd inhalt-recovery/
find . | cpio -o -H newc | gzip > ../recovery.image2.changed
cd ../
mkimage -A arm -T multi -C none -n 'Cardroid-linux' -a 40a08000 -e 40a08000  -d recovery.image1:recovery.image2.changed recovery.img
ö

Apps verändern

Die eigentlichen Apps können mittels einfacher Reverse Engineering Methoden verändert werden – hier gabs schon einmal ein paar Infos dazu: https://www.cardroid.org/2015/01/07/themes-in-android/

Partitionen verändern

Das wurde bereits hier dokumentiert: https://forum.cardroid.org/viewtopic.php?f=9&t=62

Fragen?

Diskussion bitte im Forum: https://forum.cardroid.org