update-script脚本语法简介.doc
文本预览下载声明
(九)---updater-script脚本语法简介以及执行流程
分类:?Andriod2012-04-16 14:24?8888人阅读?评论(23)?收藏?举报
脚本android工作symlinksystempath
? ? ? ? ? ? ? ?Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程
? ? ? ? ? 目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制。
一、update-script脚本语法简介:
? ? ? ??我们顺着所生成的脚本来看其中主要涉及的语法。
? ? ? ??1.assert(condition):如果condition参数的计算结果为False,则停止脚本执行,否则继续执行脚本。
? ? ? ??2.show_progress(frac,sec):frac表示进度完成的数值,sec表示整个过程的总秒数。主要用与显示UI上的进度条。
? ? ? ??3.format(fs_type,partition_type,location):fs_type,文件系统类型,取值一般为“yaffs2”或“ext4”。Partition_type,分区类型,一般取值为“MTD”或则“EMMC”。主要用于格式化为指定的文件系统。事例如下:format(”yaffs2”,”MTD”,”system”)。
? ? ? ??4.mount(fs_type,partition_type,location,mount_point):前两个参数同上,location要挂载的设备,mount_point挂载点。作用:挂载一个文件系统到指定的挂载点。
? ? ? ??5.package_extract_dir(src_path,destination_path):src_path,要提取的目录,destination_path目标目录。作用:从升级包内,提取目录到指定的位置。示例:package_extract_dir(“system”,”/system”)。
? ? ? ??6.symlink(target,src1,src2,……,srcN):target,字符串类型,是符号连接的目标。SrcX代表要创建的符号连接的目标点。示例:symlink(“toolbox”,”/system/bin/ps”),建立指向toolbox符号连接/system/bin/ps,值得注意的是,在建立新的符号连接之前,要断开已经存在的符号连接。
? ? ? ??7.set_perm(uid,gid,mode,file1,file2,……,fileN):作用是设置单个文件或则一系列文件的权限,最少要指定一个文件。
? ? ? ??8.set_perm_recursive(uid,gid,mode,dir1,dir2,……,dirN):作用同上,但是这里同时改变的是一个或多个目录及其文件的权限。
? ? ? ??9.package_extract_file(srcfile_path,desfile_paht):srcfile_path,要提取的文件,desfile_path,提取文件的目标位置。示例:package_extract_file(“boot.img”,”/tmp/boot.img”)将升级包中的boot.img文件拷贝到内存文件系统的/tmp下。
? ? ??10.write_raw_image(src-image,partition):src-image源镜像文件,partition,目标分区。作用:将镜像写入目标分区。示例:write_raw_image(“/tmp/boot.img”,”boot”)将boot.img镜像写入到系统的boot分区。
? ? ??11.getprop(key):通过指定key的值来获取对应的属性信息。示例:getprop(“ro.product.device”)获取ro.product.device的属性值。
二、updater-script脚本执行流程分析:
? ? ? ? ? 先看一下在测试过程中用命令make otapackage生成的升级脚本如下:
[plain]?view plaincopy
assert(!less_than_int(1331176658,?getprop(ro.build.date.utc)));??
assert(getprop(ro.product.device)?==?tcc8800?||??
???????getprop(ro.build.product)?==?tcc8800);??
s
显示全部