前言
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后面的操作可能耗时0.95s,完成后进度条前进50%)
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)
作用:以指定的参数执行程序。
说明:
示例: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"));