在调试android设备时遇上设备有多个usb接口的情况,此时在usb上接入多个U盘,发现先接入的U盘和后接入的U盘挂载点与接入顺序有关系。比如对于挂载节点/mnt/storage1,存在谁先插入谁就县挂载的问题,这对于应用来说并不友好,因为应用可能希望将数据都保存到一个固定的usb接口上接入的设备中,此时可以使用本文中提供的修改方式,主要是修改fstab和android的init.rc实现。
1、查看接入点信息
我们需要先知道每个usb节点对应fstab中的记录,这个很好获得,第一个是插入存储设备时通过内核的打印得知,还有一种方式是通过插入u盘设备时vold的挂载打印信息获取,但是日志都有可能没有打开,所以这里需要按照实际情况查看。如本文中使用如下命令查看vold中相关打印:
logcat -c;logcat -v time -s VoldConnector
此时接入U盘,可以看到打印的日志中有如下信息:
1-01 08:18:31.411 D/VoldConnector( 6505): RCV <- {640 disk:8:0 [ 441.323363] sd 3:0:0:0: [sda] Attached SCSI removable disk
8}
01-01 08:18:31.412 D/VoldConnector( 6505): RCV <- {641 disk:8:0 30752000000}
01-01 08:18:31.413 D/VoldConnector( 6505): RCV <- {642 disk:8:0 SanDisk
01-01 08:18:31.413 D/VoldConnector( 6505): }
01-01 08:18:31.413 D/VoldConnector( 6505): RCV <- {644 disk:8:0 /sys//devices/soc.0/1c1c000.ehci2-controller/usb2/2-1/2-1:1.0/host3/target3:0:0/3:0:0:0/block/sda}
01-01 08:18:31.459 D/VoldConnector( 6505): RCV <- {650 public:8:4 0 "disk:8:0" ""}
01-01 08:18:31.460 D/VoldConnector( 6505): RCV <- {651 public:8:4 0}
01-01 08:18:31.460 D/VoldConnector( 6505): SND -> {34 volume mount public:8:4 2 0}
01-01 08:18: