ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

一文看懂 Apktool 的 apktool.yml 配置

一文看懂 Apktool 的 apktool.yml 配置 一文看懂 Apktool 的 apktool.yml 配置【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool在 Apktool 里反编译一个 APK输出目录会多出个 apktool.yml。它记录 SDK 上下限、资源包 ID 和哪些文件不许压缩重打包全程靠它驱动改错一处就可能崩掉整个包。重打包翻车现场构建通过资源却空白你改了 res 里的文案跑构建成功。装到手机上打开图片空白、部分资源加载失败。回头一查是中途顺手删了 apktool.yml 里的几行。这个文件是 Apktool 重建 resources.arsc 和 zip 的依据依据错了产物就错包体资源越多翻得越彻底。它从哪来工具写、工具读apktool.yml 不是手写的。跑 apktool d 时Apktool 把从 APK 读到的元数据汇成一个 ApkInfo 对象落成 yml 存进输出目录写入点在 ApkDecoder.java构建时 ApkBuilder 再从同一路径读回。解码写、重打包读两端对称。看个测试包的片段取自 testapp/apktool.ymlapkFileName: testapp.apk resourcesInfo: packageId: 127 sparseEntries: false sdkInfo: minSdkVersion: 4 doNotCompress: - arsc读写核心逻辑都在 ApkInfo.javasave 落盘load 读回。原包里凡是本来就未压缩的扩展名都会被逐个收进 doNotCompress所以这个列表常常比你想的长。重打包前必须核对的字段字段改错的后果安全改法packageId资源引用对不上界面空白或加载失败原样保留 127除非明确在做框架合并minSdkVersion调低丢 API 行为调高可能装不上默认跟原始 APK 一致doNotCompress漏掉 arsc 或 png资源被压缩后运行时解不出保留原始项只增不删sparseEntries改的是 resources.arsc 存储结构乱设可能解析失败拿不准就别碰表外每个字段再补一句packageId 是写进每个资源引用的编号引用和定义必须同编号minSdkVersion 会随 yml 传给 aapt2 决定启用哪些行为doNotCompress 决定单个文件是否不压缩存储sparseEntries 影响资源表如何排布乱设直接解析失败。完整走一遍解码、改、重打包、验证以“新增一张大图、要求不压缩存储”为例。第一步解码apktool d demo.apk。打开 demo/apktool.ymlpackageId、sparseEntries 和 doNotCompress 原有项一律不动只为新文件加一行。第二步重建apktool b demo -o demo_rebuilt.apk。装到设备上把用到图片的页面点一遍不空白、不抛异常才算过。改前自检的三个问题这个字段不改包还能不能构建能就别动它。目标设备支持你改的 SDK 版本吗重打包后装上去、把重资源页面过了一遍吗下次重打包先把 apktool.yml 的 diff 跑出来字段没漂移再提交。【免费下载链接】ApktoolA tool for reverse engineering Android apk files项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表