【蘑菇教程】(3)updater-script语法简介

updater-script语法简介

updater-script就是刷机包中用来告诉Recovery执行哪些指令的脚本,常用的功能有格式化分区,删除文件,设置文件权限等。由于三星的Android手机大部分使用的是三星独有的RFS分区格式(安卓通用的是yaffs2,cm用的是ext4),而HTC厨房生成的脚本是yaffs2的。所以做三星手机的国行卡刷包,不能直接用HTC厨房生成的脚本,需要修改一下。

下面简单介绍一下updater-script的语法格式:

  1. 函数:mount
    用法举例:mount(“MTD”, “system”, “/system”);挂载system分区
  2. 函数:unmount
    用法举例:unmount(“/system”); 卸载/system分区
  3. 函数: format
    用法举例:format(“MTD”, “system”);格式化system分区
  4. 函数:delete
    用法举例:delete(“/system/app/a.apk”);删除/system/app/a.apk
  5. 函数:delete_recursive
    用法举例:同上。
  6. 函数:show_progress
    用法举例:show_progress(0.1, 10);//0.1说明完成后进度条前进到10%
  7. 函数: set_perm
    用法举例:set_perm(0,2000,0550, “system/g.sh”);设置手机system中的g.sh的属性为550
  8. 函数:write_raw_image
    用法举例: write_raw_image(“/tmp/boot.img”, “boot”);把boot.img写入boot分区
  9. 函数:ui_print
    用法举例:ui_print(“mogu Rom”);刷机时屏幕显示“mogu Rom”
  10. 函数: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”);

发表评论