Как портировать прошивки на Android 4.4.x MTK с одинаковым процессором. MTK6582 -> MTK6582, или MTK6572 -> MTK6572 и т.д.
Немножно философии... Порт - это прошивка другого девайса, отличающаяся от стока функционалом, интерфейсом, быстротой и тд. Порт никогда не будет стабильным, потому, что это порт, но его можно приблизить к "идеальному" состоянию, и сейчас я вам все расскажу.
Приступим. Для начала, вам нужно скачать программы:
Лично я, пользуюсь только ими, мне так удобнее просто. Чтобы начать портировать, вам нужна стоковая прошивка, если ее нет, то придется юзать MTKDroidTools (если нужно, подробнее расскажу). Допустим у вас все есть. Начинаем портировать.
Берем ваш стоковый boot.img и перетаскиваем его на программу AndImgTool, должно получиться так:
нажимаем любую клавишу.
Идем по пути: boot_/kernel и видим там файл zImage. Копируем его в любое место, чтобы он никому не мешал.
Далее, берете уже кастомный boot.img и делаете тоже самое, что и со стоковым, разбираете его.
Берете zImage от стокового boot.img и кладете в кастомное по тому же пути с заменой.
Когда все это сделаете, перетаскиваете папку boot_ на программу AndImgTool, должно получиться так:
Получившиеся бут (new_boot.img) переименовываем в boot.img и кидаем его в кастомную прошивку.
Далее, для запуска прошивки, нам нужны либы, а именно: Красным - сама папка, в которой лежат либы. Синим - это путь. Зеленым - это сами файлы. В папке system/lib (libcameracustom.so, libMali.so.) В той же папке папка: system/lib/hw (hwcomposer.mt6582.so, sensors.default.so) Дальше заменяем всю папку system/etc/firmware И бинарчики: system/bin (sdcard, vold) Все это, кидаем в папку портированной прошивки.
И на конец, не менее важное, изменить точки монтирования под свои META-INF/com/google/android/updater-script. Открываем updater-script с помощью Блокнота (но лучше всего открывать его через Notepad++) Нам нужны строки типа:
То что выделено красным может отличаться. Их нужно переделать под ваш девайс. Чтобы узнать карту блоков, нужно подключить телефон и через программу MTKDroidTool их посмотреть. Если же для вашего телефона уже есть кастомная прошивка, то возьмите их от туда, и переделайте в кастомной прошивке. Сохраняем, обновляем файл в архиве.
На этом по сути все, этого должно хватить для запуска прошивки. Если у вас она не запускается, попробуйте вставить свой стоковый boot.img без перепаковки.
Портирование прошивки на Android 5.0.x MTK с одинаковым процессором.
Все тоже самое, что и выше, только нужно заменить полностью папку hw, по пути system/lib/hw на стоковую, и заменить все либы камеры (их должно быть 20), т.е. system/lib/ выглядит так:
Если прошивка не запустится, или висит на лого или на "бутанимации", то кидайте свой boot.img целиком.
Не работает 3G, меняем папку etc/firmware
Не работает звук, меняем lib/libaudio.primary.default.so и libaudiocustparam.so. Если не помогает, меняйте все libaudio, папку soundfx и в папке hw файлы audio.primary.default.so, audio_policy.default.so, audio_policy.stub.so. (это уже на крайняк, если уж совсем все будет плохо)
Не работает датчик приближения, меняем lib/nvram.so, nvram_platform.so, nvram_daemon_callback.so.
Не работает сенсор, меняем lib/libinput.so. Если все же не работает, меняем еще libinputservice.so в той же папке.
Не работает камера, меняем все lib/libcam. Если не правильно показывает модель телефона, меняйте lib/libexif.so.
Не работает автофокус камеры, меняем либ libfeatureio.so.
Глючит YouTube, меняем все либы lib/libstatefright.so.
Не работают сенсорные кнопки, меняем usr/keylayout.
Не работает автоповорот, меняем lib/hwcomposer.mt6582.so.
Не работает Wi-Fi, меняем файлы bin/p2p_supplicant и wpa_supplicant.
Не работает встроенный фонарик, меняем lib/hw/lights.default
Не правильно отображается оффлайн зарядка (когда телефон выключен и подключен к зарядке) меняем system/bin(boot_logo_updater, ipod) и либы в папке system/lib(libipod.so, libshowlogo.so).
Перевернутый экран, зайдите в system/build.prop и найдите строку ro.sf.hwrotation=180 и замените ее на ro.sf.hwrotation=0 или же наоборот, если было 0, то меняйте на 180.
Разрешение экрана слишком большое или маленькое, идем по пути system/build.prop и находим строку ro.sf.lcd_density=240 (то что жирным, может быть другое значение). Для разрешения 480x800 стандартное разрешение 240. Чтобы уменьшить разрешение, меняйте значение на 220, 210, 200 и тд. Если увеличить, то 260, 280, 320 соответственно.
Убираем сенсорные кнопки с экрана, идем по пути system/build.prop и находим строку qemu.hw.mainkeys=0 и меняем на qemu.hw.mainkeys=1. Или же наоборот, если они вам нужны, вместо 1 пишем 0. Если они все же не убираются, значит загвоздка в framework-res.apk. Разбираем наш framework, идем по пути res\values\ редактируем файл dimens.xml, находим в нем строчки "navigation_bar" и заменяем в них все цифры на 0, т.е. вот так: