Erro ao reembalar o boot.img (Android)

Eu tenho o Nexus 5 com AOSP ROM 4.4.4.

Estou tentando "puxar" o boot.img do dispositivo, descompacte-o, edite "init.rc", reembale-o no boot.img e faça o flash no dispositivo.

Sigo muitos guias, mas nenhum deles tem o mesmo cenário que eu:

(http://droidcore.blogspot.co.il/2012/12/how-to-edit-initrc-in-android.html ehttp://www.digitalinternals.com/mobile/android-mmc-mmcblk-partition-layout/259/)

A partição do dispositivo é mmcblck, portanto, dels -l /dev/block/platform/msm_sdcc.1/by-name/ Eu entendi que a bota é/dev/block/mmcblk0p19:

lrwxrwxrwx root root 1971-02-28 21:30 boot -> / dev / block / mmcblk0p19

Eu criei o boot.img com o comando:cat /dev/block/mmcblk0p19 > /mnt/sdcard/boot.img e puxe este boot.img para o meu pc. Este boot.img tem ~ 23 MB.

I unmkbootimg boot.img com a ferramentahttp://droidcore.blogspot.co.il/2012/12/how-to-edit-initrc-in-android.html e tem 2 arquivos:initramfs.cpio.gz que é ~ 500 KB ekernel.gz que é ~ 8,4 MB. Os detalhes que obtive são:

Tamanho do kernel 8405280

Endereço do kernel 0x8000

Tamanho do Ramdisk 498992

Endereço Ramdisk 0x2900000

Tamanho secundário 0

Endereço secundário 0xf00000

Endereço de tags do kernel 0x2700000

Tamanho da página Flash 2048

O nome do conselho é ""

Linha de comando "console = ttyHSL0,115200, n8 androidboot.hardware = hammerhead user_debug = 31 maxcpus = 2 msm_watchdog_v2.enable = 1"

Extraindo o kernel.gz

... Extraindo initramfs.cpio.gz ...

Tudo feito.

Para recompilar esta imagem, use:

mkbooting --kernel kernel.gz --ramdisk initramfs.cpio.gz --base 0x26fff00 --cmdline 'console = ttyHSL0,115200, n8 androidboot.hardware = hammerhead user_debug = 31 maxcpus = 2 msm_watchdog_v2.enable = 1' -o new_boot .img

Eu descompactoinitramfs.cpio.gz com o comando:gunzip -c initramfs.cpio.gz | sudo sh -c 'cd ../ && cpio -i' (porhttp://www.wiki.xilinx.com/Build+and+Modify+a+Rootfs) e tem muitos arquivos, init.rc entre eles. Eu editei este arquivo.

Eu reembalarinitramfs.cpio.gz com o comando:sh -c 'cd ../ && sudo find . | sudo cpio -H newc -o' | gzip -9 > new_initramfs.cpio.gz e tenho esse arquivo ~ 500KB.

Agora eumkbootimg esses 2 arquivos com o comando:./mkbooting --kernel kernel.gz --ramdisk initramfs.cpio.gz --base 0x26fff00 --cmdline 'console=ttyHSL0,115200,n8 androidboot.hardware=hammerhead user_debug=31 maxcpus=2 msm_watchdog_v2.enable=1' -o new_boot.img e eu tenho o boot.img que é ~ 8.5 MB

Agora atualize a inicialização no dispositivo e o dispositivo está preso na primeira tela (não na inicialização)

Minhas perguntas são:

O que há de errado?

É normal que meu novo boot.img tenha apenas 8,5 MB em vez de 23 MB (o original)?

Obrigado pessoal!

************* ENCONTREI O PROBLEMA *************

A SOLUÇÃO É: eu useiunmkbootimg daqui:http://whiteboard.ping.se/Android/Unmkbootimg Depois de executar o unmkbootimg, recebi este comentário:

*** AVISO **** Esta imagem foi criada usando o mkbootimg não padrão! OFF_KERNEL_ADDR é 0xFD908100 OFF_RAMDISK_ADDR é 0x00200100 OFF_SECOND_ADDR é 0xFE800100 Modifique mkbootimg.c usando os valores acima para criar sua imagem.

então eu sigo as instruções aqui:https://gist.github.com/jberkel/1087757 e agora funciona !!!

questionAnswers(1)

yourAnswerToTheQuestion