[TOOL] imgRePackerRK -



Реп: (335)
imgRePackerRK
Утилита для распаковки/запаковки образов прошивок RockChip (*.img)


Версия 1.06 windows&linux Прикрепленный файлimgRePackerRK_106.zip ( 176.25 КБ )

Назначение:
Распаковка для внесения изменений и последующей запаковки образов прошивок формата RockChip. Также можно использовать для исправления контрольных сумм md5 и RockChip CRC.

Возможности:
- распаковка и запаковка RKFW-образов (описание формата) прошивок (с/без обработки файлов 2-го слоя);
- распаковка и запаковка RKAF-образов (описание формата) прошивок (с/без обработки файлов 2-го слоя);
- распаковка и запаковка файлов 2-го слоя; поддерживаются: Android boot image (04), RockChip bootloader image (15), gzip/cpio archive file (14), cpio_ascii_new archive file (19), Rockchip resources image (30).
- проверка и исправление контрольных сумм md5 и RockChip CRC.

Проверено на прошивках:
- RK28xx (ChipID=0xXXXXXX21);
- RK29xx (ChipID=0xXXXXXX5X);
- RK30xx (ChipID=0xXXXXXX6X);
- RK31xx (ChipID=0xXXXXXX7X);
- RK32xx (ChipID=0xXXXXXX8X);
- RK33xx (ChipID=0xXXXXXX4X).

Использование утилиты

Примечание:
Для распаковки/запаковки gzip/cpio файлов Windows-версия утилиты использует внешнюю библиотеку zlib1.dll (http://www.zlib.net/) и собственный упрощенный алгоритм распаковки/запаковки cpio (впрочем, аналогичный, судя по результату, оригинальному). Linux-версия использует вызов внешних нативных утилит gzip/gunzip и cpio (поэтому простая перепаковка без изменений не дает прямого совпадения полученной прошивки).
Используемые коды обозначения типов файлов:
-1 - не определено;
00 - Unknown;
04 - Android boot image;
06 - ext3 image;
11 - RockChip KRNL signed file;
12 - RockChip PARM signed file;
14 - gzip/cpio archive file;
15 - RockChip bootloader image;
16 - ext4 image;
17 - cpio_bin_odc archive file;
18 - cpio_ascii_odc archive file;
19 - cpio_ascii_new archive file;
20 - cpio_ascii_crc archive file.

Состав архива:
1. imgRePackerRK.exe - Windows-версия.
2. zlib1.dll - библиотека поддержки gzip-файлов для Windows-версии.
3. imgrepackerrk - Linux-версия.
4. ReadMe.txt - этот файл.
5. ReadMe_utf8.txt - то же самое в кодировке UTF-8.

Special thanks:
Jean-loup Gailly & Mark Adler for zlib library (http://www.zlib.net/)

Change log и старые версии
1.06 [W&L] (03.05.2017)
+ добавлена поддержка формата RockChip uboot;
+ добавлен метод DirtyBlk;
+ поддержка старого формата RKFW;
+ поддержка RK???? (ChipID=0x00000021);
+ поддержка RK33xx (ChipID=0x00000041);
+ при неопределенном в parameters размере файла устанавливаем в прошивке 0;
+ создание файлов с размером = 0;
+ проверка/пропуск BOM;
+ добавлено определение OS;
+ добавлен ключ /rmd4;
~ улучшен алгоритм чтения bcpath и lname;
~ мелкие улучшения.
1.05 [W&L] (10.08.2015) Прикрепленный файлimgRePackerRK_105.zip ( 153.68 КБ )
~ использование WinAPI для создания каталогов;
+ поддержка формата Rockchip resources image;
+ поддержка RK32xx (ChipID=0x00000080);
+ добавлен ключ /symb;
+ добавлен ключ /bcpath;
+ добавлен ключ /lname;
+ создание конфигурационных файлов для RKAndroidTool v.1.xx/2.xx;
+ проверка "пересечений" разделов и "дырок" между ними;
+ сравнение длины файлов с размером раздела.
1.04 [W&L] (17.02.2014) Прикрепленный файлimgRePackerRK_104.zip ( 132.86 КБ )
+ распаковка/запаковка "одиночно стоящих" PARM-signed файлов;
~ изменен алгоритм распаковки KRNL-signed файлов (отрезаем "лишнее");
~ усовершенствован алгоритм автоматической коррекции ошибки описания размера области, отведенной под отдельные файлы;
- удален ключ /blk;
+ мелкие улучшения.
1.03 [W&L] (21.01.2014) Прикрепленный файлimgRePackerRK_103.zip ( 131.45 КБ )
~ исправлен баг проверки symlink-ов с абсолютными путями (CPIO);
+ добавлена автоматическая коррекция ошибки описания размера области, отведенной под отдельные файлы;
+ добавлен ключ /blk;
+ добавлен ключ /cid.
1.02 [W&L] (03.10.2013) Прикрепленный файлimgRePackerRK_102.zip ( 130.35 КБ )
~ исправлен баг с распаковкой/запаковкой "одиночно стоящих" KRNL-signed образов.
1.01 [W&L] (01.10.2013) Прикрепленный файлimgRePackerRK_101.zip ( 130.15 КБ )
+ добавлена поддержка формата nongzipped cpio_ascii_new archive file;
+ добавлен ключ /skip.
1.00 [W&L] (06.09.2013) Прикрепленный файлimgRePackerRK_100.zip ( 125.34 КБ )
! Release;
+ добавлена поддержка формата gzip/cpio archive file;
+ добавлена поддержка формата cpio_ascii_new archive file;
~ оптимизированы некоторые участки кода;
- удален ключ /inter;
- устранены мелкие ошибки в коде;
+ мелкие улучшения.
0.95 [W&L] (26.05.2013) Прикрепленный файлimgRePackerRK_095.zip ( 57.5 КБ )
! pre-Release #5;
+ добавлена поддержка формата RockChip bootloader image.
0.94 [W&L] (17.05.2013) Прикрепленный файлimgRePackerRK_094.zip ( 51.52 КБ )
! pre-Release #4;
+ добавлен ключ /2nd;
+ добавлена поддержка формата Android boot image.
0.93 [W&L] (29.04.2013) Прикрепленный файлimgRePackerRK_093.zip ( 38.54 КБ )
! pre-Release #3.
0.92 [W&L] (21.04.2013)
! pre-Release (for internal use)
Известные проблемы, ожидающие решения
Описание форматов прошивок и составляющих файлов

Альтернативная ссылка для скачивания

Сообщение отредактировал RedScorpio - 03.08.17, 15:12



Реп: (19)
And_pda @ 14.09.2013, 12:48 *
Второй вопрос - тебе случайно не встречался хеш размером в 256 байт ?

Таких хешей не существует. Собственно на сегодняшний день даже SHA512 имеет чрезвычайно избыточный размер - сложность поиска коллизии брутфорсом 2^256. Это будет неподвластно ни суперкомпьютерам, ни спец. аппаратам ещё как минимум лет 50 (если не появятся подходящие квантовые компьютеры).
256 байт - это больше похоже на полноценную ЭЦП. Иначе говоря, не зная секретного ключа её не рассчитать.

Добавлено 20.09.2013, 19:17:

RedScorpio, хочу попытаться скормить Вашей утилите файлы от распакованной прошивки Huawei Mediapad 7 Youth и прошить через RKBatchTool. Судя по всему, должно получиться. Но раскирпичить если что будет не просто :)



Реп: (335)
int0ah,
Собираетесь в случае неприятностей обвинить утилиту? :-)



