简单记录下一下Android的源代码中system/vold目录下的文件,这个主要是磁盘相关内容,简单记录于此,方便自己查询。
正文
进入正题。
目录结构
system/vold/ ├── Android.bp # 编译配置文件 ├── main.cpp # vold 主入口 ├── vdc.cpp # vdc 工具源码 ├── secdiscard.cpp # 安全擦除工具 ├── vold_prepare_subdirs.cpp # 目录准备工具 ├── vold.rc # init rc 文件 ├── ... ├── binder/ # Binder 接口定义 │ ├── android/ │ │ └── os/ │ │ ├── IVold.aidl │ │ ├── IVoldListener.aidl │ │ ├── IVoldMountCallback.aidl │ │ └── IVoldTaskListener.aidl ├── fs/ # 文件系统相关实现 │ ├── Exfat.cpp │ ├── Ntfs.cpp │ ├── Ext4.cpp │ ├── F2fs.cpp │ └── Vfat.cpp ├── model/ # 卷模型相关 ├── Disk.cpp ├── EmulatedVolume.cpp ├── ObbVolume.cpp ├── PrivateVolume.cpp ├── PublicVolume.cpp ├── StubVolume.cpp ├── VolumeBase.cpp └── VolumeEncryption.cpp
VoldNativeService.cpp - vold 的 Binder 服务实现
VolumeManager.cpp - 卷管理核心逻辑
NetlinkManager.cpp - 网络链接管理
Utils.cpp - 工具函数
PublicVolume.cpp 公开磁盘相关函数(U盘,TF卡)
EmulatedVolume.cpp 内置磁盘相关函数(sdcard)
Exfat.cpp、Ntfs.cpp、Ext4.cpp和Vfat.cpp等是文件系统相关方法。
.rc文件
vold.rc - init 服务的 rc 配置文件,定义 vold 服务的启动参数和权限
其他
与vold息息相关的还有一个在framework目录下的文件StorageManagerService.java
framework\base\services\core\java\com\android\server\StorageManagerService.java
磁盘状态出来,卸载挂载广播分发,以及与VoldNativeService.cpp进行Binder通信。
联系我们

微信号:rssme_com