Распаковка прошивки android img

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

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

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

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

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

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

  • Файл самой прошивки
  • Программа unPacker, которую можно скачать здесь ( Для Allwinner a31s можно использовать imgRePacker )

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

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

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

В папке out есть файл system.fex -это файл с системными файлами(папка system) . Он то нам и нужен.

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

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

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

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

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

./simg2img system.img output.img

Теперь у нас есть файл output.img . Теперь создаем папку например с названием sys

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

sudo mount output.img sys

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

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

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

./mkuserimg.sh -s sys/ ./factoryfs_custom.img ext4 ./temp 512M

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

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

Источник

Распаковка прошивки android img

/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 КБ )

Источник

Способы извлечения и замены файлов в прошивках Android-устройств

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

Что представляет собой прошивка

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

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

Стоит ли распаковывать прошивку

Распаковка прошивки представляет собой непростой процесс, который требует времени и соответствующих навыков, но является весьма актуальным и полезным.

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

Задумавшись над вопросом, нужно ли распаковывать прошивку Android, вы наверняка найдете пару дополнительных плюсов. Из распакованной прошивки можно извлечь apk-файлы или интегрировать инсталляторы прочих программ.

Читайте также:  Android max text size

Распаковка прошивки Android в ZIP-формате

Любые ZIP-папки распаковываются привычным архиватором, например WinZip. При этом процесс распаковки занимает всего несколько минут, так как объем сжатых файлов не превышает 500 Мб. Скачать и установить программу можно на любой компьютер.

Для распаковки Android-прошивки нужно найти архив на ПК, кликнуть на нем правой кнопкой мыши, выбрать распаковку и указать директорию для переноса всех файлов. Решая, чем распаковать ZIP-прошивку Android или любой другой архив в данном формате, можете воспользоваться такими архиваторами, как WinRAR, 7-Zip, PeaZip или IZArc.

Распаковка IMG-прошивок

Популярным расширением архивов c инсталляционными файлами и прочими данными по прошивке является .img. Это особый подвид архивов, который не разбирается на составляющие привычными методами.

Если вы не знаете, как открыть IMG-прошивку Android на Huawei, понадобится выполнить ряд специфических действий и скачать дополнительный софт. Для работы с прошивками такого типа понадобятся утилиты EXT4 Unpacker и EXT2 Explore. После их скачивания можно приступить к процессу извлечения файлов, который проходит по такой схеме:

  1. Распакуйте IMG-архив прошивки в любую директорию на компьютере.
  2. Запустите программу EXT4 Unpacker и с ее помощью найдите файл system.img.
  3. Сохраните файл system.img с расширением .ext4 с помощью кнопки «Сохранить как».
  4. После распаковки запустите софт EXT2 Explore от имени администратора. Во вкладке «File» выберите пункт «Open Image», укажите место расположения ранее созданного system.ext4.
  5. В правой части окна программы EXT2 Explore нажмите на иконку жесткого диска правым кликом мышки, в выпадающем меню выберите опцию «Save». Будет предложена директория для извлечения, укажите любую удобную папку и дождитесь окончания процесса.

Так осуществляется распаковка IMG-прошивки Android с целью извлечения из нее полезных данных и инсталляторов.

Преобразование KDZ-архива в DZ-архив для последующего создания BIN-папки и привычных архивов

KDZ – формат прошивок, которые зачастую использует в своих устройствах компания LG. Распаковка данных файлов требует использования дополнительного софта, поскольку обычные архиваторы не способны обеспечить необходимый доступ к утилитам прошивки и предустановленным инсталляторам.

Если вы думаете, как самому поменять файлы в прошивке Android формата .kdz, заблаговременно скачайте программы Windows LG Firmware Extract и EXT2 Explore. Процесс распаковки выполняется за схемой:

  1. Запустите Windows LG Firmware Extract, укажите рабочую папку «Working Folder». Ею может оказаться любая директория на ПК, куда вы хотите произвести распаковку.
  2. Нажмите на кнопку «Open», в поле «KDZ / TOT File» выберите файл своей прошивки. Вы увидите все файлы, которые хранятся в KDZ-архиве.
  3. Нажмите на кнопку «Extract KDZ» и дождитесь, пока программа отформатирует архив в DZ-формат. Об успешном окончании процесса будет свидетельствовать надпись «Progress Done».
  4. Перейдите к пункту «DZ File», выберите в нем только что созданную прошивку в DZ-формате. Откроется таблица имеющихся в архиве файлов. Нужно выбрать все файлы с расширением .bin и нажать на кнопку «Extract DZ». После завершения процесса появится надпись «Progress extract DZFile Done».
  5. Для преобразования файлов .bin в формат .img необходимо нажать на кнопку «Merge System bin». В директории, которую вы изначально указали в качестве рабочей папки, будет создан каталог «Merge output», в котором найдете system.img.

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

Распаковка QSB и INB-прошивок

Прошивки с расширением .qsb и .inb являются прерогативой устройств компании Lenovo. Их распаковка не занимает большого количества времени и проводится посредством всего одной утилиты LenovoWinTools.

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

