查看: 31744|回复: 986
打印 上一主题 下一主题

[实用教程] Android系统recovery刷机脚本updater-script语法说明

    [复制链接]

34

主题

8

好友

1550

积分

首席导师组

  • TA的每日心情
    奋斗
    2016-7-22 10:21
  • 签到天数: 281 天

    [LV.8]以坛为家I

    G币
    4414
    最后登录
    2016-8-29
    注册时间
    2010-4-10

    IP 编辑 禁止 帖子 清理

    跳转到指定楼层
    楼主
    发表于 2014-2-28 16:16 |只看该作者 |倒序浏览
    Android系统recovery刷机脚本updater-script语法说明
    这篇教程部分说明来源于网络,主要为了让大家了解updater-script语法和使用,以及熟悉权限的定义和如何使用


    本帖隐藏的内容

    • unmount
      1. unmount(mount_point);
      2. mount_point---是mount设置产生的值。作用与挂载相对应,卸载分区或设备。此函数与mount配套使用。
      3. unmount("/system");   卸载/system分区
      复制代码
    • format
      1. format(type, location);
      2. type="MTD"  location=partition(分区),location参数代表分区。
      3. format("MTD", "system");  格式化system分区
      复制代码
    • mount
      1. mount(type, location, mount_point);
      2. type="MTD"   location="" 挂载yaffs2文件系统分区;type="vfat"  location="/dev/block/"  挂载设备。
      3. mount("MTD", "system", "/system");         挂载system分区,返回值"/system”
      4. mount("ext4", "/dev/block/mmcblk1p2", "/system");     挂载/dev/block/mmcblk1p2,返回值"/system”/system分区格式为ext4
      5. mount("vfat", "/dev/block/mmcblk1p2", "/system");     挂载/dev/block/mmcblk1p2,返回值"/system”/system分区格式为vfat
      复制代码
    • Delete
      1. delete();删除文件
      2. delete("/data/zipalign.log");    删除文件/data/zipalign.log
      复制代码
    • delete_recursive
      1. delete_recursive();删除文件夹
      2. delete_recursive("/data/dalvik-cache");删除文件夹/data/dalvik-cache
      复制代码
    • show_progress
      1. show_progress(,);为下面进行的程序操作显示进度条,进度条会根据设置的参数前进
      2. show_progress(0.1, 10);show_progress下面的操作可能进行10s,完成后进度条前进0.1(也就是10%)
      复制代码
    • package_extract_dir
      1. package_extract_dir(package_path, destination_path);解压package_path文件夹到destination_path目录
      2. package_extract_dir("system", "/system");  解压ROM包里system文件夹下所有文件和子文件夹至/system目录
      复制代码
    • package_extract_file
      1. package_extract_file(package_path, destination_path);解压package_path文件到destination_path目录
      2. package_extract_dir("my.zip", "/system");  解压ROM包里的my.zip文件到/system目录
      复制代码
    • Symlink
      1. symlink(...);建立指向target符号链接src1,src2,也就是软链接
      2. symlink("toolbox", "/system/bin/ps");建立指向toolbox的符号链接/system/bin/ps
      复制代码
    • set_perm
      1. set_perm(...);设置文件的用户为uid,用户组为gid,权限为mode
      2. set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");  设置文件/system/etc/dbus.conf的所有者为1002,所属用户组为1002,权限为:所有者有读权限,所属用户组有读权限,其他无任何权限。
      复制代码
      【语法】set_perm(<uid>,<gid>,<mode>, "<path>");
      <uid>表示用户名称
      <gid>表示用户组名称
      <mode>表示权限模式
      <path> 表示文件路径,可以使多个,用空格隔开
      【作用】设置单个文件或目录的所有者和权限,像linux中的chmod、chown或chgrp命令一样,只是集中在了一个命令当中
      【举例】set_perm(0,2000,0550,"system/etc/init.goldfish.sh")(设置手机system中的etc/init.goldfish.sh的用户为root,用户组为shell,所有者以及所属用户组成员可以进行读取和执行操作,其他用户无操作权限)
      【说明】在此命令中最难明白的是0 2000 0550这几组参数所代表的意思,这是Linux相关的参数
      具体如下:0代表用户为root,2000代表用户组为shell。0550这组数据的最后三位550,分别代表所有者\组用户\其他用户的权限,也就是我们在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。
      常用修改权限的命令:  
      Set_perm 0 0 0600 ××× (只有所有者有读和写的权限)  
      Set_perm 0 0 0644 ××× (所有者有读和写的权限,组用户只有读的权限)  
      Set_perm 0 0 0700 ××× (只有所有者有读和写以及执行的权限)  
      Set_perm 0 0 0666 ××× (每个人都有读和写的权限)  
      Set_perm 0 0 0777 ××× (每个人都有读和写以及执行的权限)  
      范例 :
      -rw------- (600) -- 只有用户有读写权限。
      -rw-r--r-- (644) -- 只有用户有读写权限;而组用户和其他用户只有读权限。
      -rwx------ (700) -- 只有用户有读、写、执行权限。
      -rwxr-xr-x (755) -- 用户有读、写、执行权限;而组用户和其他用户只有读、执行权限。
      -rwx--x--x (711) -- 用户有读、写、执行权限;而组用户和其他用户只有执行权限。
      -rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。
      -rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。
    • set_perm_recursive
      1. set_perm_recursive(...);设置文件夹和文件夹内文件的权限
      2. set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");   设置/data/app的所有者和所属用户组为1000,app文件夹的权限是:所有者和所属组拥有全部权限,其他有执行权限;
      3. app文件夹下的文件权限是:所有者有读写权限,所属组有读权限,其他有读权限。
      复制代码
      【语法】set_perm_recursive <uid> <gid> <dir-mode> <file-mode> <path> [...<pathN>]
      <uid>表示用户,<gid>表示用户组,<dir-mode>表示文件夹的权限,<file-mode>表示文件的权限,<path> [... <pathN>]表示文件夹的路径,可以多个,用空格分开
      【作用】设置文件夹及文件夹中的文件的所有者和用户组
      【说明】其中<dir-mode> <file-mode>分别代表目录和file的权限,具体参数如上述
      【举例】set_perm_recursive 0 0 0755 0644 SYSTEM:app(设置手机system/app文件夹及其中文件的用户为root,用户组为root,app文件夹权限为所有者可以进行读、写、执行操作,其他用户可以进行读取和执行操作,其中的文件的权限为所有者可以进行读写操作,其他用户可以进行读取操作)
      下面是我们常用的两组修改权限的命令:
      一组是常规程序用RE管理器拷贝到system/app后修改的权限命令如下:
      set_perm(0,0,0644,"/system/app/Calendar.apk");
      一组是我们要移动dalvik-cache到cache过程中拷贝修改mot_boot_mode.bin命令如下:
      set_perm(0,0,0755,"/system/bin");
    • ui_print
      1. ui_print("pwelyn");屏幕打印输出"pwelyn"
      2. ui_print("GR[GreatRom/GfanRom]");    屏幕打印GR[GreatRom/GfanRom]
      复制代码
    • run_program
      1. run_program();运行shell脚本
      2. run_program("/system/xbin/installbusybox.sh");    运行installbusybox.sh脚本文件
      复制代码
    • write_raw_image
      1. write_raw_image(, partition);写入至partition分区
      2. write_raw_image("/tmp/boot.img", "boot")将boot.img直接写入boot分区
      复制代码
    • assert
      1. assert(...);如果执行sub1不返回错误则执行sub2,如果sub2不返回错误则执行sub3一次类推。
      2. assert(package_extract_file("boot.img", "/tmp/boot.img"),
      3. write_raw_image("/tmp/boot.img", "boot"),
      4. delete("/tmp/boot.img"));   执行package_extract_file,如果不返回错误则执行write_raw_image,如果write_raw_image不出错则执行delete
      复制代码
    • 刷机后自动重启
      1. run_program("/sbin/sleep", "3");
      2. run_program("/sbin/reboot");
      复制代码
    • 结束
      教程结束感谢大家支持


    7

    查看全部评分

    分享到:
    西安乱弹  bt下载软件哪个好 

    9

    主题

    0

    好友

    1001

    积分

    GR 团队

    Rank: 3Rank: 3

  • TA的每日心情

    2016-10-25 10:57
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    G币
    459
    最后登录
    2016-11-8
    注册时间
    2011-7-23

    IP 编辑 禁止 帖子 清理

    沙发
    发表于 2014-2-28 16:22 |只看该作者
    辛苦辛苦,
    “快看快看啊飞起来了呼哧呼哧....” “别装了你不就是想趁机放个屁” “....”
    msn7.0下载  蜡笔小新版超级玛丽

    0

    主题

    0

    好友

    86

    积分

    GR 团队

    Rank: 3Rank: 3

  • TA的每日心情
    奋斗
    2014-3-3 10:19
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    G币
    41
    最后登录
    2016-8-2
    注册时间
    2014-2-24

    IP 编辑 禁止 帖子 清理

    板凳
    发表于 2014-2-28 16:28 |只看该作者
    前排回复,看教程
    高登讨论区  三星9300迷你版

    3

    主题

    0

    好友

    105

    积分

    GR 团队

    Rank: 3Rank: 3

  • TA的每日心情

    2015-10-12 18:22
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    G币
    118
    最后登录
    2016-8-2
    注册时间
    2013-3-22

    IP 编辑 禁止 帖子 清理

    地板
    发表于 2014-2-28 16:29 |只看该作者
    看看  留名

    g11刷recovery教程  安卓二战风云

    3

    主题

    0

    好友

    30

    积分

    GR 团队

    Rank: 3Rank: 3

    该用户从未签到

    G币
    5
    最后登录
    2016-8-2
    注册时间
    2014-2-20

    IP 编辑 禁止 帖子 清理

    5
    发表于 2014-2-28 16:35 |只看该作者
    谢谢楼主
    不能复制粘贴   硬币海盗

    9

    主题

    0

    好友

    276

    积分

    GR 团队

    Rank: 3Rank: 3

  • TA的每日心情

    2014-2-28 20:27
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    G币
    213
    最后登录
    2016-8-2
    注册时间
    2011-10-12

    IP 编辑 禁止 帖子 清理

    6
    发表于 2014-2-28 16:42 |只看该作者
    前排支持!
    android rom大赛   来电管家

    13

    主题

    0

    好友

    1950

    积分

    硕士

    Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    擦汗
    2015-11-12 22:35
  • 签到天数: 133 天

    [LV.7]常住居民III

    G币
    22420
    最后登录
    2016-8-2
    注册时间
    2011-11-6

    IP 编辑 禁止 帖子 清理

    7
    发表于 2014-2-28 16:42 |只看该作者
    前排占座!
    i9500什么时候上市  沙漠风暴数据包

    2

    主题

    0

    好友

    202

    积分

    GR 团队

    Rank: 3Rank: 3

    该用户从未签到

    G币
    3
    最后登录
    2017-1-19
    注册时间
    2012-11-17

    IP 编辑 禁止 帖子 清理

    8
    发表于 2014-2-28 16:48 |只看该作者
    c组学员 前来报到
    手机距离感应器  gameloft live

    40

    主题

    1

    好友

    7301

    积分

    GR 团队

    Rank: 3Rank: 3

  • TA的每日心情
    开心
    2017-1-22 09:04
  • 签到天数: 359 天

    [LV.8]以坛为家I

    G币
    6184
    最后登录
    2017-1-22
    注册时间
    2011-12-28

    IP 编辑 禁止 帖子 清理

    9
    发表于 2014-2-28 16:51 |只看该作者
    回复阅读
    极品飞车17背景音乐   i am number 4

    62

    主题

    3

    好友

    3401

    积分

    GR 团队

    Rank: 3Rank: 3

  • TA的每日心情
    无聊
    2015-12-15 02:19
  • 签到天数: 63 天

    [LV.6]常住居民II

    G币
    1484
    最后登录
    2016-8-2
    注册时间
    2012-1-8

    IP 编辑 禁止 帖子 清理

    10
    发表于 2014-2-28 17:08 |只看该作者
    本帖最后由 Thankdifferent 于 2014-2-28 17:13 编辑

    +1
    —— Tony
    鹰击长空汉化  世界上最坑爹的游戏
    高级模式
    B Color Image Link Quote Code Smilies @朋友 |上传

    举报|手机版|机锋网 ( 京ICP备15020343号 | 京公网安备11010802020450号

    GMT+8, 2017-1-25 14:43

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回顶部