Перейти к содержимому

Boot img где находится android

  • автор:

Получение boot.img из исходников ядра.

Есть исходники Android 5.1 Для Xperia E5603. Вопрос: Как «выдернуть» оттуда boot.img ? adb shell-ом «выдергивание» конкретно с девайса не помогает. Ибо дальше «adb shell» больше ничего нельзя сделать. Девайс не понимает команду «su»

Loli_Desu
03.02.16 21:54:58 MSK

исходники или таки образ прошивки?

exception13 ★★★★★
( 03.02.16 22:09:08 MSK )
Ответ на: комментарий от exception13 03.02.16 22:09:08 MSK

Скорее архив с ядром и прочими файлами.

Loli_Desu
( 03.02.16 23:00:06 MSK ) автор топика

Reset+Volume_up — вход в бутлоадер. Обычно оттуда можно забэкапить все на SD-карту.

Но ядро и рамдиск НЕ лежат на разделе с файловой системой, Вы там не увидите каталога \boot. Под это дело (ядро и рамдиск) во внутренней флеш памяти выделены непрерывные области с фиксированными адресами, о которых знает только загрузчик.

bugs-bunny ★
( 04.02.16 17:56:37 MSK )

Вообще не совсем понятно, что же ТС имеет ввиду?

Образ ядра собрать из исходников Android (как следует из заголовка)? Там нет исходников kernel. Для каждой машинки kernel собирается производителем отдельно с кучей патчей и специфическими драйверами. Эти патчи получить — проблема.

Или выдернуть старый kernel из флеша (как следует из текста)?

bugs-bunny ★
( 04.02.16 18:06:55 MSK )

Потому что телефон не рутованый и/или не стоит busybox.
Получай рут для своего телефона и ставь busybox (обычно эти процедуры выполняются вместе) и будет тебе su.

Распаковка\запаковка boot.img от Андроида штатными средствами

Так как имею дело с Андроидом и сборкой TWRP, то первейший вопрос — это распаковка-правка-запаковка образов boot.img и recovery.img. У меня конечно есть 2 замечательные линукс-кухни для этих дел — mkbootimgtools и CarlivImageKitchen. Но вот вчера столкнулся с аппаратом Huawei Honor 7C Pro (а Хуавей вообще любит выёживаться по части нестандартных разделов памяти, экзотических образов, и всяких «защит») — так вот, в их стоковом рекавери и соответственно в TWRP не должно быть kernel-а, только рамдиск — кернел идёт отдельным образом и разделом. То есть, TWRP с kernel внутри просто не запускается — а если его (kernel) убрать, то запускается.

Так вот, обе названные андроид-кухни категорически отказываются собирать распакованный TWRP, если из него удалить kernel, и как это убороть — непонятно. После удаления (почти) любых других файлов, кроме кернела, образ собирается обратно — а вот без кернела не хочет. На Винде это делается легко — удаляешь файл, и удаляешь запись о нём в специальном текстовом файле, содержащем список всех распакованных файлов — и всё собирается обратно. Но на андроид-линукс-кухнях всё не так устроено, чем на андроид-виндовс-кухнях. Винды нет, точнее валяется в шкафу ЖД, но подключать его каждый раз это не вариант.

В связи с этим вопрос: если ли в Арче\Линуксе штатные средства (проги, команды со специальными опциями) для разборки образов .img, и сборки их обратно с удалёнными файлами? В частности, как уже сказал, прежде всего интересует удаление центрального файла — kernel. Бут и рекавери — это образы в emmc, а не в ext4, потому с монтированием ничего не выйдет.

Есть какие-то соображения? Ну очень не хочется подключать Винду.

Где находится файл boot.img в телефоне?

получить образ recovery.img из boot.img, при условии что у нас на руках имеется только update.zip от прошивки телефона. Собственно на написание этого гайда меня сподвиг один из читателей моего блога, который умудрился зашить в Билайн Смарт Dual recovery от абсолютно другого аппарата и попросил о помощи. Прошивок под SP Flash Tool для данного аппарата мне найти не удалось (в этом случае все было бы намного проще, так как там образ стокового recovery уже лежит отдельно), но зато был найден update.zip от данного аппарата.

Вообщем все не просто, а очень просто. Единственное для работы нам понадобится любой телефон на Android с root-доступом и adb. Первое что мы делаем это извлекаем из архива с прошивкой update.zip следующие файлы:

