通过Magisk挂载SD卡分区指南

12次阅读
没有评论

解决方案:通过Magisk自定义挂载以访问SD卡上的多个分区

背景信息

用户使用 Magisk 和 TWRP 在三星 Galaxy J7 上进行了 root 操作。希望将多个 Ext4 分区挂载到 /storage 目录下,并在第三方工具(如 Termux)中查看这些分区内容。已尝试了普通方法,但其他应用无法访问这些分区。

问题总结

  1. 其他应用程序不能看到分区。
  2. App2sd 挂载脚本修改后的效果不稳定。
  3. 用户希望获取 vold-posix 功能来访问多个 Ext4 分区。
  4. 需要使用FUSE(文件系统用户空间)来调整 /storage 下的分区权限。

解决方案

步骤 1: 确认现有挂载和环境变量设置

Print env o/pMount o/p 的两个截图中,我们可以看到第一个分区已经以只读方式挂载到 /storage 中。但未提供所有挂载点的细节以及环境变量的完整输出,因此我们无法直接确认问题所在。

步骤 2: 确认 Knox 设置

从用户反馈知道,目前 Knox 已经被禁用或移除。所以排除因 Knox 引起的问题。

步骤 3: 再次尝试挂载脚本设置

为应对其他应用无法访问分区的问题,我们可以参考其他类似问题的解决方法:

  1. 确认 Vold 设置:Vold 默认暴露第一个 Ext4 分区给应用程序。如果需要访问更多分区,可以考虑使用 vold-posix 模块。
  2. 修改 App2sd 脚本来支持多个挂载点:
  3. App2SD Mount 脚本放入 Magisk 目录中。
  4. 修改脚本来添加额外的分区挂载逻辑。每个分区都需要独立的行,如下:
mkdir -p /storage/sd1/
mount -o rw,remount /dev/block/mmcblk1p2 /storage/sd1/

// 对其他分区重复此步骤
  • 检查脚本是否在启动时正确执行:可以通过手动运行脚本来验证其功能。
  • 若需要持久化应用权限,通过 Termux 进行检查。确保 /data/system/users/0/vol_id_map 文件正确映射到了新挂载的分区上。
步骤 4: 部署 Vold-Posix 模块

为了访问所有 Ext4 分区,可以安装 vold-posix 模块:
1. 首先在 TWRP 更新器中下载并解压 vold-posix 文件,确保所有文件在正确的位置。
2. 在 Magisk Manager 中启用或激活该模块。
3. 重启设备并检查分区是否成功挂载到了 /storage 下。

步骤 5: 安装 FUSE(文件系统用户空间)

如果以上方法仍然无法解决问题,可以尝试使用 FUSE 实现自定义权限调整:
1. 下载 bindfs 并将其安装在系统中。
2. 配置 bindfs 映射路径,并运行相应的命令来更改挂载点的访问权限。例如:

sudo bindf -o nonempty /storage/sd1/ /mnt/data_sd1/
  1. 此外,在文件浏览器工具(如 Termux)内设置访问所需应用的权限。
总结

总体来说,通过修改挂载脚本和引入 FUSE 工具,应能更好地支持多个 Ext4 分区并提高其对外部应用的认可度。但根据用户描述的情况,分区仍然只能以“文件夹”形式出现在 /storage 下这可能是由于其他配置导致的。

后续操作

  • 定期检查相关环境变量设置及权限。
  • 与社区成员交流经验分享更多可能的有效解决方案。

希望以上建议对您有所帮助!

正文完