我正在开发dSploit应用程序的gentoo提取器,我发现了一个问题。
现在用户可以为gentoo root选择一个自定义目录, 我们必须确保我们可以在该文件夹中创建符号链接。
从android 4.2及以上版本,存储基础架构使用FUSE。 创建安装ext FS的符号链接很好。 创建安装了FUSE的符号链接将失败。
root@mako:/ # ln -s /system /storage/emulated/0/gentoo/test
link failed Function not implemented
root@mako:/ # ln -s /system /data/media/0/gentoo/test
这是因为/storage/emulated/0
是/data/media/0
的保险丝绑定挂载。
我认为解决方案是找到装载的位置和方式。
我怎样才能获得FUSE坐骑?
/proc/mount
会将/dev/fuse
显示为源块设备。
我需要说些什么:
source destination
/data/media/0 /storage/emulated/0
为了将/storage/emulated/0
替换为/data/media/0
并让符号链接正常工作。
提前感谢任何帮助和建议。
- tux_mind
答案 0 :(得分:1)
我找到了一个解决方法/黑客来列出它们。
当您在挂载点上打开文件时,保险丝FS处理程序也会打开它。
我使用了这些信息并编写了一个使用proc来查找源目录的小型C程序。
如果您对project is hosted on github感兴趣。
问候,tux_mind。
答案 1 :(得分:1)
我使用的方式是绑定挂载而不是符号链接:
复制而非删除,因为mv
无法跨文件系统工作
cp -a /sdcard/DCIM /Removable/MicroSD/DCIM
rm -r /sdcard/DCIM
创建挂载点以绑定SD卡上的DCIM
。
mkdir /sdcard/DCIM
Finaly bind mount:
mount -o bind /Removable/MicroSD/DCIM /sdcard/DCIM
这项工作正常,但重启后,您将不得不重新安装绑定