刷机包怎么写,刷机包制作教程具体步骤有哪些

巴克
预计阅读时长 21 分钟
位置: 首页 数码硬件 正文

刷机包的本质是一个包含系统镜像、脚本和元数据的压缩包,写刷机包的核心就是按特定目录结构打包并用Edify脚本语言编写刷机指令。 这篇文章写给想自己动手定制卡刷包的朋友,不涉及固件编译,只讲怎么把一套文件打包成手机能识别的刷机包。

刷机包怎么写?先分清你要做哪种包

写刷机包之前,先确认你要做的是卡刷包还是线刷包,两者格式完全不同,线刷包通常用于PC端工具刷机,镜像文件raw格式,结构固定,自己写成本高,绝大多数DIY场景用的是卡刷包——在Recovery模式下通过zip包刷入,下文默认讨论卡刷包。

【DIY教程】少喝两杯蜜雪冰城,来做一个桌面机器人吧!
加载中
【DIY教程】少喝两杯蜜雪冰城,来做一个桌面机器人吧!

卡刷包目录结构拆解

一个标准的第三方卡刷包,打开后必须能看到以下几层,缺一不可:

  • META-INF/com/google/android/:核心区,里面放刷机脚本updater-script和二进制执行文件update-binary
  • system/:系统文件目录,对应手机/system分区,app、framework、lib、media等子目录按原样放置
  • boot.img:内核镜像文件,可选,但绝大多数卡刷包都包含
  • data/:用户数据预置目录,可选,用于刷机后首次开机预装应用

把你解包得到的文件按这个结构铺好,刷机脚本就能找到对应目标分区,这个结构也是行业内做第三方ROM通用的基线,据XDA社区惯例,任何不遵循此结构的zip包都无法被TWRP识别。

安卓刷机包制作教程:META-INF文件夹的完整搭建流程

这是整个刷机包编写的灵魂部分,也是新手最容易卡住的地方,我们拆开写。

第一步:拿到update-binary和update-script

update-binary是一个可执行文件,负责解析脚本指令并执行,不同Recovery版本对应不同版本的update-binary,不能混用,获取途径是:随便找一个同品牌机型的公开卡刷包,解压后把META-INF/com/google/android/整个目录拷出来备用,如果你想兼容性更好,还可以从LineageOS官方包中提取,这个来源的脚本兼容范围相对更广。

第二步:手写edify脚本

updater-script是纯文本文件,用记事本或VS Code编辑,每一条指令都控制着刷机过程中的一个动作,下面这段是最少必要指令,用于卸载旧系统并写入新数据:

ui_print("开始格式化分区");
format("ext4", "EMMC", "/dev/block/bootdevice/by-name/system", "0", "/system");
mount("ext4", "EMMC", "/dev/block/bootdevice/by-name/system", "/system");
package_extract_dir("system", "/system");
package_extract_file("boot.img", "/dev/block/bootdevice/by-name/boot");
unmount("/system");
ui_print("刷入完成,正在重启");

脚本必须按执行顺序排列:先格式化,再挂载,然后解压文件,最后卸载,顺序乱了轻则刷入失败,重则变砖,分区路径/dev/block/bootdevice/by-name/是当前主流高通平台的命名方式,如果你用的是联发科或老旧机型,路径可能不同,需要从原厂包或已有第三方包中查询确认。

脚本指令 作用 使用频率
ui_print 屏幕输出文字 常用
format 格式化分区 刷机前必用
mount 挂载分区到指定路径 必用
package_extract_dir 将包内目录解压到指定路径 必用
package_extract_file 解压单个文件到指定路径 按需
delete_recursive 递归删除指定路径内容 按需
set_metadata 设置文件权限和SELinux标签 常见

第三步:打包并签名

文件结构放对、脚本写好后,用压缩工具打包时必须选ZIP格式,压缩级别选“存储”或“仅存储”,不要用RAR,也不要默认压缩比,某些Recovery对硬压缩包会解析异常。

打包完成后,能否被你手机的Recovery识别,取决于签名是否有效,卡刷包签名怎么做?这是大多数人容易忽略的最后一道关。

卡刷包签名怎么做?两条路可选

使用Android开发工具

电脑上配好Android SDK,然后用signapk.jar工具对包做签名,签名命令如下:

java -jar signapk.jar testkey.x509.pem testkey.pk8 你的包.zip 签名后的包.zip

testkey.x509.pemtestkey.pk8是AOSP源码中自带的测试密钥,适合个人使用,用这种签名方式打出来的包,TWRP这类第三方Recovery能无压力识别,如果是给官方Recovery用,那需要对应厂商的私钥,个人无法获取,这也是为什么官方Recovery往往刷不了第三方包的原因。

