在13.0定制化rom产品开发过程中,客户有功能需求,通过系统属性值控制是否加载挂载otg设备,当设置为卸载模式时,
要求不能挂载otg设备,开机也不能挂载otg设备,接下来分析相关功能实现
frameworks/base/services/core/java/com/android/server/StorageManagerService.java
系统通过StorageManager类来检测U盘的插入和拔出事件。通过注册一个StorageEventListener监听器,我们可以在U盘插入事件发生时收到通知
Vold 全称为 Volume Daemon,用于管理外部存储设备的 Native daemon 进程,这是一个非常重要的守护进程,主要由 NetlinkManager,VolumeManager,
CommandListener 这 3 部分组成,当内核检测到文件系统的时候会通过 Vold 自动挂载它们
当一个外部存储设备插入的时候,kernel 会产生一个 uevent 事件,此事件会发送给 Native 层的Vold 模块。
Vold 为一个守护进程,其通过 socket 机制从 kernel 获取 uevent 事件,然后解析事件。
MountService 根据 Vold 解析出的相应状态去决定发出什么样的广播、给 Vold 作出什么样的反应。
最后 Vold 依据 MountService 的反应稍加处理交由 Kernel 处理
StorageManager是系统存储服务的接口。 存储管理器处理与存储相关的项目
实现思路:
1.StorageManage