跳至主要内容

方案選擇與架構分析

要在 Mac 上跑 Android,「主機是 Intel 還是 Apple Silicon」直接決定哪條路走得通。本篇是選型比較;各路線實作見後面文章。

需求​

長期可用的 Android 環境、Pixel 系 ROM(而非只有 AOSP)、無限空間 Google 相簿。三個條件疊起來,選項很少。

關鍵前提:客體架構必須等於主機架構​

UTM 底層是 QEMU。只有客體架構=主機架構時才能用 HVF 硬體虛擬化,否則只能用 TCG 模擬(極慢):

主機可原生虛擬化(HVF)只能模擬(TCG,很慢)
Intel Macx86_64 客體aarch64 客體
Apple Siliconaarch64 客體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-x86x86 專用,適合 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 相簿。

本系列文章​

  1. 方案選擇與架構分析(本篇)
  2. x86_64 方案:BlissOS 硬碟開機與資料碟 — Intel Mac 實作。
  3. arm64 方案:PixelOS GSI 虛擬機 — Apple Silicon 實作。
  4. 與主機共享檔案 — 兩條路線共用的主機資料夾共享。
  5. 無限空間 Google 相簿 — 資格原理、驗證方式與限制。