- Как легко распаковать и перепаковать файлы boot и ramdisk
- Скрипты для распаковки и перепаковки файла boot.img
- Команды, которые вы должны знать
- Совместимость с Windows: что нужно знать
- Как использовать распаковку и перепаковать загрузку и распаковку файла ramdisk
- How to extract boot.img?
- 4 Answers 4
- Unpack boot.img :
- Монтирование recovery, boot!?
Как легко распаковать и перепаковать файлы boot и ramdisk
Учитывая, что модификация прошивки такая же старая, как и сама ОС Android, попасть в игру для новичков может быть довольно сложно. Например, для прошивки определенных пользовательских ПЗУ требуется несколько шагов, таких как извлечение официального загрузочного образа и его прошивка на устройстве перед окончательным завершением процесса и прошивка файлов пользовательских ПЗУ вместе с ним.
Хотя в некоторые руководства вы найдете в Интернете включенные файлы boot.img, в других случаях вам может потребоваться самостоятельно изменить загрузочный образ, а затем переупаковать его. Поскольку операционная система Android для мобильных телефонов является производной от Linux, единственный способ сделать это — использовать платформу на основе Linux или эмулировать ее на вашем ПК с Windows.
Скрипты для распаковки и перепаковки файла boot.img
Пользователь XDA CNexus просеянных через Интернет, чтобы найти и составить список инструментов для распаковки и переупаковки файла образа загрузки, все из которых можно загрузить, используя ссылку, приведенную ниже.
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
Команды, которые вы должны знать
- boot_info Файл, включенный в пакет, позволяет вам получить базовый адрес и адрес виртуального диска файла boot.img, который вам позже понадобится для повторной упаковки.
- split_boot (split_bootimg.pl) помогает извлечь ramdisk и zImage из файла boot.img в отдельную папку.
- unpack_ramdisk позволяет распаковать файл ramdisk с помощью следующей команды:
Использование: unpack_ramdisk - repack_ramdisk функция позволит вам перепаковать файл ramdisk из заданного каталога, используя следующую команду:
Использование: repack_ramdisk [outputFile] - mkbootimg Команда поможет вам создать новый файл boot.img из имеющихся у вас файлов ramdisk и zImage (полезно для создания измененных файлов boot.img).
- umkbootimg делает прямо противоположное и разделяет ядро и загрузочный образ.
- распаковать просто распакует файл boot.img в один каталог, а виртуальный диск в отдельный каталог для удобства.
Совместимость с Windows: что нужно знать
- Если у вас нет запущенной операционной системы Linux, вы можете эмулировать ее на своем ПК с Windows, используя это официальное руководство.
- Инструмент был протестирован для работы с Debian, но не подтвержден для работы с Cygwin.
- Все сценарии в файле .ZIP должны быть сохранены в папке на пути к системе Linux, в которой вы работаете, чтобы они могли быть обнаружены (пример: ~ / bin)
Как использовать распаковку и перепаковать загрузку и распаковку файла ramdisk
Что ж, нам нужно использовать файл split_boot, поскольку он содержит сценарий, чтобы сначала распаковать файл boot.img, получить из него файл ramdisk, а затем извлечь файл ramdisk.
- Скачать инструмент загрузки из здесь.
- Сейчас, извлекать его в отдельную папку, чтобы получить эти файлы.
- Теперь предоставьте этим файлам необходимые разрешения. Итак, запустите команду ниже в папке, где у вас есть все файлы.
chmod +x boot_info mkbootimg repack_ramdisk split_boot unpack_ramdisk
./repack_ramdisk ramdisk new-boot.img-ramdisk.cpio.gz
./mkbootimg --kernel /var/www/html/dl/boot-tool/boot/boot.img-kernel --ramdisk new-boot.img-ramdisk.cpio.gz -o new-boot.img
Как это было? Удалось ли вам легко пользоваться инструментами?
Хотя большинство обычных пользователей редко сталкиваются с необходимостью распаковывать, изменять и переупаковывать файл boot.img даже при прошивке кастомной прошивки, в любом случае удобно иметь этот инструмент в своем распоряжении.
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
How to extract boot.img?
I am trying to see the content in a boot.img file from an Android image. I googled and found this article to extract system.img , but it doesn’t work for boot.img . When trying to do this for boot.img , it is showing the following:
Invalid sparse file format at header magi Failed to read sparse file
- If so, Is there any other method to extract boot.img ?
- If not, what is the problem for not extracting boot.img ?
4 Answers 4
boot.img is a small(ish) file that contain two main parts.
Unpack boot.img :
It contains the following steps:
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android-serialport-api/android_bootimg_tools.tar.gz
tar xvzf android_bootimg_tools.tar.gz
We can extract the ramdisk also, using the following command
gunzip -c boot.img-ramdisk.gz | cpio -i
After changing the files, we can again pack those files as boot.img using mkbootimg
Getting the same error for step 3 on Mint 17 here. Tried running them by sudo and after chmod 755 to no avail.
Fix for: «unpackbootimg command not found», you are running 32bit binary on a 64 bit machine without 32bit dependencies. Install them with «apt-get install gcc-multilib»
Install abootimg (available as a package, for example in Debian/Ubuntu and openSUSE).
To extract (boot|recovery).img :
$ abootimg -x (boot|recovery).img $ ls boot.img bootimg.cfg initrd.img zImage
To repack (boot|recovery).img after modifying one of bootimg.cfg , zImage or initrd.img :
abootimg --create (boot|recovery).img -f bootimg.cfg -k zImage -r initrd.img
This project is not maintained and did not work with my boot.img file, however the answer from @cfig worked.
boot.img is not a compressed filesystem image like system.img . It is read by the bootloader, and contains little more than a kernel image and a ramdisk image.
Some binary distribution ship the kernel and ramdisk images separately. In that case you don’t need to do anything with boot.img , just regenerate a new one with mkbootimg .
If you need to extract information from a boot.img , try split_bootimg (by William Enck, via the Android wiki).
You can use the following tool to extract and re-pack Android boot image
$ git clone https://github.com/cfig/Android_boot_image_editor.git
copy your boot.img to the cloned git repository. Run:
First time run will need to download necessary libs from internet, be patient. You can get the contents at «build/unzip_boot/», like this:
build/unzip_boot/ ├── bootimg.json (boot image info) ├── kernel ├── second (2nd bootloader, if exists) ├── boot.img.avb.json (AVB only) └── root
Монтирование recovery, boot!?
Как монтировать образ recovery,boot (img) на ubuntu, пробовал разные способы, я так понел recovery в формате emmc и boot в томже, но ubuntu не знает такого формата.
Пробовал sudo mount -t emmc путь_к_img путь_куда_то
Также может кто-то посоветует чем можно в линуксе картинку перевести в logo.bin.
С system.img проблем не возникло, монтировал спокойно.
Если монитровать не получится тогда как распаковать и упаковать?
Очень хорошо описана структура и методы распаковки здесь.
Вкратце: можно воспользоваться скриптом на перле:
% ./split_bootimg.pl boot.img Page size: 2048 (0x00000800) Kernel size: 1388548 (0x00153004) Ramdisk size: 141518 (0x000228ce) Second size: 0 (0x00000000) Board name: Command line: no_console_suspend=1 Writing boot.img-kernel . complete. Writing boot.img-ramdisk.gz . complete.
Скрипт на перле, Not Found
The requested URL /android/files/linux/split_bootimg.zip was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache Server at android-dls.com Port 80
Пример использования был в первой ссылке. Это вольный перевод:
Разделяем boot.img на составляющие:
% ./split_bootimg.pl boot.img Page size: 2048 (0x00000800) Kernel size: 1388548 (0x00153004) Ramdisk size: 141518 (0x000228ce) Second size: 0 (0x00000000) Board name: Command line: no_console_suspend=1 Writing boot.img-kernel . complete. Writing boot.img-ramdisk.gz . complete.
% mkdir ramdisk % cd ramdisk % gzip -dc ../boot.img-ramdisk.gz | cpio -i % cd ..
Проводим все требуемые изменения (например, меняем ro.secure=0 в default.prop).
Собираем новый ramdisk утилитой mkbootfs
% mkbootfs ./ramdisk | gzip > ramdisk-new.gz Упаковываем его в boot-new.img
% mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel boot.img-kernel --ramdisk ramdisk-new.gz -o boot-new.img
linjan: Хм, сново, на твоем способе тоже самое.
denis@denis-desktop ~/Рабочий стол/perl/ramdisk $ gzip -dc ../boot.img-ramdisk.gz | cpio -i
gzip: ../boot.img-ramdisk.gz: not in gzip format
cpio: преждевременный конец архива
denis@denis-desktop ~/Рабочий стол/perl/ramdisk $