Ошибка с перепаковкой boot.img (Android)

У меня Nexus 5 с AOSP ROM 4.4.4.

Я пытаюсь «вытащить» boot.img из устройства, распаковать его, отредактировать «init.rc», перепаковать его в boot.img и прошить на устройство.

Я следую многим инструкциям, но ни у одного из них нет такого же сценария, как у меня:

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

Раздел устройства - это mmcblck, так чтоls -l /dev/block/platform/msm_sdcc.1/by-name/ Я понял, что ботинок/dev/block/mmcblk0p19:

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

Я создал boot.img с помощью команды:cat /dev/block/mmcblk0p19 > /mnt/sdcard/boot.img и вытащить этот boot.img на мой компьютер. Этот boot.img составляет ~ 23 МБ.

I unmkbootimg boot.img с инструментом вhttp://droidcore.blogspot.co.il/2012/12/how-to-edit-initrc-in-android.html и получил 2 файла:initramfs.cpio.gz что составляет ~ 500 КБ иkernel.gz что составляет ~ 8,4 МБ. Детали, которые я получил:

Размер ядра 8405280

Адрес ядра 0x8000

Рамдиск размер 498992

Рамдиск адрес 0x2900000

Вторичный размер 0

Вторичный адрес 0xf00000

Ядра тегов адрес 0x2700000

Размер флеш-страницы 2048

Название платы ""

Командная строка "console = ttyHSL0,115200, n8 androidboot.hardware = молоток user_debug = 31 maxcpus = 2 msm_watchdog_v2.enable = 1"

Извлечение kernel.gz

... Извлечение файла initramfs.cpio.gz ...

Все сделано.

Чтобы перекомпилировать это изображение, используйте:

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

Я распаковываюinitramfs.cpio.gz с помощью команды:gunzip -c initramfs.cpio.gz | sudo sh -c 'cd ../ && cpio -i' (отhttp://www.wiki.xilinx.com/Build+and+Modify+a+Rootfs) и получил много файлов, в том числе init.rc. Я редактировал этот файл.

Я перепаковываюinitramfs.cpio.gz с помощью команды:sh -c 'cd ../ && sudo find . | sudo cpio -H newc -o' | gzip -9 > new_initramfs.cpio.gz и получил этот файл ~ 500 КБ.

Сейчас яmkbootimg эти 2 файла с командой:./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 и я получил boot.img, который составляет ~ 8,5 МБ

Теперь прошейте загрузку на устройство, и устройство зависло на первом экране (не загружается)

Мои вопросы:

В чем дело?

Это нормально, что мой новый boot.img имеет только 8,5 МБ вместо 23 МБ (оригинал)?

Спасибо вам, ребята!

************* Я НАШЕЛ ПРОБЛЕМУ *************

РЕШЕНИЕ: Я использовалunmkbootimg отсюда:http://whiteboard.ping.se/Android/Unmkbootimg После запуска unmkbootimg я получил этот комментарий:

*** ПРЕДУПРЕЖДЕНИЕ **** Это изображение построено с использованием нестандартного mkbootimg! OFF_KERNEL_ADDR - 0xFD908100 OFF_RAMDISK_ADDR - 0x00200100 OFF_SECOND_ADDR - 0xFE800100. Измените файл mkbootimg.c, используя приведенные выше значения, чтобы создать свой образ.

поэтому я следую инструкциям здесь:https://gist.github.com/jberkel/1087757 и теперь это работает !!!

Ответы на вопрос(1)

Ваш ответ на вопрос