[GUIDE|ROM]MT65XX移植手册
前言:
你好朋友,我们都知道有很多基于开源的Android的ROM。
但是可能并不适用于您的设备。
现在,本指南将帮助您学会为您钟爱的设备移植这些原本不适用于您的设备的ROM
适用于:
1.MT65XX同平台移植(包括但不限于MT6582机型相互移植)
2.MT65XX跨平台移植(包括但不限于MT6582机型移植MT6592机型)
3.移植后一些BUG的修复
4.同安卓版本或者跨安卓版本移植
必备条件:
用于制作脚本的电脑或者手机
MT管理器(推荐)
Notepad++编辑软件安装程序文件(手机可以使用MT管理器实现)
设备与CWM / TWRP Recovery等测试您移植的ROM
7z或WinRAR或任何其他使zip压缩工具(手机可以使用MT管理器实现)
坚持下去的决心
创造性思维和使用计算机或者手机的一些基本知识
笔者:贴吧ID-装机狂魔
欢迎加入玩机交流群:230667346
Q&A:
Q:指南中所提到的文件来自哪里?
A:来自于您设备的官方ROM
Q:我的官方ROM里缺少指南中所提到的文件怎么办?
A:直接忽略掉它就行
Q:我可不可以使用一键移植Boot?
A:可以,但是不推荐,因为这可能会导致无法启动或者产生致命BUG
Q:指南中所提到的替换是不是直接覆盖对应文件夹或者文件?
A:请删除后再复制!
第一章::移植ROM
1.1 MT65XX同平台移植
1.1.1 替换文件与文件夹
需要替换的文件夹:1
2
3
4
5
6
7
8
9
10
11
12-etc:
/system/etc/buletooth
/system/etc/firmeware
/system/etc/mddb
/system/etc/wifi
-lib:
/system/lib/hw
-usr:
/system/usr/keychars
/system/usr/keylayout
-vendor:
/system/usr/lib
需要替换的文件:1
2
3-lib:
/system/lib/libaudio.primary.default.so
/system/lib/libcameracustom.so
1.1.2 移植Boot:1
利用互联网上的搜索引擎,你会学习到许多有用的知识
1.2 MT65XX跨平台移植
1.2.1 替换文件与文件夹
需要替换的文件夹:1
2
3
4
5
6
7
8
9
10
11
12-etc:
/system/etc/.tp
/system/etc/firmware
/system/etc/permission
-lib:
/system/lib/hw
/system/lib/soundfx
-usr:
/system/usr/keychars
/system/usr/keylayuot
-vendor:
/system/vendor/lib
需要替换的文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40-bin:
/system/bin/ipod
/system/bin/mtkbt
-etc:
/system/etc/agps_profiles_conf.xml
-lib:
/system/lib/lib3a.so
/system/lib/libaudio.primary.default.so
/system/lib/libaudioflinger.so
/system/lib/libbluetooth_jni.so
/system/lib/libbluetooth_mtk.so
/system/lib/libcam.camadapter.so
/system/lib/libcam.campipe.so
/system/lib/libcam.camshot.so
/system/lib/libcam.client.so
/system/lib/libcam.device1.so
/system/lib/libcam.exif.so
/system/lib/libcam.paramsmgr.so
/system/lib/libcam.utils.so
/system/lib/libcamalgo.so
/system/lib/libcamdrv.so
/system/lib/libcamera_client.so
/system/lib/libcameracustom.so
/system/lib/libcustom_nvram.so
/system/lib/libdpframework.so
/system/lib/libfeatureio.so
/system/lib/libimageio.so
/system/lib/libimageio_plat_drv.so
/system/lib/libjpeg.so
/system/lib/libJpgDecPipe.so
/system/lib/libJpgEncPipe.so
/system/lib/libMali.so
/system/lib/libmnl.so
/system/lib/libmtkxxx(所有以libmtk开头的so)
/system/lib/libnbaio.so
/system/lib/libsensorservice.so
/system/lib/libshowlogo.so
/system/lib/libvcodec_oal.so
/system/lib/libvcodec_utility.so
/system/lib/libvcodecdrv.so
1.2.2 移植Boot:
1 | 参考同平台 |
第二章:修改build.prop中的一些内容
build文件的位置:1
/system/build.prop
请保持build.prop文件的编码为UTF-8
本步骤可以忽略,但是您的ROM可能会出现一下状况
不会显示正确的品牌与机型
DPI可能会出现问题
语言和时区可能会不与您所在的地区相符
注:您可以参考您官方ROM的build.prop中的内容进行修改
2.1 修改机型
在您的build.prop找到以下字段,它们会在比较靠前的位置1
2
3
4
5
6
7ro.product.model=
ro.product.brand=
ro.product.name=
ro.product.device=
ro.product.board=
ro.product.manufacturer=
ro.build.product=
按下面所展示的内容进行修改1
2
3
4
5
6
7ro.product.model=品牌+机型
ro.product.brand=品牌
ro.product.name=机型
ro.product.device=机型
ro.product.board=机型
ro.product.manufacturer=品牌(使用大写字母)
ro.build.product=机型
就像这样1
2
3
4
5
6
7ro.product.model=Lenovo A3800-d
ro.product.brand=Lenovo
ro.product.name=A3800-d
ro.product.device=A3800-d
ro.product.board=A3800-d
ro.product.manufacturer=LENOVO
ro.build.product=A3800-d
2.2 修改语言与时区
在您的build.prop找到以下字段,它们会在比较靠前的位置1
2ro.product.locale.language=
ro.product.locale.region=
按下面所展示的内容进行修改1
2ro.product.locale.language=语言
ro.product.locale.region=地区
就像这样1
2ro.product.locale.language=zh
ro.product.locale.region=CN
2.3 修改ROM的DPI
注:如果找不到决定DPI的字段,您还有以下几种选择
1.手动将决定DPI的字段加入到build.prop中
2.跳过此步骤
在您的build.prop找到以下字段,它们所处的位置并不确定1
ro.sf.lcd_density=
按下面所展示的内容进行修改1
ro.sf.lcd_density=和您的设备的屏幕分辨率相对应的DPI,它是一个整数
就像这样1
ro.sf.lcd_density=240
附:各种常见分辨率所对应的DPI
1 | LDPI ( 240x320 / QVGA )=120 |
第三章:修改刷机脚本中的内容
脚本文件路径1
/META-INF/google/android/updater-script
请保持update-script文件的编码为UTF-8
3.1 去掉机型验证,如果脚本中不存在机型验证的内容就跳过此步骤
将updater-script中类似于1
2assert(getprop("ro.product.device") == "xxx" ||
getprop("ro.build.product") == "xxx" || getprop("ro.build.product") == "xxx");
的内容去掉即可
3.2)修改和分区有关的内容
将updater-script中带有mount字样的语句替换为官方updater-script中带有mount的语句
就像这样
这是目标ROM中相关的内容1
2mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p7", "/data");
这是官方ROM中相关的内容1
2mount("ext4", "EMMC", "/dev/block/mmcblk0p6", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p6", "/data");
差别很明显,但是不要用我提供的内容进行替换
3.3)在刷机过程中显示一些信息
这一步骤是无关紧要的,可忽略
在你认为合适的地方加入一些1
ui_print(" ");
并在引号内加入你想要展示的信息
就像这样1
2ui_print("本ROM制作者:装机狂魔 ");
ui_print("发布日期:2017-08-07 ");
3.4)判断并解决一些刷机脚本的错误1
2
3
4
5
6
7status 1 :错误的原因是传入的参加少于4个。导致错误的地方是install.c::try_update_binary() ,解决方案是换一个Recovery
status 2 :错误的原因是传入的参加中的第二个参加,RECOVERY_API_VERSION,错误,不是 '1', '2', '3',这个要去修改源代码中的Android.mk,所以建议换一个 Recovery
status 3 : 刷机包本身有问题,无法被打开, 解决方案,去换一个好的刷机包,或者是重新下载刷机包。
status 4 :无法在刷机包中找到刷机脚本,updater-script ,解决方案,对刷机包重新打包往里面加入updater-script.
status 5 :读取刷机脚本updater-script错误 ,解决方案:重写刷机脚本
status 6 :处理刷机脚本的时候出错 , 解决方案,重写刷机脚本
status 7 :分析刷机脚本的时候出错了。解决方案,重写刷机脚本,改编码为utf8-no-bom
第四章:修复一些BUG
4.1 通讯录fc
1 | 这个只要替换 |
4.2 卡第一屏
1 | 这个其实没什么 |
4.3 照相机拍不了照或者拍照卡死或重启
1 | 同样是替换 |
4.4 通话时对方听不到我方声音
1 | 反编译phone.apk |
4.5 手机要求激活
1 | --桌面上按菜单键->设置->无线和网络->移动网络->CDMA订阅->RUIM/SIM |
4.6 手机出现漫游标志
1 | --设置->无线和网络->移动网络->系统选择->仅本网 |
4.7 不显示开机动画
1 | 使用官方ROM的/system/bin/bootanimation文件替换到ROM里 |
4.8 彩信不可用
1 | 在MMSC里面写:http://mmsc.vent.mobi |
4.9 通话声音或者音乐无声音等BUG
1 | 首先替换bin 下 |
4.10 移植成功触屏无法使用
1 | 替换system/sps文件夹(整个替换) |
4.11)照相机倒置,白屏1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38system/etc/media_profiles.xml
打开:media_profiles.xml
修改里面的代码
<EncoderProfile quality="high" fileFormat="mp4" duration="60">
<Video codec="m4v"
bitRate="3078000"
width="640"
height="480"
frameRate="30" />
为:
<EncoderProfile quality="high" fileFormat="mp4" duration="60">
<Video codec="m4v"
bitRate="3078000"
width="320"
height="240"
frameRate="30" />
修改代码:
<VideoEncoderCap name="m4v" enabled="true"
minBitRate="96100" maxBitRate="2500000"
minFrameWidth="176" maxFrameWidth="640"
minFrameHeight="144" maxFrameHeight="480"
minFrameRate="1" maxFrameRate="30" />
为:
<VideoEncoderCap name="m4v" enabled="true"
minBitRate="96100" maxBitRate="2500000"
minFrameWidth="176" maxFrameWidth="320"
minFrameHeight="144" maxFrameHeight="240"
minFrameRate="1" maxFrameRate="30" />
修改后保存即可
尾声…
指南中部分内容来自互联网
现在您已经为您所钟爱的设备成功地移植了一个ROM
这是关于移植ROM的基础支持……
我已经覆盖了所有的常用的基本指南
向开源致敬!