admin管理员组

文章数量:1566224

2023年12月16日发(作者:)

如何移植ROM

只试用于MTK芯片手机!

在这篇教程中,你将会学会同平台CPU移植,也将会跨平台移植。

试用于芯片

MT6589 to MT6577移植

MT6582 to MT6572移植

MT6577 to MT6575移植

只能ICS移植ICS 或者JB to JB

可能4.1移植4.2也行,只是可能。

不需要安卓源码

不需要内核源码

不需要安卓厨房

不需要Linux环境

只需要:

* 大脑的思考

* 耐心去做的决心

* Windows XP/7/8

* 7-Zip解压缩工具

* Notepad++文本编辑器

* Bootimg 解包打包工具

* 官方ROM和要移植的ROM

准备好了,现在开始...

同平台移植 ( 例如: MT6572 移植MT6572)

*把官方ROM和要移植的ROM解压。

* 从你的官方系统中提取以下文件替换到你想要移植的ROM中,注意,替换整个文件夹时先删除要移植的包中相应文件夹,不要直接合并。

需要替换的文件或文件夹有:

*system/vendor/lib

*system/usr/keychars和keylayout

*system/lib/modules

*system/lib/hw

*system/lib/

*system/etc/firmware

*system/etc/

*system/etc/

*system/etc/bluetooth

当出现一下bug时,替换以下文件...

*system/etc/permissions

*system/etc/security

*system/etc/audio

*system/etc/wifi

*system/lib/drm

*system/lib/egl

*system/lib/soundfx

* 然后把官方的替换到要移植的包,前提是你的官方包boot和要移植的包中boot的启动项要相同,如果你移植像乐蛙ROM这样的,还需修改启动项。因为乐蛙还导入了,下文有说明,建议移植任何ROM都修改一下boot中的启动项,下文有讲怎么修改。

*接下来用notepad++打开要移植的ROM中的 META-INF/google/android/updater-script这个刷机脚本

* 找到这段:

