作者:gzshun. 原创作品,转载请标明出处!
NetlinkManager类负责管理捕获内核的uevent事件,这里使用了Netlink套接字。
Netlink的概念:
Netlink套接字是用以实现用户进程与内核进程通信的一种特殊的进程间通信(IPC) ,也是网络应用程序与内核通信的最常用的接口。Netlink套接字可以使用标准的套接字APIs来创建。socket(), bind(), sendmsg(), recvmsg() 和 close()很容易地应用到 netlink socket。netlink包含于头文件linux/netlink.h中。
平时的应用层一般都不会用到Netlink这个套接字,了解就行。
在Main.cpp文件中的main函数里面,有一个准备工作是用来开启监听内核uevent事件的线程,源码如下:
nm是NetlinkManager类实例化的一个对象,以下是start()函数的源码:
下一篇文章继续分析vold整个源码的走向。。
分享到:
相关推荐
3. **Framework**:Framework通过与vold的交互,控制vold执行具体的磁盘管理命令,如挂载SD卡。 4. **UI**:最终,UI层通过与Framework的交互,向用户提供直观的操作界面,如在“设置”菜单中的“SD卡和手机内存”...
Android系统的磁盘管理是其核心功能之一,涉及到系统架构的多个层次。本文档主要分析了Android磁盘管理的关键组件——Vold(Volume Daemon)以及其工作流程。Vold是一个本地服务,它在Android中扮演着重要角色,负责...
android平台移植ntfs-3g使支持ntfs格式tf卡、U盘、stat硬盘挂载,解压文件到external目录下,mm编译成功后,可手动指行 ntfs-3g /dev/block/vold/* /storage/sdcard1 或者添加 Ntfs.cpp Ntfs.h到system/vold目录实现...
在Android系统中,vold(Volume Daemon)是一个核心的组件,用于管理USB存储和SD卡等外部存储设备。要深入理解vold的工作原理,我们首先需要了解udev,因为在概念和功能上,vold是udev在Android平台上的替代。 udev...
3. **权限管理**:`vold`对存储设备的访问进行严格的权限控制,遵循Android的权限模型。例如,只有拥有特定权限的应用才能读写特定的分区。 4. **网络存储支持**:`vold`也支持网络存储协议,如NFS(Network File ...
USB之android_Vold分析,分析了linux udev与android vold的关系由来,vold的功能、架构,使用netlink的通信过程。kernel的uevent发送,framework层的处理、磁盘的挂载等等。
在Android 系统中所有的热插拔设备都是通过Vold 进程挂载的。通过kernel–>vold–>StorageManagerService这样的架构去逐级上报热插拔事件。 一、Vold 入口 --> /system/vold/main.c int main(int argc, char** ...
### USB之android_Vold分析 #### 1. Vold简介 Vold,即Volume Daemon,是Android系统中用于管理外部存储设备(如USB、SD卡等)的核心组件。它的功能涵盖了设备的检测、挂载、卸载以及状态监控等多个方面。Vold的...
3. USB设备管理:当USB设备插入时,Vold会检测并处理这些设备,将其作为一个新的存储卷进行挂载,用户可以方便地在设备间传输数据。 4. 安全性控制:Vold实施权限控制,限制非授权应用或用户对存储设备的访问,保障...
在Android操作系统中,VOLD即Volume Daemon,是负责管理存储设备的一个守护进程。它的作用主要是与内核层通信,并对外部存储设备如USB和SD卡等进行管理。VOLD在Android设备中扮演着非常重要的角色,尤其是在处理存储...
Android Vold(Volume Daemon)是Android系统中的一个重要组件,它主要负责管理移动设备上的外部存储设备,如SD卡和USB存储设备。Vold作为一个本地服务,监控并响应这些存储设备的插入、移除和其他相关操作,确保...
通过上述分析可以看出,Vold在Android系统中扮演着极其重要的角色,它不仅负责管理外部存储设备,还作为连接内核层与应用层的关键桥梁。理解Vold的工作原理对于深入研究Android系统的存储管理机制至关重要。
### USB之android_Vold_分析 #### 1. Vold简介与udev的由来 ##### 1.1 udev的由来与特性 udev作为Linux 2.6内核的一个重要组成部分,它取代了传统的devfs,成为现代Linux系统中默认的设备管理工具。udev以守护...
在Android系统中,`vold`(Volume Daemon)是一个关键的系统服务,它负责管理设备上的存储设备,包括内部存储、外部SD卡以及USB设备。本文将深入探讨如何在Android系统上实现对多个U盘及多分区的挂载,基于描述中的...
MountService在Android系统中负责文件系统的挂载和卸载,Vold需要与之交互来执行存储设备挂载的操作。在某些情况下,Vold还需要与StorageManager进行交互,以处理存储相关的信息,比如存储空间的使用情况和存储设备...
Android系统启动过程分析 本文主要介绍Android系统的启动过程,以Androidinit进程之后部分为主,init之前部分同标准Linux内核启动完全相同。于Android启动过程复杂,涉及C、C++及java部分内容,本文以流程分析为主线...
Vold进程的源码分析表明,它的主要功能是管理和控制外部存储设备。Vold进程的main函数主要完成了以下几个步骤:创建Vold设备文件夹、初始化Vold相关的类实例、创建CommandListener并设置Broadcaster、启动Volume...
**Vold**(Volume Daemon)是Android系统中用于管理外部存储设备的核心组件之一,它负责处理与USB存储设备、SD卡等相关的任务。Vold的功能类似于Linux系统中的**udev**,即用于设备管理的守护进程,但它更适应...