Allwinner android 10 unpacker

«Ublaze.ru» — клуб любителей

КПК и спутникового ТВ

Распаковка и запаковка img прошивок Allwinner

LiveSuit kitchen ublaze.ru for Linux — кухня под Linux для распаковки и запаковки img прошивок Android для Allwinner.

Что можно делать в кухне:

1. Разбирать/собирать прошивку.
2. Распаковка разделов nanda (bootfs), nandc (root), nandd (system), nandg (recovery).
3. Запаковка тех же разделов.
4. Конвертация script.bin в script.ini и наоборот.

Что нам потребуется:

  • Кухня — скачать можно здесь (скачать бета версию кухни)
  • 64-х (x86_64) битный дистрибутив Porteus-4.0 — русский репозиторий от Blaze, включающий в себя локализованные образы: LXDE, LXQT, OPENBOX, KDE5, CINNAMON, MATE, XFCE (для архитектур i586 и x86_64).
  • Root права — в терминале введите su и пароль toor для активации root аккаунта
  • модуль compat32-libraries-3.0-x86_64-1sl.xzm

Скачайте образ (лучше скачивайте CINNAMON, XFCE или MATE) 64-х битной версии (x86_64) дистрибутива Porteus-4.0 (UNIX система базирующаяся на Slackware, представляет собой LiveCD, USB ОС) из репозитория Blaze.

В образ Porteus можно сразу добавить модуль compat32-libraries-3.0-x86_64-1sl.xzm. Для этого откройте образ Porteus с помощью программы UltraISO зайдите в директорию /porteus/modules/. Скачайте и перетащите туда модуль compat32-libraries-3.0-x86_64-1sl.xzm. Сохраните изменения в образе. Так же, можете скачать дополнительный софт для Porteus от сюда.

С помощью UltraISO запишите образ Porteus на CD или DVD болванку (лучше записать на USB-флешку, для этого с помощью WinRar извлеките образ Porteus на флешку, зайдите в папку boot и запустите Porteus-installer-for-Windows.exe и в биосе выставите загрузку с USB). В Bios-e компьютера выставите загрузку с CD/DVD дисковода. Вставьте диск с записанным дистрибутивом Porteus. Включите компьютер, после чего должна начаться загрузка Porteus. Более подробно как установить Porteus читайте здесь.

Зайдите на локальный диск D он же /mnt/sda5 (если не активировали модуль compat32-libraries-3.0-x86_64-1sl.xzm — активируйте его в Porteus) — откройте на рабочем столе Домашнюю папку и извлеките в корень домашней папки содержимое архива livesuit_kitchen_ublaze.ru.tar.bz

В распакованную папку livesuit_kitchen_ublaze.ru скопируйте прошивку и переименуйте ее в original.img

Запустите терминал Porteus и введите:

где livesuit_kitchen_ublaze.ru путь до кухни

Распаковываются разделы в папку _temp там их можно модифицировать и делать все что угодно.

Источник

Запуск Linux на планшете с SoC Allwinner A10 на борту

Предыстория

Приобрел я себе планшет на SoC Allwinner A10 (sun4i — кодовое название процессора AllWinner A10 ARMv7-A архитектуры семейства Cortex ядро A8). Сначала игрался с ним на Android 2.x потом на 4.x, но со временем мне стало этого мало. Да еще начали выпускать миникомпьютеры на основе этой SoC с Linux на борту. Я подумал: «Хм, а чем мой планшет хуже?» и занялся делом. Как оказалось, за меня уже все сделали, и дела делать не пришлось:

  1. Ядро оптимизировали для данной платформы
  2. Загрузчик оптимизировали к этой платформе
  3. Вышел новый порт debian armhf.

Осталось только все это дело сконфигурирован и собрать.

Среда

Система — ArchLinux x86-64. Где найти и как устанавливать окружение для сборки описывать не буду, в интернете и так достаточно этой информации. Да и большинству это не зачем, я приложу все необходимое собранным.
«Кухня» у меня такая:

  • qemu-user-static — чтобы можно было chroot’иться в rootfs, в репах не было, пришлось из репозитория debian доставать и собирать свой пакет. Все это дело необходимо для запуска arm elf исполняемых файлов на машине с другой архитектурой, в данном случае — на моей.
  • gcc version 4.6.1 (Sourcery CodeBench Lite 2011.09-70) — Кросскомпилятор GCC ARM. Может и старый, но не подводит пока меня. Вам же советую поставить свеженький кросскомпилятор от linaro.

