Чем открыть boot img
Как легко распаковать и перепаковать файлы boot и ramdisk
Учитывая, что модификация прошивки такая же старая, как и сама ОС Android, попасть в игру для новичков может быть довольно сложно. Например, для прошивки определенных пользовательских ПЗУ требуется несколько шагов, таких как извлечение официального загрузочного образа и его прошивка на устройстве перед окончательным завершением процесса и прошивка файлов пользовательских ПЗУ вместе с ним.
Хотя в некоторые руководства вы найдете в Интернете включенные файлы boot.img, в других случаях вам может потребоваться самостоятельно изменить загрузочный образ, а затем переупаковать его. Поскольку операционная система Android для мобильных телефонов является производной от Linux, единственный способ сделать это — использовать платформу на основе Linux или эмулировать ее на вашем ПК с Windows.
Скрипты для распаковки и перепаковки файла boot.img
Пользователь XDA CNexus просеянных через Интернет, чтобы найти и составить список инструментов для распаковки и переупаковки файла образа загрузки, все из которых можно загрузить, используя ссылку, приведенную ниже.
Команды, которые вы должны знать
Совместимость с Windows: что нужно знать
Как использовать распаковку и перепаковать загрузку и распаковку файла ramdisk
Что ж, нам нужно использовать файл split_boot, поскольку он содержит сценарий, чтобы сначала распаковать файл boot.img, получить из него файл ramdisk, а затем извлечь файл ramdisk.
Как это было? Удалось ли вам легко пользоваться инструментами?
Как распаковать и отредактировать boot.img для портирования ПЗУ?
Я недавно загрузил этот диск для моего Allview P5 (Allview P5 является эквивалентом Gionee GN700W / FLY IQ441 / QMobile Noir A8). Он называется Primonex ROM и предназначен для версии телефона Gionee.
Может кто-нибудь сказать мне, как это сделать?
Выбор инструментов
Метод, который я здесь представляю, основан на исходном коде CyanogenMod для Android.
Существует, однако, относительно большое количество альтернатив для распаковки boot.img файла, которые работают более или менее одинаково.
По сути, такой инструмент распаковки извлечет содержимое boot.img файла и отобразит набор параметров, которые вам нужно будет передать в Google. mkbootimg инструменту для создания файла, конфигурация которого (в основном параметры ядра и адреса памяти) будет соответствовать исходному.
Вот несколько примеров, я не проверял их лично, поэтому не могу рекомендовать их, и я представляю их только для справочных целей:
Некоторые из них с открытым исходным кодом или на основе сценариев:
Некоторые из них являются бесплатными закрытыми исходными кодами:
Некоторые производители выпускают ПЗУ, более или менее далекие от стандарта AOSP (необычные адреса, заголовки, формат файла и т. Д.). Если приведенная ниже стандартная процедура не работает, возможно, одно из этих альтернативных программных решений поможет. В противном случае вам придется проверять наличие проблем, характерных для вашего устройства: некоторым, кажется, требуется определенная процедура или даже специальные инструменты (например, этот вопрос относится к устройствам MediaTek).
Установка инструментов
Скомпилировать набор инструментов CyanogenMod для boot.img упаковки и распаковки довольно просто.
Если у вас этого нет и не нужно для каких-либо других целей, более простым и быстрым решением будет клонирование только репозитория CyanogenMod android_system_core :
Оказавшись в нужном каталоге, скомпилируйте и установите:
Вам также необходимо установить инструменты Android на свой компьютер, чтобы он мог общаться с вашим телефоном. Вам потребуются adb (Android Debug Bridge, утилита оболочки, позволяющая взаимодействовать с подсистемой отладки Android), adbd (связанный демон) и fastboot (утилита оболочки, позволяющая взаимодействовать с системой загрузчика вашего телефона).
Ваш любимый дистрибутив Linux может предоставлять их в виде одного или отдельных пакетов, но обычно они всегда называются «android-tools»:
Получить boot.img файл
Извлеките файл boot.img из ZIP-файла ROM или непосредственно с устройства:
Для второго метода вам сначала нужно будет определить (к сожалению, для конкретного устройства) путь к устройству хранения, на котором boot.img можно извлечь контент. Я знаю два метода для этого:
Если это еще не сделано, я рекомендую вручную запустить сервер ADB на стороне компьютера, это позволит вам напрямую проверить ключ RSA на стороне устройства, не влияя на поведение следующих команд ADB:
Затем переключите ADB в корневой режим:
Наконец, вы должны иметь возможность напрямую извлечь boot.img файл из устройства с помощью такой команды (исходный и целевой путь и имена приведены в качестве примеров, адаптируйте их к вашим потребностям и предпочтениям):
После завершения передачи отключите телефон и не забудьте отключить отладку и root-доступ из меню разработчика.
Распакуйте оригинальный boot.img файл
Распакуйте сам boot.img файл, используя скомпилированную ранее команду:
Эта команда генерирует несколько файлов с определенными суффиксами, добавленными к имени входного файла:
Чаще всего распаковывают, boot.img чтобы иметь возможность редактировать содержимое корневого каталога телефона. Как видно выше, этот контент хранится в файле *-ramdisk.gz или, *-ramdisk.lz4 и его можно извлечь, используя команды ниже:
Перестройте, чтобы получить новый new-boot.img файл
Процесс создания ПЗУ CyanogenMod использует внутренний инструмент mkbootfs для создания boot.img файла (это происходит в build / tools / releasetools / common.py ). Тем не менее, шаги по созданию этого инструмента кажутся мне бесполезно сложными, в то время как использование предоставленной системы, cpio кажется, работает так же хорошо. Основное различие между ними, как я понимаю после (очень) быстрой проверки в mkbootfs исходном коде, заключается в том, что последний применяет некоторые меры безопасности, не включая точечные файлы и /root каталог в результирующий архив, в то время как cpio процедура на основе-ниже просто слепо положит все выбранное дерево каталогов в архив.
Вывод: излишне сложный для компиляции с очень небольшим количеством преимуществ, так что давайте использовать инструменты, предоставляемые системой!
Начните с создания нового RAM-диска, из ramdisk каталога, созданного выше, введите:
Или, если вам нужно создать архив LZ4:
Теперь перейдите в родительский каталог, чтобы создать сам new-boot.img файл.
Здесь не заданы только два параметра:
Прошить new-boot.img файл на устройство
Убедитесь, что устройство правильно обнаружено:
Если телефон успешно работает с новым загрузочным образом, вернитесь в режим fastboot и постоянно его прошивайте:
Вывод
Поначалу эта процедура может показаться сложной, но как только вы ее получите, вы увидите, что на самом деле это не так.
«Устрашающий» аспект связан с тем, что не существует единой «системы Android»: многие производители и поставщики ПЗУ вносят изменения, которые могут варьироваться от незначительной разницы в пути до совершенно нестандартной среды.
Что вам нужно сделать, это определить положение вашего конкретного устройства, а затем, какие несколько команд, которые подходят для вашего случая. Получив их, вы можете придерживаться их и даже легко писать сценарии, если они вам часто нужны.
Патчим прошивку Android за 5 минут
Задача
Все началось с того, что я захотел установить на планшет Digma Optima 7.61 игру GTA San Andreas. К сожалению, виртуальная SD-карта планшета имеет объем менее 1 Гб, а кэш игры весит порядка 2-3 Гб. На планшете установлен Android 4.4.2 и возможность просто взять и сменить память по умолчанию в нем отсутствует. Так же в нем отсутствует файл /etc/vold.fstab (он есть на более старых версиях андроида, и изменив данный файл с root-правами, можно поменять местами виртуальную и реальную карты памяти).
Необходимые инструменты
1. Компьютер или ноутбук с ОС Linux.
2. Утилиты adb и fastboot (входят в состав Android SDK, так же, как заметил tmnhy, входят в репозитории как отдельные пакеты).
3. Набор утилит bootimg_tools (нашел здесь).
Решение
1. Извлекаем с устройства загрузочный образ
— Подключаем устройство к компьютеру через usb-кабель и заходим в shell устройства:
— Где-то в папке /dev/block на устройстве нужно найти файл с именем boot. У меня он находился по пути /dev/block/by-name/boot, но данный путь может различаться на разных устройствах.
— Извлекаем загрузочный образ:
— Выходим из shell’а (exit) и извлекаем образ:
2. Затем загрузочный образ нужно разобрать
— Скачиваем и распаковываем bootimg_tools.
— Добавляем bootimg_tools в PATH:
— Если все предыдущие шаги сделаны верно, то должна появиться папка boot-from-device. Внутри нее должны лежать файлы zImage и ramdisk.cpio.gz, а так же папка ramdisk. Как раз внутри последней лежит содержимое загрузочного образа, которое мы будем патчить.
3. Патчим
Для решения своей задачи я нашел строчку, которую нужно заменить, в файле init.sun8i.rc. Я просто заменил export EXTERNAL_STORAGE /mnt/sdcard на export EXTERNAL_STORAGE /mnt/extsd. Как я понимаю, это как раз и есть то значение, которое возвращает метод Environment.getExternalStorageDirectory() в Android API. В пользу этого предположения говорит тот факт, что после применения патча приложения начали использовать аппаратную карту памяти вместо виртуальной для хранения своих данных.
4. Заменяем загрузочный образ на устройстве
Я написал для этих целей небольшой скрипт:
Итоги
После проделанных манипуляций игра на планшете успешно заработала.
Чем открыть boot img
Обработка (распаковка и сборка) прошивок и образов (*.img, *.bin) строго под WINDOWS
Эта тема создана для продолжения обсуждения и помощи в обработке различных образов под Windows.
Полезное
(Примеры, варианты, утилиты, кухни, скрипты, обработки разных образов)
AndImgTool (Android Image Tool)
AndImgTool версия 1.3.0 Обновлено: 30.12.2014 релиз и подробности тут
— Добавлена поддержка распаковки\запаковки x86 загрузочных образов (функционал перенесен из утилиты xImgTool)
— основная утилита для распаковки образов файловых систем типа system, userdata, cache, secro (расширение может быть любое, например img или ext4).
Поддерживаются следующие форматы файловых систем: EXT2\EXT3\EXT4\YAFFS2\CRAMFS, форматы структуры образов (обертки) SPARSE\SIN( 1, 2 и 3 версии)\MOTO, поддерживается конвертация образа файловой системы формата EXT4 из обертки SIN или SPARSE непосредственно в EXT4, реализован вывод информации о суперблоке для образов файловых систем, дальше будет развиваться именно эта утилита.
ImgExtractor версия 1.3.7 Обновлено: 13.02.2015 релиз и подробности тут
— добавлена поддержка распаковки образов SPARSE-Marvell для MOTO
— исправлено падение утилиты при распаковке образов содержащих файлы с символами «?»
— добавлена идентификация формата UBIFS и обертки MOTO внутри SPARSE формата
— добавлена конвертация образов из EXT3\EXT4 в SPARSE с разбиением на файлы меньшего размера
— утилита для распаковки\запаковки загрузочных образов (IMG, BIN) и контейнеров (INB, SZB, QSB ) для устройств на базе x86 Android Platform (Lenovo K900, Ramos i9, Asus ZenFone 4,5,6, ZTE Geek)
xImgTool версия 1.3.32xImgTool_1_3_32.rar ( 40.86 КБ )
ОБНОВЛЕНО: 06.11.2014
— поддержка нового размера блока bootstub
— сохранение новых атрибутов в блоке размеров
— при распаковке контейнера QSB части, участвующие при объединении в один файл, сохраняются в отдельной папке в оригинальном виде (особенно касается образов system и userdata)
В связи с тем, что основной функционал кухни перешел в единую утилиту AndImgTool, не требующую для своей работы никаких дополнительных CYGWIN DLL, настоятельно рекомендую использовать для работы с загрузочными образами именно AndImgTool (для образов файловых систем есть единая утилита ImgExtractor), поскольку пересборок кухни больше не планируется.
24.02.2014 Обновлено
Утилита ImgExtractor
13.02.2014 ОБНОВЛЕНО
— Обновлена утилита ImgExtractor (текущая версия 1.3.1), использующаяся для распаковки system.img в форматах EXT2\EXT3\EXT4\SPARSE\YAFFS2\CRAMFS
— Исправлена проблема с правами (владельцем и группами) при сборке образов в формате YAFFS2 ( про обнаруженные проблемы и их решение можно прочитать тут и тут)
RKwinToolsMod версия 2.6 RKwinToolsMod_v2_6.rar ( 6.38 МБ )
Чем открыть boot img
Обработка (распаковка и сборка) прошивок и образов (*.img, *.bin) строго под WINDOWS
Эта тема создана для продолжения обсуждения и помощи в обработке различных образов под Windows.
Полезное
(Примеры, варианты, утилиты, кухни, скрипты, обработки разных образов)
AndImgTool (Android Image Tool)
AndImgTool версия 1.3.0 Обновлено: 30.12.2014 релиз и подробности тут
— Добавлена поддержка распаковки\запаковки x86 загрузочных образов (функционал перенесен из утилиты xImgTool)
— основная утилита для распаковки образов файловых систем типа system, userdata, cache, secro (расширение может быть любое, например img или ext4).
Поддерживаются следующие форматы файловых систем: EXT2\EXT3\EXT4\YAFFS2\CRAMFS, форматы структуры образов (обертки) SPARSE\SIN( 1, 2 и 3 версии)\MOTO, поддерживается конвертация образа файловой системы формата EXT4 из обертки SIN или SPARSE непосредственно в EXT4, реализован вывод информации о суперблоке для образов файловых систем, дальше будет развиваться именно эта утилита.
ImgExtractor версия 1.3.7 Обновлено: 13.02.2015 релиз и подробности тут
— добавлена поддержка распаковки образов SPARSE-Marvell для MOTO
— исправлено падение утилиты при распаковке образов содержащих файлы с символами «?»
— добавлена идентификация формата UBIFS и обертки MOTO внутри SPARSE формата
— добавлена конвертация образов из EXT3\EXT4 в SPARSE с разбиением на файлы меньшего размера
— утилита для распаковки\запаковки загрузочных образов (IMG, BIN) и контейнеров (INB, SZB, QSB ) для устройств на базе x86 Android Platform (Lenovo K900, Ramos i9, Asus ZenFone 4,5,6, ZTE Geek)
xImgTool версия 1.3.32xImgTool_1_3_32.rar ( 40.86 КБ )
ОБНОВЛЕНО: 06.11.2014
— поддержка нового размера блока bootstub
— сохранение новых атрибутов в блоке размеров
— при распаковке контейнера QSB части, участвующие при объединении в один файл, сохраняются в отдельной папке в оригинальном виде (особенно касается образов system и userdata)
В связи с тем, что основной функционал кухни перешел в единую утилиту AndImgTool, не требующую для своей работы никаких дополнительных CYGWIN DLL, настоятельно рекомендую использовать для работы с загрузочными образами именно AndImgTool (для образов файловых систем есть единая утилита ImgExtractor), поскольку пересборок кухни больше не планируется.
24.02.2014 Обновлено
Утилита ImgExtractor
13.02.2014 ОБНОВЛЕНО
— Обновлена утилита ImgExtractor (текущая версия 1.3.1), использующаяся для распаковки system.img в форматах EXT2\EXT3\EXT4\SPARSE\YAFFS2\CRAMFS
— Исправлена проблема с правами (владельцем и группами) при сборке образов в формате YAFFS2 ( про обнаруженные проблемы и их решение можно прочитать тут и тут)
RKwinToolsMod версия 2.6 RKwinToolsMod_v2_6.rar ( 6.38 МБ )