您的位置:首页 > 移动开发 > Android开发

Android刷机脚本——updater-script

2014-12-14 16:48 239 查看

前言

    updater-script是Android手机刷入系统时的脚本文件,由它来决定Android系统需要刷入哪些内容,如何刷入。

语法

1. mount
语法: mount(fs_type, partition_type, location, mount_point)。
作用:挂载一个文件系统到指定的挂载点。
返回值:成功返回挂载点,失败返回null。
说明:

fs_type:“yaffs2”或“ext4”
partition_type:“MTD”或“EMMC”
location:分区(partition)或驱动器(device)
mount_point:挂载文件系统的目标文件夹
示例:mount("ext4", "EMMC", "/dev/block/mmcblk0p8", "/system");

2. unmount
语法:unmount(mount_point)。
作用:解除文件系统挂载。
返回值:成功返回挂载点,失败返回null。
示例:unmount("/system");

3. format
语法:format(fs_type, partition_type, location)
作用:格式化指定的文件系统
说明:

fs_type:“yaffs2”或“ext4”
partition_type:“MTD”或“EMMC”
location:分区或驱动器
示例:format("ext4", "EMMC", "/cache");

4. delete
语法:delete(file1, file2, ..., fileN)
作用:删除文件。变长参数,支持删除多个文件。
示例:delete("/tmp/boot.img");

5. delete_recursive
语法:delete_recursive(<path>)
作用:递归删除目录。
示例:delete_recursive("/data/media/AppStoreWidget")

6. show_progress
语法:show_progress(fraction, duration)
作用:在recovery中为下面的程序操作显示进度条。进度条会根据duration前进fraction。
说明:

fraction:进度完成数值
duration:总秒数
示例:show_progress(0.950000, 50); (ps:show_progress后面的操作可能耗时50s,完成后进度条前进95%)

7. package_extract_dir
语法:package_extract_dir(package_path, destination_path);
作用:释放卡刷包中package_path的内容到destination_path。
示例:package_extract_dir("system", "/system"); (ps:释放rom包中system文件夹下所有文件和子文件夹至/system)

8. package_extract_file
语法:package_extract_file(file_path, destination_path);
作用:提取Rom包中的单个文件到指定目标目录。
示例:package_extract_file("boot.img", "/tmp/boot.img");

9. symlink
语法:symlink(target, src1, src2, ...);
作用:建立指向target的符号链接src1、src2...
说明:

target:符号链接目标
src1:要创建的符号链接目标点
示例:symlink("mksh", "/system/bin/sh");

10. set_perm
语法:set_perm(uid, gid, mode, file1, file2, ..., fileN);
作用:设置单个文件或者多个文件的权限。
说明:

uid:用户ID
gid:用户组ID
mode:权限
file1:需要设置的文件路径
示例:set_perm(0, 3004, 02755, "/system/bin/ping");

11. set_perm_recursive
语法:set_perm_recursive(uid, gid, dir-mode, file-mode, path);
作用:设置指定文件夹和文件夹中文件的权限。
示例:set_perm_recursive(0, 0, 0755, 0644, "/system");

12. ui_print
语法:ui_print("str");
作用:recovery中打印出str字符串内容,类似于Java中的System.out.println();
示例:ui_print("+++++++++++++++++++++++++++++++++++++++++++++");

13. run_program
语法:run_program(path, arg1, ..., argN)
作用:以指定的参数执行程序。
说明:

path:要执行的程序路径
arg1:运行参数信息

示例:run_program("/sbin/busybox", "mount", "/system");

14. write_raw_image
语法:write_raw_image(file_path, partition);
说明:

file_path:要读取的img源文件
partition:要写入img文件的目标分区
示例:write_raw_image("/tmp/boot.img", "bootimg");

15. assert
语法:assert(condition1, ..., conditionN);
作用:如果condition的计算结果为false,则终止脚本的运行。
示例:assert(package_extract_file("boot.img","/tmp/boot.img"), write_raw_image("/tmp/boot.img","bootimg"), delete("/tmp/boot.img"));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