format(".......

只需要修mmcblk0p.. 为你官方包的分区

* 依然像上面那样把下面的修改为你官方包的对应分区,可以参考官方包中的刷机脚本改

mount("...

例如:

这是要移植的ROM中的刷机脚本的部分内容:

format("ext4", "EMMC", "/dev/block/mmcblk0p5", "0", "/system");

mount("ext4", "EMMC", "/dev/block/mmcblk0p5", "/system");

这是官方包中刷机脚本的部分内容:

format("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");

mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");

那么,你只需把要移植的ROM中的刷机脚本中的mmcblk0p5改为mmcblk0p3

修改好了,要移植的ROM中的刷机脚本那部分内容应该像这样:

format("ext4", "EMMC", "/dev/block/mmcblk0p3", "0", "/system");

mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");

不要直接把官方ROM中刷机脚本的整个内容替换到要移植的ROM的脚本中去!

* 现在基本完成,你要移植的ROM基本有下面这几个文件,这是最基本的:

-META-INF

-system

-

* 现在用7zip把上面三个打包成zip格式的压缩包。

* 压缩文件时,应该这样配置:

压缩格式: ZIP

压缩方式: 正常

* 现在,把制作好的zip包放入SD卡,然后进入第三方Recovery模式

* 选择清空数据,恢复出厂设置,完成后,再选择清空cache缓存。

*接下来,选择“从SD卡安装zip包,选择那个包,确定,然后等待刷机完成”

接下来,是跨平台移植 ( 例如: MT6582 移植 MT6572 )

请仔细看接下来的教程

* 官方包中提取以下文件或文件夹替换到要移植的包中

*system/vendor/lib

*system/usr/keycharts和keylayout

*system/lib/modules

*system/lib/hw

*system/lib/

*system/etc/firmware

*system/etc/

*system/etc/

*system/etc/bluetooth

* 接下来用notepad++打开要移植包中的,找到以下内容:

rm=MT65xx

把这里的MT65xx改为你的手机的cpu型号。

例如我的手机cpu型号为MT6572,那么就改为:

rm=MT6572

*然后用notepad++打开要移植包中的刷机脚本

* 在"set_perm"这段的结束地方添加这句:

set_perm(0, 0, 0644, "/system/vendor/lib/hw/");

[把这里的mt65xx改为你的cpu型号]

例如,我的cpu是MT6572,那么就这样改:

set_perm(0, 0, 0644, "/system/vendor/lib/hw/");

*现在,用boot解包工具把官方boot和要移植的boot解包。

*然后打开要移植的boot解包后的-ramdisk,然后从中复制所有文件到 你官方boot中的-ramdisk 文件夹中。如果文件存在就跳过,相当于把要移植包boot中多余的文件复制到官方中去

*然后用notepad++打开官方-ramdisk文件夹 中的

*找到这句,并修改cpu型号为你的cpu型号

#Create Chip Property

on early_property:re=mt6582

setprop re mt6589

on early_property:re=mt6589

setprop re mt6589

例如,我的cpu是MT6572,那么就这样改 :

#Create Chip Property

on early_property:re=mt6582

setprop re mt6572

on early_property:re=mt6589

setprop re mt6572

*接下来,修改,参照要移植的boot改。

* 然后把修改好的官方boot打包,并把打包的和要移植包中的其他两个修改好的文件夹压缩,方法和上面一样。

移植Lewa OS5 ROM:

*官方包提取这些文件或文件夹到LeWa OS5 ROM中

*system/vendor/lib

*system/usr/keylayout和keycharts

*system/lib/modules

*system/lib/hw

*system/etc/firmware

*system/etc/

*system/etc/

*system/etc/bluetooth

* 然后解包官方的

* 打开

* 找到这几句,可能各个机型以下内容不同,有的机型只有一个启动项,这只是个示范。

on early_property:=user

write /proc/bootprof "INIT: user build setting"

export BOOTCLASSPATH

/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/

on early_property:=userdebug

write /proc/bootprof "INIT: userdebug build setting"

export BOOTCLASSPATH

/system/framework/:/system/framework/:/system/framework/

:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/

on early_property:=eng

write /proc/bootprof "INIT: eng build setting"

export BOOTCLASSPATH

/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/

*添加以下这句到每三行的最后,注意/前面有个冒号!

:/system/framework/

例如:

on early_property:=user

write /proc/bootprof "INIT: user build setting"

export BOOTCLASSPATH

/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/

on early_property:=userdebug

write /proc/bootprof "INIT: userdebug build setting"

export BOOTCLASSPATH

/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/

system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/

on early_property:=eng

write /proc/bootprof "INIT: eng build setting"

export BOOTCLASSPATH

/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/

* 修改好了保存,然后用bootimg打包,把打包好的与之前修改好的那几个文件夹一起打包成zip,方法和之前一样。

移植MIUI ROM

*官方包提取这些文件或文件夹到MIUI ROM中

*system/vendor/lib

*system/usr/keylayout和keycharts

*system/lib/modules

*system/lib/hw

*system/etc/firmware

*system/etc/

*system/etc/

*system/etc/bluetooth

* 然后解包官方的

* 打开

* 找到这几句,可能各个机型以下内容不同,有的机型只有一个启动项,这只是个示范。

on early_property:=user

write /proc/bootprof "INIT: user build setting"

export BOOTCLASSPATH

/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/telephony-com

:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/

on early_property:=userdebug

write /proc/bootprof "INIT: userdebug build setting"

export BOOTCLASSPATH

/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/

on early_property:=eng

write /proc/bootprof "INIT: eng build setting"

export BOOTCLASSPATH

/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/:/system/framework/

*和移植乐蛙一样,在每行最后添加以下内容,/前面有个冒号!

:/system/framework/

* 然后打包,接下来就和之前一样

尽情享受你的ROM吧!

修复bug

短信,电话,设置,通讯录强行关闭,修复方法:

反编译官方和要移植的包中

* 找到:

smalicommediatek

*替换官方所有的这个文件夹的内容到移植的ROM中

* 然后,找到

smalicomandroidserver

* 替换官方所有的这个文件夹的内容到移植的ROM中

* 修改好后,回编译要移植的ROM的,然后替换回去。

* 修复其他bug

1、无信号、未知基带、无SIM卡如何修复?

替换以下文件为官方:

systembinccci_fsd

systembinccci_mdinit、

systembingsm0710muxd、

systembinnetd、

systembinnetdiag

systembinp2p_supplicant

systembinwpa_supplicant

systemlib/

2、相机问题,官方提取以下文件替换:

systemlib/hw/

systemliblibcamera_

systemliblibmhal***.so(搜索libmhal有多少换多少)

3、GPS问题,替换:

/system/xbin/libmnlp

4、蓝牙问题,替换:

/system/lib/libbluetooth_

/system/lib/libbluetoothem_

5、音频问题,替换:

systemliblibaudioeffect_

6、收音机问题,替换:

7、修复wifi和radio:

打开,找到以下内容(可以参考官方包中的改):

(MT6572不需要这样做)

=1

(把1改为3,如果你的cpu是MT6628)

=MT6620

(修改这个 =MT6620 为你的 WLAM 芯片型号 例如我的是mt6628,那么改为: =MT6628)

x=_mt6620

(修改这个 x=_mt6620 为 你的 WLAM 芯片型号, 例如我的是_mt6628,那么改为: x=_mt6628)

* 然后打开要移植包的刷机脚本,找到下面内容,没找到自己添加。

symlink("wlan_", "/system/lib/modules/")

(把这里的 wlan_ 改为你的 WLAM 芯片型号。 例如我的是mt6628,那么改为:

wlan_ ),然后替换以下文件:

/system/bin/p2p_supplicant

/system/bin/wpa_supplicant /system/lib/libwpa_

/system/lib/libhardware_

/system/lib/有wifi或wlan字眼的so文件

8、内置储存和外置储存反了

替换/system/etc/为官方。

9、usb不能挂载储存卡

替换/system/bin/vold为官方。

10、传感类方面

替换/system/hw下所有文件和

/system/lib/

ZhaoHay翻译,删减部分无用内容。

本文标签: 移植官方替换文件