Чем открыть файл img прошивки android

Чем открыть файл img прошивки android

Обработка (распаковка и сборка) прошивок и образов (*.img, *.bin) строго под WINDOWS

Эта тема создана для продолжения обсуждения и помощи в обработке различных образов под Windows.

Полезное
(Примеры, варианты, утилиты, кухни, скрипты, обработки разных образов)

AndImgTool (Android Image Tool)

AndImgTool версия 1.3.0 Обновлено: 30.12.2014 релиз и подробности тут
— Добавлена поддержка распаковки\запаковки x86 загрузочных образов (функционал перенесен из утилиты xImgTool)

— основная утилита для распаковки образов файловых систем типа system, userdata, cache, secro (расширение может быть любое, например img или ext4).
Поддерживаются следующие форматы файловых систем: EXT2\EXT3\EXT4\YAFFS2\CRAMFS, форматы структуры образов (обертки) SPARSE\SIN( 1, 2 и 3 версии)\MOTO, поддерживается конвертация образа файловой системы формата EXT4 из обертки SIN или SPARSE непосредственно в EXT4, реализован вывод информации о суперблоке для образов файловых систем, дальше будет развиваться именно эта утилита.

ImgExtractor версия 1.3.7 Обновлено: 13.02.2015 релиз и подробности тут
— добавлена поддержка распаковки образов SPARSE-Marvell для MOTO
— исправлено падение утилиты при распаковке образов содержащих файлы с символами «?»
— добавлена идентификация формата UBIFS и обертки MOTO внутри SPARSE формата
— добавлена конвертация образов из EXT3\EXT4 в SPARSE с разбиением на файлы меньшего размера

Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки android

Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки android

— утилита для распаковки\запаковки загрузочных образов (IMG, BIN) и контейнеров (INB, SZB, QSB ) для устройств на базе x86 Android Platform (Lenovo K900, Ramos i9, Asus ZenFone 4,5,6, ZTE Geek)

xImgTool версия 1.3.32Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidxImgTool_1_3_32.rar ( 40.86 КБ )
ОБНОВЛЕНО: 06.11.2014
— поддержка нового размера блока bootstub
— сохранение новых атрибутов в блоке размеров
— при распаковке контейнера QSB части, участвующие при объединении в один файл, сохраняются в отдельной папке в оригинальном виде (особенно касается образов system и userdata)

В связи с тем, что основной функционал кухни перешел в единую утилиту AndImgTool, не требующую для своей работы никаких дополнительных CYGWIN DLL, настоятельно рекомендую использовать для работы с загрузочными образами именно AndImgTool (для образов файловых систем есть единая утилита ImgExtractor), поскольку пересборок кухни больше не планируется.

24.02.2014 Обновлено
Утилита ImgExtractor

13.02.2014 ОБНОВЛЕНО
— Обновлена утилита ImgExtractor (текущая версия 1.3.1), использующаяся для распаковки system.img в форматах EXT2\EXT3\EXT4\SPARSE\YAFFS2\CRAMFS
— Исправлена проблема с правами (владельцем и группами) при сборке образов в формате YAFFS2 ( про обнаруженные проблемы и их решение можно прочитать тут и тут)
RKwinToolsMod версия 2.6 Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidRKwinToolsMod_v2_6.rar ( 6.38 МБ )

Источник

Чем открыть файл img прошивки android

Мною разработаны средства под различные типы чипов (микроконтроллеров), имеющих различие в строении образов. По мере поступления информации я буду выкладывать ее Вам в соответствующем разделе. В разделе «Дополнительная информация» будут находиться ссылки на заметки (статьи), ОБЩИЕ для всех чипов.

Используйте ее для общего ознакомления со средством, т.к. такая же находится в общем архиве.
Для варианта Pro: Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidREADME_Pro_1.2.rar ( 5.23 КБ )

или в pdf формате Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidRKwinTools_Pro_1.1.pdf ( 580.36 КБ )

Для стандартного варианта: Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidREADME_133.rar ( 7.58 КБ )

