`
dss16694
  • 浏览: 144236 次
社区版块
存档分类
最新评论

update-script脚本语法说明

 
阅读更多

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:其他分区

分享到:
评论

相关推荐

    数据库设计,建模和部署工具BDBPro3.1-setup_EN

    · SQL script pre-view SQL 脚本预先查看 If there is some changes in the database model or the entity database, you can output and update SQL 如果有一些变化,数据库模型或实体的资料库,您可以输出和...

    grub4dos-V0.4.6a-2017-02-04更新

    更新说明: 2017-02-04(yaya) Ls command: Empty Folder returns false. 2016-12-08(yaya) 修正lz4、vhd不显示解压缩进度指示。增加lzma解压缩进度指示。 2016-11-09(不点) 0x8205 bit 5 = 1: 使checkkey...

    gtav-online-ahk:侠盗猎车手V Online AHK-Macros

    侠盗猎车手V Online AHK-Macros 提供GTA V:Online...要求路径中的 (有关强制断开连接和杀死进程的信息,请参见下面的说明)安装下载.ahk文件在文本编辑器中将其打开(例如,带有高亮显示AutoIT语法的notepad ++),然

    以太坊智能合约开发环境及总结.pdf

    安装testrpc sudo npm install -g ethereumjs-testrpc * testrpc安装失败,找不到script,解决⽅法可参考 * testrpc 查看是否安装成功 6.安装truffle3.0 sudo npm install -g truffle * truffle version 查看是否...

    gscript:带有Google脚本的简单框架

    带有Google脚本的简单框架 网址API:https://script.google.com/macros/s/AKfycbzC89SW5iNKCYm​​hOX0MS_Umw9ZNFW-tPEnYvIy_ZTwt1QeQAvj8/exec 方法:张贴 参数 * route : books/put (insert/update) * id: ...

    SQL-MSSQL-CODE大全.doc

    有关SQL MSSQL 的一些资料 如 目录清单 目录清单CONTEXT LIST ...6.2脚本语法Statements 6.3脚本游标Cursor 6.4存储过程Procedure 6.5存储函数Function 6.6触发器Trigger 6.7事务Transaction 6.8其它Other

    docker-crontab:泊坞窗作业调度程序(泊坞窗又名crontab)

    允许发表评论,因为我们每个人都需要友好提醒一下update_script.sh实际功能。 使用image开始image 。 使用container在容器中运行命令。 使用project在缩放容器的实例上运行命令。 能够使用trigger在完成cron作业时...

    Tcl_TK编程权威指南pdf

    使用update命令实现动画 第37章 tk组件的属性 配置属性 尺寸 边界与浮雕效果 焦点的高亮显示 补自(padding)与挂靠(anchor) 第38章 颜色、图片和鼠标指针 颜色 色彩映射与视频种类 位图和图片 文本...

    db2-技术经验总结

    1.57. 如何在命令行下执行DB2脚本(script) 82 1.58. 怎么样获取表结构以及索引的信息 82 1.59. 如果怀疑应用程序有死锁现象,如何确认是否死锁,并判断是哪些程序引起的死锁? 84 1.60. 数据库创建以后相关的目录...

    freemarker总结

    这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: &lt;#if condition&gt;... &lt;#elseif condition&gt;... &lt;#elseif condition&gt;... &lt;#else&gt; ... 例子如下: (age&gt;60)&gt;老年人 ...

    网管教程 从入门到精通软件篇.txt

    INT:中间代码,当一个源程序经过语法检查后编译产生一个可执行代码 IOF:Findit文档 IQY:Microsoft Internet查询文件 ISO:根据ISD 9660有关CD-ROM文件系统标准列出CD-ROM上的文件 ISP:X-Internet签字文件 ...

    TCK/TK组合教程

    33.4 使用update实现动画 第34章 tk部件的属性 34.1 属性配置 34.2 尺寸 34.3 边框和面型 34.4 焦点突出显示 34.5 填充和定位 第35章 颜色、图像和光标 35.1 颜色 35.2 调色板和视图 35.3 位图和...

    最全的oracle常用命令大全.txt

    说明:可以根据视图的text_length值设定set long 的大小 SQL&gt;select text from user_views where view_name=upper('&view_name'); 6、同义词 查看同义词的名称 SQL&gt;select * from user_synonyms; 7、约束...

    ZendFramework中文文档

    6.2.2. 用长语法声明选项 6.3. 读取(Fetching)选项和参数 6.3.1. 操作 Getopt 异常 6.3.2. 通过名字读取 (Fetching)选项 6.3.3. 报告选项 6.3.4. 读取非选项参数 6.4. 配置 Zend_Console_Getopt 6.4.1. ...

    LINGO软件的学习

    定义一个原始集,用下面的语法: setname[/member_list/][:attribute_list]; 注意:用“[]”表示该部分内容可选。下同,不再赘述。 Setname是你选择的来标记集的名字,最好具有较强的可读性。集名字必须严格符合标准...

Global site tag (gtag.js) - Google Analytics