Портирование MIUI прошивок на MTK смартфоны (На примере MT6582)
Всем привет и возможно пока (ибо на днях в баню попаду)
Что же.. в этот раз напишу гайд по портированию прошивок MIUI с одного МТК девайса на другой, естественно что гайд будет о портировании MIUI 7 и только до версии 4.4 включительно.
Часть инфы нарыл на 4pda, другое - с собственного опыта.
Что же для этого нужно?
1) Mtwintool
2) Notepad ++
3) MTKdroidtools
Итак, для начала вы должны получить рут права, далее в смартфоне включить отладку по USB, как правило этот пункт находится в меню разработчика.
1) Этап первый - MTKdroidtools
Тут мы должны слить бэкап на комп, чтобы на его основе создать прошивку.
Заходим в программу и если все правильно сделали то нажать кнопку ROOT, чтоб получить root shell (когда вы его получите то прямоугольник в нижнем левом углу станет зеленого цвета).
Далее открываем вторую вкладку программы и выбираем БЭКАП
Начнется создание бэкапа, и далее вам будет предложено запаковать все в архив.
Этого делать не нужно, нажимаете НЕТ (ну или да, если так хочется).
После того как увидите оповещение о том что задание завершено - переходите на первую вкладку программы и выберите пункт "карта блоков"
Тут нам важно записать или запомнить какой номер у точек монтирования.
Раздел SYSTEM и раздел DATA.
Тут указано mmcblk0p5 для system (для примера).
Все это пригодится немного позже.
Отлично, бэкап создан и теперь настало время для модификации прошивки.
2) Скачайте прошивку MIUI для вашего процессора, от любой модели смартфона.
К примеру если у вас MT6582 то качаете то же самое.
Ни в коем случае не используйте бэкап сторонних смартфонов, даже тех же моделей, поскольку существуют различные "ревизии" у одной и той же модели.
На одном китайском galaxy s6 я нашел более 5 ревизий и 2 разных типа памяти.
К чему приведет скачивание не той ревизии? от нерабочей камеры, отсутствие картинки до бутлупа (зависания на логотипе).
3) Распаковывайте скачанную прошивку и для удобства откройте 2 окна проводника, со своим бэкапом и скачанной прошивкой.
Примерно это должно быть так
Да да, архив system надо распаковать.
Итак. а теперь переходим к замене фаилов.
Заменяем из папки с бэкапом в папку с скачанной прошивкой
System/bin
6620_launcher
ccci_fsd
ccci_mdinit
geomagneticd
gsm0710muxd
gsm0710muxdmd2
msensord
mtk_agpsd
mtkbt
sdcard
sensorservice
vold
wlan_loader
wmt_loader
wpa_cli
wpa_supplicant
System/lib
libaudio.primary.default.so
libbluetooth_jni.so
libbluetooth_mtk.so
libbluetooth_relayer.so
libbluetoothdrv.so
libbluetoothem_mtk.so
libbrctrler.so
libbtcust.so
libbtcusttable.so
libbtem.so
libbt-hci.so
libbtpcm.so
libbtsession.so
libbtsniff.so
libbt-utils.so
libcam.paramsmgr.so
libcameracustom.so
libdpframework.so
libem_bt_jni.so
libem_gpio_jni.so
libem_modem_jni.so
libem_sensor_jni.so
libem_wifi_jni.so
libfacelock_jni.so
libgsensor_jni.so
libMali.so
libpalwlan_mtk.so
libsensorservice.so
libspeexresampler.so
libspeexwrapper.so
libwifitest.so
libwpa_client.so
mtk_stp_bt_soc.ko
папки lib/hw ; lib/soundfx ; lib/ssl копируем целиком с заменой.
system/etc
agps_profiles_conf.xml
apns-conf.xml
audio_effects.conf
audio_policy.conf
custom.conf
etc/permissions
меняем все .xml которые начинаются на android.hardware
etc/firmware
modem_1_wg_n.img
WIFI_RAM_CODE
WIFI_RAM_CODE_E6
WIFI_RAM_CODE_MT6582
WIFI_RAM_CODE_MT6628
WMT_SOC.cfg
etc/wifi ; etc/bluetooth - копируем целиком с заменой
Если вы скопировали эти фаилы с бэкапа в папку с новой прошивкой и заменили - значит пол дела сделано.
4) Распаковка boot.img и сборка
В архиве с скачаной прошивкой вы должны найти boot.img фаил.
Теперь создайте две папки с программами mtwintool.
В первую папку кидаете бут с бэкапа, во вторую бут из новой прошивки.
Так должна выглядеть папка программы, в папку IN кидайте бут фаил, в другую папку программы кидаете бут фаил от новой прошивки (которую скачали)
Запускаем программу открыв menu.bat (не забудьте когда откроете программу переключить язык на английский)
Тут выбираем сначала пункт 5 (init tools) жмем клавишу Y затем выбираем пункт 1, далее выбираем image unpack и там же выбираем пункт номер 1.
Теперь мы должны получить такую картину
добавились 2 папки, unpack - там где распакован boot, а PACK - это то где появится новый бут фаил.
Проделайте те же действия со вторым бутом (из новой прошивки).
Теперь заменяем фаилы.
boot/kernel
kernel
kernel_header
пусть вас не смущает то что в некоторых прошивках нет фаила kernel_header.
boot/ramdisk
fstab
fstab.fat.nand
fstab.nand
init.project.rc
init.no_ssd.rc этот файл может называться в другом ядре init.ssd.rc
init.usb.rc
так же не забываем о камере
открываем init.rc и находим там раздел #Camera
и копируем все с данного раздела из init.rc (бэкапа) в init.rc новой прошивки.
что копировать именно? пример моего init.rc
Теперь запускаем mtwintools в той папке в которую копировали фаилы с бэкапа и переходим к процессу запаковки.
Для этого в Mtwintools нужно выбрать пункт 1, затем нажать image pack и выбираем фаил бута.
Далее нам будет предложено выбрать метод запаковки, на мой взгляд лучшее это gzip.
Выбираем и ждем... после этого смотрим на размер созданного бут фаила в папке PACK, и если размер равен нулю, то открываем папку boot/cfg , фаил boot.cfg.
Меняем размер bootsize, ставим вместо 0x1000 другое значение, например 0x1200 и так далее, затем снова пытаемся создать бут, если он снова весит 0 килобайт, увеличиваем значение и так до тех пор пока бут не прийдет к нормальному обьему (главное чтоб не 0)
Так же есть вариант такой чтоб убрать значение bootsize, то есть сделать что то вроде такого - bootsize = ( то есть не писать никакого значения для этого параметра, оставлять пустым )
5) Редактирование скрипта
Открываем папку META-INF\com\google\android
фаил updater-script открываем и находим значения вроде таких
format("ext4", "EMMC", "/dev/block/mmcblk0p5", "0", "/system");
Вспоминаем карту блоков, а точнее под каким номером у вас находится system и data.
Если в скрипте написано
format("ext4", "EMMC", "/dev/block/mmcblk0p5", "0", "/system");
а у вас
mmcblk0p7 это system - то смело меняете с 5 на 7.
Менять нужно абсолютно все параметры где есть упоминание mmcblk0p(X) под вашу карту блоков.
Теперь перемещаете бут фаил в новую прошивку
и запаковывайте в ZIP. вот и вся система)
НО напоследок дам пару советов.
Если после прошивки у вас маленькие иконки и шрифт, либо наоборот крупные ... то открывайте фаил build.prop
найдите там параметр ro.sf.lcd_density и измените его значение.
если такого пункта нет - добавьте.
Вот и все ребята,спасибо за внимание.
Рейтинг близок к -200 и возможно это последний мой пост)
Напоследок котейку для ламповости поста