Вариант Pro: Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidRKwinTools_Pro_v1.2.rar ( 6.02 МБ )

Стандартный вариант: Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidRKwinTools_v133.rar ( 5.86 МБ )

Программа редактирования параметров файла Parameter перенесена в тему Разметка памяти мобильных устройств. Теория и практика.

Свежая версия для Win 7 Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidMTwinTools_v0.7.7z ( 3.43 МБ )

Свежая версия для ХР ( благодаря пользователю ANT__)Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidMTwinTools_v0.6.1_winxp.rar ( 4.16 МБ )

Инструкция пользователя (такая же имеется и в архиве со средством):Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidReadme_LenovoWinTools_v1.2.7z ( 5.24 КБ )

Для запуска используется командная строка вида:

AppImageMaker Чем открыть файл img прошивки android [sourceFile] [destPath], где

AppImageMaker d:\app\SR_APP_Update.app f:\qwerty

то файл SR_APP_Update.app из папки d:\app будет распакован в папку f:\qwerty.
Если не введен путь к конечной папке (папке назначения), то она создается в той же папке, где находится приложение AppImageMaker, с именем «update» по-умолчанию. Например, строка вида:

распакует указанный файл в папку с именем update, созданную рядом с приложением AppImageMaker.
Если не указать также путь и имя файла прошивки, то по-умолчанию для прошивки будет использоваться имя «Update.app». Например, если ввести строку вида:

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

У средства появились последователи, которые выпускают «модифицированные» под свои нужды варианты: And_pda

Распаковывает все (и симлинки тоже). Консольный вариант.
Об ImgExtractor
Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidImgExtractor_V1_1.rar ( 175.56 КБ )
Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidExt4Extractor_V1_5_2.rar ( 174.8 КБ )

Инструкция для пользователя Ext4Extractor
Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidExt4Extractor_V1_5.rar ( 174.81 КБ )
Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidExt4Extractor_v1_3.rar ( 174.65 КБ )

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

В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidпод сообщениями, на которые необходимо добавить ссылки.

Инструкция по добавлению пути в переменные среды Windows

ВНИМАНИЕ. Внесенные изменения начнут действовать без перезагрузки компьютера при следующем вызове командной строки или запуске файлового менеджера.

Итак,
Операционная система Windows XP x86.
На рабочем столе выбираем ярлык «Мой компьютер», кликнув на нем правой кнопкой мыши, вызываем контекстное меню и выбираем в нем команду «Свойства». Откроется окно «Свойства системы».
Выбираем вкладку «Дополнительно».
Внизу слева нажимаем кнопку «Переменные среды». Откроется окно «Переменные среды».
В области «Системные переменные» находим переменную «Path» и, выделив ее, нажимаем на кнопку «Изменить».
В поле «Значение переменной:» в конце дописываем путь к необходимой папке, отделяя его от существующего значения «точкой с запятой». Например, «;D:\Cygwin».
Нажимаем «ОК» для записи пути и последовательно закрываем все открытые окна.

Для начала я посмотрю устройство образа, а потом посмотрим, что нужно и можно сделать.

Автору респект и уважуха и +

writing boot image config in cfg/boot.cfg
extracting kernel in kernel/zImage.img
extracting ramdisk in ramdisk/initrd.cpio.gz

gzip: initrd.cpio.gz: not in gzip format
Не удается найти указанный файл.
Не удается найти C:\RKwinTools\Unpack\Boot\ramdisk\*.cpio

Если можете, посмотрите можно-ли с этим что-то сделать.
прикладываю boot.img и stackdump.
Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidboot.img ( 3.81 МБ )
Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidstackdump.zip ( 460 байт )

Пользуйтесь в свое удовольствие.

Источник

Редактирование img прошивок

Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки android

Все прошивки для планшетов на процессоре Allwinner имеют один и тот же формат img (IMAGEWTY).

После долгих поисков я все-таки нашел программу, которая позволяет разобрать и собрать прошивку для планшетов на базе Allwinner. Называется она unPacker

Перейдем непосредственно к разборке файла прошивки.

Разборка IMG файла

Для разборки потребуется:

