大部分的Android手机/车机/电视等移动终端设备,
都可以通过fastboot来刷新Android系统版本,其实就是多个img文件(镜像文件)的刷写。
准备阶段
- 先通过组合按键(每个Android终端组合按钮不一样,比如有的是持续按住Home键+音量下键再开机,持续3s以上),
进入fastboot刷机模式。也可以通过adb reboot-bootloader命令来进入fastboot刷机模式。 - USB接入Android设备,确保fastboot devices可以找到Android设备
- 通过fastboot flash *.img 命令可以进行刷写各种指定包,
- 通过fastboot reboot 可以退出fastboot刷机模式并重启系统
- 注意事项一: 以下脚本的img文件刷写顺序不能随意调换。
- 注意事项二: 每个Android终端刷写的img文件是不一样,请咨询对应研发人员或者spm。
- 注意事项三: 刷机有风险,如果是非专业的研发人员或测试人员,请不要随意刷写自己的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
也可关注“武散人”微信订阅号,随时接受文章推送。