Процесс загрузки SoC

Т.е. Загрузка начинается с SD карты, если там нету загрузчика, продолжается с NAND Flash.
Согласно документации к загрузчику allwinner-uboot структура SD карты должна выглядеть таким образом:

начало размер описание
0 8KB Unused, available for partition table etc.
8 24KB Initial SPL loader
32 512KB u-boot
544 128KB environment
672 352KB reserved
1024 Free for partitions
Сборка u-boot

Собирать не обязательно, sun4i-spl.bin u-boot.bin можно скачать здесь.

Собираем uboot-allwinner:

Запись загрузчика

Внимание, будьте осторожны, не перепутайте устройство SD карты с другими носителями. Если вы не понимаете того, что делаете, то лучше не делайте.
$ — переменная устройства, можно заменять вручную, можно перед выполнением прописать:

Разбиваем MicroSD накопитель

Внимание, в результате операции данные на MicroSD накопители будут утеряны, сохраните все необходимое в надежное место.

  • Нам нужно создать два раздела обязательно.
  • Первый раздел — раздел с файлом конфигурации железа (evb.bin) и ядром (uImage). Должен начинаться с 2048 сектора, быть размером 32MB-100MB и иметь файловую система FAT ( тип раздела FAT) либо ext2/3 ( тип раздела 83 ).
  • Второй раздел — раздел rootfs, собственно вся система, размер раздела желательно сделать в пределах 1GB-4GB, файловая система строго ext4, тип раздела — 83.
  • Можно сделать еще swap раздел, по желанию.
  • Оставшееся место используете для себя. Я создал раздел для своих данных, можно примонтировать в /home/
Читайте также:  Кто появился раньше андроид или айфон

Вот, как я разбил свою 16GB карточку:

Согласно пунктам, описанным выше, разбиваем MicroSD накопитель.
Я, надеюсь, те, кто пользуется linux, умеет использовать fdisk.

Форматируем:

Монтируем в нужное место:

Сборка ядра

Ядро можно не компилировать, я приложил снизу готовое ядро с модулями.

Вместо gconfig можно использовать на вкус xconfig(qt интерфейс) или menuconfig (консольный интерфейс). Не забываем включить необходимые драйвера в ядро а также необходимые вам фичи. Читайте подсказки к параметрам.
Советую не забыть про модули тачскрина и фс(fat, ntfs).

Аргумент -j задает количество одновременных потоков компиляции. Опытным путем установлено, что потоков должно быть на единицу больше, чем ядер в процессоре.
Флаги оптимизации взяты из cтатьи ValdikSS. Честно говоря, ядро с ними скомпилировалось. Но я пока не устанавливал его на SD флеш карту.

Установка rootfs

