Android刷机脚本——updater-script

前言

    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)
作用:以指定的参数执行程序。
说明:
  • 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"));


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。