EmuX 是一个简洁的 Android 模拟器桌面管理器。首次启动时联网下载官方 Android 运行环境,之后可以直接新建、启动、停止和删除本地设备。
- 从 GitHub Releases 下载当前平台的安装包并启动 EmuX。
- 首次启动时接受 Android SDK 许可。
- 等待 Android 15 Google Play、Google APIs、Emulator、ADB 等组件下载并安装完成。
- 点击“新建设备”,选择 Google Play 或 Google APIs 镜像,以及名称、屏幕方向和性能模式。
- 在设备列表中启动或停止设备。删除设备会永久移除该设备的数据,但不会重复删除已下载的运行环境。
EmuX 不需要也不包含 7GB .emupkg.zip 离线包。安装中断后再次启动会优先复用已经校验的下载缓存。
| 主机 | Android 镜像 | KernelSU |
|---|---|---|
| Windows x86_64 | x86_64 | 支持 Google Play / Google APIs |
| macOS Apple Silicon | arm64-v8a | 支持 Google Play / Google APIs |
| macOS Intel | x86_64 | 不支持 |
| Linux x86_64 | x86_64 | 支持 Google Play / Google APIs |
Linux ARM64 当前没有可用的官方 Android Emulator 组合。运行模拟器需要主机已开启硬件虚拟化(Windows 上通常是 Hyper-V / WHPX,或 Intel HAXM 兼容环境)。
KernelSU 按 guest ABI 选择内置内核,启动 Root 设备时通过 -kernel 注入匹配镜像:
- Windows/Linux x86_64:与系统镜像 Build ID 精确匹配的 bzImage(Play
ab11987101,APIsab12525588) - macOS Apple Silicon:Android 15 arm64-v8a 匹配内核(Build
11987101,6.6.30-android15-8-maybe-dirty-4k)
内置资源的 SHA-256 如下:
| 资源 | SHA-256 |
|---|---|
| x86_64 Google Play KernelSU 内核 | cfd148d3d60ced4b1f735bdd2ed1f07df048fcb05cb4f013672981bad2e72156 |
| x86_64 Google APIs KernelSU 内核 | 609f27fcaef94b2d8b0476576b10ff0c781c80b7901bbca2703bafd59249bdd2 |
| arm64-v8a Google Play KernelSU 内核 | b01dd8f62a319b52e2a3cbc98ce1a0091641cb6e539767003ccdb06ac5ebe082 |
| arm64-v8a Google APIs KernelSU 内核 | b01dd8f62a319b52e2a3cbc98ce1a0091641cb6e539767003ccdb06ac5ebe082 |
| KernelSU Manager 3.2.0 | c6eff4898e135a778d55054f40cd5dac13a3748ed508c73200455e330caf208f |
| Tricky Store OSS v3.0.0(含用户提供 keybox) | 7a981133927f02f13bab9ada7f82d284ea188be890f9fe4b0bcb8b6a3ed5b00b |
| 用户提供的 Tricky Store keybox | 76a5b7045a35f9e320e61cb18129fed810a9015f0519102d366a6348b93876e0 |
| Tricky Store 引导 APK | 082bcb3265be1939d94634f72ff62d5ce4988b85786fe1e4e4713d17559a7aa6 |
| Google Play 商店(Phonesky,arm64-v8a) | 27ec8f3dbb69caa2176b6faa4fc6f59ceb1a134ccdea0933b58908ac28c3ff71 |
| Play Store KernelSU 模块 | 65d55ba10d52ece4b7064ff53c36508a0b4391b92d990ea7acee5e45d94aa5a9 |
| KernelSU meta-overlayfs 1.3.1 | 279d85a6a35724dfcf8aa1137a9630c7e989e154b94543517c539ee70f9b8811 |
Google Play 镜像包含 Play 商店与完整 Google 服务,使用 release key 签名,不支持 adb root;KernelSU 可为应用提供 Root。Google APIs 镜像不包含 Play 商店,但包含 Google Play Services,通常支持 adb root,也可选择 KernelSU。两种镜像均来自 Google 官方 Android SDK 渠道。
Google APIs 镜像会用系统占位包 LicenseChecker 占用 com.android.vending(无桌面图标,也不是真商店)。因此在 启用 KernelSU 的 Google APIs 设备上,EmuX 会通过 KernelSU 模块安装官方 Phonesky 到 /product/priv-app/Phonesky(特权应用,才能获得 MANAGE_USERS 等 privapp 权限),并移除 LicenseChecker 占位包;模块生效后会自动重启。若只把 APK 覆盖到普通 /product/app,商店会在启动时因缺权限反复崩溃。未启用 KernelSU 时无法覆盖系统签名占位包。KernelSU v3+ 需要先安装官方 meta-overlayfs 元模块,system/ 目录下的文件才会真正挂载;EmuX 会在首次 Root 设备启动时自动安装该元模块。
SDK、JRE、系统镜像、下载缓存和设备数据默认保存在操作系统分配给 EmuX 的本地应用数据目录,不依赖源码所在位置,也不会写入开发电脑的硬编码路径。
如需放到其他磁盘,可在启动前将 EMUX_DATA_DIR 设置为一个绝对路径:
EMUX_DATA_DIR=/path/to/emux-data pnpm devPowerShell:
$env:EMUX_DATA_DIR = "D:\EmuXData"
pnpm dev需要:
- Node.js
- pnpm(仓库指定
pnpm@11.1.1) - 稳定版 Rust(
rustup默认 toolchain) - 当前平台的 Tauri 2 系统依赖
Windows x86_64 已支持从源码构建和运行,除上述工具外还需要:
- Microsoft C++ Build Tools(含 “使用 C++ 的桌面开发” / MSVC)
- WebView2 Runtime(较新的 Windows 11 通常已预装)
- 将 Rust 加入 PATH:
%USERPROFILE%\.cargo\bin
# 若新开终端找不到 cargo / rustc:
$env:Path = "$env:USERPROFILE\.cargo\bin;" + $env:Path
git clone git@github.com:DouDOU-start/EmuX.git
cd EmuX
pnpm install --frozen-lockfile
pnpm devgit clone git@github.com:DouDOU-start/EmuX.git
cd EmuX
pnpm install --frozen-lockfile
pnpm dev仅运行网页界面预览:
pnpm dev:renderer构建安装包:
pnpm buildWindows 构建会使用 src-tauri/icons/icon.ico 生成应用资源;该文件与 icon.png 一并纳入仓库,请勿删除。
运行环境来自 Google Android、Eclipse Adoptium、avd-kernelsu 构建流程,以及 KernelSU Manager 发布。KernelSU 内核资源会按 guest ABI 校验(x86_64 bzImage / arm64 Image)与 APK 格式;构建脚本在 tools/build-avd-kernelsu.sh(需在大小写敏感文件系统上构建 arm64,例如 Linux Docker 卷)。社区构建流程采用 Apache-2.0,Linux 内核、KernelSU 与 Manager 分别遵循各自的上游许可;EmuX 默认不会向 adb shell 开放 Root。
启用 KernelSU 的新设备在首次启动阶段会自动通过 KernelSU Manager 安装 Tricky Store OSS;模块安装后设备会自动重启一次,使模块进入启用状态。模块包中的 keybox.xml 来自 src-tauri/resources/tricky-store/keybox.xml 用户配置,安装脚本会把它放到 Android 客户机的 /data/adb/tricky_store/keybox.xml。EmuX 不生成或替换该文件。请仅在你拥有合法使用权的环境中使用它,并不要把其他设备密钥提交到仓库。
Google Play 商店相关资源:
- src-tauri/resources/google-play-store.apk:自官方
google_apis_playstore;arm64-v8a镜像提取的 Phonesky(含 arm64 native 库) - src-tauri/resources/playstore-module.zip:在 Google APIs 设备上通过 KernelSU 替换 LicenseChecker 占位包
- src-tauri/resources/meta-overlayfs.zip:官方 KernelSU OverlayFS 元模块,用于挂载模块的
system/目录
请遵守 Google 服务条款与当地法律。
Tricky Store OSS 由 beakthoven/TrickyStoreOSS 提供,遵循 GPL-3.0。引导 APK 的源代码与构建说明位于 tools/trickystore-bootstrap;它只提供一次性只读 URI,不自行取得 Root,实际安装由 KernelSU/ksud 完成。Play Store 与 meta-overlayfs 则通过 adb push + ksud module install 安装,避免大体积模块经 ContentProvider 传输时被截断。
EmuX 自身代码使用 MIT License。