Skip to content

refactor(build): 现代化 Android 与 CI 构建工具链 - #8

Merged
Soulize merged 2 commits into
mainfrom
refactor/modern-build-toolchain
Oct 1, 2026
Merged

Soulize merged 2 commits into
mainfrom
refactor/modern-build-toolchain

Conversation

@Soulize

@Soulize Soulize commented Oct 1, 2026 •

Copy link
Copy Markdown
Owner

目的

将当前依赖 Java 8 / dx / API 23 / 硬编码系统路径的构建链迁移到现代 Android 工具链,同时保持运行时行为不变。

主要改动

  • Hook APK 改为 Gradle 9.5 + AGP 9.3 release 构建
  • compileSdk 升至 36,但保持 minSdk 26 / targetSdk 28 不变
  • Hook 模块为纯 Java,显式 enableKotlin = false,避免 AGP 9 built-in Kotlin 自动打入 kotlin-stdlib
  • Xposed API 82 继续作为 compileOnly,暂不迁移 Hook API
  • Java device tools 由 dx 改为 D8
  • vd_server 明确先测试,再交叉编译为 Android/ARM64
  • CI 统一使用 JDK 17,不再切换 Java 8
  • 移除 /root/xposed_lib、/usr/lib/android-sdk/... 等机器路径依赖
  • 保留现有固定 APK 签名密钥,覆盖安装签名保持一致
  • release lint 仅定点豁免:
    • ExpiredTargetSdkVersion:本项目为 sideload/KSU/LSPosed 模块,不发布 Play Store
    • BlockedPrivateApi:setSkipScreenshot 为模块有意使用的系统私有 API
  • 不启用 R8/minify,避免把工具链迁移与代码压缩行为混在一起

同源码构建对比

基线:当前 main 336467c legacy CI run #70
最终现代构建:PR CI run #82

产物 Legacy Modern 变化
agent_hook.apk 95,056 B 87,360 B -7,696 B (-8.1%)
agent_tools.dex 39,784 B 38,144 B -1,640 B (-4.1%)
agent_vd.dex 13,108 B 12,596 B -512 B (-3.9%)
vd_server 6,095,169 B 6,095,169 B 0
GitHub Actions artifact 3,334,680 B 3,334,236 B -444 B

早期 modern 实验包曾出现约 722 KB 的 Hook APK。原因已定位为 AGP 9 默认启用 built-in Kotlin,即使模块没有 Kotlin 源码也会自动添加 Kotlin 标准库。对 Java-only Hook 模块设置 enableKotlin = false 后,APK 降至 87,360 B,不再包含 Kotlin runtime。

成品断言

最终 run #82 直接检查生成后的 APK/KSU 产物:

  • package: com.agent.mobileuse
  • versionCode: 800
  • versionName: 0.8.0-alpha
  • minSdk: 26
  • targetSdk: 28
  • compileSdk: 36
  • Xposed metadata: xposedmodule / xposedminversion / xposedscope 均存在
  • APK Signature Scheme v2 验证通过
  • 固定签名证书 SHA-256: f1c2a4a54d836b140ea86f5bafde2348fa0950a87a5d6eb5c8da400ca2b66b11
  • vd_server: Android ARM64
  • KSU ZIP 完整性检查通过
  • 最终 KSU ZIP: 3,345,407 B
  • KSU ZIP SHA-256: 41512dcf0e9d7b90296f53b1913070b446dd2356706b1e375ce469d18a48440c

行为边界

本 PR 不修改 overlay、Hook、截图、输入、会话、协议等业务逻辑;不改变 targetSdk;不启用代码混淆/压缩。因此现代化构建不会引入由 targetSdk 或 R8 导致的运行时行为变化。

运行时性能方面,这次迁移本身不应带来可感知的加速,也没有发现会导致性能退化的产物变化:核心 Go daemon 字节级一致,Hook APK 和两个工具 DEX 反而更小。主要收益是构建可复现性、维护性和现代 CI 兼容性。

@Soulize
Soulize force-pushed the refactor/modern-build-toolchain branch from ae92bc6 to 4de3308 Compare October 1, 2026 15:38
@Soulize
Soulize force-pushed the refactor/modern-build-toolchain branch from 4019e7c to b3c0892 Compare October 1, 2026 16:00
@Soulize
Soulize merged commit ee4502e into main Oct 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant