update-script脚本语法说明(根据android源代码中的recovery.c进行的定义):
1.copy_dir
语法:copy_dir <src-dir> <dst-dir> [<timestamp>]
<src-dir>表示原文件夹,<dst-dir>表示目的文件夹,[<timestamp>]表示时间戳
作用:将<src-dir>文件夹中的内容复制到<dst-dir>文件夹中。<dst-dir>文件夹中的原始内容将会保存不变,除非<src-dir>文件夹中有相同的内容,这样<dst-dir>中的内容将被覆盖
举例:copy_dir PACKAGE:system SYSTEM:(将升级包中的system文件夹复制到手机中)
2.format
语法:format <root>
<root>表示要格式化的分区
作用:格式化一个分区
举例:format SYSTEM:(将手机/system分区完全格式化)
注意:格式化之后的数据是不可以恢复的
3.delete
语法:delete <file1> [... <fileN>]
<file1> [... <fileN>]表示要格式化的文件,可以是多个文件用空格隔开
作用:删除文件1,2到n
举例:delete SYSTEM:app/Calculator.apk(删除手机systen文件夹中app中的Calculator.apk文件)
4.delete_recursive
语法:delete_recursive <file-or-dir1> [... <file-or-dirN>]
<file-or-dir1> [... <file-or-dirN>]表示要删除的文件或文件夹,可以使多个,中间用空格隔开
作用:删除文件或者目录,删除目录时会将目录中的所有内容全部删除
举例:delete_recursive DATA:dalvik-cache(删除/data/dalvik-cache文件夹下的所有内容)
5.run_program
语法:run_program <program-file> [<args> ...]
<program-file>表示要运行的程序,[<args> ...]表示运行程序所加的参数
作用:运行终端程序
举例:run_program PACKAGE:install_busybox.sh(执行升级包中的install_busybox.sh脚本)
6.set_perm
语法:set_perm <uid> <gid> <mode> <path> [... <pathN>]
<uid>表示用户名称,<gid>表示用户组名称,<mode>,表示权限模式,<path> [... <pathN>]表示文件路径,可以使多个,用空格隔开
作用:设置单个文件或目录的所有者和权限,像linux中的chmod、chown或chgrp命令一样,只是集中在了一个命令当中
举例:set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh(设置手机system中的etc/init.goldfish.sh的用户为root,用户组为shell,所有者以及所属用户组成员可以进行读取和执行操作,其他用户无操作权限)
7.set_perm_recursive
语法:set_perm_recursive <uid> <gid> <dir-mode> <file-mode> <path> [... <pathN>]
<uid>表示用户,<gid>表示用户组,<dir-mode>表示文件夹的权限,<file-mode>表示文件的权限,<path> [... <pathN>]表示文件夹的路径,可以多个,用空格分开
作用:设置文件夹及文件夹中的文件的所有者和用户组
举例:set_perm_recursive 0 0 0755 0644 SYSTEM:app(设置手机system/app文件夹及其中文件的用户为root,用户组为root,app文件夹权限为所有者可以进行读、写、执行操作,其他用户可以进行读取和执行操作,其中的文件的权限为所有者可以进行读写操作,其他用户可以进行读取操作)
8.show_progress
语法:show_progress <fraction> <duration>
<表示一个小部分> <表示一个小部分的持续时间>
作用:为下面进行的程序操作显示进度条,进度条会根据<duration>进行前进,当操作时间是确定的时候会更快
举例:show_progress 0.1 0(显示进度条当操作完成后前进10%)
9.symlink
语法:symlink <link-target> <link-path>
<link-target>表示链接到的目标,<link-path>表示快捷方式的路径
作用:相当于linux中的ln命令,将<link-target>在<link-path>处创建一个软链接,<link-target>的格式应为绝对路径(或许相对路径也可以),<link-path>为“根目录:路径”的形式
举例:symlink /system/bin/su SYSTEM:xbin/su(在手机中system中的xbin中建立一个/system/bin/su的快捷方式)
android文件系统和分区的定义方式(根据android的源代码的root.c获得):
根目录
|
Linux块设备
|
挂载点
|
文件系统
|
大小
|
描述
|
BOOT:
|
/dev/mtdblock[?]
|
/
|
RAM
|
RAW
|
内核,内存,系统启动引导信息
|
DATA:
|
/dev/mtdblock5
|
/data
|
yaffs2
|
91904kb
|
用户,系统设置,程序设置和应用程序,不包括app2sd
|
CACHE:
|
/dev/mtdblock4
|
/cache
|
yaffs2
|
30720kb
|
OTA方式下载的缓存,恢复和升级时的设置以及临时文件
|
MISC:
|
/dev/mtdblock[?]
|
无
|
未知
|
RAW
|
暂时未知
|
PACKAGE:
|
相对于升级包而存在
|
无
|
相对于升级包存在的文件系统
|
不确定
|
升级包
|
RECOVERY:
|
/dev/mtdblock[?]
|
/
|
RAM
|
RAW
|
恢复模式和系统升级所需要的内核和内存部分,与BOOT分区类似
|
SDCARD:
|
/dev/mmcblk0(p1)
|
/sdcard
|
fat32
|
32MB-32GB
|
内存卡,update.zip升级包通常放在这里
|
SYSTEM:
|
/dev/mtdblock3
|
/system
|
yaffs2
|
92160kb
|
系统分区,静态并且只读的
|
TMP:
|
无
|
/tmp
|
RAM
|
|
标准的Linux缓存文件系统
|
更新部分update-script命令:1.assert <boolexpr>
作用:此命令用来判断表达式boolexpr的正确与否,当表达式错误时程序终止执行
※此作用有待验证
2.write_radio_image <src-image>
作用:将基带部分的镜像写入手机,<src-image>表示镜像文件
举例:write_radio_image PACKAGE:radio.img
3.write_hboot_image <src-image>
作用:将系统bootloader镜像写入手机,<src-image>表示镜像位置,此命令在直到在所有的程序安装结束之后才会起作用
举例:write_hboot_image PACKAGE:hboot.img
4.write_raw_image <src-image> <dest-root>
作用:将boot.img写入手机,里面包含了内核和ram盘
举例:write_raw_image PACKAGE:boot.img BOOT:
更新手机常识理解:
system:系统分区.我们刷机器一般就是刷的这个分区.
userdata:数据分区.
cache:缓存分区
recovery:Recovery分区,相当于建立在hboot与android系统间的一个中间层,如名字一般,主要用于系统调试和恢复。.
boot:存放内核和ramdisk的分区.
hboot:这个是SPL所在的分区,即 bootloader
splash1:这个就是开机第一屏幕了.
radio:这个是无线所在的分区.
misc:其他分区
分享到:
相关推荐
`update-script`通常使用AOSP(Android Open Source Project)提供的格式和语法,包括一系列的命令,如`applypatch`用于应用补丁,`format`用于格式化分区,`push`用于复制文件到设备,以及`install-recovery`等。...
Android 系统知识库是一份涵盖 Android 系统相关知识的资源库,包含了多个方面的知识点,从 APK 程序的反编译到 update-script 脚本语法的使用。下面是从给定的文件中提取的相关知识点: APK 程序反编译和快捷方式...
在"update-script-interpreter-master"这个项目中,你可以找到实际实现的源代码,包括Yacc和Lex文件,以及相关的测试脚本。通过研究这些代码,你可以更好地理解如何利用这两种工具来构建一个自定义的脚本解释器。 ...
最后,`Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程.docx`文档对`updater-script`的语法和执行流程做了介绍,这对于理解Recovery如何按照脚本指令...
3. **PowerShell Script**:PowerShell脚本是用PowerShell语法编写的文本文件,用于执行一系列命令或任务。在这个场景中,`update-mozilla-firefox`脚本就是这样一个PowerShell脚本,它能够检查并更新Firefox的版本...
updater-script脚本是根据其语法编写的一系列指令,用于指导Recovery模式如何更新Android系统。该脚本的解析和执行流程是理解update.zip包升级过程的关键部分,它定义了从检查更新到实际写入系统分区的整个步骤。 ...
Elasticsearch支持丰富的查询语法,如布尔查询、短语匹配、范围查询等。例如,我们可以执行一个短语匹配查询: ```python body = { "query": { "match_phrase": { "city": "New York" } } } response = es....
- `UPDATE table_name SET column1 = value1 WHERE condition;` **4.12 删除数据** - **语法示例:** - `DELETE FROM table_name WHERE condition;` #### 五、简单表查询 **5.1 查询表的结构** - **语法示例...
- **示例**: `chmod 755 script.sh` 设置脚本文件为可执行权限。 4. **chown**: 更改文件或目录的所有者和所属组。 - **语法**: `chown [用户[:组]] [文件]` - **示例**: `chown user:group file.txt` 将文件的...
- `RUNSCRIPT`命令用于从SQL脚本恢复数据库。 通过深入学习"H2Database-SQL语法"文档,开发者可以熟练掌握H2Database的SQL操作,从而更高效地利用这一数据库系统进行开发和测试工作。在实际项目中,理解并运用这些...
- **示例**:`chmod 755 script.sh` 设置脚本script.sh具有执行权限。 - **更改文件所有者**:`chown` - **语法**:`chown [选项] 所有者 文件` - **示例**:`chown user1 file.txt` 更改file.txt的所有者为user1...
此外,还包括备份(BACKUP)、调用存储过程(CALL)、解释计划(EXPLAIN)、合并(MERGE)、运行脚本(RUNSCRIPT)、显示(SHOW)等语句。 数据定义语句(Data Definition Language, DDL)用于定义或修改数据库结构...
- `chmod 755 script.sh`: 将脚本文件 `script.sh` 设置为所有者可读、可写、可执行;组和其他人只可读、可执行。 - `chmod u+x script.sh`: 只为所有者添加执行权限。 #### 11. `chown` **功能描述**: `chown` ...
JetSQL支持标准的SQL语法,包括SELECT、INSERT、UPDATE、DELETE等基本语句,同时也可能支持一些特定于Jet数据库引擎的功能,如JOINs、GROUP BY、HAVING等。 使用JetSQL,用户可以通过以下方式提升工作效率: 1. **...
- 为了让脚本可执行,需要使用`chmod +x scriptname.sh`赋予执行权限。 - 可以通过`cron`定时任务调度器定期运行脚本。 6. **最佳实践** - 注释:清晰地注释脚本,解释每个部分的目的。 - 变量命名:使用有意义...
**3.3 分析ExampleScript脚本** ```csharp using System.Collections; using System.Collections.Generic; using UnityEngine; public class ExampleScript : MonoBehaviour { void Start() { // 游戏开始时...
- **示例**: `chmod u+x script.sh`(使脚本文件script.sh对所有者可执行) ##### 9. 删除非空目录:rm -fr dir - **功能**: 删除非空目录。 - **语法**: `rm -rf 目录名` - **示例**: `rm -rf dir`(删除名为dir的...
string sqlScript = File.ReadAllText("path_to_your_sql_script.sql"); ``` 5. **分隔多条SQL命令**: SQL脚本可能包含多条命令,用分号";"隔开。可以使用`Split(';')`方法将其分割成多个命令字符串数组。 6. ...
- **错误处理**:执行脚本时可能会遇到各种错误,如语法错误、权限不足等。这些错误需要逐一排查并解决。 - **日志记录**:建议开启日志记录功能,以便追踪脚本执行过程中的任何异常或错误。 #### 六、总结 通过...
描述进一步说明了脚本的功能,它能执行以下操作: 1. **文件复制**(Copy):可能是指将源文件复制到目标位置,以备份或替换现有文件。 2. **文件重命名**(Rename):可能涉及到按照某种规则更改文件的名称,例如...