Реп: (19)
Тогда уж Вас лично, во всех смертных грехах :-)



Реп: (1)
Какого уровня сложности программа? И есть ли какая-нибудь инструкция к работе?



Реп: (10)
sentetsu @ 04.10.2013, 23:49 *
Какого уровня сложности программа? И есть ли какая-нибудь инструкция к работе?

Под windows Утилита для распаковки/запаковки образов прошивок RockChip (*.img) проще + инструкция тут Pipo Max M9 Pro - Официальная прошивка (OS 4.2.2) (Пост #25548139)

Сообщение отредактировал ledba - 05.10.13, 04:47



Реп: (335)
sentetsu @ 04.10.2013, 23:49 *
Какого уровня сложности программа? И есть ли какая-нибудь инструкция к работе?

Проще некуда, даже инструкции не требуется. Все описание работы - в файле ReadMe.txt
Если кратко:
imgRepackerRk.exe прошивка - распаковываем
imgRepackerRk.exe прошивка.dump - запаковываем
Если нужно распаковывать и внутренние образы
imgRepackerRk.exe /2nd прошивка - распаковываем
imgRepackerRk.exe /2nd прошивка.dump - запаковываем

ledba @ 05.10.2013, 05:42 *
проще

Чем проще? :-)

Сообщение отредактировал RedScorpio - 05.10.13, 13:24



Реп: (461)
RedScorpio,
А если только boot.img перепаковать?
imgRepackerRk.exe /04 boot.img ?????? выход:boot.img.unkrnl.dump что я делаю неправильно?????
и как запаковать?

