Теперь стоит рассказать, как я восстанавливал работоспособность фронтальной камеры в Xiaomi Redmi Note 4 на кастоме, у которого есть исходный код для конкретной платформы.

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

Xiaomi Redmi Note 4 nikel полноценно работает только на шестом андроиде, который уже 5 лет считается морально устаревшим. И, к сожалению, никто не попытался полностью портировать сторонние прошивки и опубликовать свои же исходники. И лишь LineageOS работал не так гладко, как хотелось бы.

Что уж говорить, если AOSP, собранный пользователем с ником Cofface, работает намного лучше, но при этом старые болячки, присущие андроидам, лечить не собирались.

В итоге у меня пошла такая мысль - раз уж портирование этого редмика на новые андроиды удаётся весьма паршиво, то почему бы не улучшать старое и проверенное годами?

На просторах GitHub до сих пор можно найти полноценный исходный код версии Android 6.0, разработанный специально для платформы MT6797 в нескольких ревизиях, а там же входят и несвободные компоненты, включая встроенный софт и HAL-модули от MediaTek.

Как уже было сказано ранее, они были закрыты под NDA-соглашениями, и есть вероятность, что производитель опубликовал их легально, т. е. с разрешения MediaTek и его представителей.

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

Молодцы, Xiaomi! Только вот не стыдятся нарушать лицензию GPLv2, где в случае с применением ядра Linux в публичных релизах должен быть опубликован его исходный код и никак иначе.

Для анализа текущей ситуации я решил дизассемблеровать стоковое ядро через IDA и оказалось, что оно использует передачу OTP-пакетов к сенсорам, когда как кастомное ядро использует несколько упрощенный метод.

Далее - бинарные файлы в /system/lib(64)/hw

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

Файл ProjectConfig…mk в device-tree для Redmi Note 4 и конфигурация ядра

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

Там выяснилось, что тот ProjectConfig…mk, который лежал в стоковой прошивке MIUI 10.2, не совсем подходил к кастомной прошивке, поэтому по всей вероятности не работала фронталка.

Конечно, в этих конфигах можно прописать драйвер s5k5e8yx_mipi_raw при наличии исходников, но стоит ли того, вопрос открытый. Драйвер s5k5e8yx_mipi_raw может содержать несколько ревизий, из-за чего приходится долго и упорно ломать голову, где и что заведётся.

В итоге, в самом начале 2025 года, мне наконец-то удалось на кастоме завести фронтальную камеру. Решалось это драйвером s5k5e2ya_mipi_raw, что забавно: вроде бы фронталка Samsung S5K5E8, а она работает с драйвером S5K5E2.

Правда, побороть проблемы с автофокусом на основной камере пока не удаётся, даже если я прописал сразу несколько драйверов на объективы.

Кто же знает, чем можно ещё вернуть электронного пенсионера к жизни, помимо проблем со сканером опечатка пальцев и акселерометра…

Теперь стоит рассказать, как я восстанавливал работоспособность фронтальной камеры в Xiaomi Redmi Note 4 на кастоме, у которого есть исходный код для конкретной платформы | Сетка — социальная сеть от hh.ru Теперь стоит рассказать, как я восстанавливал работоспособность фронтальной камеры в Xiaomi Redmi Note 4 на кастоме, у которого есть исходный код для конкретной платформы | Сетка — социальная сеть от hh.ru Теперь стоит рассказать, как я восстанавливал работоспособность фронтальной камеры в Xiaomi Redmi Note 4 на кастоме, у которого есть исходный код для конкретной платформы | Сетка — социальная сеть от hh.ru Теперь стоит рассказать, как я восстанавливал работоспособность фронтальной камеры в Xiaomi Redmi Note 4 на кастоме, у которого есть исходный код для конкретной платформы | Сетка — социальная сеть от hh.ru