Fast Factory Boot Mode(FFBM)是一种半开机的模式,它的主要目的是方便工厂测试,提高生产效率。正常情况下终端用户是不会碰到的。但售后的同学最近连续收到几台客户退回的VR一体机,都进入了该模式。具体表现为屏幕显示既不是开机动画也不是VR界面,通过USB线连接上电脑后adb可以正常识别并可输入命令,但安卓投屏助手(ARDC)一直显示等待系统启动完成。
查看内核启动命令行,如下:
sched_enable_hmp=1 sched_enable_power_aware=1 console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 cma=32M@0-0xffffffff androidboot.bootdevice=624000.ufshc androidboot.verifiedbootstate=orange androidboot.veritymode=enforcing androidboot.keymaster=1 androidboot.serialno=7e9ca27c androidboot.mode=ffbm-00 quiet androidboot.baseband=apq
可以看到androidboot.mode=ffbm-00,同时[ro.bootmode]为[ffbm-00],以此可确认VR一体机确实进入了Fast Factory Boot Mode。
进入该模式后,即使强制重启机器也无法恢复。手机如果进入该模式,可点击触屏操作,选择重启进入Android即可恢复。而VR一体机没有触屏,只能通过PC操作。由于FFBM是一种半开机的模式,此时安卓投屏助手或Vysor等远程投屏工具都无法正常使用,只能通过fastboot命令擦除misc分区来恢复,具体步骤如下图所示。
![](https://img2018.cnblogs.com/blog/37056/201810/37056-20181009201642050-41477025.gif)
其中涉及的命令如下:
adb reboot bootloader
fastboot erase misc
fastboot reboot
为了方便后续debug,趁手在安卓投屏助手(ARDC)中增加了FFBM模式的判断,当处于该模式时直接显示Fast Factory Boot Mode,而不是Waiting boot completely,以便快速判断VR一体机所处的状态。