ROM之家教你怎样创建一个刷机包
目前有好几种方法来安装软件或是库文件到你的Android手机上。你可以使用市场程序来查找并安装软件,也可以使用adb命令行工具来安装或是发送文件到你的Android文件系统中。这些方法对于操作单个文件来说都挺方便的,但是如果你需要一次性安装多个软件或是库文件时,那么最为方便的方法大概就是使用update.zip(也就是刷机包)文件了。Android系统使用恢复工具(recovery)来安装这个update.zip文件中的软件或库文件到Android文件系统中。而一个ROM或是主题开发者通常都是使用这个方式来发布他们的作品(刷机包)。
创建一个update.zip文件是很简单的事情,你所需要做的就是将文件放置到与Android文件系统中相对应的文件夹中,然后编写一个用来复制这些文件到手机对应位置的update-script文件。作为举例,本文会安装Calculator.apk到system/app文件夹,复制libsec-ril.so文件到system/lib文件夹:
新建一个空文件夹(本文例:C:\\anzhi)
新建用来放置Calculator.apk的文件夹C:\\anzhi\\system\\app以及用来放置libsec-ril.so的文件夹C:\\anzhi\\system\\lib。
创建用来放置update-script文件的文件夹C:\\anzhi\\META-INF\\com\\google\\android。
创建一个名为update-script的文件,其内容如下:
show_progress 0.1 0
copy_dir PACKAGE:system SYSTEM:
show_progress 0.1 10
行1和行3:显示进度条
行2:复制刷机包中的system文件夹到Android的/system
注意:你应该在文件的最末尾多添加一个空行
将C:\\anzhi压缩中的所有内容压缩为zip包(千万记住:是压缩anzhi这个文件夹中的内容,不是anzhi文件夹本身)
为anzhi.zip签名
签名命令:java -jar signapk.jar certificate.pem key.pk8 anzhi.zip update.zip
将update.zip文件复制到SD卡中,然后手机进入recovery界面来刷入这个刷机包。
进阶学习(以下仅作参考,因实际情况不同,可能会有一定的出入。但是极度推荐学习本部分)
update-script 语法参考(在Android源码的recovery.c文件中定义):
copy_dir
语法:copy_dir 《源目录》 《目标目录》 [《时间戳》]
描述:复制《源目录》中的内容到《目标目录》中。如果《源目录》中没有同名文件进行覆盖,那么《目标目录》中的原始内容会仍然存在不变。
示例:copy_dir PACKAGE:system SYSTEM:,这个命令会把刷机包中的system文件夹复制到手机的/system文件夹中
format
语法:format 《根目录》
描述:格式化一个分区。
示例:format SYSTEM:,这个命令会格式化整个/system。注意:格式化时所进行的数据删除操作是不可逆转的。
delete
语法:delete 《文件1》 [。。。 《文件N》]
描述:删除文件。
示例:delete SYSTEM:app/Calculator.apk,这个命令会删除手机system/app文件夹中的Calculator.apk文件。
delete_recursive
语法:delete_recursive 《文件或目录1》 [。。。 《文件或目录N》]
描述:删除一个文件或递归删除某个文件夹(也就是包括该文件夹中的所有内容)
示例:delete_recursive DATA:dalvik-cache,这个命令会删除/data/dalvik-cache文件夹以及该文件夹中的所有内容。
run_program
语法:run_program 《执行程序》 [《参数》 。。。]
描述:运行一个刷机包中的外部程序。
示例:run_program PACKAGE:install_busybox.sh,这个命令会执行刷机包中的install_busybox.sh脚本(命令行)。
set_perm(本命令中涉及的数值,如有疑惑,请自行Google。uid=user id,gid=group id)
语法:set_perm 《uid》 《gid》 《属性》 《路径》 [。。。 《路径N》]
描述:设置某个文件或是指定的整个目录树的所有者和权限,就像是一个‘chmod’、‘chown’、以及‘chgrp’命令的集合体。
示例:set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh,这个命令会设置手机上system分区中etc/init.goldfish.sh文件的用户组为:shell;用户为:root;权限为:所有者以及所属用户组成员可以进行读取和执行操作,其他用户无操作权限。
set_perm_recursive(本命令中涉及的数值,如有疑惑,请自行Google。uid=user id,gid=group id)
语法:set_perm_recursive 《uid》 《gid》 《文件夹属性》 《文件属性》 《路径》 [。。。 《路径N》]
描述:递归设置某个文件夹中所有内容的所有者和权限
示例:set_perm_recursive 0 0 0755 0644 SYSTEM:app,这个命令会递归设置手机上system/app文件夹以及其所有内容的用户组为:root;用户为:root;app文件夹的权限为:所有者可以进行读、写、执行操作,其他用户可以进行读取和执行操作;app文件夹下的所有文件的权限为:所有者可以进行读写操作,其他用户可以进行读取操作。
show_progress
语法:show_progress 《小数》 《持续时间》
描述:为下一个操作在屏幕上显示一个进度条,自动的根据《持续时间》指定的秒数来递增进度条状态(如果实际上进度条的推进是可以确定的,那就会更加迅速)。
示例:show_progress 0.1 0,这个命令是指,操作完成后,进度条前进0.1(10%)
symlink
语法:symlink 《链接目标》 《链接所在路径》
描述:创建一个符合链接(就像是 ‘ln-s’)。《链接所在路径》的格式类似于这样:根目录:路径, 但是《链接目标》则是指目标文件(而且位置可能是相对与链接所在路径的)
示例:symlink /system/bin/su SYSTEM:xbin/su,这个命令会为/system/bin/su在手机system分区的xbin文件夹下创建一个符号链接,名为su
热门刷机包top10
- 三星 Galaxy Core Prime (SM-G3609)刷机包_救砖包_官方包_三星G3609_4.4.4_G3609KEU1APG1【5件套】
- 小米10 MIUI12 开发版 20.8.11 Xposed 过度动画 核心控制
- 三星Note2(N7100)刷机包 索尼Xperia风格 安卓6.0 网速显示 双击锁屏 来去电归属 全新体验
- 酷派5820刷机包 基于官方最新V5.7 精简 纯净 流畅 原汁原味
- 海信G610M(移动4G)刷机包 基于官方最新刷机包 极致体验 超级流畅 稳定运行 长期使用
- 华为P6移动版刷机包 基于官方B708固件 桌面5*5布局 DPI设置 网速显示 状态栏农历 省电稳定
- 乐视Max EUI6.0 030S 人脸解锁 屏幕助手 省电进程 炫彩极简 特别推荐
- 金立 F103S(双4G)刷机包_救砖包_官方包_金立F103S_5.1.1_GBL8612A01_A_T3086
- 中兴V889S刷机包 乐蛙ROM第125期 第三方音乐播放器兼容性优化 稳定流畅
- 华为U8825D刷机包 终极美化4.1果冻锁屏 索爱桌面 Ascend工具2.7
热门刷机教程top10
热门ROM资讯top10
热门刷机包top10
- 三星 Galaxy Core Prime (SM-G3609)刷机包_救砖包_官方包_三星G3609_4.4.4_G3609KEU1APG1【5件套】
- 小米10 MIUI12 开发版 20.8.11 Xposed 过度动画 核心控制
- 三星Note2(N7100)刷机包 索尼Xperia风格 安卓6.0 网速显示 双击锁屏 来去电归属 全新体验
- 酷派5820刷机包 基于官方最新V5.7 精简 纯净 流畅 原汁原味
- 海信G610M(移动4G)刷机包 基于官方最新刷机包 极致体验 超级流畅 稳定运行 长期使用
- 华为P6移动版刷机包 基于官方B708固件 桌面5*5布局 DPI设置 网速显示 状态栏农历 省电稳定
- 乐视Max EUI6.0 030S 人脸解锁 屏幕助手 省电进程 炫彩极简 特别推荐
- 金立 F103S(双4G)刷机包_救砖包_官方包_金立F103S_5.1.1_GBL8612A01_A_T3086
- 中兴V889S刷机包 乐蛙ROM第125期 第三方音乐播放器兼容性优化 稳定流畅
- 华为U8825D刷机包 终极美化4.1果冻锁屏 索爱桌面 Ascend工具2.7