• updaterscript语法说明


    1、mount

    语法:

    mount(type, location, mount_point);

    说明:

    type="MTD"   location="<partition>" 挂载yaffs2文件系统分区;

    type="vfat"  location="/dev/block/<whatever>"  挂载设备。

    例如:

    mount("MTD", "system", "/system");挂载system分区,设置返回指针"/system”

    mount("vfat", "/dev/block/mmcblk1p2", "/system");

    挂载/dev/block/mmcblk1p2,返回指针"/system”

    2、Unmount

    语法:

    unmount(mount_point);

    说明:

    mount_point是mount所设置产生的指针。其作用与挂载相对应,卸载分区或设备。此函数与mount配套使用。

    例如:

    unmount("/system");

    卸载/system分区

    3、Format

    语法:

    format(type, location);

    说明:

    type="MTD"  location=partition(分区),格式化location参数所代表的分区。

    例如:

    format("MTD", "system");格式化system分区

    4、Delete

    语法:

    delete(<path>);

    说明:

    删除文件<path>

    例如:

    delete("/data/zipalign.log");删除文件/data/zipalign.log

    5、delete_recursive

    语法:

    delete_recursive(<path>);

    说明:

    删除文件夹<path>

    例如:

    delete_recursive("/data/dalvik-cache");删除文件夹/data/dalvik-cache

    6、show_progress

    语法:

    show_progress(<fraction>,<duration>);

    说明:

    为下面进行的程序操作显示进度条,进度条会根据<duration>进行前进<fraction>

    例如:

    show_progress(0.1, 10);show_progress下面的操作可能进行10s,完成后进度条前进0.1(也就是10%)

    7、package_extract_dir

    语法:

    package_extract_dir(package_path, destination_path);

    说明:

    释放文件夹package_path至destination_path

    例如:

    package_extract_dir("system", "/system");释放ROM包里system文件夹下所有文件和子文件夹至/system

    8、package_extract_file

    语法:

    package_extract_file(package_path, destination_path);

    说明:

    解压package_path文件至destination_path

    例如:

    package_extract_dir("my.zip", "/system");解压ROM包里的my.zip文件至/system

    9、Symlink

    语法:

    symlink(<target>, <src1>, <src2>,...);

    说明:

    建立指向target符号链接src1,src2,……

    例如:

    symlink("toolbox", "/system/bin/ps");建立指向toolbox的符号链接/system/bin/ps

    10、set_perm

    语法:

    set_perm(<uid>, <gid>,<mode>, <path>);

    说明:

    设置<path>文件的用户为uid,用户组为gid,权限为mode

    例如:

    set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");设置文件/system/etc/dbus.conf的所有者为1002,所属用户组为1002,权限为:所有者有读权限,所属用户组有读权限,其他无任何权限。

    11、set_perm_recursive

    语法:

    set_perm_recursive(<uid>,<gid>,<dir-mode>,<file-mode>,<path>);

    说明:

    设置文件夹和文件夹内文件的权限

    例如:

    set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");设置/data/app的所有者和所属用户组为1000,app文件夹的权限是:所有者和所属组拥有全部权限,其他有执行权限;app文件夹下的文件权限是:所有者有读写权限,所属组有读权限,其他有读权限。

    12、ui_print

    语法:

    ui_print("str");

    说明:

    屏幕打印输出"str"

    例如:

    ui_print("It's ready!");屏幕打印It’s ready!

    13、run_program

    语法:

    run_program(<path>);

    说明:

    运行<path>脚本

    例如:

    run_program("/system/xbin/installbusybox.sh");运行installbusybox.sh脚本文件

    14、write_raw_image

    语法:

    write_raw_image(<path>, partition);

    说明:

    写入<path>至partition分区

    例如:

    write_raw_image("/tmp/boot.img", "boot")将yaffs2格式的boot包直接写入boot分区

    15、assert

    语法:

    assert(<sub1>,<sub2>,<sub3>);

    说明:

    如果执行sub1不返回错误则执行sub2,如果sub2不返回错误则执行sub3一次类推。

    例如:

    assert(package_extract_file("boot.img", "/tmp/boot.img"),
    write_raw_image("/tmp/boot.img", "boot"),
    delete("/tmp/boot.img"));
    执行package_extract_file,如果不返回错误则执行write_raw_image,如果write_raw_image不出错则执行delete

    参考资料:

    1.https://github.com/koush/android_bootable_recovery/blob/eclair/updater/install.c

    2.http://wenku.baidu.com/view/49d6b7dace2f0066f53322d3.html

    3.http://www.opda.com.cn/thread-266871-1-1.html

  • 相关阅读:
    配置Domino CA以支持SSL
    如何在Notes中撰寫JavaServlet程式
    Lotus 技术点之导入
    Lotus Domino R5开发心得
    Domino中用可定制表单显示定制的错误消息
    ExtJs GridPanel 完整实例
    当程序员变成软件项目经理
    SQL Server 索引结构及其使用
    C#事务处理
    on用onpropertychange,oninput事件解决onchange事件的不足
  • 原文地址:https://www.cnblogs.com/DoNetCShap/p/2307120.html
Copyright © 2020-2023  润新知