转载:半夏月 » updater-script命令详解教你写刷机脚本

查看系统支持哪些命令文件路径:bootable/recovery/updater/bootable/recovery/updater/install.cpp

命令:mount
用法:mount(fs_type, partition_type, location, mount_point)
参数讲解:
fs_type—————–“yaffs2″ 或 “ext4″
partition_type———-“MTD” 或 “EMMC”
location—————–分区(partition) 或 驱动器(device)
mount_poin————挂载文件系统的目标文件夹(target folder to mount FS)
作用解释: 挂载一个文件系统到指定的挂载点
返 回 值: 挂载成功则返回挂载点,失败返回null
函数示例: mount(“MTD”, “system”, “/system”);挂载system分区,设置返回指针”/system”
mount(“vfat”, “/dev/block/mmcblk1p2″, “/system”); 挂载/dev/block/mmcblk1p2,返回指针”/system”

命令: format
用法: format(fs_type, partition_type, location)
参数详解:
fs_type—————–字符串,数据为”yaffs2″ 或 “ext4″
partition_type———-字符串, “MTD” 或 “EMMC”
location—————–字符串, 分区(partition) 或 驱动器(device)
作用解释: 格式化为指定的文件系统
函数示例: format(“MTD”, “system”);格式化system分区

命令: delete
用法: delete(file1, file2, …, fileN)
参数详解: 字符串,要删除的文件
作用解释: 删除一个文件。最少指定一个文件;多个文件可以做为多个参数指定
函数示例: delete(“/data/zipalign.log”);删除文件/data/zipalign.log

命令: delete_recursive
用法: delete_recursive(dir1, dir2,…,dirN)
参数详解: 字符串,要递归删除的目录
作用解释: 删除文件夹及其包含的所有内容。最少指定1个目录;多个目录可以做为多个参数指定
函数示例: delete_recursive(“/data/dalvik-cache”);删除文件夹/data/dalvik-cache

命令: show_progress
用法: show_progress(frac, sec)
参数详解:
frac———————-进度完成数值
Sec———————-总秒数
作用解释: 显示在Recovery系统中进度
函数示例: 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) 或 package_extract_file(package_path, destination_path)
参数详解:
package_path———-字符串,升级包内要提取的文件
destination_path——-字符串,提取文件的目标目录
作用解释: 提取升级包内的单个文件到指定的目标目录
函数示例: package_extract_file(“my.zip”, “/system”);解压ROM包里的my.zip文件至/system

命令: file_getprop
用法: file_getprop(file, key)
参数详解:
file———————-字符串,要检查的文件名
Key———————-字符串,返回数据中的文件的键名字
作用解释: 在格式”key”=”value”的文件中取得文件属性值
函数示例:

命令: symlink
用法: symlink(target, src1, src2, …, srcN)
参数详解:
target——————-字符串,符号链接的目标
srcX        ———————字符串,要创建的符号链接的目标点
作用解释: 在创建新的符号链接之前,要断开已经存在的符号链接
函数示例: symlink(“toolbox”, “/system/bin/ps”);建立指向toolbox的符号链接/system/bin/ps

