的
库
需要替换为官方的文件状态(如果没有需要添加)
modules 文件夹必须整个使用官方base 包的
使用BeyondCompare 对比出来base 包多的.so 文件可以添加
3.移植system/bin 和system/xbin 文件夹
必须全部使用sample 包的,否则有可能出现系统权限错误,busybox 失效等问题
4.移植system/media 文件夹整个文件夹必须使用百度sample的,否则可能出现开机动画消失,锁屏消失,无法开机等问题。
5.移植system/usr 文件夹,
这里请将sample 包的keychars 和keylayout 两个文件删除,替换为base 包中的这两个文件夹。
6.移植system/etc 文件夹
必须将sample 文件夹中firmware 文件夹删除,替换为官方base 包中的firmware 文件夹。:
7.修改build.prop
必须使用base 包中官方的build.prop,但是必须在build.prop 任意位置加入如下几行(对比了A789百度和联想官方的build.prop,发现百度修改和添加了一下prop,移植时如果base的build.prop有这个属性,替换,没有则增加即可):
ro.baidu.build.hardware=A789(这里以A789为例,可选择自己适配的机型)
ro.baidu.build.hardware.version=1.0
ro.baidu.build.software=yi_3.0
ro.baidu.build.version.release=2.1
ro.product.manufacturer=Baidu
persist.sys.emmc=/mnt/sdcard2
ro.config.notification_sound=Ding.mp3
ro.config.ringtone=Echo.mp3
ro.config.alarm_alert=alarm.mp3
删除以下几个属性
ro.operator.optr=
ro.operator.spec=
ro.operator.seg=
注意事项:
修改build.prop,建议直接使用BeyondCompare来做,按给出的参考进行复制。
8.移植boot.img
这里无需多说,boot.img 启动镜像必须使用自己手机的。对比了一下百度和联想官方的boot.img,发现百度修改了boot.img里的default.prop和init.rc来支持手机root和它自己的一些服务。
注意事项:
由于.gz文件格式的问题,要修改ramdisk里的default.prop和init.rc,必须在linux下修改
解包和打包mtk的boot.img的方法和工具见如下连接,需要安装perl:
修改:boot.img-ramdisk/default.prop
ro.secure=1 修改为 ro.secure=0
ro.debuggable=1 修改为 ro.debuggable=1
persist.sys.usb.config=mass_storage 修改为 persist.sys.usb.config=mass_storage,adb
修改:boot.img-ramdisk/init.rc
a) 添加副卡路径(可选):在export EXTERNAL_STORAGE /mnt/sdcard后面加上一行export SECONDARY_STORAGE /mnt/sdcard2
注意:不一定是/mnt/sdcard2, 如果加上后,文件管理器上面找不到手机上的文件,请不要添加这一项
b) 将BOOTCLASSPATH改为百度的,为了防止有些jar包遗漏
c) 另外在on fs下加上
chown root root /system/bin/su
chmod 6755 /system/bin/su
d) 添加以下内容, 好像是百度的服务
service alljoyn-daemon /system/xbin/alljoyn-daemon --internal --no-switch-user --no-bt
class main
oneshot
service WordSegService /system/bin/WordSegService
class main
oneshot
service backuprestore /system/bin/backuprestore
class main
socket backuprestore stream 600 system system
四、移植完成后的工作
1.压缩打包为zip 刷机包
META-INF建议在百度的A789基础上进行修改
修改META-INF/com/google/android/updater-script:
百度的A789在这里添加了:
assert(getprop("ro.product.device") == "A789" ||
getprop("ro.build.product") == "A789" ||
getprop("ro.product.device") == "a789" ||
getprop("ro.build.product") == "a789");
这个需要根据具体机型进行更改,要不然就直接删除吧。
assert(package_extract_file("recovery.img", "/tmp/recovery.img"),
write_raw_image("/tmp/recovery.img", "recovery"),
delete("/tmp/recovery.img"));
这个是要来刷recovery的,如果没有就删除吧。
2.压缩打包为zip 刷机包
完成上述操作后,你的百度OS 移植ROM 已经基本完成了,这时候,你需要将你解包sample 包出来并移植完成后的system,META-INF 文件夹以及boot.img 启动镜像打包回去,只需要像平时压缩文件时一样,将它们打包为一个zip 压缩包。在这里一定要注意,必须使用zip 格式压缩,同时不能用太大的压缩码率。
3.使用Recovery 输入ROM 包进行测试!
我相信进行移植操作的各位都已经很熟练刷机这个步骤,但是在这里我还是要提醒大家,做好的ROM 一定要自己刷入进行测试,刷入时一定要双清(双Wipe)。
4.测试过后出现Bug 的反馈机制
我相信大家只要选好base 包,并如上操作,你们的百度ROM 已经成型并可以使用了。
但是,因为每一个ROM 制作者针对不同机型所做的修改不同,有可能会出现一些Bug,如果出现了大家无法解决的Bug。
这时,可以考虑去百度云rom论坛反馈问题,请教百度云rom的大神们!!!哈哈~~~~