无法从挂载SD卡分区读取媒体文件解决指南

14次阅读
没有评论

解决问题:无法从挂载的SD卡分区读取媒体文件

问题概述

在一个通过闪存修改(rooted)系统分区进行过的平板电脑上,原有的20GB SD卡分区被删除了。尽管重新设置了权限,并使用mount命令成功挂载了分区,但仍存在两个主要问题:
1. 无法打开媒体文件或安装APK:提示“Cannot open this file”。
2. 计算机通过USB无法访问SD卡存储

问题分析

  • 挂载点 /mnt/media_rw/sd2 已经设置好且具有读写权限,能够直接读取和写入文件。
  • voldmanaged=sdcard1:auto,noemulatedsd 这个标志与通过 /etc/fstab 文件配置有密切关系,但需要深入研究其对文件系统的管理机制。

解决方案

  1. 修改/vendor/etc/fstab.<vendor>中的设置
  2. 进入设备的厂商分区(通常为/vendor),找到并编辑/vendor/etc/fstab.<vendor>
  3. 你需要查找或添加如下内容,确保与原文件一致或更符合当前需求:
    plaintext
    dev/block/sd2 /mnt/media_rw/sd2 vfat defaults,voldmanaged=sdcard1:auto,noemulatedsd 0 0
  4. 保存更改并重启设备以使设置生效。

  5. 启动服务

  6. /system/bin/sdcard位置可能有一个可执行文件,该路径指向的init服务可能是用来管理SD卡操作。
  7. 创建一个startup.sh脚本,在init.d目录下添加它(需要已知设备支持),内容可能是:
    bash
    #!/system/bin/sh
    /system/bin/sdcard &
  8. 保存并重启设备以加载init.d中的脚本。

  9. 使用mount命令尝试模仿设置

  10. 在挂载时,可以通过添加某些参数来模拟voldmanaged=sdcard1:auto,noemulatedsd的行为:
    sh
    mount -o rw,loop,-ose=udf,ro,user_id=<UID>,group_id=<GID>/dev/block/sd2 /mnt/media_rw/sd2 &
  11. 上述命令可能需要进一步调整,具体取决于设备和分区的实际情况。

  12. 验证修改

  13. 重启平板电脑后重新挂载SD卡,检查是否可以打开媒体文件及安装APK。
  14. 检查计算机能否通过USB正常访问SD卡存储区。

实施步骤

  1. 使用ADB工具连接设备,传输必要的脚本和执行命令。
  2. 根据实际情况调整上述命令参数。
  3. 重启平板电脑后验证修改效果。
  4. 如存在问题,请检查日志文件以获取更多信息,并进行针对性的调试。
正文完