IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> i.MX8MPlus EVK Android12外部SD卡自动挂载 -> 正文阅读

[移动开发]i.MX8MPlus EVK Android12外部SD卡自动挂载

原文:Vold之存储设备和fstab配置 - liutimo - 博客园

分类

  1. traditional storage(传统存储)

    • portable storage(便携式存储): SD卡或USB设备。

    • emulated storage(模拟存储):将部分内部存储暴露于模拟层来实现存储。

  2. adoptable storage(可合并的存储设备)

    这种存储设备是指可以像内部存储设备那样进行加密和格式化的物理介质(例如 SD 卡或 USB 设备)。

fstab配置

android的 external storage 由Vold 和 StroageManagerService共同管理。

?? 在 Android 8.0 中,MountService 类已更名为 StorageManagerService

Android 4.3 及更高版本,init、vold 和 recovery 所使用的各种 fstab 文件在 /fstab.<device> 文件中进行统一。对于由 vold 管理的外部存储卷,条目应采用以下格式:

?<src> <mnt_point> <type> <mnt_flags> <fs_mgr_flags>
  • src:sysfs(通常在 /sys 下装载)下可以提供装载点的设备的路径。路径必须以 / 开头。

  • mount_point:要装载卷的文件系统路径。

  • type:卷上的文件系统类型。如果是外部卡,则通常为 vfat

  • mnt_flagsVold 会忽略此字段,应将其设置为 defaults

  • fs_mgr_flagsVold 会忽略此字段中不包含 voldmanaged= 标记的统一的 fstab 中的任何行。该标记必须后跟描述卡的标签,以及分区号或字词 auto。例如:voldmanaged=sdcard:auto。其他可能的标记有 nonremovableencryptable=sdcardnoemulatedsdencryptable=userdata

对于adoptable storage,需要在fstab中通过在fs_mgr_flags中 设置encryptable=userdata显式说明。如果没有这个flag,都会被vold当做便携式设备处理。

?/devices/platform/mtk-msdc.1/mmc_host* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata

合并存储设备时,该平台会擦除内容并写入定义两个分区的 GUID 分区表:

  • 一个较小的空 android_meta 分区,预留以备将来使用的。分区类型 GUID 为 19A710A2-B3CA-11E4-B026-10604B889DCF

  • 一个较大的 android_ext 分区,使用 dm-crypt 加密并使用 ext4f2fs(取决于内核功能)格式化。分区类型 GUID 为 193D1EA4-B3CA-11E4-B075-10604B889DCF

在Vold创建存储卷时,我们就能看到相关的代码了。

fstab 中,具有 voldmanaged 属性的存储设备默认被视为便携式设备,除非定义了其他属性(如 encryptable=userdata)。例如,典型的 USB OTG 设备的定义如下:

i.MX8MPlus挂载外部SD卡挂载实例

不能照搬例程https://source.android.com/devices/storage/config

正确的fstab项应该如下所示,去除最后的“encryptable=userdata”,我们需要的就是便携式设备。

?/devices/platform/soc@0/30800000.bus/30b50000.mmc/mmc_host*  auto auto defaults voldmanaged=sdcard1:auto

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-11 16:33:45  更:2022-05-11 16:34:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:26:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码