Скачиваем архив и распаковываем. Запускаем программу unPacker.exe

Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки android

Перетаскиваем в это окно наш файл и ждем распаковки.

После окончания распаковки появится новая папка название «прошивки.img.dump»

Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки android

Редактирование файла system.fex

Для редактирования этого файла нужна nix система и утилита для конвертации, которую можно скачать здесь

Создаем в домашней директории папку в которой будем редактировать нашу прошивку. Назовем ее например NEW. Теперь распаковываем файлы из архива ext4_utils.zip в папку NEW. Запускаем терминал и набираем

Программа скомпилируется и мы получим инструмент для редактирования Sim2img. Теперь кладем в папку NEW наш файл system.fex и переименовываем его в sytsem.img

Вводим в терминале

./simg2img system.img output.img

И монтируем туда наш файл output

sudo mount output.img sys

Теперь в папке sys находятся файлы, которые можно редактировать. Например можно внести изменения в файл build.prop, которые улучшат работу системы.

Подробнее об изменениях в файле build.prop читайте здесь

После редактирования начинаем сборку

Полученный файл factoryfs_custom переименовываем в system.fex.iso

Примечание: можно аналогично редактировать и другие файлы образов (boot и bootloader)

Источник

Чем открыть файл img прошивки android

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

Версия 1.06 windows&linux Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidimgRePackerRK_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 (поэтому простая перепаковка без изменений не дает прямого совпадения полученной прошивки).

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

улучшен алгоритм чтения bcpath и lname;

мелкие улучшения.
1.05 [W&L] (10.08.2015) Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidimgRePackerRK_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) Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidimgRePackerRK_104.zip ( 132.86 КБ )
+ распаковка/запаковка «одиночно стоящих» PARM-signed файлов;

изменен алгоритм распаковки KRNL-signed файлов (отрезаем «лишнее»);

усовершенствован алгоритм автоматической коррекции ошибки описания размера области, отведенной под отдельные файлы;
— удален ключ /blk;
+ мелкие улучшения.
1.03 [W&L] (21.01.2014) Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidimgRePackerRK_103.zip ( 131.45 КБ )

исправлен баг проверки symlink-ов с абсолютными путями (CPIO);
+ добавлена автоматическая коррекция ошибки описания размера области, отведенной под отдельные файлы;
+ добавлен ключ /blk;
+ добавлен ключ /cid.
1.02 [W&L] (03.10.2013) Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidimgRePackerRK_102.zip ( 130.35 КБ )

исправлен баг с распаковкой/запаковкой «одиночно стоящих» KRNL-signed образов.
1.01 [W&L] (01.10.2013) Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidimgRePackerRK_101.zip ( 130.15 КБ )
+ добавлена поддержка формата nongzipped cpio_ascii_new archive file;
+ добавлен ключ /skip.
1.00 [W&L] (06.09.2013) Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidimgRePackerRK_100.zip ( 125.34 КБ )
! Release;
+ добавлена поддержка формата gzip/cpio archive file;
+ добавлена поддержка формата cpio_ascii_new archive file;

оптимизированы некоторые участки кода;
— удален ключ /inter;
— устранены мелкие ошибки в коде;
+ мелкие улучшения.
0.95 [W&L] (26.05.2013) Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidimgRePackerRK_095.zip ( 57.5 КБ )
! pre-Release #5;
+ добавлена поддержка формата RockChip bootloader image.
0.94 [W&L] (17.05.2013) Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidimgRePackerRK_094.zip ( 51.52 КБ )
! pre-Release #4;
+ добавлен ключ /2nd;
+ добавлена поддержка формата Android boot image.
0.93 [W&L] (29.04.2013) Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки androidimgRePackerRK_093.zip ( 38.54 КБ )
! pre-Release #3.
0.92 [W&L] (21.04.2013)
! pre-Release (for internal use)

Формат RKFW-файла (RockChip batch firmware image)

Структура файла (рис.1)
1. Header
2. boot.img
3. Простой update.img или RKAF-файл
4. Контрольная сумма MD5 (опционально)

Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки android

