1. 求高通cpu机器的recovery移植教程
准备环境:
cygwin安装,如果有linux环境,则可以直接绕过这一步:
http://bbs.an.com/thread-5292876-1-1.html
一、选择合适的基础包
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进行对比操作,篇幅所限,本文中不再教给大家,但是在互联网中关于这个工具的教程有很多,大家可以自学下。
三、移植过程中所需要的操作
1.移植网络的应用层和framework 框架层此处将如下图三个文件夹必须使用网络sample 包的,否则会产生各种bug:
2.移植lib 层
system 下的lib 文件夹主要是Android 系统的动态链接库,这里面有一些是系统硬件相关的接口,以及
一些系统层应用需要调用的库文件,还有厂商的HAL层的库文件,网络同样在此处进行了修改。
所以在移植这里的时候一定要谨慎,不能随便删减添加东西,但是其中的moles 必须使用官方base 包的,下面给出使用的基本列表,在列表以外的尽量保持网络sample 包的
需要替换为官方的文件状态(如果没有需要添加)
moles 文件夹必须整个使用官方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 任意位置加入如下几行(对比了网络和联想官方的build.prop,发现网络修改和添加了一下prop,移植时如果base的build.prop有这个属性,替换,没有则增加即可):
ro..build.hardware=c8813(以c8813为例,可选择自己适配的机型)
ro..build.hardware.version=1.0
ro..build.software=yi_3.0
ro..build.version.release=2.1
ro.proct.manufacturer=Bai
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
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 backuprestorestream 600 system system
四、移植完成后的工作
1.压缩打包为zip 刷机包
META-INF建议在网络的c8813基础上进行修改
修改META-INF/com/google/android/updater-script:
assert(getprop("ro.proct.device")== "c8813" ||
getprop("ro.build.proct") == "c8813" ||
getprop("ro.proct.device") == "c8813" ||
getprop("ro.build.proct") == "c8813");
这个直接删除。
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)。
2. 红米2 高通基于安卓6.0.1最新版TWRP刷机recovery 怎么刷入
刷入方抄法如下:
用【移动叔袭叔工具箱】软件,刷入【第三方recovery】,步骤如下:
在已经成功获取root权限的手机上,下载安装【移动叔叔工具箱】软件,使用【移动叔叔工具箱】软件,刷入recovery模式的方法步骤:
1.在网上(推荐手机品牌官网、安卓网机锋论坛、网络网盘)搜索与个人手机品牌及机型信号相匹配一致的第三方recovery.img文件,将其复制粘贴在手机SD卡卡根(卡根:就是直接复制粘贴在SD卡里,不能将文件放在文件夹目录中)
2.成功获取手机安卓系统root权限
3.在已经成功root的手机上下载并安装【移动叔叔工具箱】(软件)
4.用【移动叔叔工具箱】的【recovery更新】功能→【导入SD卡上的recovery.img文件】→确定→重启→重启后,自动进入recovery模式→刷入完成。
进入recovery模式后,按音量键→切换选项;按开机电源键→确认,执行操作