2016-10-17

Сборка Qualcomm модема из исходников (msm8626)

Пару недель назад анонимус поделился со мною полными исходниками Qualcomm для SoC msm8626, которые доступны производителям смартфонов. Причём данные исходники предназначены для сборки Android прошивок версии 5.1 (сами исходники датируются апрелем 2015 года).
Сразу после скачивания архива с этими исходниками у меня возникла мысль о сборке модема для моего телефона Highscreen Boost 2 SE из данных исходников.

2016-09-13

LLCON_DBG - отладка Android ядра на самых ранних этапах

Довольно часто разработчики ядер под Android устройства сталкиваются с тем, что собранное из новых исходников ядро не запускается. Обычно в таких случаях ошибки находят при помощи отладки через JTAG, UART, EmbeddedICE DCC. Но не всем разработчикам Android ядер доступны эти средства, да и не каждый готов разбирать личное устройство ради эксперементов.

2016-09-11

LLCON - низкоуровневый дамп ядерных логов Android устройства

Недавно решил объединить свой старый способ дампа логов с модулем LLCON, т.к. их функционал пересекается. Да и старая реализация дампа логов написана на скорую руку внутри файла printk.c , что является очень плохим тоном.

2016-08-19

Патчинг ядра для корректной работы Android при загрузке с SD-карты

Недавно решил помочь обладателям девайса LG L80 Dual (D380), на котором очень часто "отмирает" eMMC чип. При этом девайс переходит в 9008 режим. В данном режиме PBL на большинстве Qualcomm девайсов пробует произвести загрузку со второго канала SDCC. Конечно же Android ядро загрузится и со второго канала SDCC, но вот остальные части этой ОС совсем не приспособлены адекватно работать в такой ситуации.

2016-08-14

Сборка Qualcomm модема из исходников (msm8916)

Ради фана и прокачки скилов решил собрать Qualcomm модем из исходников. В качестве целевой платформы выбрал msm8916, т.к. именно под эту платформу можно скачать исходники из интернета.

2016-07-28

Установка топовой камеры в бюджетное Android устройство

После добавления либ стоковых камер в проприетарии Qualcomm и проверки их работоспособности в мою голову пришла идея о замене стокового модуля камеры Toshiba t4k37 на модуль с CMOS чипом от SONY. Сначала присматривался к модулям imx135, но затем понял, что целевая SoC msm8228 вполне может потянуть и imx214.

2016-07-09

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

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

2016-05-14

LLCON - низкоуровневый вывод ядерных логов на дисплей Android устройства

После завершения проекта Interactive Bootloader пришла идея, что за место логотипа бутлоадера и бутанимации можно на экран выводить ядерные логи. Причём вывод этих логов можно реализовать на самом раннем этапе работы Linux-ядра из-за чего время показа логотипа бутлоадера будет совсем ничтожным.

2016-04-27

Interactive Bootloader


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

2016-03-17

"Нулевая защита" в антируткит утилите GMER

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

2016-01-15

Патчинг андройдовской либы liboemcamera.so для корректной работы камеры

В данном руководстве попробую описать патчинг ARM-либы liboemcamera.so, которая была допилена и скомпилирована программистами Huawei для аппарата Ascend Y300 (платформа msm8x25).

2016-01-07

Поиск ошибок в Android ядре при помощи PVS-Studio v6.0

Поиск ошибок в Linux ядре уже проводился год назад создателями PVS-Studio. Теперь настала пора Android ядра. Но я не буду брать для исследования последнюю версию ядра для Nexus устройств, а возьму ядро, которое я использую в своём китайском смартфоне (разработка 2012 года). Кроме описания найденных интересных ошибок постараюсь подробно описать процесс получения plog-файла, который содержит все найденные ошибки и необходим для удобной обработки этих ошибок в специальной утилите PVS-Studio.