Android系统recovery刷机脚本updater-script语法说明
来源:锐游网
Android系统recovery脚本updater-script语法说明
这篇教程部分说明来源于网络,主要为了让大家了解updater-script语法和使用,以及熟悉权限的定义和如何使用
unmount
这篇教程部分说明来源于网络,主要为了让大家了解updater-script语法和使用,以及熟悉权限的定义和如何使用
unmount
-
- unmount(mount_point);
- mount_point---是mount设置产生的值。作用与挂载相对应,卸载分区或设备。此函数与mount配套使用。
- unmount("/system"); 卸载/system分区
复制代码
- format
- format(type, location);
- type="MTD" location=partition(分区),location参数代表分区。
- format("MTD", "system"); 格式化system分区
复制代码
- mount
- mount(type, location, mount_point);
- type="MTD" location="" 挂载yaffs2文件系统分区;type="vfat" location="/dev/block/" 挂载设备。
- mount("MTD", "system", "/system"); 挂载system分区,返回值"/system”
- mount("ext4", "/dev/block/mmcblk1p2", "/system"); 挂载/dev/block/mmcblk1p2,返回值"/system”/system分区格式为ext4
- mount("vfat", "/dev/block/mmcblk1p2", "/system"); 挂载/dev/block/mmcblk1p2,返回值"/system”/system分区格式为vfat
复制代码
- Delete
- delete();删除文件
- delete("/data/zipalign.log"); 删除文件/data/zipalign.log
复制代码
- delete_recursive
- delete_recursive();删除文件夹
- delete_recursive("/data/dalvik-cache");删除文件夹/data/dalvik-cache
复制代码
- show_progress
- show_progress(,);为下面进行的程序操作显示进度条,进度条会根据设置的参数前进
- show_progress(0.1, 10);show_progress下面的操作可能进行10s,完成后进度条前进0.1(也就是10%)
复制代码
- package_extract_dir
- package_extract_dir(package_path, destination_path);解压package_path文件夹到destination_path目录
- package_extract_dir("system", "/system"); 解压ROM包里system文件夹下所有文件和子文件夹至/system目录
复制代码
- package_extract_file
- package_extract_file(package_path, destination_path);解压package_path文件到destination_path目录
- package_extract_dir("my.zip", "/system"); 解压ROM包里的my.zip文件到/system目录
复制代码
- Symlink
- symlink(...);建立指向target符号链接src1,src2,也就是软链接
- symlink("toolbox", "/system/bin/ps");建立指向toolbox的符号链接/system/bin/ps
复制代码
- set_perm
- set_perm(...);设置文件的用户为uid,用户组为gid,权限为mode
- set_perm(1002, 1002, 0440, "/system/etc/dbus.conf"); 设置文件/system/etc/dbus.conf的所有者为1002,所属用户组为1002,权限为:所有者有读权限,所属用户组有读权限,其他无任何权限。
复制代码
- set_perm_recursive
- set_perm_recursive(...);设置文件夹和文件夹内文件的权限
- set_perm_recursive(1000, 1000, 0771, 0644, "/data/app"); 设置/data/app的所有者和所属用户组为1000,app文件夹的权限是:所有者和所属组拥有全部权限,其他有执行权限;
- app文件夹下的文件权限是:所有者有读写权限,所属组有读权限,其他有读权限。
复制代码
【语法】set_perm_recursive <uid> <gid> <dir-mode> <file-mode> <path> [...<pathN>]
<uid>表示用户,<gid>表示用户组,<dir-mode>表示文件夹的权限,<file-mode>表示文件的权限,<path> [... <pathN>]表示文件夹的路径,可以多个,用空格分开
【作用】设置文件夹及文件夹中的文件的所有者和用户组
【说明】其中<dir-mode> <file-mode>分别代表目录和file的权限,具体参数如上述
【举例】set_perm_recursive 0 0 0755 0644 SYSTEM:app(设置手机system/app文件夹及其中文件的用户为root,用户组为root,app文件夹权限为所有者可以进行读、写、执行操作,其他用户可以进行读取和执行操作,其中的文件的权限为所有者可以进行读写操作,其他用户可以进行读取操作)
下面是我们常用的两组修改权限的命令:
一组是常规程序用RE管理器拷贝到system/app后修改的权限命令如下:
set_perm(0,0,0644,"/system/app/Calendar.apk");
一组是我们要移动dalvik-cache到cache过程中拷贝修改mot_boot_mode.bin命令如下:
set_perm(0,0,0755,"/system/bin");
- ui_print
- ui_print("pwelyn");屏幕打印输出"pwelyn"
- ui_print("GR[GreatRom/GfanRom]"); 屏幕打印GR[GreatRom/GfanRom]
复制代码
- run_program
- run_program();运行shell脚本
- run_program("/system/xbin/installbusybox.sh"); 运行installbusybox.sh脚本文件
复制代码
- write_raw_image
- write_raw_image(, partition);写入至partition分区
- write_raw_image("/tmp/boot.img", "boot")将boot.img直接写入boot分区
复制代码
- assert
- assert(...);如果执行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
复制代码
- 刷机后自动重启
- run_program("/sbin/sleep", "3");
- run_program("/sbin/reboot");
复制代码
- 结束
教程结束感谢大家支持
因篇幅问题不能全部显示,请点此查看更多更全内容