Android刷机脚本——updater-script

前言

updater-script是Android手机刷入系统时的脚本文件,由它来决定Android系统需要刷入哪些内容,如何刷入。

语法

1. mount

语法: mount(fs_type, partition_type, location, mount_point)。

作用:挂载一个文件系统到指定的挂载点。

返回值:成功返回挂载点,失败返回null。

说明:

  • fs_type:“yaffs2”或“ext4”
  • partition_type:“MTD”或“EMMC”
  • location:分区(partition)或驱动器(device)
  • mount_point:挂载文件系统的目标文件夹

示例:mount("ext4", "EMMC", "/dev/block/mmcblk0p8", "/system");

2. unmount

语法:unmount(mount_point)。

作用:解除文件系统挂载。

返回值:成功返回挂载点,失败返回null。

示例:unmount("/system");

3. format

语法:format(fs_type, partition_type, location)

作用:格式化指定的文件系统

说明:

  • fs_type:“yaffs2”或“ext4”
  • partition_type:“MTD”或“EMMC”
  • location:分区或驱动器

示例:format("ext4", "EMMC", "/cache");

4. delete

语法:delete(file1, file2, ..., fileN)

作用:删除文件。变长参数,支持删除多个文件。

示例:delete("/tmp/boot.img");

5. delete_recursive

语法:delete_recursive(<path>)

作用:递归删除目录。

示例:delete_recursive("/data/media/AppStoreWidget")

6. show_progress

语法:show_progress(fraction, duration)

作用:在recovery中为下面的程序操作显示进度条。进度条会根据duration前进fraction。

说明:

  • fraction:进度完成数值
  • duration:总秒数

示例:show_progress(0.950000, 50); (ps:show_progress后面的操作可能耗时0.95s,完成后进度条前进50%)

7. package_extract_dir

语法:package_extract_dir(package_path, destination_path);

作用:释放卡刷包中package_path的内容到destination_path。

示例:package_extract_dir("system", "/system"); (ps:释放rom包中system文件夹下所有文件和子文件夹至/system)

8. package_extract_file

语法:package_extract_file(file_path, destination_path);

作用:提取Rom包中的单个文件到指定目标目录。

示例:package_extract_file("boot.img", "/tmp/boot.img");

9. symlink

语法:symlink(target, src1, src2, ...);

作用:建立指向target的符号链接src1、src2...

说明:

  • target:符号链接目标
  • src1:要创建的符号链接目标点

示例:symlink("mksh", "/system/bin/sh");

10. set_perm

语法:set_perm(uid, gid, mode, file1, file2, ..., fileN);

作用:设置单个文件或者多个文件的权限。

说明:

  • uid:用户ID
  • gid:用户组ID
  • mode:权限
  • file1:需要设置的文件路径

示例:set_perm(0, 3004, 02755, "/system/bin/ping");

11. set_perm_recursive

语法:set_perm_recursive(uid, gid, dir-mode, file-mode, path);

作用:设置指定文件夹和文件夹中文件的权限。

示例:set_perm_recursive(0, 0, 0755, 0644, "/system");

12. ui_print

语法:ui_print("str");

作用:recovery中打印出str字符串内容,类似于Java中的System.out.println();

示例:ui_print("+++++++++++++++++++++++++++++++++++++++++++++");

13. run_program

语法:run_program(path, arg1, ..., argN)

作用:以指定的参数执行程序。

说明:

  • path:要执行的程序路径
  • arg1:运行参数信息

示例:run_program("/sbin/busybox", "mount", "/system");

14. write_raw_image

语法:write_raw_image(file_path, partition);

说明:

  • file_path:要读取的img源文件
  • partition:要写入img文件的目标分区

示例:write_raw_image("/tmp/boot.img", "bootimg");

15. assert

语法:assert(condition1, ..., conditionN);

作用:如果condition的计算结果为false,则终止脚本的运行。

示例:assert(package_extract_file("boot.img","/tmp/boot.img"), write_raw_image("/tmp/boot.img","bootimg"), delete("/tmp/boot.img"));

时间: 2024-07-31 01:45:51

Android刷机脚本——updater-script的相关文章

(转)Android刷机的一些知识整理

刷机概述刷机原因刷机可以升级和破解固件(在Android上:即可以升级系统,更改系统,获取Root权限):破解系统的原因①安装第三方软件不需要签名,不受证书的束缚:②修改系统的文件,达到系统的瘦身,以至于优化系统:③进行最高权限的操作.如更换系统字体,更改锁屏等等:刷机的影响①伤害硬件,影响手机寿命:②用户将获得最高权限,对系统文件进行修改,可能造成系统的损坏甚至崩溃:刷机对象①Android手机:②iPhone的越狱:③Symbian的刷机:刷机前准备①备份系统和数据:②下载ROM或img:③

