Как редактировать boot img

Патчим прошивку 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 для портирования ПЗУ?

Я недавно загрузил этот диск для моего 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»: многие производители и поставщики ПЗУ вносят изменения, которые могут варьироваться от незначительной разницы в пути до совершенно нестандартной среды.

Что вам нужно сделать, это определить положение вашего конкретного устройства, а затем, какие несколько команд, которые подходят для вашего случая. Получив их, вы можете придерживаться их и даже легко писать сценарии, если они вам часто нужны.

Источник

Как распаковать и отредактировать boot.img для портирования ROM?

Недавно я загрузил это ПЗУ для моего Allview P5 (Allview P5 является эквивалентом Gionee GN700W /FLY IQ441 /QMobile Noir A8). Он называется Primonex ROM и сделан для версии телефона Gionee.

Может ли кто-нибудь сказать мне, как это сделать?

2 ответа

Выбор инструментов

Метод, который я здесь представляю, основан на исходном коде Android CyanogenMod.

В принципе, такой инструмент распаковки будет извлекать содержимое файла boot.img и отображать набор параметров, которые вам нужно будет передать в инструмент mkbootimg Google, чтобы создать файл, чья конфигурация (в основном параметры ядра и адреса памяти) будет соответствовать исходному.

Вот несколько примеров, я не тестировал их лично, поэтому не могу рекомендовать их, и я представляю их только для справочных целей:

Некоторые из них основаны на открытых источниках или сценариях:

Некоторые из них являются свободными закрытыми исходными двоичными файлами:

Все эти инструменты (и другие, которые вы можете найти в любой поисковой системе) должны работать одинаковоно некоторые из них могут работать лучше, чем другие, при работе с каким-либо конкретным краевым корпусом, с которым вы можете столкнуться с вашим собственным устройством. Большинство из них, по крайней мере, в арене с открытым исходным кодом, похоже, регулярно не поддерживаются, поэтому лучше всего, по моему мнению, иметь рабочие, поддерживаемые и документированные инструменты, это идти с CyanogenMod’s.

Установка инструментов

Компиляция набора инструментов CyanogenMod для dt.img упаковки и распаковки довольно проста.

Если у вас нет и не нужно это для каких-либо других целей, более простым и быстрым решением является только клонирование репозитория CyanogenMod android_system_core :

После того, как в правом каталоге, скомпилируйте и установите:

Вам также нужно будет установить на свой компьютер Android-инструменты, чтобы он общался с вашим телефоном. Вам понадобится mkbootimg (Android Debug Bridge, утилита оболочки, позволяющая общаться с подсистемой отладки Android), adb (связанный демон) и adbd (утилита оболочки, позволяющая связываться с системой загрузчика вашего телефона).

Ваш любимый дистрибутив Linux может предоставить их в одном или отдельном пакете, но обычно они всегда называются «андроид-инструментами»:

Получить файл sudo zypper install android-tools

Если этого еще не сделано, я рекомендую вручную запустить сервер ADB со стороны компьютера, это позволит вам напрямую проверить ключ RSA со стороны устройства, не влияя на поведение следующих команд ADB:

Затем переключите ADB в корневом режиме:

Наконец, вы должны иметь возможность напрямую извлекать файл adb root с устройства с помощью такой команды (исходный и конечный путь и имена приведены в качестве примеров, адаптируйте их к вашим потребностям и предпочтениям ):

Как только передача завершена, отключите телефон и не забудьте отключить как отладку, так и root-доступ в меню разработчика.

Распакуйте исходный файл boot.img

Распакуйте файл boot.img с помощью команды, скомпилированной ранее:

Эта команда генерирует несколько файлов с особыми суффиксами, добавленными к имени входного файла:

Заключение: излишне сложно скомпилировать с очень небольшим преимуществом, поэтому давайте использовать имеющиеся в системе инструменты!

Начните с создания нового RAM-диска, из созданного выше каталога cpio введите:

Или, если вам нужно создать архив LZ4:

Целью здесь является создание нового файла RAM-диска со свойствами как можно ближе к оригиналу (например, установка владельца, как правило, отсутствует в процедурах, общих для форумов и блогов, однако это требовалось на моем устройстве ).

Здесь не заданы только два параметра:

Проверьте правильность обнаружения устройства:

Попробуйте загрузиться с использованием нового ПЗУ (без его мигания, поэтому в случае возникновения проблемы вам просто нужно перезагрузить телефон, чтобы вернуть его на тропы, замените sudo fastboot devices имя файла с вашим собственным):

Если телефон успешно работает с новым загрузочным изображением, вернитесь в режим быстрой загрузки и постоянно запустите его:

Заключение

Сначала эта процедура может показаться сложной, но как только вы ее получите, вы увидите, что на самом деле это не так.

«Увлекательный» аспект исходит из того факта, что нет ни одной «системы Android»: многие производители и поставщики ПЗУ делают изменения, которые могут варьироваться от тонкой разницы в пути до совершенно нестандартной среды.

Что вам нужно сделать, так это определить позицию вашего конкретного устройства, а затем какие несколько команд подходят в вашем случае. Как только вы их получите, вы можете придерживаться их и даже легко называть их, если они вам понадобятся часто.

Источник

Как легко распаковать и перепаковать файлы boot и ramdisk

Учитывая, что модификация прошивки такая же старая, как и сама ОС Android, попасть в игру для новичков может быть довольно сложно. Например, для прошивки определенных пользовательских ПЗУ требуется несколько шагов, таких как извлечение официального загрузочного образа и его прошивка на устройстве перед окончательным завершением процесса и прошивка файлов пользовательских ПЗУ вместе с ним.

Хотя в некоторые руководства вы найдете в Интернете включенные файлы boot.img, в других случаях вам может потребоваться самостоятельно изменить загрузочный образ, а затем переупаковать его. Поскольку операционная система Android для мобильных телефонов является производной от Linux, единственный способ сделать это — использовать платформу на основе Linux или эмулировать ее на вашем ПК с Windows.

Скрипты для распаковки и перепаковки файла boot.img

Пользователь XDA CNexus просеянных через Интернет, чтобы найти и составить список инструментов для распаковки и переупаковки файла образа загрузки, все из которых можно загрузить, используя ссылку, приведенную ниже.

Команды, которые вы должны знать

Совместимость с Windows: что нужно знать

Как использовать распаковку и перепаковать загрузку и распаковку файла ramdisk

Что ж, нам нужно использовать файл split_boot, поскольку он содержит сценарий, чтобы сначала распаковать файл boot.img, получить из него файл ramdisk, а затем извлечь файл ramdisk.

Как редактировать boot img. Смотреть фото Как редактировать boot img. Смотреть картинку Как редактировать boot img. Картинка про Как редактировать boot img. Фото Как редактировать boot img

Как это было? Удалось ли вам легко пользоваться инструментами?

Источник

Способы извлечения и замены файлов в прошивках Android-устройств

Как редактировать boot img. Смотреть фото Как редактировать boot img. Смотреть картинку Как редактировать boot img. Картинка про Как редактировать boot img. Фото Как редактировать boot img

Частые зависания системы и другие ошибки являются результатом некорректной работы программного обеспечения. Проблемные программы можно легко удалить. Но что делать с установленным софтом, который не удаляется из системы? В таких случаях устройство необходимо перепрошить на более стабильную версию или самостоятельно внести правки в ОС. В данном посте вы узнаете, как открыть прошивку Android для последующего ее изменения.

Что представляет собой прошивка

На просторах глобальной сети можно найти внушительное количество официальных и кастомных прошивок, открывающих дополнительные возможности.

Стоит ли распаковывать прошивку

Распаковка прошивки представляет собой непростой процесс, который требует времени и соответствующих навыков, но является весьма актуальным и полезным.

Посредством распаковки пользователь может внести корректировки в работу самых различных элементов установленного программного обеспечения, исключив тем самым возможность появления ошибок, зависаний и многих других неприятных моментов без перепрошивки и замены ПО.

Задумавшись над вопросом, нужно ли распаковывать прошивку Android, вы наверняка найдете пару дополнительных плюсов. Из распакованной прошивки можно извлечь apk-файлы или интегрировать инсталляторы прочих программ.

Распаковка прошивки Android в ZIP-формате

Любые ZIP-папки распаковываются привычным архиватором, например WinZip. При этом процесс распаковки занимает всего несколько минут, так как объем сжатых файлов не превышает 500 Мб. Скачать и установить программу можно на любой компьютер.

Для распаковки Android-прошивки нужно найти архив на ПК, кликнуть на нем правой кнопкой мыши, выбрать распаковку и указать директорию для переноса всех файлов. Решая, чем распаковать ZIP-прошивку Android или любой другой архив в данном формате, можете воспользоваться такими архиваторами, как WinRAR, 7-Zip, PeaZip или IZArc.

Распаковка IMG-прошивок

Если вы не знаете, как открыть IMG-прошивку Android на Huawei, понадобится выполнить ряд специфических действий и скачать дополнительный софт. Для работы с прошивками такого типа понадобятся утилиты EXT4 Unpacker и EXT2 Explore. После их скачивания можно приступить к процессу извлечения файлов, который проходит по такой схеме:

Так осуществляется распаковка IMG-прошивки Android с целью извлечения из нее полезных данных и инсталляторов.

Преобразование KDZ-архива в DZ-архив для последующего создания BIN-папки и привычных архивов

KDZ – формат прошивок, которые зачастую использует в своих устройствах компания LG. Распаковка данных файлов требует использования дополнительного софта, поскольку обычные архиваторы не способны обеспечить необходимый доступ к утилитам прошивки и предустановленным инсталляторам.

Для открытия этого файла вами заранее была скачана программа EXT2 Explore. С ее помощью вы сможете убрать из прошивки все необходимое и достать полезные инсталляторы для кастомной прошивки.

Распаковка QSB и INB-прошивок

Данная программа имеет интуитивно понятное управление и предоставляет массу дополнительных возможностей. Помимо распаковки прошивок она позволяет осуществлять быструю обратную сборку прошивки с уже измененными файлами, способствует комфортной работе с контекстным меню, проводит сборку нескольких частей файлов в один.

Для работы с прошивкой через редактор LenovoWinTools достаточно установить русифицированную программу, зайти в пункт «Файл» и посредством имеющихся инструментов выбрать свою прошивку. Далее потребуется подождать, и тогда прямо из программы сможете оперировать файлами прошивки.

Как прошить устройства на базе Android

Найдите новую или кастомную версию операционной системы и проведите ее установку. Сделать это можно несколькими способами: с использованием ПК и без него. Принципы обновления прошивок на всех устройствах схожи, но есть некоторые нюансы, которые относятся к определенным моделям и маркам устройств.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *