方案選擇與架構分析
要在 Mac 上跑 Android,「主機是 Intel 還是 Apple Silicon」直接決定哪條路走得通。本篇是選型比較;各路線實作見後面文章。
需求
長期可用的 Android 環境、Pixel 系 ROM(而非只有 AOSP)、無限空間 Google 相簿。三個條件疊起來,選項很少。
關鍵前提:客體架構必須等於主機架構
UTM 底層是 QEMU。只有客體架構=主機架構時才能用 HVF 硬體虛擬化,否則只能用 TCG 模擬(極慢):
| 主機 | 可原生虛擬化(HVF) | 只能模擬(TCG,很慢) |
|---|---|---|
| Intel Mac | x86_64 客體 | aarch64 客體 |
| Apple Silicon | aarch64 客體 | x86_64 客體 |
因此:
- Intel Mac:x86_64 客體(BlissOS / Android-x86)。
- Apple Silicon:aarch64 客體(LineageOS virtio 虛擬機 + GSI)。
四條技術路線
1. 官方 Android Emulator(AVD)
最穩定最快、內建 Play Store 與 ADB。但映像只有 AOSP / Google APIs / Play Store,不能換 Pixel ROM——要開發除錯用它,要 Pixel 環境不要用它。
2. UTM / QEMU 虛擬機
ROM 完全可換:x86 掛 BlissOS;arm64 掛 LineageOS virtio 虛擬機再開 GSI。代價是設定繁瑣、映像多為社群維護。
3. Linux 容器(Waydroid)
macOS 下要先開 Linux VM 再巢狀執行,且映像是 LineageOS 系、非 Pixel 系。在純 macOS 上不順路。
4. 實體手機
唯一能真正保證 Google 相簿資格的作法,但那就不是模擬器了。
ROM 選擇
| ROM | 現況 |
|---|---|
| BlissOS / Android-x86 | x86 專用,適合 x86 虛擬機 |
| PixelExperience | 已停更(最後 Android 13) |
| PixelOS | 持續維護,有 arm64 GSI |
| LineageOS | 提供 virtio_* 虛擬機目標,可當 GSI 宿主 |
PixelExperience 停更後,arm64 的「Pixel 系 ROM」實際上就是 PixelOS GSI。
什麼是 GSI
只含 system 分割區的通用映像,不含 kernel 與 vendor;需宿主提供 kernel/vendor HAL/fstab。arm64 路線就是「LineageOS 虛擬機(宿主)+ PixelOS GSI(system)」,開機選單有「Boot GSI from /dev/block/vdc」。細節見 03 arm64 方案:PixelOS GSI 虛擬機。
無限空間 Google 相簿的來源
2016 年第一代 Pixel / Pixel XL(sailfish / marlin)保有原尺寸無限備份資格(帳號綁定、伺服器端認定)。用戶端依據是系統 feature com.google.android.apps.photos.NEXUS_PRELOAD,PixelOS 這類 ROM 開箱即帶(pixel_2016_exclusive.xml),所以選對 ROM 就有。細節見 05 無限空間 Google 相簿。
本系列文章
- 方案選擇與架構分析(本篇)
- x86_64 方案:BlissOS 硬碟開機與資料碟 — Intel Mac 實作。
- arm64 方案:PixelOS GSI 虛擬機 — Apple Silicon 實作。
- 與主機共享檔案 — 兩條路線共用的主機資料夾共享。
- 無限空間 Google 相簿 — 資格原理、驗證方式與限制。