2016-07-09

Конвертирование chromatix либ камер в исходный код

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


Вот набор либ, которые необходимы для работы камеры Toshiba t4k37ab:
  • libmmcamera_t4k37ab.so
  • libmmcamera_f4k37ab_qtech_t4k37_eeprom.so
  • libchromatix_t4k37ab_common.so
  • libchromatix_t4k37ab_default_video.so
  • libchromatix_t4k37ab_preview.so
  • libchromatix_t4k37ab_snapshot.so
Про реверс либ libmmcamera_*.so  я рассказывать не буду, т.к. данный процесс невозможно автоматизировать. А вот процесс реверса остальных либ достаточно легко автоматизируется. Автоматизация этого процесса возможна по той причине, что в этих chromatix либах содержатся только данные, формат которых строго специфицирован. Первый параметр в этих данных содержит версию, по которой и определяется формат последующих данных.

В моём случае все chromatix либы имеют версию 3.1 (в hex-виде так 0x0301). Ручной реверс одной chromatix либы занял бы примерно 7...9 часов. Это очень много. Да и при этом имеется большой шанс совершить множество ошибок (человек не создан для решения таких задач).

Поэтому было решено написать на Python-скрипт, который бы сам реверсил любую chromatix либу версии 3.1.

Исходники Python-скрипта: http://github.com/remittor/chromatix2c

Комментариев нет:

Отправить комментарий