美文网首页
2.2 FastBoot刷机

2.2 FastBoot刷机

作者: 流浪四海 | 来源:发表于2021-06-07 19:11 被阅读0次

    昨天对Android源码进行了编译,那今天就尝试把编译后的系统刷入手机中吧。

    一. 概述

    1. 升级手机系统
      在编译完系统,或通过其他途径获取到刷机包(如:Google Android官方Image),就会尝试对手机进行刷机升级。

    2. 刷机的本质是利用Fastboot进行刷机
      市场中有很多的刷机软件,也倒下了很多,如:刷机精灵就到了。它们仅仅是可视化刷机,并搜集了一些可供刷机的包。但是它比直接操作FastBoot慢多了,需要检测很多。

    3. 第三方刷机包
      除了各厂商提供的刷机包,还有第三方提供的刷机包,这些刷机包中可能集成了一些广告、第三方app,可能是厂商的开发人员提供的。

    4. 刷机是小众的
      大多数情况下是一些开发人员的爱好,但没有人会一直刷机,也不可能把一个第三方包刷成流行。

    5. 刷机包需要硬件支持
      不同手机有不同的硬件条件和版本,刷机不当就会开机变板砖。

    二. 刷官方包

    2.1 前提
    1. 背景
      利用Google Android官方Image提供的各个官方手机刷机包,进行刷机,了解整个刷机流程。

    2. 硬件条件

      • 手机:Nexus 5,2013,2G RAM,16GB存储。
      • 电脑:Macbook Pro 13
    3. 软件条件
      Android开发环境是可用的,如果未OK,可查看Android开发环境搭建;FastBoot是Android Sdk提供的工具。

    4. 网络环境
      可能需要翻墙下载,也可以找国内的镜像地址下载。

    2.2 下载
    1. Nexus 5 Image
      Google Android官方Image找到Nexus 5相关的Image;可看出官网最新的Image是2016年提供的,可能后续的版本对硬件的要求更高,所以没有提供新的。

      Nexus 5 Image
    2. 下载并解压缩
      下载最新的、相关Image压缩包,并解压缩。


      解压缩
    3. 结构并移动

    • 解压缩包结构


      压缩包结构
    • 移动文件
      把上图中红色标记的文件,由子目录移动到父目录,以便于刷机。移动后变成:


      各种img
    • 文件作用

      • android-info.txt
        标记刷机的信息。
      • boot.img
        启动
      • bootloader-hammerhead-hhz20h.img
      • cache.img
        缓存数据
      • radio-hammerhead-m8974a-2.0.50.2.29.img
      • recovery.img
        用于手机恢复出厂设置的img。
      • system.img
        手机系统文件。
      • userdata.img
        用户数据
    2.3 刷机
    1. 进入刷机模式

      • 开机下,adb命令下进入刷机模式
        这证明adb 命令可用。

        adb reboot bootloader
        
      • 关机下,快捷键进入刷机模式


        快捷键
    2. 打开锁

      fastboot oem unlock
      
      • 备注1:Nexus5是2013款,所以用旧命令。新款用“fastboot flashing unlock”命令,或通过在开发者模式下,找到OEM解锁选项,选择启用。
      • 备注2:手机会提示是否解开OEM锁,通过音量键上下进行选择,然后按开关机键确认。
    3. 快速刷机

      fastboot flashall -w
      

      是按flash-all.sh中的内容进行刷机。其具体过程为:


      flash-all
      • fastboot: error: ANDROID_PRODUCT_OUT not set错误
        第一次fastboot刷机会出该问题,在mac用户目录下的.bash_profile配置ANDROID_PRODUCT_OUT。并重新启动bash。如:

        fastboot error
      • 匹配错误

        匹配错误
        • 问题说明
          Nexus原系统要求version-bootloader的版本是“HHZ20h”,而刷的官方包中的version-bootloader版本为HHZ12k,所以无法刷机。同一刷机包不存在该问题
        • 解决方案一
          手动修改官方包中version-bootloader的版本为“HHZ12k”,并修改android-info.txt中的version-bootloader说明。然后再尝试。
        • 解决方案二
          手动刷机,可避免出现匹配问题。
      • 无限重启
        快速刷机后,手机无限重启。一直处于开机动画界面。解决步骤:

        • 方案一 :关闭锁后尝试重启,OK。
          • 强制关机
            长按开关机键 + 上下音量键,强制关机。
          • 音量下键 + 开关机键,进入boot界面。
          • 尝试关闭锁,再开机。
            fastboot oem lock
            
        • 方案二:参考Nexus 5刷机重启,手动清除分区,并手动刷各个分区img,然后关闭锁后再开机,可解决问题。
    4. 手动刷机

      fastboot erase cache
      fastboot erase userdata
      fastboot erase boot
      fastboot erase cache
      fastboot erase recovery
      fastboot erase system
      
      fastboot flash bootloader bootloader-hammerhead-hhz20h.img
      fastboot reboot-bootloader
      
      fastboot flash radio radio-hammerhead-m8974a-2.0.50.2.30.img
      fastboot reboot-bootloader
      
      fastboot flash recovery recovery.img
      fastboot flash boot boot.img
      fastboot flash system system.img
      fastboot flash cache cache.img
      fastboot flash userdata userdata.img
      
    5. 关锁,再开机

      fastboot oem lock
      
    6. 其它问题

      • 一直处于开机画面
        重新刷机,所有流程重新走一遍。这时候可以通过fastboot flashall -w进行刷机,然后关锁再开机。

    三. 编译包刷机

    因为个人原因,无法编译完成Android源码,待补充。

    四. 参考文档

    1. 刷机要求
    2. 刷写设备

    相关文章

      网友评论

          本文标题:2.2 FastBoot刷机

          本文链接:https://www.haomeiwen.com/subject/ehzmjktx.html