Как загружать с помощью debootstrap начальную rootfs описывать не буду, так как это достойно еще одной статьи. Я лучше прикладу готовую rootfs Debian Wheezy ARMHF, а вы пользуйтесь.
Rootfs необходимо распаковать с сохранением атрибутов на второй раздел SD, так как таким образом сконфигурирован по умолчанию u-boot (про конфигурациию можно почитать здесь.
Качаем Debian Wheezy Rootfs и распаковываем:

Кстати, здесь есть и модули к ядру 3.0.36+. Также имеется lxde, slim с автозагрузкой пользователя user, network-manager, nm-applet стартует при старте сессии. Тачскрин работает в режиме тачпэда.
Есть вероятность, что все необходимые модули подгрузит udev, но для уверенности их можно прописать в /mnt/sun4i-rootfs/etc/modules. Список необходимых модулей можно получить в AndroidOS через TerminalEmulator :

Настройка загрузки linux

Качаем архив с содержимым первого boot раздела.
И извлекаем файл конфигурации evb.bin в /mnt/sun4i-boot из архива.

Если вы не собирали ядро, то собранное ядро 3.0.36+ можно тоже извлечь:

Запуск

Все, пожалуй, готово. Мы установили систему на SD накопитель. Вставляем MicroSD карточку в картоприемник планшета и включаем его. Через 5 сек после включения должна засветиться подсветка, экран останется черным. Через несколько миинут должна загрузиться вся система.
Помните, пароль по умолчанию для root — root, для user — user. Советую изменить их.
Если у вас нет usb клавиатуры, то в rootfs предустановлена виртуальная клавиатура.
Подключаемся к wifi сети, или используем USB Ethernet адаптер и с помощью nm-applet подключаемся к сети. Сразу же можно подключиться через ssh.
Запускаем lxterminal и доставляем необходимый софт.

Возможные проблемы

и прописать его /mnt/sun4i-rootfs/etc/modules.

Заключение

Таким образом я запустил linux на своем планшете MOMO9. Система пока не настроена до конца, не мешало бы настроить тот-же laptop-mode и доставить необходимые пакеты. Времени было потрачены не мало. Но зато, собрав так систему «почти» с нуля, сразу начинаешь понимать, как работает данная ОС. Еще пополняется словарный запас специальной английской лексики, что тоже не плохо.

Вот скриншот снятый на самом устройстве с помощью утилиты import из пакета MagickImage.


Снимал на камеру телефона, другого под рукой не оказалось, так что извините.

И конечно же, я не несу никакой ответственности за то, что вы натворите у себя на ПК, за порчу оборудования. Делайте все с пониманием дела. Не перепутайте устройство SD ридера с винчестером либо другим устройством.

Источник

Allwinner android 10 unpacker

Что нам потребуется:

  • A10 flash kitchen v2 — для извлечения и создания финального образа прошивки обсуждения на XDA .
  • Заводская прошивка (необходимо найти под свой планшет) или подходящая прошивка.
  • Linux image tools — для извлечения и создания разделов образа прошивки.
  • Текстовый редактор Sublime Text 2 с поддержкой Unix line endings, не используйте Блокнот. Можно так же использовать Notepad++
  • 64-х битный дистрибутив Porteus с root правами и рабочей средой KDE4 — cобрать можно здесь
  • Модуль compat32-libraries-2.0-x86_64-1hz.xzm

Извлечение IMG файла прошивки (шаг 1 — операции в Windows)

Распакуйте a10_flash_kitchen_v2.zip, например на локальный диск D Вашего ПК.
Внутри вы найдете packer_gbи packer_ics. packer_ics предназначен для Android ICS, то что нам и нужно.

Откройте папку packer_ics и вы заметите кучу каталогов и пару .bat файлов. Мы проведем много времени в этих каталогах.

Распакуйте архив с заводской прошивкой, которую вы скачали ранее и скопируйте img файл, заранее переименовав его в original.img, в директорию D:\a10_flash_kitchen_v2\packer_ics

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

Откройте каталог _extract в данной директории будут находится все извлеченные файлы. Нас будут интересовать следующие три файла: RFSFAT16_BOOT_00000000000.fex (the boot partition), RFSFAT16_RECOVERY_0000000.fex (the recovery partition), RFSFAT16_SYSTEM_000000000.fex (the system partition, ext4 sparse).

Заметка и предупреждение. Некоторые системы могут также иметь RFSFAT16_BOOTLOADER_00000.fex, который также может потребоваться для вашего устройства, чтобы правильно его загрузить. Для этого просто переименуйте RFSFAT16_BOOTLOADER_00000.fex в bootfs.fex и затем скопируйте bootfs.fex в a10_flash_kitchen_v2\packer_ics\_input

Читайте также:  Черные смайлики для андроид

Для разбора RFSFAT16_BOOTLOADER_00000.fex делаем следующее
Скопируйте RFSFAT16_BOOTLOADER_00000.fex в папку custom image

В консоли Porteus выполните следующие команды:


сделайте необходимые изменения в папке b2, например замените script.bin. Затем скопируйте содержимое папки b2 в _bootfs
(D:\a10_flash_kitchen_v2\packer_ics\_bootfs или /mnt/sda5/a10_flash_kitchen_v2/packer_ics/_bootfs/ что одно и тоже)

Извлечение, модификация и создание разделов (шаг 2 — операции в Linux)

Скачайте 64-х битную версию дистрибутива Porteus.org (UNIX система базирующаяся на Slackware, представляет собой LiveCD, USB ОС).
Так как пример будет продемонстрирован в рабочей среде KDE4, желательно в сборке выбрать KDE4. В Advanced options, выберете по умолчанию пользователя Root в пункте ‘Click on the button for the user who will be logged in by default to the GUI’. Нажмите кнопку BUILD. Скачайте образ Porteus.

Можете его русифицировать и сразу добавить модуль compat32-libraries-3.0-x86_64-1sl.xzm . Для этого откройте образ Porteus с помощью программы UltraISO зайдите в директорию /porteus/modules/
Скачайте и перетащите туда модуль 0010-locales-ru-utf8-noarch-0c.xzm , а так же модуль compat32-libraries-3.0-x86_64-1sl.xzm
Так же, если Вам необходимо , можете скачать шрифты Microsoft, поместив модуль Fonts_MS_TTF-1​.xzm и другой русский софт вы можете найти здесь ( зеркало ). Сохраните изменения в образе.

Запишите образ Porteus на CD или DVD болванку (можно так же записать на флешку, с помощью UltraISO извлеките образ Porteus на флешку, зайдите в папку boot и запустите Porteus-installer-for-Windows.exe и в биосе выставите загрузку с USB) с помощью UltraISO или Nero. В Bios-e компьютера выставите загрузку с CD/DVD дисковода. Вставьте диск с записанным дистрибутивом Porteus. Включите компьютер, после чего должна начаться загрузка Porteus.

Зайдите на локальный диск D (если не активироали модуль compat32-libraries-3.0-x86_64-1sl.xzm — активируйте его в Porteus) — откройте на рабочем столе Домашнюю папку и создайте там папку custom image

В левой колонке откройте путь /mnt/sda5/a10_flash_kitchen_v2/packer_ics/_extract/

Скопируйте файлы RFSFAT16_BOOT_00000000000.fex, RFSFAT16_RECOVERY_0000000.fex, RFSFAT16_SYSTEM_000000000.fex в папку custom image

и переименуйте эти файлы в

согласно скриншоту:

Скопируйте ранее скаченный tools.tar.gz в папку custom image

Распаковываем архив tools.tar.gz в папку custom image, должна появится папка tools

Разборка и сборка раздела Boot

Запустите консоль (Console) Porteus и введите следующие команды:

Далее создаем поддиректорию ramdisk следующими командами:

Теперь вы можете изменять файлы по мере необходимости. Например, отредактировать файл init.sun4i.rc (в зависимости от модели планшета, в имени данного файла вместо 4, может быть 5 или 7), добавив загрузку своего модуля , строкой:

Разборка и сборка раздела Recovery

Чтобы извлечь раздел с Recovery, выполните следующие команды:

Измените файлы по мере необходимости и затем запакуйте Recovery в образ с помощью следующих команд:

Разборка и сборка System раздела

Выполните следующие команды:

По мере необходимости можете изменить, что-то добавить или удалить. Затем запакуйте System в образ с помощью следующих команд:

Теперь перейдите в папку custom image — вы увидите три новых файла new-boot.img, new-recovery.img, new-system.fex

Теперь можете запустить Windows. Скопируйте эти файлы в D:\a10_flash_kitchen_v2\packer_ics\_input (кроме тех 3 файлов, не забудьте скопировать файл bootfs.fex)

Создание нового образа прошивки (шаг 3 — операции в Windows)

Переименуйте данные файлы в

Теперь нам нужно внести некоторые изменения в файл конфигурации образа. Перейдите в каталог files и найдите файл image.cfg

Откройте этот файл с помощью текстового редактора Sublime Text 2 или Notepad++. Обычным Блокнотом можно испортить этот файл. Найдите две строки, которые ссылаются на OEM и VOEM

Закомментируйте эти строки, добавив ; в начале каждой строки. Не делайте никаких других изменений. Как только вы сделали изменения — Сохраните файл.

Перейдите обратно в каталог packer_ics и запустите бат файл create_image.bat

Когда все будет завершено, Вы уведите надпись ‘ Для продолжения нажмите любую клавишу . . .‘, нажмите любую клавишу, после чего в директории D:\a10_flash_kitchen_v2\packer_ics должен появится новый образ с именем output.img

Им можете прошить свой планшет, например с помощью LiveSuit

Распаковка и запаковка img прошивок Android для Allwinner

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

Так же Вам необходима прошивка, в которой вы будете редактировать Init.rc File. В DragonFace нажмите кнопку Firmware, выберете прошивку.
Зайдите в Advanced Settings — нажмите кнопку Init.rc File и пропишите или замените в открывшемся окне строку на

Сохраните изменения, нажав Да. После чего нажмите кнопку Save. Сохраните img образ. Прошейте планшет.
Прочитайте пункт — Что необходимо сделать до прошивки.
Скопируйте модуль здесь_имя_модуля.ko, который прописали в файле Init.rc в папку /vendor/modules/ с помощью Total Commander и плагина ADBplugin.

Не забываем отредактировать script.bin через DragonFace. Жмем Firmware, открываем прошивку, заходим в Advanced Settings > System configuration
редактируем что нужно, например секцию тача [ctp_para], жмем Save, прошиваем планшет отредактированной прошивкой.
Желательно иметь заводской script.bin, чтобы было из чего копировать.

Сделайте резервную копию script.bin с рабочего планшета. Для этого скачайте программу Uberizer 1.8
Описание опций Uberizer:

Важное дополнение! этот DragonFace не обновляйте, иначе прошивка при сохранении будет испорчена и после такой прошивки планшет уйдет в вечную загрузку.

Как у меня получилось отредактировать и нормально загрузить исправленную прошивку:
Запускаем дракона открываем прошивку, жмем кнопку » export» внизу, указываем куда выгрузить файлы (Выгрузит папку с нужными файлами и файл *.law со ссылкой на эту папку).

Читайте также:  Как сбросить пароль андроид 4pda

Дальше редактируем то что нам нужно (дракона не закрываем) исключительно через Nоtepad++ (остальным прошивка портится).
В распакованной папке мы увидим и сможем отредактировать в Notepad++:

Вообще вся прошивка полностью распаковывается внутри папки DragonFace , например внутри ПапкаDragonFace\fsop\system\vendor\modules\ увидим все модули (*.ko) из текущей прошивки — их можно заменить, удалить.

После всех изменений в драконе жмем кнопку » import» указываем наш файл *.law
Сохраняем прошивку кнопка » save«. При таких танцах исправленная прошивка потом нормально грузится в планшет, и тот работает

Спасибо пользователю rlest за столь подробное дополнение.

Распаковка и запаковка img прошивок Android для Allwinner

  • Для бэкапа script.bin воспользуйтесь dumpbootfs.rar после чего можно будет его перевести в script.fex и отредактировать (см. ниже пункт — Как перевести script.bin в script.fex и обратно в script.bin).
  • Для загрузки script.bin обратно в планшет воспользуйтесь lcdconfig.rar — для этого скопируйте script.bin в папку lcdconfig и два раза нажмите lcdconfig.exe

Распакуйте папку Bin2Fex например на локальный диск C вашего компьютера
Скопируйте в данную папку script.bin или script0.bin (переименуйте в script.bin)
и с помощью командной строки cmd (запускать от имени администратора) выполните команды

Распаковка и запаковка img прошивок Android для Allwinner

Распаковка и запаковка img прошивок Android для Allwinner

Распаковка и запаковка img прошивок Android для Allwinner

Распаковка и запаковка img прошивок Android для Allwinner

Распаковка и запаковка img прошивок Android для Allwinner

Пример для Windows.

Скачиваете imgRePacker_205.7z , распаковываете на локальный диск D папку imgRePacker (название строго такое), в эту же же копируете IMG прошивку.
Запускаете от имени Администратора командную строку cmd и вводите следующие команды:

После чего прошивка должна распаковаться в папку imgRePacker

Для запаковки прошивки:

Назначение:
Распаковка для внесения изменений и последующей запаковки образов прошивок формата LiveSuit и PhoenixSuit (утилиты для прошивки устройств на чипах от Allwinner и их аналогов).
Изначально утилита создавалась для устройств на чипах SC9800/8600; по функционалу повторяет набор утилит SoChip Modding Tools от китайского коллеги esxgx с дополнениями (заменами) от RedScorpio и расширяет его возможности.

Отличия (они же преимущества):
— утилита All-in-one;
— автоматическое определение формата образа прошивки (LiveSuit/PhoenixSuit);
— автоматическое распознание структуры прошивки для определения порядка действий;
— создание блока [FILELIST] файла конфигурации *.cfg (возможно использование в упаковщике от производителя dragon);
— автоматическое извлечение образов дисков (условие: zdisk или описан в блоке [down_num] файла sys_config.fex);
— восстанавливаются (и используются при упаковке) все исходные файлы прошивки;
— существенно меньше;
— заметно производительнее.

Поддерживаются прошивки устройств на чипсетах (известные мне):
— Sochip SC8600/SC9800 (LiveSuit/zdisk);
— Boxchip F10/F15/F16/F20 (LiveSuit/zdisk);
— Teclast T7200/T8100 (LiveSuit/zdisk);
— Allwinner F10/F13/F18 (LiveSuit/zdisk);
— Allwinner F1C100/F1E200 (LiveSuit);
— Allwinner A10/A13/A10s (LiveSuit);
— Allwinner A31 (PhoenixSuit).

Использование:
» imgRePacker.exe [options] .img» — распаковка (Windows)
» imgRePacker.exe [options] .img.dump» — запаковка (Windows)
» ./imgrepacker [options] .img» — распаковка (Linux)
» ./imgrepacker [options] .img.dump» — запаковка (Linux)

Опции (в скобках указано имя в ini-файла и значение по умолчанию):
/log — создавать log-файл (log = 0);
/debug — писать отладочную информацию, работает только с опцией /log (debug = 0);
/quiet — отключить вывод в консоль (quiet = 0);
/old — использовать модифицированный старый метод распаковки/запаковки (old = 0);
Примечание:
В новом методе (используется с версии 2.00win/1.00lin) распаковка/запаковка идет полностью в памяти. Это позволило уменьшить количество операций чтения/записей на HDD, но привело к невозможности работать с прошивками большого размера (ограничения по выделению памяти отдельному процессу).
Модифицированный старый метод уменьшает количество потребляемой памяти, но увеличивает количество операций ввода/вывода.
Режимы переключаются автоматически при превышению размера образа прошивки значения memsize в ini-файле (по умолчанию = 200МБайт; максимальное значение 2ГБайта — 1Байт).
/noiso — не формировать при распаковке/не использовать при запаковке образы файловых систем прошивки (noiso = 0);
/unimg — режим совместимости с утилитой unimg — формируются RAW-файлы прошивки (unimg = 0);
/8600 — запаковывать в формате старых прошивку SC8600 — не используется файл конфигурации, другие параметры для формирования ZDisk (8600 = 0);
/smt — zdisk.img запаковывался с использованием SMT — некорректный размер файла в заголовке; используется при распаковке (smt = 0);
/latin — заменять нелатинские символы в путях к файлам прошивки; используется при распаковке (latin = 0);
/skip — пропустить проверку размера файла образа прошивки; используется при распаковке (skip = 0);
/mono — включить монохромный режим (mono = 0);
/ini — перезаписать ini-file с опциями из командной строки ();
Примечание:
Опции командной строки всегда имеют приоритет выше, чем заданные ini-файлом.

Состав архива:
1. imgRePacker.exe — Windows-версия.
2. imgrepacker — Linux-версия.
3. runner.bat — командный файл для распаковки образов прошивок SoChip SC9800/8600 и их аналогов (BoxChip, Teclast) от losber (требует установки UltraISO).
4. lzma.exe — архиватор LZMA.
5. ReadMe.txt — этот файл.

ВНИМАНИЕ. Для распаковки и упаковки прошивок, имеющих в своем составе ZDisk (например, SC9800), требуется утилита LZMA (для Windows-версии imgRePacker; имеется в архиве) или XZ (для Linux-версии imgrepacker; должна быть предустановлена в системе).

Источник

Оцените статью