ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

重打包前先看 3 分钟 apktool.yml:Apktool 元数据避坑指南

重打包前先看 3 分钟 apktool.yml:Apktool 元数据避坑指南 重打包前先看 3 分钟 apktool.ymlApktool 元数据避坑指南【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool用 Apktool 反编译 APK 后输出目录里的 apktool.yml 很容易被当成冗余产物忽略甚至直接删掉。但它是 APK 重打包元数据的直接依据重建 resources.arsc 和 zip 时的关键参数都从这里读取。搞懂它记录什么、何时生效、改错会怎样能避开大部分重打包事故。重打包前为什么先看 apktool.yml最常见的误解是这只是解码时顺带产出的文件删了不影响后续构建。事实是反编译阶段Apktool 会把从原始 APK 里解析出的最低/目标 SDK 版本、资源包 ID、禁止压缩规则、sparseEntries 等信息汇总成一个 ApkInfo 对象再序列化成 YAML 写入输出目录。构建阶段则先把它读回内存再驱动整个资源与包体重建。所以文件丢失不等于少一份参考而是构建直接拿不到这些参数。遇到构建异常第一步先确认 apktool.yml 还在、内容完整。如何判断 apktool.yml 是否需要处理位置反编译输出目录的根下文件名固定为 apktool.yml。来源解码流程自动生成不需要手工创建。对应代码在 brut.apktool/apktool-lib/ 的 meta 包中由 ApkInfo 及子对象负责序列化。内容除工具版本、原始 APK 文件名外还有 sdkInfo、resourcesInfo、doNotCompress、featureFlags 等小节只写入实际读到的字段读不到的小节不会出现。真正需要处理它的场景只有两类你要修改其中字段或文件被误删误改。除此之外保持原样即可。apktool.yml 的数据流转反编译写入重打包读取apktool d app.apk # 解码把元数据写成 apktool.yml apktool b app/ # 构建先读回 yml再重建资源与 zip构建阶段它具体决定三件事smali 按哪个 API 级别回编成 dex取 minSdkVersionaapt 用什么参数重建 resources.arscpackageId、sparseEntries 等打 zip 时哪些扩展名的文件不压缩doNotCompress 列表。也就是说你在 yml 里改的任何值构建时都会原样生效不是仅供参考的备注。哪些字段不能随手改风险地图packageId资源包 ID改错的后果应用内的资源引用 ID 与重建的资源表对不上运行时资源找不到界面空白或崩溃。正确动作保持原值常见为 0x7f即十进制 127只有做框架或共享库合并时才调整并同步核对引用端。minSdkVersion / targetSdkVersion改错的后果调低 minSdk 会改变 smali 回编的 API 级别行为可能不符预期调高 targetSdk 会引入新版本的兼容限制未适配的应用可能装不上或运行异常。正确动作改之前先确认目标设备的 API 级别没有明确需求就跟随原始 APK。doNotCompress改错的后果列表项被删后构建 zip 时相应文件会被压缩。原本要求不压缩存储的资源如 arsc、png在运行时可能解不出来表现为 APK 重打包资源异常。正确动作保留原始列表项只增不删新增自己的文件类型前先确认该格式是否要求直接读取。sparseEntries改错的后果它决定 resources.arsc 写入时的索引结构设置与原始包不一致时重建出的资源表可能解析失败。正确动作不确定存储差异时不要动。如何检查 apktool.ymldiff、CI 与提交前校验构建前 diff对比修改前后的 yml出现预期之外的字段漂移就先停查清原因再构建。批量场景CI 里统一扫描多个包低于阈值的 minSdkVersion、缺失的 doNotCompress 项直接告警比逐个肉眼核对可靠。提交规范把 apktool.yml 纳入版本管理别加进忽略列表字段变化当作评审项处理。重打包前检查清单输出目录里 apktool.yml 还在内容完整。packageId 与 sparseEntries 在没有把握时保持未改动。改 SDK 字段前确认目标设备 API 级别。doNotCompress 只增不删。构建完成后立即安装冒烟启动、资源展示、关键页面各走一遍。构建下一次 APK 重打包之前记得先对 apktool.yml 做一遍 diff确认字段零漂移再跑构建。【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表