前言

简单记录下一下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

  1. VoldNativeService.cpp - vold 的 Binder 服务实现

  2. VolumeManager.cpp - 卷管理核心逻辑

  3. NetlinkManager.cpp - 网络链接管理

  4. Utils.cpp - 工具函数

  5. PublicVolume.cpp 公开磁盘相关函数(U盘,TF卡)

  6. EmulatedVolume.cpp 内置磁盘相关函数(sdcard)

  7. 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通信。

参考文章

  1. Android源码

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

none
暂无评论...