
百度云ROM移植教程(高通篇)
百度云已经有了很多高通平台的ROM,基于高通平台,我们可以将百度云ROM移植到其他的高通的机型上。教程写出来供大家参考。
根据自身的移植心得,再参考其他已有教程,总结了一下百度云ROM的移植。
准备环境:
cygwin安装,如果有linux环境,则可以直接绕过这一步:
一、选择合适的基础包
1.1 选择合适的第三方ROM 包
市面上高通平台的手机众多,这时我们需要选择一个合适的ROM 作为基础包(这这里简称Base)。
首先,本篇中我们讲的是直接将高通平台手机的官方ROM 移植成为百度的ROM。
在这里我们首先要找到自己机型的官方卡刷包,然后进行如下操作:
1)提取卡刷包的system文件夹
2)提取卡刷包中的boot.img
1.2 选择合适的百度OS 刷机包
在这里一定要注意,必须要高通平台的百度云刷机包作为移植基准包(后面简称sample 包)
二、移植之前的准备工作
本帖隐藏的内容选择好合适的base 包并下载完sample 包以后,我们首先要进行上面的操作得到system 文件夹和boot.img,这时再将sample 包解压到任意文件夹。
1.明确移植操作的方向
在这里,我们首先一定要明确移植的方向是:
![]()
以百度的sample 包作为最终成型刷机包的基础,把base 包中各机型特有的东西加上去,最终形成自己的刷机包。
2.学习使用BeyondCompare
使用BeyondCompare进行对比操作,篇幅所限,本文中不再教给大家,但是在互联网中关于这个工具的教程有很多,大家可以自学下。
三、移植过程中所需要的操作
底包的文件格式通常是rar,底包下载完成后进行解压,然后在得到的文件夹中找到下图中的文件(本例为欧版底包,不同版本的底包文件会有所不同)。电脑弹出丢失gdiplus.dll文件错误 打开百度,输入dll修复.找到动态链接库修复一键修复_百度电脑专家.看下图. 点击一键安装修复.然后下载该软件,不需要安装. 下载完成后打开软件.输入gdiplus.dll.点击修复可以了.这种方法可以修复其他的dll文件缺失.简单方便好用,你不妨点个赞.。分歧机型我没胜利过,下面只说同机型移植,miui移植到cm7上,我们需求把miui下的framework下的一切框架文件一个都不克不及少的移植到cm包里,就是先要把cm下的framework删除,再把miui的framework下的一切框架文件移植过去,框架文件互相之间都有联系关系,所以必需一同挪动。
2.移植lib 层
system 下的lib 文件夹主要是Android 系统的动态链接库,这里面有一些是系统硬件相关的接口,以及
一些系统层应用需要调用的库文件,还有厂商的HAL层的库文件,百度同样在此处进行了修改。
所以在移植这里的时候一定要谨慎,不能随便删减添加东西,但是其中的modules 必须使用官方base 包的,下面给出使用的基本列表,在列表以外的尽量保持百度sample 包的
需要替换为官方的文件状态(如果没有需要添加)
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 文件夹
更新a包、a+包、a++包(06.15之前下载安装了上一版本b包/b+包/b++包的朋友,如果本次要更新安装a包/a+包/a++包,请先删除上一版本的所有文件,然后进到3dm 5号档原版选择需要的文件下载替换还原,然后再下载最新的a包/a+包/a++包进行安装)。本次的a包/a+包/a++包是新制的(06.01之前下载安装了上一版本a包/a+包/a++包的朋友,如果本次要更新安装a包/a+包/a++包,请先删除上一版本的所有文件,然后进到3dm 5号档原版选择需要的文件下载替换还原,然后再下载最新的a包/a+包/a++包进行安装。这个规则的意思是,所有的[.d]文件依赖于[.c]文件,“rm-f $@”的意思是删除所有的目标,也就是[.d]文件,第二行的意思是,为每个依赖文件“$<”,也就是[.c]文件生成依赖文件,“$@”表示模式“%.d”文件,如果有一个c文件是name.c,那么“%”就是“name”,“$$$$”意为一个随机编号,第二行生成的文件有可能是“name.d.12345”,第三行使用sed命令做了一个替换,关于sed命令的用法请参看相关的使用文档。
7.修改build.prop
必须使用base 包中官方的build.prop,但是必须在build.prop 任意位置加入如下几行(对比了百度和联想官方的build.prophtc m7百度云rom,发现百度修改和添加了一下prop,移植时如果base的build.prop有这个属性,替换,没有则增加即可):
ro.baidu.build.hardware=c8813(以c8813为例,可选择自己适配的机型)
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
注意事项:
修改build.prop,建议直接使用BeyondCompare来做,按给出的参考进行复制。
8.移植boot.img
这里无需多说,boot.img 启动镜像必须使用自己手机的。对比了一下百度和官方的boot.img,发现百度修改了boot.img里的default.prop和init.rc来支持手机root和它自己的一些服务。

修改:boot.img-ramdisk/default.prop
ro.secure=1 修改为ro.secure=0
ro.debuggable=1 修改为 ro.debuggable=1
setprop sys.usb.state ${sys.usb.config}。获取root后再输setprop sys.usb.config diag,adb。usb_function=$(/system/bin/getprop sys.usb.config)。
修改: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 backuprestorestream 600 system system
四、移植完成后的工作
1.压缩打包为zip 刷机包
META-INF建议在百度的c8813基础上进行修改
修改META-INF/com/google/android/updater-script:
assert(getprop("ro.product.device")== "c8813" ||
getprop("ro.build.product") == "c8813" ||
getprop("ro.product.device") == "c8813" ||
getprop("ro.build.product") == "c8813");
这个直接删除。
assert(package_extract_file("recovery.img","/tmp/recovery.img"),
write_raw_image("/tmp/recovery.img", "recovery"),
delete("/tmp/recovery.img"));
这个是要来刷recovery的,可以删除。
2.压缩打包为zip 刷机包
最初voip方式主要是pc到pc,利用ip地址进行呼叫,通过语音压缩、打包传送方式,实现因特网上pc机间的实时话音传送,话音压缩、编解码和打包均通过pc上的处理器、声卡、网卡等硬件资源完成,这种方式和公用电话通信有很大的差异,且限定在因特网内,所以有很大的局限性。最初VoIP方式主要是PC到PC,利用IP地址进行呼叫,通过语音压缩、打包传送方式,实现因特网上PC机间的实时话音传送,话音压缩、编解码和打包均通过PC上的处理器、声卡、网卡等硬件资源完成,这种方式和公用电话通信有很大的差异,且限定在因特网内,所以有很大的局限性。所谓的依赖管理就是指,我们对于框架中的 jar 包从此不需要手动的添加到项目中来,而是使用 maven 的语法进行引用,当然在打包发布的时候,这些包还是会被加入进来,但是在我们的源代码中就不存在任何的 jar 包,整个项目轻量可移植性强。
3.使用Recovery 输入ROM 包进行测试!
刷机步骤:先用(努比亚z9mini-5.1recovery)刷入第三方的rec,进入第三方rec,然后清除机器数据(也就是双清) 。估计要去到这个帖子,按这位高人说的步骤先把他制作的已root的4.7.3cn版本的系统刷入后,再按照上述步骤刷回官方的4.7.3cn版本。按常规卡刷流程刷入即可,注意刷第三方rechtc m7百度云rom,刷入包之前要双清,电池电量,可用内存。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/sanxing/article-104512-1.html
把群里的人全部拉来了我够了吧