updater-script语法简介
updater-script就是刷机包中用来告诉Recovery执行哪些指令的脚本,常用的功能有格式化分区,删除文件,设置文件权限等。由于三星的Android手机大部分使用的是三星独有的RFS分区格式(安卓通用的是yaffs2,cm用的是ext4),而HTC厨房生成的脚本是yaffs2的。所以做三星手机的国行卡刷包,不能直接用HTC厨房生成的脚本,需要修改一下。
下面简单介绍一下updater-script的语法格式:
- 函数:mount
用法举例:mount(“MTD”, “system”, “/system”);挂载system分区 - 函数:unmount
用法举例:unmount(“/system”); 卸载/system分区 - 函数: format
用法举例:format(“MTD”, “system”);格式化system分区 - 函数:delete
用法举例:delete(“/system/app/a.apk”);删除/system/app/a.apk - 函数:delete_recursive
用法举例:同上。 - 函数:show_progress
用法举例:show_progress(0.1, 10);//0.1说明完成后进度条前进到10% - 函数: set_perm
用法举例:set_perm(0,2000,0550, “system/g.sh”);设置手机system中的g.sh的属性为550 - 函数:write_raw_image
用法举例: write_raw_image(“/tmp/boot.img”, “boot”);把boot.img写入boot分区 - 函数:ui_print
用法举例:ui_print(“mogu Rom”);刷机时屏幕显示“mogu Rom” - 函数:package_extract_dir
用法举例:package_extract_dir(“system”, “/system”);把卡刷包中system文件夹下的内容解压到system分区
如果是做三星卡刷包的话,需要修改的就是mount和format部分,原因有两点:一是三星专有的rfs分区格式,不能用默认的format语法来格式化;二是S5670的分区代码比较特别,system分区的地址为”/dev/block/stl12″。解决办法是:用”delete_recursive(“/system”);”来代替格式化,这个命令是删除system分区里的所有文件,并不是格式化,所以不可以和cm互刷。
下面说明一下怎么修改HTC厨房生成的updater-script脚本,来用于S5670:
HTC厨房生成的updater-script脚本中的format命令对于S5670是无效的,可以用delete_recursive删除文件夹命令代替。
delete_recursive(“/system”);