Apktool内部文档:INTERNAL.md开发内部指南

Apktool内部文档:INTERNAL.md开发内部指南

【免费下载链接】Apktool A tool for reverse engineering Android apk files 【免费下载链接】Apktool 项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool

Apktool是一款用于Android APK文件逆向工程的强大工具,本指南将详细介绍Apktool的版本发布流程、aapt2二进制文件构建方法以及Gradle实用技巧,帮助开发人员更好地参与项目开发与维护。

版本发布全流程

确保正确的许可证头

注意:目前在迁移到Kotlin DSL后此功能已损坏。

版本标签管理

build.gradle文件中有两个关键配置项:versionsuffixversion应保持不变,而suffix通常为SNAPSHOT。发布前需移除suffix中的SNAPSHOT,提交格式为version bump (x.x.x)的单独提交,然后使用以下命令创建带签名的标签:

git tag -a vx.x.x -m "changed version to vx.x.x" -s

发布准备工作

需要在项目根目录创建gradle.properties文件,包含以下配置:

signing.keyId={gpgKeyId}
signing.password={gpgPassphrase}
signing.secretKeyRingFile={gpgSecretKingRingLocation}

ossrhUsername={sonatypeUsername}
ossrhPassword={sonatypePassword}

然后执行发布命令:./gradlew build shadowJar release publish(需JDK 11+环境)。

二进制文件构建

首先执行gradlew clean清理项目,然后运行构建命令:

./gradlew build shadowJar proguard release

构建成功后会显示版本信息,例如:Building RELEASE (main): 2.2.2

二进制文件测试

构建后的JAR文件需进行功能测试,确认修复的bug已解决。文件命名格式为apktool_x.x.x.jar,同时需记录其MD5和SHA256哈希值:

md5sum apktool_2.2.2.jar
sha256sum apktool-2.2.2.jar

多平台上传发布

  1. 代码推送
git push origin main
git push origin vx.x.x
git push bitbucket master
git push bitbucket vx.x.x
  1. 二进制上传:需上传至Bitbucket Downloads、GitHub Releases、备份服务器和Sonatype Maven仓库。每个平台上传后均需验证文件哈希值是否匹配。

  2. 发布文档:在Connor Tumbleson个人博客撰写发布文章,包含版本亮点、提交统计、变更日志和下载链接。

  3. 社区更新:更新XDA开发者论坛帖子、项目网站首页及下载链接,并在社交媒体发布版本信息。

aapt2二进制文件构建指南

获取修改的frameworks/base仓库

使用platform_frameworks_base仓库,分支命名遵循apktool_x格式,对应不同Android版本。

AOSP源码准备

按照Android官方文档下载AOSP源码,推荐使用部分克隆和仅同步当前分支以减少下载量:

~/bin/repo init -u https://android.googlesource.com/platform/manifest -b android16-release --partial-clone
repo sync -c

集成修改的frameworks/base包

cd frameworks/base
git remote add origin git@github.com:iBotPeaches/platform_frameworks_base.git
git fetch origin -v
git checkout origin/apktool-{x}

构建aapt2二进制文件

  • Linux/Windows
source build/envsetup.sh
lunch aosp_cf_x86_64_only_phone-aosp_current-eng
m aapt2
strip out/host/linux-x86/bin/aapt2
strip out/host/linux-x86/bin/aapt2_64
strip out/host/windows-x86/bin/aapt2.exe
strip out/host/windows-x86/bin/aapt2_64.exe
  • Mac
export ANDROID_JAVA_HOME=/Path/To/Jdk
source build/envsetup.sh
lunch aosp_cf_x86_64_only_phone-aosp_current-eng
m aapt2
strip out/host/darwin-x86/bin/aapt2_64

验证静态构建

使用ldd(Unix)或otool -L(Mac)检查二进制文件是否存在共享依赖,确保libc++等库已静态链接。

Gradle实用技巧

  • 跳过测试构建
./gradlew build shadowJar proguard -x test
  • 调试测试套件
./gradlew test --debug-jvm
  • 运行特定测试
./gradlew :brut.apktool:apktool-lib:test --tests "*BuildAndDecodeTest"
  • 调试特定测试
./gradlew :brut.apktool:apktool-lib:test --tests "*BuildAndDecodeTest" --debug-jvm

通过遵循以上指南,开发人员可以高效地参与Apktool项目的版本发布和维护工作,确保工具的稳定性和功能完整性。项目相关源码可在brut.apktool/目录下查看。

【免费下载链接】Apktool A tool for reverse engineering Android apk files 【免费下载链接】Apktool 项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值