Android刷机脚本——updater-script
Posted Zhang Jun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android刷机脚本——updater-script相关的知识,希望对你有一定的参考价值。
前言
updater-script是android手机刷入系统时的脚本文件,由它来决定Android系统需要刷入哪些内容,如何刷入。
语法
-
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”); -
unmount
语法:unmount(mount_point)。
作用:解除文件系统挂载。
返回值:成功返回挂载点,失败返回null。
示例:unmount(“/system”); -
format
语法:format(fs_type, partition_type, location)
作用:格式化指定的文件系统
说明:
fs_type:“yaffs2”或“ext4”
partition_type:“MTD”或“EMMC”
location:分区或驱动器
示例:format(“ext4”, “EMMC”, “/cache”); -
delete
语法:delete(file1, file2, …, fileN)
作用:删除文件。变长参数,支持删除多个文件。
示例:delete(“/tmp/boot.img”); -
delete_recursive
语法:delete_recursive()
作用:递归删除目录。
示例:delete_recursive(“/data/media/AppStoreWidget”) -
show_progress
语法:show_progress(fraction, duration)
作用:在recovery中为下面的程序操作显示进度条。进度条会根据duration前进fraction。
说明:
fraction:进度完成数值
duration:总秒数
示例:show_progress(0.950000, 50); (ps:show_progress后面的操作可能耗时50s,完成后进度条前进95%) -
package_extract_dir
语法:package_extract_dir(package_path, destination_path);
作用:释放卡刷包中package_path的内容到destination_path。
示例:package_extract_dir(“system”, “/system”); (ps:释放rom包中system文件夹下所有文件和子文件夹至/system) -
package_extract_file
语法:package_extract_file(file_path, destination_path);
作用:提取Rom包中的单个文件到指定目标目录。
示例:package_extract_file(“boot.img”, “/tmp/boot.img”); -
symlink
语法:symlink(target, src1, src2, …);
作用:建立指向target的符号链接src1、src2…
说明:
target:符号链接目标
src1:要创建的符号链接目标点
示例:symlink(“mksh”, “/system/bin/sh”); -
set_perm
语法:set_perm(uid, gid, mode, file1, file2, …, fileN);
作用:设置单个文件或者多个文件的权限。
说明:
uid:用户ID
gid:用户组ID
mode:权限
file1:需要设置的文件路径
示例:set_perm(0, 3004, 02755, “/system/bin/ping”); -
set_perm_recursive
语法:set_perm_recursive(uid, gid, dir-mode, file-mode, path);
作用:设置指定文件夹和文件夹中文件的权限。
示例:set_perm_recursive(0, 0, 0755, 0644, “/system”); -
ui_print
语法:ui_print(“str”);
作用:recovery中打印出str字符串内容,类似于Java中的System.out.println();
示例:ui_print(“+++++++++++++++++++++++++++++++++++++++++++++”); -
run_program
语法:run_program(path, arg1, …, argN)
作用:以指定的参数执行程序。
说明:
path:要执行的程序路径
arg1:运行参数信息
示例:run_program(“/sbin/busybox”, “mount”, “/system”); -
write_raw_image
语法:write_raw_image(file_path, partition);
说明:
file_path:要读取的img源文件
partition:要写入img文件的目标分区
示例:write_raw_image(“/tmp/boot.img”, “bootimg”); -
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”));
案例
删除data/local下指定的文本文档
ui_print("delete txt...");
mount("ext4", "EMMC", "/dev/block/data", "/data");
delete("/data/local/aa.txt");
delete("/data/local/bb.txt");
unmount("/data");
以上是关于Android刷机脚本——updater-script的主要内容,如果未能解决你的问题,请参考以下文章
android ROM刷机updater-script单刷补丁包脚本