通用系統映像檔 (GSI)

通用系統映像檔 (GSI) 是「純 Android」實作項目,具備未經修改的 Android 開放原始碼計畫 (AOSP) 程式碼,可在多種 Android 裝置上執行。

應用程式開發人員可安裝並執行最新的 Android GSI,在各種現有的 Android 裝置上執行應用程式測試,並將 GSI 用於不同的 Android 作業系統發布階段,包括開發人員預覽版和 Beta 版。在驗證及測試程序中加入 GSI 可帶來一些額外優點:

  • 在更多實體裝置上獲得更大的測試涵蓋範圍
  • 有更多時間修正應用程式相容性問題
  • 有更多機會修正由應用程式開發人員回報的 Android 相容性問題

GSI 專案屬於開放原始碼專案,可在每個 Android 版本推出前提供更多改善應用程式和 OS 品質的方法,進而改善 Android 生態系統。

GSI 支援各種裝置
圖 1:GSI 可安裝至各種裝置,有時甚至可以安裝至裝置製造商未提供系統映像檔的 Android 版本裝置。

GSI 與所有安裝 GSI 的裝置具備相同的核心系統功能。也就是說,GSI 並不包含裝置製造商自訂項目。因此,您可能會在下列情況中遇到行為差異:

  • 與 UI 相關的互動
  • 要求較新硬體功能的工作流程

檢查裝置合規性

GSI 僅適用於具備下列特性的裝置:

  • 系統啟動載入程式已解鎖。
  • 完全符合 Treble。
  • 推出時搭載的是 Android 9 (API 級別 28) 以上版本。從較舊版本升級至 Android 9 的裝置可能不支援 GSI。

如要判斷裝置是否可使用 GSI,以及應安裝哪個 GSI OS 版本,請執行下列步驟:

  1. 請執行下列指令,確認是否支援 Treble:

    adb shell getprop ro.treble.enabled

    如果回應是 false,代表裝置與 GSI 不相容,請勿繼續操作。如果回應是 true,請繼續下一步驟。

  2. 請執行下列指令,確認是否可跨版本支援:

    adb shell cat /system/etc/ld.config.version_identifier.txt \
    | grep -A 20 "\[vendor\]"

    在輸出結果中,查看 namespace.default.isolated[vendor] 區段。

    如果此屬性值為 true,則裝置會完整支援 Vendor Native Development Kit (VNDK),且可使用比裝置上作業系統 (OS) 版本還新的任何 GSI OS 版本。請盡可能使用可用的最新 GSI OS 版本。

    如果此屬性值為 false,代表裝置並不完全符合 VNDK 的規定,因此裝置只能使用與裝置 OS 版本相同的 GSI。舉例來說,不符合 VNDK 規定的 Android 10 (API 版本 29) 裝置只能載入 Android 10 GSI 映像檔。

  3. GSI CPU 架構類型必須與裝置的 CPU 架構相符。如要找出 GSI 映像檔的正確 CPU 架構,請執行下列指令:

    adb shell getprop ro.product.cpu.abi

    請根據輸出內容,判斷刷新裝置時要使用的 GSI 映像檔。舉例來說,Pixel 5 的輸出內容會指出 CPU 架構為 arm64-v8a,因此應使用 arm64 類型的 GSI。

下載 GSI

視開發需求而定,您可以透過以下幾種方式取得 GSI:

安裝 GSI

GSI 安裝作業會因裝置而異。如要瞭解確切工具和程序,請洽詢裝置製造商。若是 Pixel 3 以上的 Google Pixel 裝置,可採用多種安裝方式:

提供意見

GSI 的用意是協助您在 Android 上驗證應用程式。我們非常重視您的意見回饋,希望瞭解您對 GSI 映像檔、工具及在裝置上使用 GSI 的體驗。

如要回報錯誤或提出功能要求,請使用 GSI 專屬的 Issue Tracker 元件

其他資源