Google GSI 刷寫教程

GSI燒寫的意義

        體驗Android 最新版本的功能,GSM 認證中的VTS測試必須要使用谷歌的GSI包

GSI燒寫流程

一、前期準備工作
    GSI包下載地址:https://ci.android.com/builds/branches/aosp-pie-gsi/grid?(包括GSI包和fastboot工具,保持版本一致)
    如果谷歌開發者合作伙伴賬戶,可以在裏面下載,裏面的資源比較全。


    1、確定設備起始版本,確定是否是p版以前的舊版本(28 爲 pie 最新)
    adb shell getprop ro.product.first_api_level

    2、版本補丁日期查看,要與下載的GSI補丁日期要一致
    adb shell getprop ro.build.version.security_patch

    3、查看是否支持刷GSI通用版本,通過運行以下命令檢查是否具有 Treble 支持:
    adb shell getprop ro.treble.enabled

    4、通過運行以下命令檢查是否具有跨版本支持:
    adb shell cat /system/etc/ld.config.version_identifier.txt | grep -A 20 "\[vendor\]"

    5、GSI CPU 架構類型必須與設備的 CPU 架構保持一致。要爲 GSI 映像查找合適的 CPU 架構,請運行以下命令:
    adb shell getprop ro.product.cpu.abi

    6、要確定系統用戶的權限級別,(針對9.0以下的版本,8.0 ,8.1),請運行以下命令:
    adb shell cat /proc/mounts | grep -q /dev/root && echo "system-as-root" || echo "non-system-as-root"
    如果命令的輸出是 system-as-root,則您必須使用 _ab 類型的 GSI 映像。如果輸出是 non-system-as-root,則必須使用 _a 類型。如果命令的輸出中沒有值,則表示設備與 GSI 不兼容,不支持刷GSI。
    
二、刷寫GSI的設備需要具備的條件
    Android 設備可能具有不同的設計,因此不可能通過單個命令或單組指令就能將 GSI 刷寫到特定設備上。可以參考以下常規步驟:

    1、確保設備具備以下條件:
        1)支持 HIDL-HAL 接口
        2)用於解鎖設備的方法(以便能夠使用 fastboot 對其進行刷寫)
        3)用於停用驗證啓動(例如 vboot 1.0 或 AVB)的方法
        4)使其可通過 fastboot 進行刷寫的已解鎖狀態(爲確保您擁有最新版本的 fastboot,請從 Android               源代碼樹進行編譯,或者下載GSI附帶的fastboot。)
    2、停用驗證啓動。
    3、清空當前系統分區,然後將 GSI 刷寫到系統分區。
    4、擦除用戶數據,並清除來自其他必要分區(例如,用戶數據分區和系統分區)的數據。
    5、重新啓動設備。
    
三、燒寫流程(linux環境下)
    1、adb devices #確保設備連上
    2、adb reboot fastboot  #adb重啓並進入fastboot模式
    3、sudo ./fastboot devices #查看fastboot模式下的在線設備
    4、sudo ./fastboot flashing unlock    #解鎖操作(新款設備)
         注意:解鎖新款設備和舊款設備
            自 2014 年以來發布的所有 Nexus 和 Pixel 設備(從 Nexus 6 和 Nexus 9 開始)都內置有恢復出廠設置保護功能,需要執行多個步驟才能解鎖引導加載程序。
                1)要在設備上啓用 OEM 解鎖功能,請執行以下操作:
                    (1)在“設置”中,點按關於手機,然後點按版本號七 (7) 次。
                    (2)當看到“您已處於開發者模式”這條消息後,點按返回按鈕。
                    (3)點按開發者選項,然後啓用 OEM 解鎖和 USB 調試(如果 OEM (4)解鎖處於停用狀態,請連接到互聯網,以便設備可以至少簽到一次。如果“OEM 解鎖”仍處於停用狀態,則說明設備可能已被運營商鎖定 SIM 卡,系統無法解鎖引導加載程序)。
                2)重新啓動進入引導加載程序,然後使用 fastboot 解鎖。
                    (1)對於新款設備(2015 年及之後發佈的設備):
                        sudo ./fastboot flashing unlock,對應值加鎖 sudo ./fastboot flashing lock
                    (2)對於老款設備(2014 年及之前發佈的設備):sudo ./fastboot oem lock
                        sudo ./fastboot oem unlock
                3)在屏幕上確認解鎖。
    5、sudo ./fastboot --disable-verification flash vbmeta /home/VTS/GSI/vbmeta.img    #通過刷寫 vbmeta.img 停用驗證啓動 (AVB)
    6、sudo ./fastboot erase system  #擦除系統分區
    7、sudo ./fastboot flash system /home/VTS/GSI/system.img    #將 GSI 刷寫到系統分區
          sudo ./fastboot -S 100M flash system /home/VTS/GSI/system.img
    8、sudo ./fastboot -w    #擦除用戶數據,並清除來自其他必要分區的數據(例如,用戶數據分區和系統分區)
    9、sudo ./fastboot reboot #重啓
    
    重啓後可能會進入recovery 模式,選擇清除用戶數據即可
    等待開機進入android logo並啓動完成。
    不出意外的話,燒寫成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章