閃爍設備

此頁面提供了在特定設備上運行建置的詳細資訊。這些詳細資訊補充了建立 Android中的資訊。

建構 fastboot 和 adb

如果您還沒有fastbootadb ,您可以使用常規建置系統來建置它們。使用建立 Android中的說明並將主make命令替換為以下命令:

make fastboot adb

有關Android 調試橋 (ADB) 的詳細信息,請參閱 Android 調試橋 (ADB)。

啟動進入快速啟動模式

當裝置處於fastboot引導程式模式時,您可以對其進行刷新。若要在裝置冷啟動時進入fastboot模式,請使用快速啟動組合鍵中所列的組合鍵。

您也可以使用指令adb reboot bootloader直接重新啟動到引導程式。有關完整說明,請參閱閃爍說明

解鎖引導程式

只有當引導程式允許時,您才可以刷新自訂系統。但請注意,引導程式預設是鎖定的。您可以解鎖引導程序,但出於隱私原因這樣做會刪除用戶資料。解鎖後,裝置上的所有資料都將被刪除,即私人應用程式資料和透過 USB 存取的共享資料(包括照片和影片)。在嘗試解鎖引導程式之前,請備份裝置上的所有重要檔案。

您只需解鎖引導程式一次,必要時可以重新鎖定。

解鎖最近使用的設備

自 2014 年以來發布的所有 Nexus 和 Pixel 設備(從 Nexus 6 和 Nexus 9 開始)均具有出廠重置保護,並且需要多步驟程序來解鎖引導程式。

  1. 若要在裝置上啟用 OEM 解鎖:
    1. 在「設定」中,點擊「關於手機」 ,然後點擊「版本號」七次。
    2. 當您看到訊息時,您現在是開發人員了! ,點擊後退按鈕。
    3. 在「設定」中,點選「系統」 ,然後點選「開發者選項」並啟用「OEM 解鎖」和「USB 偵錯」 。 (如果OEM 解鎖已停用,請連接到互聯網,以便裝置至少簽入一次。如果仍處於停用狀態,則您的裝置可能被電信業者鎖定了 SIM 卡,並且無法解鎖引導程式。)
  2. 重新啟動到引導程式並使用fastboot解鎖它。
    • 對於較新的設備(2015 及更高版本):
      fastboot flashing unlock
    • 對於較舊的設備(2014 年及更低版本):
      fastboot oem unlock
    提示:如果您在重新啟動前看到「adb devices」輸出,但 fastboot 或 flash 腳本行為異常,則可能是您的 USB 纜線出現問題。嘗試不同的連接埠和/或切換連接器。如果您的電腦上使用的是 USB C 端口,請嘗試使用 USB A 連接埠。
  3. 在螢幕上確認解鎖。

重新鎖定引導程式

若要重新鎖定引導程式:

  • 對於較新的設備(2015 及更高版本):
    fastboot flashing lock
  • 對於較舊的設備(2014 年及更低版本):
    fastboot oem lock

使用快閃記憶體鎖定狀態

getFlashLockState()系統 API 傳輸引導程式狀態, PersistentDataBlockManager.getFlashLockState()系統 API 傳回相容裝置上引導程式的鎖定狀態。

傳回值狀況
FLASH_LOCK_UNKNOWN僅由升級至 Android 7.x 或更高版本且先前不支援取得快閃記憶體鎖定狀態所需的引導程式變更(如果它們支援快閃記憶體鎖定/解鎖功能)的裝置傳回。
  • 運行 Android 7.x 或更高版本的新裝置必須處於FLASH_LOCK_LOCKEDFLASH_LOCK_UNLOCKED狀態。
  • 升級至 Android 7.x 或更高版本且不支援快閃記憶體解鎖/鎖定功能的裝置應返回FLASH_LOCK_LOCKED狀態。
FLASH_LOCK_LOCKED由任何不支援閃爍鎖定/解鎖(即設備始終處於鎖定狀態)的設備,或任何支援閃爍鎖定/解鎖且處於鎖定狀態的設備返回。
FLASH_LOCK_UNLOCKED由任何支援閃爍鎖定/解鎖且處於解鎖狀態的裝置返回。

製造商應測試具有鎖定和解鎖引導程式的裝置傳回的值。例如,Android 開源專案 (AOSP) 包含一個參考實現,該實作會傳回基於ro.boot.flash.locked啟動屬性的值。範例程式碼位於以下目錄:

  • frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
  • frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java

選擇設備版本

建議的設備版本可從lunch選單中獲得,在不帶參數運行lunch命令時可以存取該選單。有關lunch命令的更多信息,請參閱選擇目標。有關建置目標的列表,請參閱建置目標