脚本一键签名

不想装SDK的话,可以下载Zipsigner这类PC端工具,图形界面点选输出路径即可完成,此外也有一些在线签名服务,但刷机包涉及系统级文件,不建议拿去线上签名,风险完全不可控。

签名成功与否的标志是:解压后能看到META-INF/MANIFEST.MFCERT.SFCERT.RSA文件,没有这三个文件,包在绝大多数Recovery里会直接报错,提示“签名验证失败”。

手机刷机包怎么用?先测试你的签名包能不能跑

写好的包怎么验证正确性?这是最直接的场景,整个流程可以类比成做一份手抓饼:包里的文件是饼皮和配菜,META-INF就是烹饪流程表,update-binary是厨师手中的锅铲,少一样都烙不熟。

刷机前的检查清单

  • 确认Recovery版本不低于包所依赖的版本,TWRP 3.x系列目前覆盖机型最广
  • 检查包内路径结构,特别是updater-script里的分区路径与你机型的分区是否一致
  • 确认包内有boot.img,否则刷完大概率无法开机
  • 先做完整备份,Nandroid备份或钛备份均可,防止包有问题时数据全丢

刷入操作路径

  1. 手机进入Recovery模式(多数机型是关机状态下长按音量上+电源键)
  2. 依次执行“Wipe”下的“Format Data”和“Advanced Wipe”勾选Dalvik/ART Cache、System、Cache,滑动确认
  3. 返回到主界面选择“Install”,定位到你的zip包
  4. 滑动刷入,观察屏幕输出日志,出现“Updater process ended with ERROR: 7”时说明脚本出错

ERROR: 7是最常见的报错,绝大多数情况是由于updater-script开头部分的机型校验语句与你设备型号不符,解决方案是去掉脚本开头那几行assert(getprop("ro.product.device") == "xxx"),或者把你的机型名加进去,如果你在考虑“手机刷机包怎么用更安全”,记住一句行业共识:永远用比你当前系统版本更新的Recovery刷老包,而不是用老Recovery刷新包

写刷机包常见的坑与排查思路

就算你完全按照上面的步骤走,实际刷机过程中也可能遇到一些问题,几个高频问题先列出来,避坑比什么都管用。

  • 刷入报错7:机型断言不通过,按上面说的方法处理
  • 刷入报错6:脚本语法有问题,逐行检查updater-script,特别是标点符号是否半角
  • 刷入成功但卡开机动画:多半是system目录权限问题,检查包内文件的SELinux上下文件是否丢失
  • 开机后设置向导闪退:通常是你包内system/app下预置的应用版本与系统不兼容,删掉或替换成低版本

确保包内文件的Unix权限正确也是关键,用解包工具打出来的文件如果是在Windows下重新打包,权限信息极容易丢失,这会导致文件在刷入后无法运行,推荐用Linux或macOS环境解包打包,或者使用支持保留权限的打包脚本,例如RomKitchen工具链。

Q&A

刷机包可以删掉系统自带软件吗?

可以,把system/app或system/priv-app下对应的apk文件从你的包中移除,再重新签名即可,但要注意,部分系统应用之间有依赖关系,比如删了某厂商的应用商店可能导致设置里部分菜单项报错,删之前先确认功能依赖,若只想在刷入后临时精简,也可以写一个delete_recursive指令,在刷机脚本中自动删除目标路径的应用目录,这样就不需要解包重打包,操作包容错性更高。

解包刷机包需要什么工具?

电脑端最常用的是Payload Dumper(处理新机型payload格式的固件)和RKDevTool(针对瑞芯微芯片),传统卡刷zip包直接用7-Zip或WinRAR就能解压,如果你在Windows下解包后发现system目录里文件结构错乱,优先换用Linux环境重新解压,Windows的文件系统编码可能导致文件名乱码。

刷机包内的update-binary可以随便替换吗?

不能,update-binary必须与Recovery版本和安卓版本匹配,用Android 9的update-binary去刷Android 11的包,很可能导致脚本执行中途崩溃或无法正确挂载分区,稳妥做法是从同安卓大版本的官方或知名第三方包中提取,不要跨版本混用。

-- 展开阅读全文 --
头像
iphone6声音变成耳机怎么恢复,外放没声音只有听筒模式
« 上一篇 2026-09-14
心动手机怎么刷机,刷机步骤详解
下一篇 » 2026-09-14
取消
微信二维码
支付宝二维码

最近发表

动态快讯

标签列表

目录[+]