Для работы с прошивкой через редактор LenovoWinTools достаточно установить русифицированную программу, зайти в пункт «Файл» и посредством имеющихся инструментов выбрать свою прошивку. Далее потребуется подождать, и тогда прямо из программы сможете оперировать файлами прошивки.

Как прошить устройства на базе Android

Найдите новую или кастомную версию операционной системы и проведите ее установку. Сделать это можно несколькими способами: с использованием ПК и без него. Принципы обновления прошивок на всех устройствах схожи, но есть некоторые нюансы, которые относятся к определенным моделям и маркам устройств.

Источник

Распаковка прошивки android img

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. 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/)

улучшен алгоритм чтения 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

Использование:
«imgRePackerRK.exe [options] » — распаковка (Windows)
«imgRePackerRK.exe [options] .dump» — запаковка (Windows)
«imgRePackerRK.exe [options] .cfg» — запаковка файла 2-го слоя (Windows)
«./imgrepackerrk [options] » — распаковка (Linux)
«./imgrepackerrk [options] .dump» — запаковка (Linux)
«./imgrepackerrk [options] .cfg» — запаковка файла 2-го слоя (Linux)

Опции (в скобках указано имя в ini-файле и значение по умолчанию):
/log — создавать log-файл (log = 0);
/debug — писать отладочную информацию, работает только с опцией /log (debug = 0);
/quiet — отключить вывод в консоль (quiet = 0);
/mono — включить монохромный режим (mono = 0);
/md5 — игнорировать ошибки md5 (при распаковке) или
не добавлять контрольную сумму md5 (при запаковке) (md5 = 0);
/rkcrc — игнорировать ошибки RockChip CRC (rkcrc = 0);
/rkaf — создавать RKAF image (запаковка) (rkaf = 0);
/skip — пропустить проверку размера файла образа прошивки; используется при распаковке
(skip = 0);
/2nd — распаковка/запаковка файлов второго слоя (2nd = 0);
/cid — не проверять ChipID (cid = 0);
/rmd4 — выравнивание ramdisk в Android Boot image по границе 4 байта (rmd4 = 0);
/symb — игнорировать ошибки проверки символьных линков (symb = 0);
/bcpath:

— базовый путь для конфигурационных файлов RKAndroidTool;
/lname:
— название загрузчика для конфигурационных файлов RKAndroidTool;
/ini — перезаписать ini-file с опциями из командной строки (-);
Примечание:
Опции командной строки всегда имеют приоритет выше параметров ini-файла.

Сообщение отредактировал RedScorpio — 03.05.17, 23:14

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

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

Примечания:
1. Названия структуры и ее полей могут не совпадать с задуманными разработчиком(ами).
2. В качестве boot.img во всех встреченных прошивках использовался bootloader (например, «RK30xxLoader(L)_V1.24.bin» для прошивок RK3066).
3. Выравнивания файлов нет.
4. Контрольная сумма MD5 встречается не во всех прошивках (установить точно, когда она нужна, а когда нет — пока не удалось).

Сообщение отредактировал RedScorpio — 03.08.17, 14:17

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

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

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;

Читайте также:  Прошивка для андроид если не включается

Сообщение отредактировал RedScorpio — 20.10.16, 18:23

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

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

Сообщение отредактировал vin2809 — 04.05.13, 08:24

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

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

Сообщение отредактировал RedScorpio — 18.05.13, 18:59

Назначение — описание состава прошивки (названия файлов).
Представляет из себя простой текстовый файл, в котором каждая строка описывает файл двумя полями: имя (ID) и название файла на физическом носителе с относительным путем. Поля разделены пробелами и/или знаками табуляции, комментарии в файле начинаются с символа #. Первое поле соответствует Name, второе — FileName структуры sUpdFile (описание файлов в прошивке) заголовка RKAF-файла.

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

Сообщение отредактировал RedScorpio — 08.05.13, 20:15

Назначение — описание прошивки.
Представляет из себя простой текстовый файл, в котором каждая строка представляет из себя название параметра и его значение, разделенные символом «двоеточие» («:«), комментарии в файле начинаются с символа «#«.

Описание параметров (что удалось выяснить):
FIRMWARE_VER = RKAF_Hdr.Version
MACHINE_MODEL = RKAF_Hdr.Model
MACHINE_ID = RKAF_Hdr.Id
MANUFACTURER = RKAF_Hdr.Manufacturer
MAGIC = ? (в примере «PARK»)
ATAG = ?
MACHINE = ?
CHECK_MASK = ?
KERNEL_IMG = ?
CMDLINE = Командная строка (?); наибольший интерес представляет mtdparts, описывающая разделы NAND. Например, [email protected](system) означает, что раздел system (файл Image/system.img) размещается по адресу 0x00554000 (sUpdFile.NandAddr) и имеет размер 0x00100000 (sUpdFile.NandSize). Значения задаются в блоках (512Б).

Сообщение отредактировал RedScorpio — 14.09.13, 11:01

Контрольная сумма 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)

Сообщение отредактировал RedScorpio — 08.05.13, 21:28

Источник

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