Android刷机教程

我的机器是Nexus 5 一. 安装驱动 如何进入fastboot模式 1. 拔掉数据线,将手机关机 2. 关机后同时按住[音量减小键]和[开关机键]即可进入Fastboot模式 开启usb调试  --> 勾选usb调试 adb devices可以看到设备名即可 二. 下载刷机包 这是Android 4.4的刷机包,大家可以根据需求自己寻找指定的版本的刷机包 https://dl.google.com/dl/android/aosp/hammerhead-kot49h-factory-02006

Android刷三方rom之后 没有logcat日志的问题

现在市面上很多Android手机三方ROM包都默认关闭了日志的输出,原因当然是为了手机的流畅性. 但是同时也为广大的开发者带来了困扰: 1): eclipse 提示错误: Unable to open log device '/dev/log/main' 2)具体原因: 原因是因为现在很多rom的制作者都关闭了log日志,在系统初始化的时候会加载init.d目录的脚本文件,其中会有一行 "rm /dev/log/main"这行代码的意思就是系统初始化的时候删除系统的main主日志文件,

Android刷量

http://www.umengdate.com/2018/01/30/android%E5%88%B7%E9%87%8F%E6%9C%80%E5%85%A8%E8%A7%86%E9%A2%91%E5%90%88%E9%9B%86/ 原文地址:https://www.cnblogs.com/ganchuanpu/p/10215196.html

Android ROM开发(二)——ROM架构以及Updater-Script脚本分析,常见的Status错误解决的方法

Android ROM开发(二)--ROM架构以及Updater-Script脚本分析,常见的Status错误解决的方法 怪自己二了.写好的不小心弄没了,如今仅仅好又一次写一些了.上篇简单的配置了一下环境.这里呢,就来讲一下相关的仅仅是点 我们先下载一个ROM.随便下,原理都是差点儿相同的,这里我就下载一个红米Note的MIUI稳定版 1.ROM结构 ROM依据厂商的定制可能有所不同,可是大体是不变的 data 内置一些软件 META-INF 脚本文件 update-binary 二进制文件 u

Android recovery分析

Recovery的作用 Android利用Recovery模式,进行恢复出厂设置,全量包OTA升级,增量包升级. 升级一般通过运行升级包中的META-INF/com/google/android/update-script脚本来执行自定义升级,脚本中是一组recovery系统能识别的UI控制,文件系统操作命令,例如write_raw_image(写FLASH分区),copy_dir(复制目录).该包一般被下载至SDCARD和CACHE分区下. 升级中还涉及到包的数字签名,签名方式和普通JAR文件

【转】Android Recovery模式

原文网址:http://leox.iteye.com/blog/975303 (muddogxp 原创,转载请注明) Recovery简介 Android利用Recovery模式,进行恢复出厂设置,OTA升级,patch升级及firmware升级. 升级一般通过运行升级包中的META-INF/com/google/android/update-script脚本来执行自定义升级,脚本中是一组recovery系统能识别的UI控制,文件系统操作命令,例如write_raw_image(写FLASH分区

Android 5.x OTA Update官方文档(九、Sideloading-侧面安装机制)

写在前面: 本篇博文漏译了很多,英文功底比较好的同学可以选择阅读原版文档,如果方便请分享翻译后文档给大家,谢谢. recovery有一个侧面安装(sideloading)机制来方便我们手动的安装更新而不在使用OTA的方式.这种机制对于调试和维护是很有帮助的,特别是当我们无法正常启动我们的系统的时候. 目前来说我们,有了这种机制,我们可以在设备的SD卡中载入更新包.在没有启动设备的情况下,我们可以通过电脑将更新包拷贝到SD卡上,然后再将SD卡插入到设备中进行侧面安装.而且如果Android设备当前

Android Recovery OTA升级(一)—— make otapackage

目录 目录 概述 make otapackage BUILT_TARGET_FILES_PACKAGE ota_from_target_files WriteFullOTAPackage SignOutput 总结 概述 make otapackage是Android Build系统支持的命令,用来生成Recovery系统能够进行升级的zip包.因此,想要了解Android的OTA升级机制,我们首先需要学习make otapackage命令的执行过程. 为了防止泄密,以下源码内容都是基于Andr