zoukankan      html  css  js  c++  java
  • 《自拍教程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
    也可关注“武散人”微信订阅号,随时接受文章推送。

  • 相关阅读:
    Android性能测试工具APT使用指南
    android.app.Activity阅读摘要,有时候会不会需要保持一些现场数据呢? 想让系统帮你退出到后台或者挂掉前做些前置保持工作吗,重点参考吧:
    OkHttp+Stetho+Chrome调试android网络部分
    HLG2179 组合(dfs水水更健康)
    HLG 1494网络 (求的割点数目)可做模板
    hdu2586&&poj1330 求点间最短距&&最近公共祖先(在线&&离线处理):::可做模板
    hdu 2586
    poj分类
    poj3748 位运算 bitset
    C++ bitset类的使用与简介
  • 原文地址:https://www.cnblogs.com/zipython/p/12673615.html
Copyright © 2011-2022 走看看