Формат RKAF-файла (RockChip update firmware image)

Структура файла (рис.2)
1. Header
2. Файлы
3. Контрольная сумма RockChip CRC (см. алгоритм)

Чем открыть файл img прошивки android. Смотреть фото Чем открыть файл img прошивки android. Смотреть картинку Чем открыть файл img прошивки android. Картинка про Чем открыть файл img прошивки android. Фото Чем открыть файл img прошивки android

struct RKAF_Hdr <
char Magic[4]; // «RKAF»
unsigned long int ImgLen;
char Model[34];
char Id[30];
char Manufacturer[56];
unsigned long int Unknown_1;
unsigned long int Version;
unsigned long int FileCount;

struct sUpdFile uFiles[16];
unsigned char Reserved[116];
> UpdHdr;

Это код чипа RK29xx (см., например, у wendal).

По поводу «2. boot.img«, то это ВСЕГДА простой загрузчик, т.е. Boot.bin.
По поводу выравнивания «1. Файлы выравниваются по границе 2КБ (0x0800).», то Вы его задаете в том же файле parameter.

Какой параметр? При упаковке у меня сейчас сделано фиксировано. Нужно будет поправить.

Update (18.05.2013) Вопрос «повис в воздухе»; как править, пока не знаю

Зарезервированные имена для второго поля SELF и RESERVED

Контрольная сумма RockChip CRC

Алгоритм найден на просторах интернета, проблем при «вживлении» в утилиту не возникло

