updaterr-script 语法参考

参考来源:Google 官方源码(froyo)(src/bootable/recovery/updater/install.c)
地址:http://android.git.kernel.org/?p=platform/bootable/recovery.git;a=blob_plain;f=updater/install.c;hb=HEAD

assert
语法:assert(表达式1, […<表达式 N>])
描述:按序执行<表达式>,如果返回为真,则继续执行下一命令,否则终止执行。
示例:assert(getprop(“ro.product.device”) == “umts_sholes” || getprop(“ro.build.product”) == “umts_sholes” ||
getprop(“ro.product.board”) == “umts_sholes”);,这个命令用来判断当前机器是否是 Wildfire(buzz)。不是
则终止,是则继续。
••
delete
语法:delete(文件1, […<文件 N>])
描述:删除指定的文件。
示例:delete (“/tmp/a2sd.sh”);,这个命令会删除手机中的文件/tmp/a2sd.sh。

delete_recursive
语法:delete_recursive(文件夹1, […<文件夹 N>])
描述:删除一个文件或递归删除某个文件夹(也就是包括该文件夹中的所有内容)
示例:delete_recursive(/system/app);,这个命令会删除手机/system/app 文件夹下的所有内容。

file_getprop
语法:file_getprop(文件, 指定的属性)
描述:打开指定的 prop 文件,如果存在指定的属性,则返回该属性值,否则返回””。
示例:file_getprop(“/system/build.prop”, “ro.product.device”);,这个命令会打开文件/system/build.prop 并从
中查找属性 ro.product.device 对应的值,如果该属性存在则返回对应的值,否则返回””。

format
语法:format(类型, 位置)
描述:格式化指定类型的某分区。
示例:format(“MTD”, “system”);,这个命令会格式化 MTD 分区 system。

getprop
语法:getprop(指定的属性)
描述:从当前机器中获取指定的属性的值。
示例:getprop(“ro.product.device”) ;,这个命令则会从当前机器中获取属性名为 ro.product.device 的值。

is_mounted
语法:is_mounted(挂载点)
描述:判断指定的挂载点是否存在,存在则返回挂载点名,否则返回””。

mount
语法:mount(类型, 位置, 挂载点)
描述:将指定类型的分区挂载到指定位置(挂载点)
示例:mount(“MTD”, “system”, “/system”);,将 MTD 分区 system 挂载到/system。

package_extract_dir
语法:package_extract_dir(zip 包中的文件夹, 目标文件夹)
描述:解压刷机包中指定的文件夹到指定的路径中。
示例:package_extract_dir(“system”, “/system”);,这个命令会将刷机包根目录下的 system 文件夹中的所有
文件解压到手机的 system 文件夹下。

package_extract_file
语法:package_extract_file(zip 包中的文件, [目标文件])
描述:解压刷机包中指定的文件到指定的路径中。
示例:package_extract_file(“a2sd.sh”, “/tmp/a2sd.sh”);,这个命令会将刷机包中根目录下的 a2sd.sh 文件解
压到手机 tmp 文件夹下,文件名仍为 a2sd.sh。

ruu_program
语法:run_program(文件路径,[参数1,…])
描述:运行一个刷机包中的外部程序。
示例:run_program(“/tmp/a2sd.sh”);,这个命令会执行手机 tmp 文件夹下的 a2sd.sh 脚本程序。

set_perm(本命令中涉及的数值,如有疑惑,请自行 Google。uid=user id,gid=group id)
语法:set_perm(uid, gid, 权限模式, 文件)

描述:设置某个文件或是指定的整个目录树的所有者和权限,就像是一个‘chmod’、‘chown’、以及
‘chgrp’命令的集合体。
示例:set_perm(0, 2000, 0550, “/system/etc/init.goldfish.sh”);,这个命令会设置手机上 system 分区中
etc/init.goldfish.sh 文件的用户组为:shell;用户为:root;权限为:所有者以及所属用户组成员可以进行
读取和执行操作,其他用户无操作权限。

set_perm_recursive(本命令中涉及的数值,如有疑惑,请自行 Google。uid=user id,gid=group id)
语法:set_perm_recursive(uid, gid, 文件夹权限模式, 文件权限模式, 文件夹)

描述:递归设置某个文件夹中所有内容的所有者和权限
示例:set_perm_recursive(0, 0, 0755, 0644, “/system/app”);,这个命令会递归设置手机上 system/app 文件夹
以及其所有内容的用户组为:root;用户为:root;app 文件夹的权限为:所有者可以进行读、 写、执行
操作,其他用户可以进行读取和执行操作;app 文件夹下的所有文件的权限为:所有者可以进行读写操作,
其他用户可以进行读取操作。

show_progress
语法:show_progress(小数, 持续时间)
描述:为下一个操作在屏幕上显示一个进度条,自动的根据<持续时间>指定的秒数来递增进度条状态(如
果实际上进度条的推进是可以确定的,那就会更加迅速)。
示例:show_progress0.1 0,这个命令是指,操作完成后,进度条前进0.1(10%)

symlink
语法:symlink(链接目标, 链接所在路径1, [链接所在路径2 …])
描述:创建一个符号链接(就像是 ‘ln-s’)。<链接所在路径>的格式类似于这样:根目录:路径, 但是<
链接目标>则是指目标文件(而且位置可能是相对与链接所在路径的)
示例:symlink(“/system/bin/su”, “/systemxbin/su”),这个命令会为/system/bin/su 创建一个符号链接,为
/systemxbin/su

ui_print
语法:ui_print(字符串)
描述:在屏幕上打印出指定的字符串信息。
示例:ui_print (“www.GoAPK.com”),这个命令会在手机屏幕上打印出一行字:www.GoAPK.com
••
unmount
语法:unmount(挂载点)
描述:将分区从指定的挂载点上卸载
示例:unmount(“/system”);,这个命令将会卸载掉 system 分区。

write_raw_image
语法:write_raw_image(镜像文件, 目标分区)
描述:将指定的<源镜像文件>刷入机器中指定的<目标分区>。
示例:write_raw_image(“/tmp/boot.img”, “boot”);,这个命令会将刷机包根目录下的 boot.img 刷入到手机的启动分区中(BOOT:)

发表评论

电子邮件地址不会被公开。 必填项已用*标注