您可以從Developers.google.com下載 Pixel 和 Nexus 裝置的出廠映像和二進位。請參閱設備二進位進行下載。有關詳細資訊和其他資源,請參閱取得專有二進位檔案

裝置代碼名稱建置配置
像素 7 Pro獵豹aosp_cheetah-userdebug
像素7aosp_panther-userdebug
像素 6 Pro掠奪aosp_raven-userdebug
像素6黃鶯aosp_oriole-userdebug
像素5紅鰭鮪魚aosp_redfin-userdebug
像素 4a 5G荊棘aosp_bramble-userdebug
像素4a翻車魚aosp_sunfish-userdebug
像素 4XL珊瑚aosp_coral-userdebug
像素4火焰aosp_flame-userdebug
像素 3a XLaosp_bonito-userdebug
像素3a薩爾戈aosp_sargo-userdebug
像素 3XL交叉影線aosp_crosshatch-userdebug
像素3藍線aosp_blueline-userdebug
像素 2XL台門aosp_taimen-userdebug
像素2斑眼魚aosp_walleye-userdebug
像素XL馬林魚aosp_marlin-userdebug
像素旗魚aosp_sailfish-userdebug
海基遠足hikey-userdebug
Nexus 6P釣魚者aosp_angler-userdebug
Nexus 5X牛頭aosp_bullhead-userdebug
Nexus 6沙木aosp_shamu-userdebug
Nexus 播放器河豚aosp_fugu-userdebug
Nexus 9比目魚(比目魚) aosp_flounder-userdebug
Nexus 5(GSM/LTE)鎚頭鯊aosp_hammerhead-userdebug
Nexus 7(無線網路)刮鬍刀(弗洛) aosp_flo-userdebug
Nexus 7(移動)拉佐格 (deb) aosp_deb-userdebug
Nexus 10曼塔雷(蝠鱝) full_manta-userdebug
Nexus 4奧卡姆 (mako) full_mako-userdebug
Nexus 7(無線網路)納卡西(石斑魚) full_grouper-userdebug
Nexus 7(移動)納卡西格(羅非魚) full_tilapia-userdebug
Galaxy Nexus (GSM/HSPA+)藥酒(鮪魚) full_maguro-userdebug
Galaxy Nexus(威瑞森)米西德(托羅) √aosp_toro-userdebug
Galaxy Nexus(實驗性) mysidspr (toroplus) aosp_toroplus-userdebug
摩托羅拉 Xoom(美國 Wi-Fi)翼鰩full_wingray-userdebug
Nexus S燒酒(克雷斯波) full_crespo-userdebug
Nexus S 4G燒酒 (crespo4g) full_crespo4g-userdebug

閃爍設備

您可以透過單一命令刷新整個 Android 系統;這樣做可以驗證正在刷新的系統是否與安裝的引導程式和無線電相容,將引導、復原和系統分割區寫入在一起,然後重新啟動系統。刷新也會擦除所有用戶數據,類似於fastboot oem unlock

要刷新設備:

  1. 將圖像檔案解壓縮到自己的目錄中。
  2. ANDROID_PRODUCT_OUT環境變數設定為指向步驟 1 中使用的相同目錄。
  3. 透過在啟動時按住適當的組合鍵或使用以下命令將裝置置於fastboot模式:
    adb reboot bootloader
  4. 裝置處於 fastboot 模式後,執行:
    fastboot flashall -w
    -w選項擦除裝置上的/data分割區;這對於您第一次刷新特定設備很有用,但在其他情況下是不必要的。

閃爍配置

Fastboot 指令在名為 fastboot-info.txt 的工件中詳細說明,該工件位於$ANDROID_PRODUCT_OUT/*這個 .txt 文件清單中,列出了 fastboot 要執行的任務,並且可以透過m fastboot_info重新產生。可以透過修改此文件引入自訂刷機邏輯

支援的命令:

  1. flash %s :刷新給定分割區。可選參數包括--slot-other, {filename_path}, --apply-vbmeta
  2. update-super :更新超級分割區
  3. if-wipe :如果指定了擦除,則有條件地運行一些其他功能
  4. 擦除%s :擦除給定分區(只能與if-wipe ->例如結合使用)。 if-wipe erase cache

將設備恢復至出廠狀態

Google 裝置的工廠映像可從Nexus 和 Pixel 裝置的工廠映像取得。 Motorola Xoom 的出廠映像由 Motorola 直接分發。

解決權限被拒絕的錯誤

預設情況下,在大多數 Linux 系統上,非特權使用者無法存取 USB 連接埠。如果您看到權限被拒絕錯誤,請參閱 Android Studio 的說明以設定開發裝置

如果ADB已經在運作並且無法連接到設備,您可以使用adb kill-server停止 ADB。此命令會導致 ADB 使用新配置重新啟動。