命令: set_perm (丢弃), set_perm_recursive(丢弃) -》 set_metadata
用法:set_metadata("filePath", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
参数详解:
filePath———————文件路径
dmode——————— 是否是文件夹 -- 后一个参数设置对应的权限
fmode——————— 是否是文件 -- 后一个参数设置对应的权限

作用解释: 设置文件或文件夹的权限
这里0代表用户为root
2000代表用户组为shell
我们来说明0755这组数据,这组数据的最后三位755,分别代表“所有者\组用户\其他用户”的权限,也就是我们在RE管理中“用户\群组\其他”三行。 我们以XXX来表示这三组权限,其中:
×=4 读的权限
×=2 写的权限
×=1 执行的权限
我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数。
例如,如果想让某个文件的属主有”读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。若要rwx属性则4+2+1=7;若要rw-属性则4+2=6;若要r-x属性则4+1=5。

命令: getprop
用法: getprop(key)
参数详解: key———————字符串,想要系统返回的属性
作用解释: 这个函数是用来返指定的属性的值。它是用来从build.props文件中查询手机的信息的。
函数示例:

命令: write_raw_image
用法: write_raw_image(file, partition)
参数详解:
file———————-字符串,要读取的Img源文件
Partition—————–字符串,要写入Img文件的目标分区
作用解释: 这个函数是用来写Img文件到分区
函数示例: write_raw_image(“/tmp/boot.img”, “boot”)将yaffs2格式的boot包直接写入boot分区

命令: apply_patch
用法: apply_patch(srcfile, tgtfile, tgtsha1, tgtsize, sha1_1, patch_1, …, sha1_x, patch1_x)
参数详解:
srcfile——————-字符串,要打补丁的源文件(要读入的文件)
Tgtfile——————-字符串,补丁文件要写入的目标文件
tgtsha1—————–字符串,写入补丁文件的目标文件的sha1哈希值
sha1_x——————字符串,要写入目标文件的补丁数据的sha1哈希值 patch1_x—————-字符串,实际上应用到目标文件的补丁
作用解释: 这个函数是用来打补丁到文件。
函数示例:

命令: apply_patch_check
用法: apply_patch_check(file, sha1_1, …, sha1_x)
参数详解:
file———————-字符串,要检查的文件
sha1_x——————要检查的哈希值
作用解释: 检查文件是否已经被打补丁,或者能不能被打补丁。需要检查“applypatch_check ”函数调用的源代码。

命令: apply_patch_space
用法: apply_patch_space(bytes)
参数详解: bytes——————-检查的字节的数字
作用解释: 检查缓存来确定是否有足够的空间来写入补丁文件并返回一些数据。
函数示例:

命令: read_file
用法: read_file(filename)
参数详解: filename—————-字符串,要读取内容的文件名
作用解释: 这个函数返回文件的内容
函数示例:

命令: sha1_check
用法: sha1_check(data) 或 sha1_check(data, sha1_hex, …, sha1_hexN)
参数详解:
data———————要计算sha1哈希值的文件的内容-必须是只读文件格式
sha1_hexN————–文件数据要匹配的特定的十六进制sha1_hex哈希值字符串
作用解释: 如果只指定data参数,这个函数返回data参数的十六进制sha1_hex哈希值字符串。其他参数用来确认你检查的文件是不是列表中的哈希值的一个。 它返回匹配的哈希值,或者在没有匹配任何哈希值时返回空。
函数示例:

命令: ui_print
用法: ui_print(msg1, …, msgN)
参数详解: msg———————-字符串,要处理过程中输出给用户的信息
作用解释: 在脚本运行的时候,在控制台显示的信息。最少要指定1个参数,你可以指定额外的msg参数,并且它们会连接起来输了
函数示例: ui_print(“It’s ready!”);屏幕打印It’s ready!

命令: run_program
用法: run_program(prog, arg1, .., argN)
参数详解:
prog——————–字符串,要执行的程序
argN——————–字符串,要执行的程序的运行参数
作用解释: 以指定的参执行程序
函数示例: run_program(“/system/xbin/installbusybox.sh”);运行installbusybox.sh脚本文件

命令: ifelse
用法: ifelse(condition, truecondition, falsecondition)
参数详解:
condition—————-要运算的表达式
Truecondition———–当值为True时执行的 Edify脚本块
Falsecodnition———–当值为False时执行的 Edify脚本块
作用解释: 这是If-then结构的 Edify脚本语言。在真条件或非条件下语句可以是单条Edify命令或者脚本块。脚本块可以用圆括号来界定,用分号来隔开。
函数示例:

命令: abort
用法: abort()
参数详解: 没有参数
作用解释: 中止脚本执行
函数示例:

命令: assert
用法: assert(condition)
参数详解: condition—————boolean
作用解释: 如果condition参数的计算结果为False,则停止脚本执行,否则继续执行脚本
函数示例: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

updater-script 刷机脚本语法相关推荐

  1. recovery之刷机脚本自定义(解决刷zip文件时出现Status 6错误)

    已开通新的博客,后续文字都会发到新博客 http://www.0xfree.top --- 一直没有时间看看关于recovery刷机的内容,昨天突然手痒痒,好久没有刷机了. 但是翻看过硬盘里的所有刷机 ...

  2. android 刷机 zip,安卓自制zip刷机包 zip包刷机脚本函数详细例举教程

    对于很多狂热于刷机爱好的机友们来说最高的追求就是自制刷机包,那么自制刷机包最重要的不是程序的内置收集,也不是美化或者精简,最重要的是对于刷机包的刷机脚本的编写,鉴于很多同学想学却又找不到资料,今天拉拉 ...

  3. Python 刷题常用语法与数据结构汇总-2022.01.30

    [笔试]python刷题笔记(基础)! https://blog.csdn.net/a_123456598/article/details/105420802 python语法刷题 https://b ...

  4. Android刷机脚本——updater-script

    前言 updater-script是Android手机刷入系统时的脚本文件,由它来决定Android系统需要刷入哪些内容,如何刷入. 语法 mount 语法: mount(fs_type, parti ...

  5. 【转】做Rom其实没什么奥秘,浅显易懂的补丁制作教程,带刷机脚本示例

    重要说明: 看完这个帖子,你将学到:刷机脚本的含义,如何对刷机脚本进行简单修改,如何制作补丁,如何往内核里加入G大脚本,甚至如何制作Rom的zip包. 另外,此贴较长,或许以后还会更长,要想学到东西的 ...

  6. 做Rom其实没什么奥秘,浅显易懂的补丁制作教程,带刷机脚本示例

    重要说明: 看完这个帖子,你将学到:刷机脚本的含义,如何对刷机脚本进行简单修改,如何制作补丁,如何往内核里加入G大脚本,甚至如何制作Rom的zip包. 另外,此贴较长,或许以后还会更长,要想学到东西的 ...

  7. script setup 实验性 vue 语法

    这是一个简单的计数器例子,模板中使用 count 变量,inc 函数. <template><button @click="inc">{{count}}&l ...

  8. electron-builder+electron-updater实现应用自动更新过程

    autoUpdater:使应用程序能够自动更新 ipcMain:用于从主进程到渲染进程的异步通信. ipcRenderer:用于从渲染器进程到主进程的异步通信. 更多api在electron官网(中文 ...

  9. nexus5 刷 Android6.0+Xposed

    不得不说现在的刷机工具都做的方便快捷,只需要简单的几天命令就解决了.以前用windows刷的时候还需要装一堆驱动软件啥的. 原文链接: nexus5 刷 Android6.0+Xposed 0x00 ...

最新文章

  1. 构建工具Gradle
  2. Numpy中array和matrix转换
  3. codelite13 wxWidgets3 macos开发环境配置
  4. 新海诚没有参与制作的作品_继《你的名字》之后,新海诚又出新作啦!!
  5. 实现基于虚拟用户的邮件系统架构
  6. BZOJ 2160 拉拉队排练
  7. python中的tkinter模块
  8. pycharm查看关键词的方法
  9. 单机手机消消乐php游戏源码,JS叠房子消消乐小游戏代码
  10. 蓝牙Beacon室内定位全栈
  11. 咏红梅花——曹雪芹_ywyuan_新浪博客
  12. 第26章 SpringMVC中基于注解的Controller(一)
  13. python+gurobi
  14. 软件设计师知识体系归纳总结
  15. 计算机多媒体课程教师教学心得,多媒体教学的心得体会_多媒体教学教师心得...
  16. 微信小程序基于udp协议与esp8266进行通信
  17. 考研复试个人陈述范文(共9篇)
  18. 有效沟通的8条核心原则
  19. Bootstrap 网格系统(Grid System)
  20. pacemaker corosync 高可用

热门文章

  1. ActivityNet数据集解析
  2. html5选择年月日 年月日时分 年月日时分秒
  3. DW卷积、PW卷积、转置卷积、膨胀卷积(空洞卷积)、可变形卷积一次看个够
  4. uniapp 小程序 加载显示插屏广告
  5. 刷脸考勤无感签到不是说说而已
  6. 拥抱组件化开发,手淘项目内部架构分享
  7. java安装和java_home,jre_home环境变量配置
  8. jquery选择器详细说明
  9. 22春天津大学《公共关系学》在线作业二
  10. pandas整表写入excel指定位置_Pandas学习笔记——读写Excel文件