Boot файл для андроид

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

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

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

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

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

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

  1. boot_info Файл, включенный в пакет, позволяет вам получить базовый адрес и адрес виртуального диска файла boot.img, который вам позже понадобится для повторной упаковки.
  2. split_boot (split_bootimg.pl) помогает извлечь ramdisk и zImage из файла boot.img в отдельную папку.
  3. unpack_ramdisk позволяет распаковать файл ramdisk с помощью следующей команды:
    Использование: unpack_ramdisk
  4. repack_ramdisk функция позволит вам перепаковать файл ramdisk из заданного каталога, используя следующую команду:
    Использование: repack_ramdisk [outputFile]
  5. mkbootimg Команда поможет вам создать новый файл boot.img из имеющихся у вас файлов ramdisk и zImage (полезно для создания измененных файлов boot.img).
  6. umkbootimg делает прямо противоположное и разделяет ядро ​​и загрузочный образ.
  7. распаковать просто распакует файл boot.img в один каталог, а виртуальный диск в отдельный каталог для удобства.

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

  1. Если у вас нет запущенной операционной системы Linux, вы можете эмулировать ее на своем ПК с Windows, используя это официальное руководство.
  2. Инструмент был протестирован для работы с Debian, но не подтвержден для работы с Cygwin.
  3. Все сценарии в файле .ZIP должны быть сохранены в папке на пути к системе Linux, в которой вы работаете, чтобы они могли быть обнаружены (пример:

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

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

  1. Скачать инструмент загрузки из здесь.
  2. Сейчас, извлекать его в отдельную папку, чтобы получить эти файлы.
  3. Теперь предоставьте этим файлам необходимые разрешения. Итак, запустите команду ниже в папке, где у вас есть все файлы.

  • Поместите файл boot.img, который вы хотите извлечь, в ту же папку, что и эти файлы на вашем ПК.
  • Чтобы извлечь файл загрузочного образа и файл виртуального диска, выполните приведенную ниже команду.
  • Это создаст новую папку с именем ботинок в вашей текущей папке. Папка загрузки будет содержать файл ядра загрузочного образа, файл ramdisk и папку ramdisk, содержащую данные, извлеченные из файла ramdisk.
  • Вот и все. Вносить изменения в файл папки ramdisk, как вам нужно.
  • Копировать все основные файлы инструмента (boot_info, mkbootimg, repack_ramdisk, split_boot и unpack_ramdisk) в загрузочную папку, содержащую папку ramdisk.
  • Перепаковать файл ramdisk используя команду ниже. Это создаст новый файл ramdisk с именем new-boot.img-ramdisk.cpio.gz в папке загрузки. (Вы можете изменить имя выходного файла с new-boot.img-ramdisk.cpio.gz на любое по вашему выбору.)
  • Перепаковать загрузочный файл используя команду ниже. Это создаст новый файл образа загрузки с именем new-boot.img в папке загрузки.
  • Вот и все. Работа сделана! Вы успешно распаковали и переупаковали файлы загрузочного и RAM-диска. Теперь ваш каталог будет выглядеть так. Обратите внимание на новые файлы boot и ramdisk на скриншоте ниже.
  • Как это было? Удалось ли вам легко пользоваться инструментами?

    Источник

    Boot файл для андроид

    /ramdisk# gzip -dc ../boot.img-ramdisk.gz | cpio -i
    986 блок
    [email protected]:

    #
    В папке ramdisk 18 объектов, всего 514,6 КБ
    Где все остальное ?? где файлы ядра ?

    Какие еще файлы ядра??

    boot.img-kernel — это zImage-образ ядра. Если ты имеешь ввиду исходники ядра, то с образа их никак не получишь.
    boot.img-ramdisk.gz — cpio/gz архив рамдиска с init.rc и прочей хренью. Его содержимое распаковано в папку ramdisk.
    А больше ничего в буте и нету. То же самое касается и recovery.img

    system.img (и userdata.img) — образ файловой системы в формате yaffs2. Распаковывается утилитой unyaffs под линухом. Ну или могу под винду утилиту подкинуть.

    Ну что же, мысль здравая, если знаете что к чему.

    1 Скачайте/найдите в интернете исходники для своего устройства. Если устройство htc, то developer.htc.com, если другое, ищите в интернете.
    2 Ввнесите нужные изменения в файл arch/arm/mach-msm/acpuclock.c,
    3 Скачайте к примеру NDK с андроидовского сайта (нужно для кросс-компиляции). Как я понял, у вас убунту. Тогда дальше все просто.
    4 ARCH=arm CROSS_COMPILE=/путь_куда_установили_ndk/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- make zImage
    5 mkbootimg —kernel arch/arm/boot/zImage —ramdisk ваш_рамдиск.gz —cmdline то_что_писало_когда_вы_извлекали_рамдиск -o boot.img
    6 adb push boot.img /cache/ && adb shell flash_image boot /cache/boot.img

    Нельзя ли поподробней с компиляцией ?
    Вот эту строку которую вы указали, ка я понял надо вписывать в Makefile ? И вообщем у последнего NDK совсем другой путь папок ! Может дадите ссылку на ваш NDK ?
    И еще можно ли делать компиляцию через arm-2007q3 как написано тут http://www.anddev.org/learning_porting_and. step-t3252.html .
    Или через windows компиляцию сделать можно ?

    Сообщение отредактировал bobjob — 17.02.11, 17:33

    unyaffs под винду.
    При распаковке:
    — теряются owners, permissions и даты создания/изменения/доступа
    — симлинки заменяются на файлы в фигурных скобках <>, внутри — путь куда указывает симлинк
    Просто для извлечения данных этого вполне достаточно.
    Написано на коленке в делфях.
    Использование: unyaffs.exe файл.img
    Cygwin не нужен.

    Скачать: unyaffs.zip ( 12.23 КБ )

    Источник

    Boot файл для андроид

    Platform-tools: r31.0.3
    ADB: 1.0.41 (31.0.3-7562133)
    Fastboot: 31.0.3-7562133
    Make_f2fs: 1.14.0 (2020-08-24)
    Mke2fs: 1.46.2 (28-Feb-2021)
    Последнее обновление утилит в шапке: 01.08.2021

    ADB (Android Debug Bridge — Отладочный мост Android) — инструмент, который устанавливается вместе с Android-SDK и позволяет управлять устройством на базе ОС Android.
    Работает на всех Android-устройствах, где данный функционал не был намеренно заблокирован производителем.
    Здесь и далее: PC — ПК, компьютер к которому подключено устройство.
    ADB — консольное приложение для PC, с помощью которого производится отладка Android устройств, в том числе и эмуляторов.
    Работает по принципу клиент-сервер. При первом запуске ADB с любой командой создается сервер в виде системной службы (демона), которая будет прослушивать все команды, посылаемые на порт 5037.
    Официальная страница
    ADB позволяет:

    • Посмотреть какие устройства подключены и могут работать с ADB.
    • Просматривать логи.
    • Копировать файлы с/на аппарат.
    • Устанавливать/Удалять приложения.
    • Удалять (очищать) раздел data.
    • Прошивать (перезаписывать) раздел data.
    • Осуществлять различные скрипты управления.
    • Управлять некоторыми сетевыми параметрами.

    Поставляется ADB в составе инструментария разработчика Андроид (Android SDK), который, в свою очередь входит в состав Android Studio.

    Если что-то неправильно, то в списке подключенных устройств (List of devices attached) будет пусто.

    Скрытые команды ADB
    adb -d Команда посылается только на устройство подключенное через USB.
    Внимание: Выдаст ошибку, если подключено больше одного устройства.

    adb -e Команда посылается на устройство в эмуляторе.
    Внимание: Выдаст ошибку, если подключено больше одного эмулятора.

    adb -s Команда посылается на устройство с указанным серийным номером:

    adb -p Команда посылается на устройство с указанным именем:
    Если ключ -p не указан, используется значение переменной ANDROID_PRODUCT_OUT.

    adb devices Список всех подсоединенных устройств.

    adb connect [: ] Подсоединиться к андроид хосту по протококу TCP/IP через порт 5555 (по умолчанию, если не задан).

    adb disconnect [ [: ]] Отсоединиться от андроид подключенного через TCP/IP порт 5555 (по умолчанию, если не задан).
    Если не задан ни один параметр, отключиться от всех активных соединений.

    adb push Копировать файл/папку PC->девайс.

    adb pull [ ] Копировать файл/папку девайс->PC.

    adb sync [ ] Копировать PC->девайс только новые файлы.
    Ключи:
    -l Не копировать, только создать список.

    adb shell Запуск упрощенного unix shell.
    Примеры использования

    adb emu Послать команду в консоль эмулятора

    adb install [-l] [-r] [-s] Послать приложение на устройство и установить его.
    Пример: adb install c:/adb/app/autostarts.apk Установить файл autostarts.apk лежащий в папке /adb/app/ на диске с:
    Ключи:
    -l Блокировка приложения
    -r Переустановить приложение, с сохранением данных
    -s Установить приложение на карту памяти
    Установка split apk

    adb uninstall [-k] Удаление приложения с устройства.
    Ключи:
    -k Не удалять сохраненные данные приложения и пользователя.

    adb wait-for-device Ждать подключения устройства.

    adb start-server Запустить службу/демон.

    adb kill-server Остановить службу/демон.

    adb get-state Получить статус:
    offline Выключен.
    bootloader В режиме начальной загрузки.
    device В режиме работы.

    adb get-serialno Получить серийный номер.

    adb status-window Непрерывный опрос состояния.

    adb remount Перемонтировать для записи. Требуется для работы скриптов, которые изменяют данные на.

    adb reboot bootloader Перезагрузка в режим bootloader.

    adb reboot recovery Перезагрузка в режим recovery.

    adb root Перезапуск демона с правами root

    adb usb Перезапуск демона, прослушивающего USB.

    adb tcpip Перезапуск демона, прослушивающего порт TCP.

    adb ppp [параметры] Запуск службы через USB.
    Note: you should not automatically start a PPP connection. refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
    Параметры:
    defaultroute debug dump local notty usepeerdns

    FastBoot — консольное приложение для PC. Используется для действий над разделами

    fastboot devices Список присоединенных устройств в режиме fastboot.
    fastboot flash Прошивает файл .img в раздел устройства.

    fastboot erase Стереть раздел.
    Разделы: boot, recovery, system, userdata, radio
    Пример: fastboot erase userdata Стирание пользовательских данных.

    fastboot update Прошивка из файла имя_файла.zip

    fastboot flashall Прошивка boot + recovery + system.

    fastboot getvar Показать переменные bootloader.
    Пример: fastboot getvar version-bootloader Получить версию bootloader.

    fastboot boot [ ] Скачать и загрузить kernel.

    fastboot flash:raw boot [ ] Создать bootimage и прошить его.

    fastboot devices Показать список подключенных устройств.

    fastboot continue Продолжить с автозагрузкой.

    fastboot reboot Перезагрузить аппарат.

    f astboot reboot-bootloader Перезагрузить девайсв режим bootloader.
    Перед командами fastboot можно использовать ключи:
    -w стереть данные пользователя и кэш
    -s Указать серийный номер устройства.
    -p

    Указать название устройства.
    -c Переопределить kernel commandline.
    -i Указать вручную USB vendor id.
    -b Указать в ручную базовый адрес kernel.
    -n

    Указать размер страниц nand. по умолчанию 2048.

    Команду logcat можно использовать с машины разработки
    $ adb logcat
    или из удаленного shell
    # logcat Каждое сообщение лога в Android имеет тэг и приоритет
    Тэг – это строка указывающая компонент системы, от которого принято сообщение (например: View для системы view)
    Приоритет – имеет одно из нижеследующих значений (в порядке от меньшего к большему):
    V — Verbose (Низший приоритет).
    D — Debug
    I — Info
    W — Warning
    E — Error
    F — Fatal
    S — Silent (Наивысший приоритет, при котором ничего не выводится).

    Получить список тэгов, используемых в системе, вместе с их приоритетами можно запустив logcat. В первых двух столбцах каждого из выведенных сообщений будут указаны / .
    Пример выводимого logcat сообщения:
    I/ActivityManager( 585): Starting activity: Intent

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

    Пример ниже выводит в лог все сообщения с тэгом «ActivityManager» с приоритетом «Info» или выше, и сообщения с тэгом «MyApp» и приоритетом «Debug» или выше:
    adb logcat ActivityManager:I MyApp:D *:S
    Последний элемент в выражении фильтра *:S устанавливает приоритет «silent» для всех остальных тэгов, тем самым обеспечивая вывод сообщений только для «View» и «MyApp». Использование *:S – это отличный способ для вывода в лог только явно указанных фильтров (т.е. в выражении фильтра указывается «белый список» сообщений, а *:S отправляет все остальное в «черный список»).

    При помощи следующего выражения фильтра отображаются все сообщения с приоритетом «warning» или выше для всех тэгов:
    adb logcat *:W

    Если logcat запускается на машине разработчика (не через удаленный adb shell), можно также установить значение выражения фильтра по умолчанию задав переменную окружения ANDROID_LOG_TAGS:
    export ANDROID_LOG_TAGS=»ActivityManager:I MyApp:D *:S»

    Следует обратить внимание что задав переменную окружения ANDROID_LOG_TAGS она не будет работать в эмуляторе/устройстве, если вы будете использовать logcat в удаленном shell или используя adb shell logcat.
    Вышеописанная команда export работает в ОС *nix и не работает в Windows.

    Контроль формата вывода лога

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

    brief Показывать приоритет/тэг и PID процесса (формат по умолчанию).
    process Показывать только PID.
    tag Показывать только приоритет/тэг.
    thread Показывать только процесс:поток и приоритет/тэг.
    raw Показать необработанное сообщение, без полей метаданных.
    time Показывать дату, время вызова, приоритет/тэг и PID процесса.
    long Показывать все поля метаданных и отдельно сообщения с пустыми строками.

    При запуске logcat можно указать формат вывода используя параметр -v:
    adb logcat [-v

    Источник

    Читайте также:  2гис для андроид без рекламы
    Оцените статью