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模式进行刷机升级