Experimental Android client built with Kotlin/Jetpack Compose and a Rust proxy core.
Chimera Desktop
↕
Chimera Client (Rust client core)
↕ VLESS / REALITY
Chimera Proxy Server (Rust server core)
↕
AChimera (Android client) · Proxy Wiki
- Chimera — cross-platform desktop application
- Chimera Client — Rust client core
- Chimera Proxy Server — Rust server core
- Proxy Wiki — documentation and deployment notes
AChimera 是一个基于 Android + Kotlin/Jetpack Compose + Rust/UniFFI 的实验性代理客户端工程。当前仓库已经具备 Android 界面、VPN 服务入口、配置导入与校验、Rust 核心桥接、日志查看和节点面板等基础能力,目标是把移动端体验与底层网络核心拆分为清晰的多模块结构。
当前应用名称为 Chimera Lite,包内同时包含 Android UI 层和通过 UniFFI 暴露给 Kotlin 的 Rust 核心。
anytlshysteria2realityshadowsocksxhttp(包括 HTTP/3;需标准 TLS 和 ALPNh3)trojanvless(包括可选 1-RTT 加密)wireguardtls+ws
两套界面的共享业务边界、设置数据源和 VPN 生命周期职责见 应用架构说明。
- Android SDK 36
- Kotlin + Jetpack Compose
- Java 25 Toolchain
- Rust 2024
- UniFFI
cargo-ndkclash-libRust 核心依赖
在本地构建前,至少需要准备:
- JDK 25
- Android SDK 36 和 Build Tools 36.0.0
- Android NDK
29.0.14206865 - Rust toolchain
cargo-ndk
推荐同时配置以下环境之一来让 Gradle 找到 SDK/NDK:
local.properties中的sdk.dir和可选的ndk.dir- 或
ANDROID_SDK_ROOT - 或
ANDROID_HOME - 可选
ANDROID_NDK_HOME/ANDROID_NDK_ROOT
安装 cargo-ndk:
cargo install cargo-ndk --locked启动一个已配置的 AVD;若模拟器已运行则复用,并等待 Android 启动完成(可选传入 AVD 名称):
./scripts/start-emulator.sh
# 或替换为 Android Studio Device Manager 中的 AVD 名称:
./scripts/start-emulator.sh YOUR_AVD_NAME构建 Debug APK:
.\gradlew assembleDebug运行质量检查:
.\gradlew testDebugUnitTest lintDebugGitHub Actions 会每天运行一次 Nightly Build,使用与本地和正式 CI 相同的 Rust/Android 工具链,并将完整 ABI 的 Debug APK 发布到滚动更新的 GitHub Nightly 预发布版本,同时保留 14 天的 Actions Artifact。也可以在 Actions 页面手动触发该工作流。
构建 Release APK:
.\gradlew assembleReleaseRelease APK 构建需要发布签名配置;签名材料与本地/GitHub Actions 配置方式见Release APK 签名说明。正式 APK 的证书指纹固定在 SIGNING_CERT_SHA256.txt,可用于核对后续版本是否由同一签名密钥签发。Nightly Debug APK 使用 Android 默认 debug key,与正式发布签名身份不同。
core 模块会在 Android 编译前自动完成两件事:
- 使用
cargo ndk为 Android ABI 构建chimera-ffi - 基于生成的动态库运行
uniffi-bindgen,输出 Kotlin 绑定代码
这是一个仍在演进中的工程,README 只描述当前仓库内已实现的内容。根据现有字符串和实现,已知仍存在一些限制:
- 停止 VPN 后当前实现可能会通过重启应用来回避不安全的运行时状态
- 部分设置在切换配置后需要重启 VPN 才会完全生效
clash-rs/clash-lib对部分 mihomo 配置的兼容性仍有限
项目使用仓库根目录中的 LICENSE。
- 有任何使用上的问题,或者代码实现上的问题,欢迎提 Issue 或 PR。
- 即使你是完全的新手,在查阅完 wiki 后,也可以继续有针对性地提问。
- 本项目也希望吸引更多开发者一起参与完善。
如果觉得有帮助,欢迎点个 star 🧡