android recovery 升级之USB设备挂载

时间:2022-06-20 03:11:48

Recovery升级过程,通常会从两个地方获取升级包update.zip升级,一般在线升级,会把升级包下载到cache分区,本地升级会从usb或者tf卡中升级。本文讨论下,本地USB升级时,无法挂载USB设备的问题。

无法挂载USB设备的时候,可以按照以下流程分析:

4.1 手动挂载

我们先确定是否能够手动挂载USB设备

busybox mount -t vfat /dev/block/sda1 /udisk

-t vfat  是U盘的格式,根据U盘具体格式加参数

/dev/block/sda1是U盘的逻辑分区,可能是/dev/blcok/sd**

/udisk  是挂载点

如果是可以手动挂载可以,那么说明USB驱动是好的,升级的时候挂载太早,可能/dev/block/sd**节点还未生成导致,可在挂载之前增加延时,保证挂载时候USB设备节点已经生成。

4.2 查看内核是否支持格式

输入命令:cat  /proc/filesystems

android recovery 升级之USB设备挂载

确认kernel已经支持U盘对应的文件系统,从上图可知,是不支持ntfs格式的U盘的,那么NTFS格式的USB可能是不识别的。

4.3 确认驱动是否存在

common\fs下面是否有对应的驱动:

android recovery 升级之USB设备挂载

如果没有对应的驱动代码,需要驱动上增加支持

4.4 如果驱动有了,查看是否配置文件已经打开:

common\arch\arm64\configs\meson64_defconfig

android recovery 升级之USB设备挂载

或者通过menuconfig配置打开对USB设备文件系统的支持。

4.5 确认ko是否插入

如果USB的驱动是以ko的形式存在,则需要在内核起来之后,在init.rc中insmod usb.ko,这样才能保证识别USB设备

4.6 总结

当无法识别USB设备的时候,我们需要从上而下分析,从逻辑分析到驱动实现,逐级排查,是哪里导致的USB无法挂载。