boot.img — образ раздела boot
recovery-resource.dat (можно взять в system\etc) — набор ресурсов для добавления в образ recovery, так называемый bonus-file.
recovery-from-boot.p (в update\recovery) — файл патча (diff), который собственно и поможен нам преобразовать boot.img в recovery.img
install-recovery.sh (update\recovery\etc) — скрипт который используется ОС Android в штатном режиме, для восстановления раздела recovery из boot.
Далее все очень просто, смотрим в install-recovery.sh, оттуда нам понадобятся значения SHA1-хешей boot.img, recovery.img и самого патча. В моем случае это строка:

applypatch -b /system/etc/recovery-resource.dat EMMC:boot:4257792:294140ba217ceba662050400bb9488f494b6362b EMMC:recovery 3e9baf0e1ef24480a92d92c5566244a240480fcc 4634624 294140ba217ceba662050400bb9488f494b6362b:/system/recovery-from-boot.p

Теперь заливаем все перечисленные в списке файлы в любое устройство на Android через ADB. Я залил их в папку /data/local/tmp/recovery. Далее изучаем синтаксис утилиты applypatch (кстати ее исходники и собранный бинарник под Linux, если вы, например, хотите собрать ее самостоятельно или использовать ПК с Linux вместо телефона на Android, можно взять здесь):

usage: applypatch [-b ]
[: . ]
or applypatch -c [ . ]
or applypatch -s
or applypatch -l

Filenames may be of the form
MTD.
to specify reading from or writing to an MTD partition.

После чего копируем boot.img в recovery.img, например так — cp /data/local/tmp/boot.img /data/local/tmp/recovery.img . и выполняем следующую команду, уже через ADB на Android устройстве:

applypatch -b /data/local/tmp/recovery/recovery-resource.dat /data/local/tmp/recovery/boot.img /data/local/tmp/recovery/recovery.img 3e9baf0e1ef24480a92d92c5566244a240480fcc 4634624 294140ba217ceba662050400bb9488f494b6362b:/data/local/tmp/recovery/recovery-from-boot.p

bonus-file: -b /data/local/tmp/recovery/recovery-resource.dat
src-file: /data/local/tmp/recovery/boot.img
tgt-file: /data/local/tmp/recovery/recovery.img
tgt-sha1: 3e9baf0e1ef24480a92d92c5566244a240480fcc
tgt-size: 4634624
:: 294140ba217ceba662050400bb9488f494b6362b:/data/local/tmp/recovery/recovery-from-boot.p

Где src-sha1 — это SHA1 хеш исходного файла, tgt-sha1 — это SHA1 хеш результирующего файла, который должен получиться в результате применения патча.

В результате в файле recovery.img, в который изначально мы скопировали boot.img, получится образ recovery.img, полученный применением патча recovery-from-boot.p. Как вы уже поняли, чтобы воспользоваться applypatch нам необходимо знать размер и SHA1 recovery, который должен получиться в итоге (tgt-sha1 и tgt-size), именно эти значения мы и взяли из install-recovery.sh.

Т. е. в процессе работы applypatch к boot.img применяется патч recovery-from-boot.p, после чего размер и sha1-хеш полученного файла сравниваются с указанным

я смотрю вы шарите

я смотрю он не шарит, а скопировал где то ответ на другой вопрос. Вопрос был: Где в телефоне находится boot.img?

.Профи (847) 6 месяцев назад

Я так понял, что нигде. Ее нужно грузить с официального сайта. Вот к примеру
https://magiskzip.com/how-to-get-boot-img-for-magisk/

Magisk Apk is a popular tool in the Android community that allows users to gain root access on their devices while also providing the ability to hide this root access from certain apps that might not work on rooted devices. Magisk is often used to modify or customize Android devices beyond what the manufacturer intended.

Boot img где находится android

  • Like us on Facebook
  • Blank
  • Follow us on Twitter
  • Watch us on Youtube
  • Уже зарегистрированы? Войти

Или войти с помощью одного из сервисов
Image Factory — приложение Android для распаковки boot.img непосредственно на устройстве.

Опубликовал maksnogin , 18 февраля, 2016

В этой теме 4 сообщения

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Войти

Уже есть аккаунт? Войти в систему.

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

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