ApkRepack 是一个本地桌面化的 APK 内容浏览与替换工具,当前正式收敛为 JavaFX 桌面方案,不再保留 browser-shell / web 兼容层。
目标体验是:
- 用户双击
ApkRepack.app - 直接打开本地桌面窗口
- 浏览 APK 条目、预览内容、替换文件并重建 APK
- 默认执行
replace + align + sign - 分发包内自带运行时、
zipalign、apksigner和默认签名文件 - 最终用户不需要额外安装 Java、Python、Android SDK 或其它辅助文件
- 主工程为
ApkRepackApp/ - UI 采用
JavaFX - 核心能力由 Java
core复用到桌面界面和 CLI - 默认签名参数:
- keystore:
overt.jks - store password:
123123 - alias:
key0 - key password:
123123
- keystore:
当前已经具备:
- 打开 APK
- 拖拽 APK 到窗口里加载
- APK 条目列表浏览与过滤
- 条目内容预览
- 替换文件并重建 APK
- 默认执行对齐和内置签名
- 可取消对齐
- 可取消默认签名
- 可切换为自定义签名文件
- 单独签名与验签
core / replace / align / sign / verify多入口 CLI
ApkRepackApp/ Java IDEA 工程(desktop + core + cli)
app-debug.apk 测试 APK
overt.jks 默认测试签名文件
规划文档:ApkRepackApp/PLAN.md
请直接在 IDEA 中打开 ApkRepackApp/,不要打开它的上级目录作为 Java 工程。
cd ApkRepackApp
./scripts/apkrepack.sh当前 apkrepack.sh 会直接转到 JavaFX 启动脚本:
./scripts/javafx-run.sh这个开发模式依赖本机的 JDK 17 和 Maven,仅用于开发调试。
cd ApkRepackApp
./scripts/build-java.sh这个脚本用于编译 core/cli 相关类,方便本地运行 CLI 或构建 native CLI。
cd ApkRepackApp
./scripts/core.sh \
--input ../app-debug.apk \
--output ../app-debug-repacked-signed.apk \
--replace classes.dex ../some.dex默认行为:
- 替换指定条目
- 执行
zipalign - 使用默认签名重新签名
常用参数:
--input <apkPath>--output <apkPath>--replace <apkEntry> <localFile>,可重复传入--no-align--no-sign--ks <jks>--ks-pass <pass>--alias <keyAlias>--key-pass <pass>
./scripts/replace.sh --input ../app-debug.apk --output ../app-debug-replaced.apk --replace classes.dex ../some.dex
./scripts/align.sh --input ../app-debug-replaced.apk --output ../app-debug-aligned.apk
./scripts/sign.sh --input ../app-debug-aligned.apk --output ../app-debug-signed.apk
./scripts/verify.sh --input ../app-debug-signed.apk兼容入口仍保留:
./scripts/apkrepack-cli.sh inspect ../app-debug.apk
./scripts/apkrepack-cli.sh replace --input ../app-debug.apk --output ../app-debug-repacked.apk --replace classes.dex ../some.dex构建当前机器对应平台的最终发布产物(自动识别 macos/linux/windows):
cd ApkRepackApp
./scripts/package-native.sh也可以指定目标平台(一般用于 CI):
./scripts/package-native.sh --host macos
./scripts/package-native.sh --host linux
./scripts/package-native.sh --host windows输出目录:
ApkRepackApp/out/release-bin/<platform>/ApkRepack-<platform>[.exe]
其中:
- macOS:
ApkRepack-macos.dmg,内含可双击启动的ApkRepack-macos.app - Linux:
ApkRepack-linux - Windows:
ApkRepack-windows.exe
运行模式:
- 无参数(双击)启动 UI
- 命令行传参数(如
--replace、--input)进入 CLI 模式,不启动 UI
如果只构建 native CLI 可执行文件:
cd ApkRepackApp
./scripts/build-native.sh如果你需要直接调用底层单生成物构建脚本,也可以运行:
cd ApkRepackApp
./scripts/build-release-binaries.shMaven 相关环境变量:
APKREPACK_MAVEN_REPO_LOCAL:覆盖脚本默认使用的 Maven 本地仓库目录,默认是ApkRepackApp/.m2APKREPACK_MAVEN_SETTINGS:指定自定义settings.xml,适合临时切换到 Maven Central 或 CI 专用镜像APKREPACK_MAVEN_OFFLINE=true:强制 Maven 离线构建,适合依赖已缓存完成后的重复打包
如果需要保留拆分的 ui/cli 调试目录,可使用内部辅助脚本:
cd ApkRepackApp
./scripts/package-dist-internal.sh --host macos内部调试输出目录:
ApkRepackApp/out/dist/<platform>/ui/ApkRepackApp/out/dist/<platform>/cli/
这些目录仅用于内部调试、拆分验证和兼容旧辅助脚本,不作为最终发布物说明。
仓库已提供 workflow:
.github/workflows/build-multi-platform.yml
触发方式:
- 每次
push - 手动
workflow_dispatch
CI 会在 macOS / Linux / Windows 三个平台各产出一个发布产物:
- Linux:
ApkRepack-linux - Windows:
ApkRepack-windows.exe - macOS:
ApkRepack-macos.dmg(内含可双击启动的ApkRepack-macos.app)
同时会自动更新右侧 Releases 中的预发布:
- tag:
latest-build - name:
Latest Build (Auto Updated) - 资产文件:三平台单文件发布产物(不再打 zip)
仓库根目录当前已放置:
app-debug.apkovert.jks
默认测试密钥:
storePassword:123123keyAlias:key0keyPassword:123123