android 13.0 当卸载otg设备开机不加载otg设备功能实现

本文介绍了在Android 13.0系统中,如何通过系统属性控制OTG设备的卸载及开机不挂载功能。详细分析了StorageManagerService的代码,讲解了如何监听并阻止OTG设备的挂载流程,同时提供了实现卸载和开机不挂载OTG设备的步骤。
摘要由CSDN通过智能技术生成

1.概述

在13.0定制化rom产品开发过程中,客户有功能需求,通过系统属性值控制是否加载挂载otg设备,当设置为卸载模式时,
要求不能挂载otg设备,开机也不能挂载otg设备,接下来分析相关功能实现

2.卸载otg设备开机不加载otg设备的核心代码

frameworks/base/services/core/java/com/android/server/StorageManagerService.java

3.卸载otg设备开机不加载otg设备的功能分析和实现

系统通过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

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安卓兼职framework应用工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值