1. 背景
在基于Android系统做开发时,Fastboot是一个非常实用的工具,能解决快速及便捷的更新开发者所需的分析数据。同样,SA8155P Hypervisor 也支持fastboot,如何使用fastboot呢? 详情实操步骤如下第2部分。
2. 实操
2.1 QNX 进入Bootloader指令
2.1.1 折腾那些事
拿到SA8155P平台时候,常按照开发Android平台思路做,以为进入bootloader指令跟Android一致,实则不然。刚开始难免瞎折腾O(∩_∩)O哈哈~,跟踪代码啥的^_^。
这是因为Hypervisor框架下,Android端只是一个VM进程,不是主系统;另外Android跟主系统QNX 也会做相应的通讯。基本框架如下图
在Android ADB端输入:adb reboot bootloader 或者 adb reboot fastboot 无效的,这样只是Android的虚拟机GVM重启,并不会对整个硬件系统重启。如果需要支持也是可以,通过Android跟QNX的通讯,QNX接收到reboot bootloader 或者 reboot fastboot指令后重启系统进入bootloader模式。
2.1.2 那么如何进入bootloader模式呢?
在QNX shell终端输入re
可以看出,没有reboot指令,只有一个reset指令。
输入reset. ---> 设备重启了。嘿,就是这货了。
既然可以重启,那么肯定可以带参数输入
然后瞎折腾,reset bootloader,reboot fastboot ---> 均无效输入 o(╥﹏╥)o。
那么,跟踪代码吧(绝活),(* ̄︶ ̄)
嘿,这么容易就搜出来了。(〃'▽'〃)
打开文件:AMSS/platform/services/applications/reset/reset.c
好家伙,就是它了,参数 -f 才是进入bootloader模式。
验证:
# reset -f
果真进入bootloader模式了。
查看fastboot设备
2.2 安装Bootloder驱动
从2.1 基本知道了如何进入Bootloader模式,进入后,会存在一个设备驱动识别问题,如何安装驱动呢?
驱动下载地址:google_latest_usb_driver_windows
安装步骤:略
2.3 刷机操作
略
fastboot flash xbl_a <path to xbl.elf>
fastboot flash modem_a <path to NON-HLOS.bin>
fastboot flash xbl_config_a <path to xbl_config.elf>
fastboot flash aop_a <path to aop.mbn>
fastboot flash tz_a <path to tz.mbn>
fastboot flash hyp_a <path to hyp.mbn>
fastboot flash bluetooth_a <path to BTFM.bin>
fastboot flash dsp_a <path to dspso.bin>
fastboot flash keymaster_a <path to keymint.mbn>
fastboot flash cmnlib_a <path to cmnlib.mbn>
fastboot flash cmnlib64_a <path to cmnlib64.mbn>
fastboot flash devcfg_auto <path to devcfg.mbn>
fastboot flash qupfw_a <path to qupv3fw.elf>
3. 拓展
可以基于reset 指令增加定制参数,做一些开发定制。
比如: reset -edl //进入edl模式