Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1833985
  • 博文数量: 286
  • 博客积分: 3713
  • 博客等级: 少校
  • 技术积分: 2275
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-11 09:47
个人简介

http://blog.chinaunix.net/uid/16979052.html

文章分类

全部博文(286)

文章存档

2018年(1)

2017年(16)

2016年(9)

2015年(17)

2014年(15)

2013年(112)

2012年(116)

分类:

2013-01-09 11:10:13

原文地址:ROM制作详解第二章 作者:garyybl

.创建一个刷机包,update-script脚本语法说明


①简单举例:创建一个update.zip文件是很简单的事情,你所需要做的就是将文件放置到与Android文件系统中相对应的文件夹中,然后编写一个用来复制这些文件到手机对应位置的update-script, 文件。作为举例,比如安装Calculator.apk到system/app文件夹,复制libsec-ril.so文件到system/lib文件夹:新建一个空文件夹(本文例:G:\android)新建用来放置Calculator.apk的文件夹C:\android\system\app以及用来放置libsec-ril.so的文件夹G:\android\system\lib。创建用来放置update-script文件的文件夹G:\android\META-INF\com\google\android。


创建一个名为updater-script的文件,其内容如下:

1.
show_progress 0.1 0

2.

3.
copy_dir PACKAGE:systemSYSTEM:

4.

5.
show_progress 0.1 10

6.

行1和行5:显示进度条
行3:复制刷机包中的system文件夹到Android的/system
注意:你应该在文件的最末尾多添加一个空行(也就是行6)将C:\android压缩中的所有内容压缩为zip包(千万记住:是压缩android这个文件夹中的内容,不是android文件夹本身)为android.zip签名


②基础语法篇
1.copy_dir
语法:copy_dir []
表示原文件夹,表示目的文件夹,[]表示时间戳
作用:将文件夹中的内容复制到文件夹中。文件夹中的原始内容将会保存不变,除非文件夹中有相同的内容,这样中的内容将被覆盖
举例:copy_dir PACKAGE:system SYSTEM:(将升级包中的system文件夹复制到手机中)

2.format
语法:format
表示要格式化的分区
作用:格式化一个分区
举例:format SYSTEM:(将手机/system分区完全格式化)
注意:格式化之后的数据是不可以恢复的

3.delete
语法:delete [... ]
[... ]表示要格式化的文件,可以是多个文件用空格隔开
作用:删除文件1,2到n
举例:delete SYSTEM:app/Calculator.apk(删除手机systen文件夹中app中的Calculator.apk文件)

4.delete_recursive
语法:delete_recursive [... ]
[... ]表示要删除的文件或文件夹,可以使多个,中间用空格隔开
作用:删除文件或者目录,删除目录时会将目录中的所有内容全部删除
举例:delete_recursive DATA:dalvik-cache(删除/data/dalvik-cache文件夹下的所有内容)

5.run_program
语法:run_program [ ...]
表示要运行的程序,[ ...]表示运行程序所加的参数
作用:运行终端程序
举例:run_program PACKAGE:install_busybox.sh(执行升级包中的install_busybox.sh脚本)

6.set_perm
语法:set_perm [...]
表示用户名称,表示用户组名称,,表示权限模式, [... ]表示文件路径,可以使多个,用空格隔开
作用:设置单个文件或目录的所有者和权限,像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 [... ]
表示用户,表示用户组,表示文件夹的权限,表示文件的权限, [... ]表示文件夹的路径,可以多个,用空格分开
作用:设置文件夹及文件夹中的文件的所有者和用户组
举例:set_perm_recursive 0 0 0755 0644 SYSTEM:app(设置手机system/app文件夹及其中文件的用户为root,用户组为root,app文件夹权限为所有者可以进行读、写、执行操作,其他用户可以进行读取和执行操作,其中的文件的权限为所有者可以进行读写操作,其他用户可以进行读取操作)
rwx 对应421 R读权限 w写权限 x执行权限

5代表R+X,6代表R+W,7代表R+W+X。一般系统文件常见的权限是644。
8.show_progress
语法:show_progress
<表示一个小部分> <表示一个小部分的持续时间>
作用:为下面进行的程序操作显示进度条,进度条会根据进行前进,当操作时间是确定的时候会更快
举例:show_progress 0.1 0(显示进度条当操作完成后前进10%)

9.symlink
语法:symlink
表示链接到的目标,表示快捷方式的路径
作用:相当于linux中的ln命令,将处创建一个软链接,的格式应为绝对路径(或许相对路径也可以),为“根目录:路径”的形式
举例:symlink /system/bin/su SYSTEM:xbin/su(在手机中system中的xbin中建立一个/system/bin/su的快捷方式)
10.assert
语法:assert
作用:此命令用来判断表达式boolexpr的正确与否,当表达式错误时程序终止执行※此作用有待验证

11.package_extract_file/dir语法:package_extract_file(file/dir,file/dir)
作用:提取包中文件/路径
举例:package_extract_dir("system", "/system");
       package_extract_file("system/bin/modelid_cfg.sh","/tmp/modelid_cfg.sh");


12.write_radio_image
语法:write_radio_image
作用:将基带部分的镜像写入手机,表示镜像文件
举例:write_radio_imagePACKAGE:radio.img

13.write_hboot_image
语法:write_hboot_image
作用:将系统bootloader镜像写入手机,表示镜像位置,此命令在直到在所有的程序安装结束之后才会起作用
举例:write_hboot_imagePACKAGE:hboot.img
14.write_raw_image语法:write_raw_image
作用:将boot.img写入手机,里面包含了内核和ram盘
举例:write_raw_image PACKAGE:boot.img BOOT:
阅读(1090) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~