Noi creăm firmware-ul pentru Android cu mâinile noastre

Lucram cu ramdisk (pentru kernels cu initrd).

Ramdisk-ul în sine este un fișier gz în interiorul căruia este conținut un fișier cpio localizat într-un mod media mkimage. Să privim mai atent imaginea.

Vom avea nevoie de aceste informații mai târziu atunci când creați propriul ramdisk.

/ Droid / instalator $ grep -P -a -b -m 1 --only-potrivire '\ x1F \ x8B \ X08' ramdisk.img | tăiat -f 1 -d:
64

Acum, având în poziția gzip start-și scoate-l din imagine (a se citi 64 de blocuri de octeți, primul bloc porpustiv - bs = 64 sări peste = 1).

/ droid / installer $ dd dacă = ramdisk.img bs = 64 skip = 1 din = ramdisk.cpio.gz
23211 + 1 înregistrări citite
23211 + 1 înregistrare scrisă
copiat 1485551 octeți (1,5 MB), 0,0738819 sec, 20,1 MB / s

În plus, cu fișierul primit ramdisk.cpio.gz este posibil să lucrăm ca și cu o arhivă obișnuită, însă trebuie să salvăm toate drepturile de acces la fișierele extrase din această arhivă. De exemplu, puteți despacheta:

/ droid / instalator $ gzip -dc ramdisk.cpio.gz | cpio-id
6963 blocuri

Acum despre ambalarea ramdisk. Am despachetat ramdisk. Dacă am făcut modificările necesare, atunci trebuie să fie corect asamblate. Pentru a face acest lucru, ștergeți vechiul ramdisk și arhivați ramdisk.cpio.gz din acest dosar.

/ droid / instalator $ rm -f ramdisk.cpio.gz ramdisk.img

Apoi, creați arhiva cpio.

/ droid / installer $ find ./ | cpio -H newc -o>. /ramdisk.cpio
6963 blocuri

Și zharhiviruem în gzip.

/ droid / instalator $ cd.
barsuk @ droidtest:

/ droid $ gzip ramdisk.cpio

/ droid $ mv ramdisk.cpio.gz ramdisk.img
barsuk @ droidtest:

/ Droid $ mkimage -T ramdisk -A 'ARM' -C nimic -N 'hRamdisk' -a 0x41000000 -e 0x41000000 -d ramdisk.img newramdisk.img
barsuk @ droidtest:

/ droid $ mv newramdisk.img ramdisk.img

Acum, plasarea ramdisk.img primit în folderul Android de pe cardul firmware sau folosind burntool, îl putem bloca în dispozitiv.

Articole similare