/*-
* Copyright (c) 2010 FUKAUMI Naoki.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR «AS IS» AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

#ifndef _RKCRC_H
#define _RKCRC_H

static uint32_t _t[256] = <
0x00000000, 0x04c10db7, 0x09821b6e, 0x0d4316d9,
0x130436dc, 0x17c53b6b, 0x1a862db2, 0x1e472005,
0x26086db8, 0x22c9600f, 0x2f8a76d6, 0x2b4b7b61,
0x350c5b64, 0x31cd56d3, 0x3c8e400a, 0x384f4dbd,
0x4c10db70, 0x48d1d6c7, 0x4592c01e, 0x4153cda9,
0x5f14edac, 0x5bd5e01b, 0x5696f6c2, 0x5257fb75,
0x6a18b6c8, 0x6ed9bb7f, 0x639aada6, 0x675ba011,
0x791c8014, 0x7ddd8da3, 0x709e9b7a, 0x745f96cd,
0x9821b6e0, 0x9ce0bb57, 0x91a3ad8e, 0x9562a039,
0x8b25803c, 0x8fe48d8b, 0x82a79b52, 0x866696e5,
0xbe29db58, 0xbae8d6ef, 0xb7abc036, 0xb36acd81,
0xad2ded84, 0xa9ece033, 0xa4aff6ea, 0xa06efb5d,
0xd4316d90, 0xd0f06027, 0xddb376fe, 0xd9727b49,
0xc7355b4c, 0xc3f456fb, 0xceb74022, 0xca764d95,
0xf2390028, 0xf6f80d9f, 0xfbbb1b46, 0xff7a16f1,
0xe13d36f4, 0xe5fc3b43, 0xe8bf2d9a, 0xec7e202d,
0x34826077, 0x30436dc0, 0x3d007b19, 0x39c176ae,
0x278656ab, 0x23475b1c, 0x2e044dc5, 0x2ac54072,
0x128a0dcf, 0x164b0078, 0x1b0816a1, 0x1fc91b16,
0x018e3b13, 0x054f36a4, 0x080c207d, 0x0ccd2dca,
0x7892bb07, 0x7c53b6b0, 0x7110a069, 0x75d1adde,
0x6b968ddb, 0x6f57806c, 0x621496b5, 0x66d59b02,
0x5e9ad6bf, 0x5a5bdb08, 0x5718cdd1, 0x53d9c066,
0x4d9ee063, 0x495fedd4, 0x441cfb0d, 0x40ddf6ba,
0xaca3d697, 0xa862db20, 0xa521cdf9, 0xa1e0c04e,
0xbfa7e04b, 0xbb66edfc, 0xb625fb25, 0xb2e4f692,
0x8aabbb2f, 0x8e6ab698, 0x8329a041, 0x87e8adf6,
0x99af8df3, 0x9d6e8044, 0x902d969d, 0x94ec9b2a,
0xe0b30de7, 0xe4720050, 0xe9311689, 0xedf01b3e,
0xf3b73b3b, 0xf776368c, 0xfa352055, 0xfef42de2,
0xc6bb605f, 0xc27a6de8, 0xcf397b31, 0xcbf87686,
0xd5bf5683, 0xd17e5b34, 0xdc3d4ded, 0xd8fc405a,
0x6904c0ee, 0x6dc5cd59, 0x6086db80, 0x6447d637,
0x7a00f632, 0x7ec1fb85, 0x7382ed5c, 0x7743e0eb,
0x4f0cad56, 0x4bcda0e1, 0x468eb638, 0x424fbb8f,
0x5c089b8a, 0x58c9963d, 0x558a80e4, 0x514b8d53,
0x25141b9e, 0x21d51629, 0x2c9600f0, 0x28570d47,
0x36102d42, 0x32d120f5, 0x3f92362c, 0x3b533b9b,
0x031c7626, 0x07dd7b91, 0x0a9e6d48, 0x0e5f60ff,
0x101840fa, 0x14d94d4d, 0x199a5b94, 0x1d5b5623,
0xf125760e, 0xf5e47bb9, 0xf8a76d60, 0xfc6660d7,
0xe22140d2, 0xe6e04d65, 0xeba35bbc, 0xef62560b,
0xd72d1bb6, 0xd3ec1601, 0xdeaf00d8, 0xda6e0d6f,
0xc4292d6a, 0xc0e820dd, 0xcdab3604, 0xc96a3bb3,
0xbd35ad7e, 0xb9f4a0c9, 0xb4b7b610, 0xb076bba7,
0xae319ba2, 0xaaf09615, 0xa7b380cc, 0xa3728d7b,
0x9b3dc0c6, 0x9ffccd71, 0x92bfdba8, 0x967ed61f,
0x8839f61a, 0x8cf8fbad, 0x81bbed74, 0x857ae0c3,
0x5d86a099, 0x5947ad2e, 0x5404bbf7, 0x50c5b640,
0x4e829645, 0x4a439bf2, 0x47008d2b, 0x43c1809c,
0x7b8ecd21, 0x7f4fc096, 0x720cd64f, 0x76cddbf8,
0x688afbfd, 0x6c4bf64a, 0x6108e093, 0x65c9ed24,
0x11967be9, 0x1557765e, 0x18146087, 0x1cd56d30,
0x02924d35, 0x06534082, 0x0b10565b, 0x0fd15bec,
0x379e1651, 0x335f1be6, 0x3e1c0d3f, 0x3add0088,
0x249a208d, 0x205b2d3a, 0x2d183be3, 0x29d93654,
0xc5a71679, 0xc1661bce, 0xcc250d17, 0xc8e400a0,
0xd6a320a5, 0xd2622d12, 0xdf213bcb, 0xdbe0367c,
0xe3af7bc1, 0xe76e7676, 0xea2d60af, 0xeeec6d18,
0xf0ab4d1d, 0xf46a40aa, 0xf9295673, 0xfde85bc4,
0x89b7cd09, 0x8d76c0be, 0x8035d667, 0x84f4dbd0,
0x9ab3fbd5, 0x9e72f662, 0x9331e0bb, 0x97f0ed0c,
0xafbfa0b1, 0xab7ead06, 0xa63dbbdf, 0xa2fcb668,
0xbcbb966d, 0xb87a9bda, 0xb5398d03, 0xb1f880b4,
>;

#define RKCRC(crc, buf, size) \
do < \
size_t _s = (size); \
uint8_t *_b = (uint8_t *)(buf); \
while (_s— > 0) \
(crc) = ((crc) > 24) ^ *_b++]; \
> while (/* CONSTCOND */0)

Источник

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

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