А конкретно нужно вот этот файл перепаковывать:Прикрепленный файлboot.img ( 3.34 МБ )
подозреваю что он .cpio.gz

Сообщение отредактировал vmkogeretla - 13.10.13, 16:26



Реп: (335)
vmkogeretla,
Правильная команда
imgRepackerRk.exe boot.img
vmkogeretla @ 13.10.2013, 17:19 *
подозреваю что он .cpio.gz

Бегло посмотрел: в файле - не обычный gzip/cpio (когда выходной поток cpio подается на вход gzip), а файл initramfs.cpio (cpio), упакованный потом в zip. Я не рассчитывал на перепаковку созданного "кривыми" инструментами, поэтому еше не знаю, стоит ли поддерживать такое.



Реп: (461)
RedScorpio,
Кривое конечно не стоит, а как правильно перепаковать в gzip/cpio (когда выходной поток cpio подается на вход gzip), могу извлечь cpio, а вот его как правильно упаковать?
Прикрепленный файлlinuxium-boot-work.img ( 3 МБ )

А теперь не криво?

Сообщение отредактировал vmkogeretla - 14.10.13, 10:19



Реп: (335)
vmkogeretla @ 14.10.2013, 09:15 *
А теперь не криво?

Теперь "прямо" :-)



Реп: (62)
Спасибо за тулзу. Не программер, а интересующийся. Распаковал прошивку чисто ради интереса и посмотреть что там да как от ibasso dx50. Теперь можно заменить анимацию зарядки батареи бгг) но что-то боюсь кирпич получить, глубоких то знаний нет. Автору спасибо за труд! :thank_you:



Реп: (81)
RedScorpio, спасибо и за утилиту и за документирование подробное! очень много вопросов снимает просто изучение этой темы.

Напишите, еще, пожалуйста, как Вы детектите файл второго уровня и его файловую систему (с "разблюдовкой" по заголовкам побайтово) если не затруднит. Хочу смонтировать образ 2го уровня под Windows, походить по нему :)
Или там уже готовый образ файловой системы, без внешней обертки?



Реп: (335)
df.df @ 04.11.2013, 01:47 *
Хочу смонтировать образ 2го уровня под Windows, походить по нему :)
Или там уже готовый образ файловой системы, без внешней обертки?

Везде по-разному. Но если утилита сообщила формат ФС, то она уже все "ободрала"



Реп: (22)
RedScorpio,
а что по поводу версии для osx? или исходники?



Реп: (335)
pixelwise @ 09.11.2013, 21:43 *
а что по поводу версии для osx? или исходники?

Не на чем компилировать. Исходников не будет (по крайней мере, не планируется)



Реп: (10)
RedScorpio,
а посмотреть img-прошивки под платформу RKNano можете ? Заголовок RKFW, ссылки на прошивки могу накидать.



Реп: (335)
Songs0fFailure,
"Посмотреть" - это означает "не распаковывается, а равспаковщик нужен"?
RKNano -это какой ChipID?



Реп: (10)
RedScorpio @ 23.12.2013, 06:38 *
"Посмотреть" - это означает "не распаковывается, а равспаковщик нужен"?

Ага. ChipID 0x00000030
Оп. Оказывается для nano есть rkboottool, нужно скомпилить проверить.
https://github.com/Rockbox/rockbox/tree/master/utils/rknanoutils/rkboottool
upd. работает :)

Сообщение отредактировал Songs0fFailure - 29.12.13, 20:05



Реп: (5)
RedScorpio, ROM новый попался с андроид 4.4.2, ваша утилита его не переваривает.
образ тут http://pan.baidu.com/s/1PtXc
есть предыдущая, тестовая 4.4.2 - с ней все работает как часы.
вот логи от двух типов распаковок одной прошивки и файлы, которые получились из этого
http://rghost.ru/51662905
сможете подсказать в чем дело?

Сообщение отредактировал kruvas - 15.01.14, 08:48



Реп: (335)
kruvas @ 15.01.2014, 09:48 *
ROM новый попался с андроид 4.4.2, ваша утилита его не переваривает.

На первый взгляд - очень странная прошивка.
Например, для первого же файла:
2014.01.15 09:26:44 .DEBUG. File[0].Name = "package-file"
...
2014.01.15 09:26:44 .DEBUG. File[0].ImgFSize = 0x00000001
2014.01.15 09:26:44 .DEBUG. File[0].OrigFSize = 0x00000241

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


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 28.03.24, 15:52