《自拍教程57》Python fastboot一鍵刷機

大部分的Android手機/車機/電視等移動終端設備,
都可以通過fastboot來刷新Android系統版本,其實就是多個img文件(鏡像文件)的刷寫。


準備階段
  1. 先通過組合按鍵(每個Android終端組合按鈕不一樣,比如有的是持續按住Home鍵+音量下鍵再開機,持續3s以上),
    進入fastboot刷機模式。也可以通過adb reboot-bootloader命令來進入fastboot刷機模式。
  2. USB接入Android設備,確保fastboot devices可以找到Android設備
  3. 通過fastboot flash *.img 命令可以進行刷寫各種指定包,
  4. 通過fastboot reboot 可以退出fastboot刷機模式並重啓系統
  5. 注意事項一: 以下腳本的img文件刷寫順序不能隨意調換。
  6. 注意事項二: 每個Android終端刷寫的img文件是不一樣,請諮詢對應研發人員或者spm。
  7. 注意事項三: 刷機有風險,如果是非專業的研發人員或測試人員,請不要隨意刷寫自己的Android設備,避免出現刷成磚頭!

Python批處理腳本

記住批處理腳本的精髓:批量順序執行語句

#python3
#coding=utf-8

import os

print("正在fastboot刷機, 請稍候...")
os.system("fastboot oem format")
os.system("fastboot flash systemA system.img")
os.system("fastboot flash recoveryA recovery.img")
os.system("fastboot flash systemB system.img")
os.system("fastboot flash recoveryB recovery.img")
os.system("fastboot flash cache cache.img")
os.system("fastboot flash data data.img")
os.system("fastboot flash map map.img")
os.system("fastboot flash private private.img")
os.system("fastboot flash speech speech.img")
print("刷機完畢, 正在重啓...")
os.system("fastboot reboot")
os.system("pause")

Python面向過程函數

面向過程函數的編程思維應該是這樣的:
你需要多少個功能(函數),才能做成這個事。
最好把功能(函數)都儘量封裝好,如果需要只暴露一些的參數接口即可。
把之前的腳本語句塊打包,無需傳參,再調用這個fastboot_flash()即可。

import os

def fastboot_flash():
    print("正在fastboot刷機, 請稍候...")
    os.system("fastboot oem format")
    os.system("fastboot flash systemA system.img")
    os.system("fastboot flash recoveryA recovery.img")
    os.system("fastboot flash systemB system.img")
    os.system("fastboot flash recoveryB recovery.img")
    os.system("fastboot flash cache cache.img")
    os.system("fastboot flash data data.img")
    os.system("fastboot flash map map.img")
    os.system("fastboot flash private private.img")
    os.system("fastboot flash speech speech.img")
    print("刷機完畢, 正在重啓...")
    os.system("fastboot reboot")

fastboot_flash()
os.system("pause")

Python面向對象類

面向對象類的編程思維應該是這樣的:
如果給你一個空白的世界,在這個世界裏你需要哪些種類的事物,
這些種類的事物都具備哪些共有的屬性與方法,
這些種類(類)的事物(對象),和其他種類(其他類)的事物(其他對象)有什麼關係。
儘量把這些類封裝好,只暴露對外的屬性(變量)和方法(函數)即可。

import os

class FastbootFlasher():
    def __init__(self):
        pass

    def fastboot_flash(self):
        print("正在fastboot刷機, 請稍候...")
        os.system("fastboot oem format")
        os.system("fastboot flash systemA system.img")
        os.system("fastboot flash recoveryA recovery.img")
        os.system("fastboot flash systemB system.img")
        os.system("fastboot flash recoveryB recovery.img")
        os.system("fastboot flash cache cache.img")
        os.system("fastboot flash data data.img")
        os.system("fastboot flash map map.img")
        os.system("fastboot flash private private.img")
        os.system("fastboot flash speech speech.img")
        print("刷機完畢, 正在重啓...")
        
    def fastboot_reboot(self):
        os.system("fastboot reboot")

f_obj = FastbootFlasher()
f_obj.fastboot_flash()
f_obj.fastboot_reboot()
os.system("pause")

運行方式

確保Android設備通過USB線與電腦連接了,併成功進入了fastboot刷機模式,
fastboot device設備有效連接,
解壓系統版本包,然後把fastboot_flash.py丟到解壓後的文件夾,

雙擊運行fastboot_flash.py即可。

再次提醒以上刷機有風險,如果是非專業的研發人員或測試人員,請不要隨意刷寫自己的Android設備,避免出現刷成磚頭!


更多更好的原創文章,請訪問官方網站:www.zipython.com
自拍教程(自動化測試Python教程,首部面向軟件測試人員的Python教程)
原文鏈接:https://www.zipython.com/#/detail?id=692d5fe794e44f309459d3774eec8ab6
也可關注“武散人”微信訂閱號,隨時接受文章推送。

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