Vold架构最最重要的其实是两个Socket的创建和监听
1. Vold Socket
2. Kernel-Uevent Socket
理解清楚这两个Socket的用途,以及它们什么时候创建和使用,就能清晰理解整个Vold架构了。
首先讲讲Vold架构在整个Android系统的位置。
Android系统从上到下依次是,App、Application Framework、Library、Linux Kernel。
Vold架构处于Library层,它负责接收下层Linux Kernel Usb Driver向上发送的Usb Add、Remove、Change消息。
Vold对这些消息处理后,在向上Application Framework层发送Usb change、mounted、unmounted消息。
同时,Vold也能接收上层Application Framework层向下发送的mount、unmount、format等消息。
问题来了,
Vold怎么接收下层Linux Kernel Usb Driver向上发送的消息?
Vold对这些消息处理后,怎么向上Application Framework层发送的消息?
Vold怎么接收上层Application Framework层向下发送的消息?
答案就是上面提到的两个Socket,
Vold通过Kernel-Uevent Socket接收下层Linux Kernel Usb Driver向上发送的消息。
Vold对这些消息处理后,通过Vold Socket向上Application Framework层发送的消息。
Vold通过Vold Socket接收上层Application Framework层向下发送的消息。
这就是整个Vold架构的最最重要的地方了。
详细看下面复杂的时序图吧。
理解了上面那张图,对于Vold架构也就清楚了。剩余的就是细节,有需要的时候在细细研究解析。
- 大小: 413.1 KB
分享到:
相关推荐
在Android系统中,`vold`(Volume Daemon)是一个至关重要的服务,它负责管理设备的存储空间,包括内部存储和外部存储(如SD卡)。`vold`在系统启动时运行,提供对文件系统的挂载、卸载以及权限管理等功能。通过对`...
在深入了解Android Vold模块之前,我们有必要先了解udev和NetLink的基础知识,因为Vold是在Android系统中基于udev功能和NetLink机制的一个实现。udev是一个Linux内核中的功能,用于在2.6版本之后替代旧的devfs,成为...
通过kernel–>vold–>StorageManagerService这样的架构去逐级上报热插拔事件。 一、Vold 入口 --> /system/vold/main.c int main(int argc, char** argv) { atrace_set_tracing_enabled(false); setenv(ANDROID...
USB之android_Vold分析,分析了linux udev与android vold的关系由来,vold的功能、架构,使用netlink的通信过程。kernel的uevent发送,framework层的处理、磁盘的挂载等等。
"Android中Vold进程详解" Vold进程是Android系统中管理和控制外部存储设备的核心组件之一。它接收来自内核的外部设备消息,用于管理和控制Android平台外部存储设备,包括SD插拨、挂载、卸载、格式化等。 Vold进程...
3. USB设备管理:当USB设备插入时,Vold会检测并处理这些设备,将其作为一个新的存储卷进行挂载,用户可以方便地在设备间传输数据。 4. 安全性控制:Vold实施权限控制,限制非授权应用或用户对存储设备的访问,保障...
在Android系统中,`vold`(Volume Daemon)是一个关键的系统服务,它负责管理设备上的存储设备,包括内部存储、外部SD卡以及USB设备。本文将深入探讨如何在Android系统上实现对多个U盘及多分区的挂载,基于描述中的...
`MountService`接收到解析后的事件后,执行两个关键任务: - 发送`doCommand()`命令,这个命令通过`commandListener`传递给`volumeManager`,执行相应的操作,如挂载、卸载等。 - 广播事件信息到其他系统服务和...
Framework层可以通过这个socket向Vold发送命令,如查询设备状态、发起挂载或卸载操作等。 #### 4. USB Storage Framework结构分析 除了Vold之外,Android系统中还有一套完整的USB Storage Framework用于管理USB...
vold启动后会创建一个socket,以便与Android框架层进行通信。vold的主要功能是管理外部存储设备,包括操作设备和轮询状态,并在外部存储设备状态发生变化时向平台报告。 vold的内部架构可以分为三个主要部分:创建...
在`init.rc`文件中,会有启动Vold Daemon的相关配置,并创建一个用于与Framework层通信的socket。 ##### 2.2 Vold内部架构 Vold的内部架构主要包括以下几个核心组件: - **NetLinkManager**:负责管理和处理来自...
Vold(Volume Daemon)是Android操作系统中一个重要的组件,负责管理外部存储设备如USB存储和SD卡等。它的核心职责包括识别、挂载和卸载存储设备,以及处理设备的各种状态变化。本篇文章将详细剖析Vold的工作原理,...
vold与Android系统其他组件的交互主要通过两种方式: 1. **Socket通信**:vold与Framework之间的通信,以及与其他进程的交互,都是通过socket进行的。这种方式提供了跨进程通信(IPC)的能力,使得vold能够独立于...
VOLD的启动涉及到创建一个socket,以便与Android框架层进行通信。 VOLD的内部架构可以分为几个主要模块:NetLinkManager、CommandListener、VolumeDirect和VolumeAuto。其中,NetLinkManager用于接收来自内核的消息...
例如,Vold会在启动时创建一个用于与Framework层通信的socket连接。 ##### 2.2 Vold内部架构 Vold的内部结构相当复杂,主要包括以下几个核心组件: - **NetLinkManager**:负责处理与内核之间的Netlink消息,通过...
Vold这个名字来源于“Volume Daemon”,意为“卷守护进程”,在Android系统架构中扮演着存储设备驱动的用户空间接口角色。理解Vold的工作原理对于开发者和系统管理员来说至关重要,因为它直接影响到数据的读写、设备...
android 对插入设备后产生的反应,诉说连接的响应与挂载
在Android系统中,"android_system_blacklist_android_msm8610_"可能指的是针对特定硬件平台MSM8610的黑名单配置或者安全更新。MSM8610是高通公司生产的一款移动处理器,主要面向中低端智能手机和平板电脑市场。这个...