Как стать автором
Обновить

Самая модная «Lumia» в России: Доводим китайца за 200 рублей до ума, ставим «Touchwiz»

Время на прочтение3 мин
Количество просмотров7.6K

В продолжение предыдущей статьи про "Lumia". Бэкапы есть, фулл дамп есть, так почему бы не продолжить моддить аппарат? С хардварной стороны есть некоторые интересные проекты - например прикрутить AUX FM-трансмиттер(будет фишка как у некоторых старых флагманов Nokia), поставить АКБ от планшета на несколько ампер, припаять плату от повербанка, чтобы можно было заряжать от телефона ещё что-то. Но хардварный моддинг так или иначе требует вмешательство в конструкцию девайса, а поскольку этот девайс целый - нарушать его целостность я не хочу. Но я в подробностях попытаюсь показать портирование прошивки с другого схожего девайса на данный аппарат! Зачем это нужно? Например если у вас лежит аппарат на таком чипсете кирпичем - с слетевшей прошивке, висящий на заставке, а прошивки никто и никогда не выкладывал под него. Таким образом - его можно поднять. Кроме того, закосы и под айось, и под WP очень тормозные сами по себе. Поставив "полусток" можно заметно ускорить девайс и продлить ему жизнь. Интересно? Добро пожаловать!

Подготовка

В первую очередь нам нужен recovery - из под recovery мы сможем подключится к adb, и без полной пересборки образа системы что-то поменять. Поскольку портирование прошивок - это копание в конфигах и подмена драйверов, то полностью перешивать образ мало того что долго, так еще и вредно для NAND флешки. Берём рекавери CWM от какого нибудь аппарата на схожем чипсете, я взял от Fly IQ238(только отличии в том, что у флая ext2, а у меня yaffs2) и он завелся без изменений. В случае смартфонов на других платформах(например mtk nand и mtk emmc - у них чуть разные fstab'ы) - берем родной рекавери, распаковываем с помощью AndImgTool и подменяем fstab'ы донора и родной. Собираем тем же AndImgTool обратно, и прошиваем родным флэшером(researchdownload):

Теперь пишем adb devices.

Отлично! В случае sc6820, для доступа к шеллу нужно подмонтировать /system/. Для этого идём в mounts & storage, и тыкаем mount /system/. Теперь оболочка должна заработать. Рут не нужен, cwm монтирует раздел как rw(можно читать и писать). Однако есть еще нюанс! Разбираем тем же AndImgTool родной boot.img, открываем build prop и ставим ro.debuggabe 1, ro.secure 0 и пересобираем обратно. Зашиваем готовый архив на девайс - теперь у вас есть adb даже на этапе загрузки, например если тач не работает и не получается активировать adb из настроек.

Ставим плагин adb для total commander, зашиваем желаемую прошивку и идем ее патчить. Запустилась? Хорошо, значит образ системы тоже в yaffs2(или ext2, в зависимости от платформы вашего девайса). Желательно сделать вайпы.

Исправляем косяки

Ой, дисплей перевернут вверх-тормашками? Какая досада, идем в build.prop, и меняем hwrotation на 0(или на 180), и отправляем девайс в ребут:

Если все выглядит слишком жирно - значит в прошивке-доноре другое разрешение дисплея, соответственно и dpi другой, специально для того девайса. Меняем dpi(lcd_density) на тот, что стоял в стоке, и затем корректируем его до идеала.

Упс, и тачскрина у меня нет. Я понял как работает механизм подгрузки дров в устройствах на Spreadtrum, однако часть дров все же слинкована с ядром намертво - это драйвер(а) дисплея(в одной прошивке может быть несколько поддерживаемых дисплеев), камер, и драйвер контроллера питания. Без драйвера КП зарядка не идет, и девайс висит на 0%(т.е без зарядки выключается сразу). На устройствах Spreadtrum модули ядра лежат в /system/sps, а симлинки некоторых прокинуты в lib/modules. Все это подгружается в init.sp8800.3rdparty.inc(в boot.img). Что делать в случае отсутствия тачскрина? Копируем всю родную папку sps с заменой, при необходимости, можно прокинуть симлинки(или просто скопировать еще раз) модули в lib/hw/. Звук, wifi, bt, радиомодуль - все это подцепится автоматически, поскольку совместимо между устройствами.

GT9xx - драйвер тачскрина в моем случае. mxc622x - акселерометр(гироскоп). Это все что нужно скопировать, чтобы порт прошивки заработал.
GT9xx - драйвер тачскрина в моем случае. mxc622x - акселерометр(гироскоп). Это все что нужно скопировать, чтобы порт прошивки заработал.

Перезагрузились - ура! Тачскрин заработал. Такс, вроде бы неплохо, но чего то не хватает. Так может если у нас есть root доступ, сразу закинем su и поставить superuser?

Если вдруг у вас девайс не видит АКБ, то нужно пересадить свое ядро в донорский boot.img. Для этого подменяем zImage из оригинала в донор, и в доноре 3rdparty.rc меняем путь на загрузку вашего драйвера тачскрина(или если лень этим заниматься - просто симлинк создаем на gt9xx_ts.ko(у вас тач может быть другой) в system/lib/modules или sps/, зависит от прошивки. Путь подсмотреть можно в том же 3rdparty.rc). Проделываем с default.prop тоже самое, что в первой части статьи. Прошиваем донорский boot, и все датчики должны подцепится. Финальная загрузка и...

Все работает! Отлично! У меня на порт ушло ~1 часа, и пол дня вчера, на разбор что и как работает у спредтрумов. Однако это не просто визуальное улучшение - прошивка от "Samsung" бегает заметно шустрее, и не тормозит, как аналог с интерфейсом WP. Таким образом можно адаптировать прошивки под аппараты, на которых невозможно найти родную прошивку - ищем прошивку где работает тач, и где работает дисплей, и из двух делаем одну! Так зачем отправлять аппарат на помойку, если с него можно извлечь толк?

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Полезная информация?
63.79% Пошёл копать закрома с китайскими аппаратми37
36.21% Неа21
Проголосовали 58 пользователей. Воздержались 18 пользователей.
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 10: ↑10 и ↓0+10
Комментарии10

Публикации

Истории

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань