1.刷入第三方recovery包,这里选clockworkmod的recovery包,假设为recovery.img
刷入方法:
adb reboot bootloader (或者按power+volume-)//重启到bootloader,刷recovery需要在bootloader中进行
fastboot flash recovery recovery.img //开始刷recovery.img包
fastboot reboot //重启到正常模式
2.编写recovery包中的Edify语言脚本文件:updater-script
ui_print("******** start recovery *********");
ui_print("-------- Mount system ------------");
#挂载/system为rw模式,/sbin/busybox位于recovery中
run_program("/sbin/busybox","mount","-o","rw","/system");
ui_print("-------- delete /system/xbin/su ------------");
#删除旧的/system/xbin/su文件
delete("/system/xbin/su");
ui_print("------ copy system to /system ---------");
#复制升级包的system文件夹(含有su)到/system
package_extract_dir("system","/system");
ui_print("------- set permission:/system/xbin/su --------");
#设置/system/xbin/su权限,0:root用户,0:root用户组,0777:rwx
set_perm(0,0,0777,"/system/xbin/su");
ui_print("-------- umount /system --------");
#卸载/system
umount("/system")
ui_print("upgrade successfully");
3.制作recovery升级包
最简单的升级包包含以下2个目录即可:
META-INF/com/google/android
system/xbin (xbin里面其实就只需要su文件即可)
拥有以上2个目录的升级包后,只需将上面的updater-script复制到META-INF/com/google/android/下即可(可以在该目录下看到update-binary可执行文件,该文件就是Edify解析器,用来解析updater-script文件).
4.开始升级
adb reboot recovery //进入recovery模式进行刷机升级