|
|
本帖最后由 510819776 于 2022-4-11 16:24 编辑
网络共享文件系统比较突出的就是windows的SMB协议与linux的NFS协议
但是一般的手机部分内核编译了cifs支持功能 使用命令mount -t cifs -o username=“”,password="" //192.168.1.1/sda /mnt/cifs即可挂载win10的共享
如果是nfs共享,好像很多手机都没有编译这个功能
挂载方式为mount -t nfs -o vers=3 192.168.1.1:/mnt/sda /mnt/sda这个命令就行了
但是很多手机肯定是没有smb与nfs内核支持的,这个时候想手机挂载nfs或smb,方便各路软件使用就变得困难了。
本人经过长时间的研究现在总结出了安卓手机非内核模式挂载smb与nfs的方法
软件就是
1.开源的fuse-nfs 此软件可以很容易的编译为安卓版本,只要内核支持fuse功能就可以使用
支持挂载nfs v3 v4.1 性能马马虎虎吧 5G 433MBPS的网络坏境 纯读取速度在16M/s的样子,如果是满速下载是25M每秒,无线带宽会减半
使用命令为fuse-nfs -n nfs://192.168.1.1/nfs?if=wlan0 -a -u 1023 -g 1023 -U 0777 -m /mnt/nfs -t 1
需要注意挂载用的目录权限一定要给满
-t参数是使用多线程
这里面的挂载参数各位根据需要设置,这里设置好了之后,各种软件都可以正常读写,完全是一个无线硬盘的状态
第二个软件是fusr
https://github.com/facebookarchive/nfusr
我测试这个不太稳定,从bin.entware.net里面提取的。
第三个软件是debian里面的gvfsd-nfs 这个软件我在安卓上跑起来了 安卓5.0 与 安卓7.1.2都可以正常挂载命令是dbus-launch mount nfs://192.168.1.1:/mnt/sda
效率还行
以上是挂载nfs的安卓软件,都是采用fuse模块功能实现,安卓4.4或安卓4.4以上系统原则上都能使用。
接下载说一下挂载smb v2/v3的软件
1.就是debian里面的gvfsd-smb这个工具,原理也是fuse
效率还可以。安卓上完全可用,挂载方式为
sudo -i
dbus-launch gvfs-mount smb://192.168.1.1/sda
不过呢gvfsd的权限一定要修改正确,这个权限修改方法,其守护进程是gvfsd-fuse
大家可以把gvfsd-fuse改名gvfsd-fuse.0 然后新建文本文件名为gvfsd-fuse 内容为
/usr/lib/gvfs/gvfsd-fuse -o allow_other,default_permissions,uid=1023,uid=1023,umask=777 $@
然后给足权限, 这里面的参数根据需要调整 然后就是挂载在/root/.gvfs下面
大家需要把.gvfs文件夹包括他的所有上级文件夹权限都给满,这样的话各种第三方软件都可以读写这个里面的文件里,想挂载到别的目录可以用mount -o bind /root/.gvfs/* /mnt/smb这样的方式实现
好了就分享到这里了
以上方法挂载后 其他软件都可以正常使用,效果就等同于一张扩展的tf卡,无线硬盘
最后提一下 有一个安卓上的smb客户端,用纯java写的,但是读取smb v2的性能真的不错,备忘 File Manager Pro+
先发图 哈哈
gvfsd-nfs可以从arm64的archlinux里面提取出来,gvfsd这个工具包含了很多fuse模式下的挂载客户端。
我提取出gvfsd-nfs与gvfsd-smb后打包看了一下 30M 容量
感觉很好用
nfsmount_sign.apk.zip
(1.4 MB, 下载次数: 295)
这是自己写的一个简陋的安卓apk外壳
适用于aarch64/arm64/armv8a构架的安卓系统
一般是安卓5.0或以上都能用
另一个软件比较大 是自己提取的gvfsd-smb与gvfsd-nfs
主要是挂载smb用
apk是30M
下载后先用cmd命令 ren *.zip *. 去掉zip这个后缀名
然后用7zip 点击001这个文件解压得到apk文件
我在安卓7.1.2上测试正常
需要注意 这个软件需要busybox与jackpal.androidterm
jackpal.androidterm.apk.zip
(551.44 KB, 下载次数: 174)
去掉后缀名.zip(也就是终端模拟器配合使用)
同样是支持aarch64/arm64/armv8a 安卓5.0或以上版本可用
smbmount_sign.zip.016.zip
(1.15 MB, 下载次数: 295)
smbmount_sign.zip.015.zip
(1.91 MB, 下载次数: 218)
smbmount_sign.zip.014.zip
(1.91 MB, 下载次数: 190)
smbmount_sign.zip.013.zip
(1.91 MB, 下载次数: 263)
smbmount_sign.zip.012.zip
(1.91 MB, 下载次数: 188)
smbmount_sign.zip.011.zip
(1.91 MB, 下载次数: 185)
smbmount_sign.zip.010.zip
(1.91 MB, 下载次数: 269)
smbmount_sign.zip.009.zip
(1.91 MB, 下载次数: 198)
smbmount_sign.zip.008.zip
(1.91 MB, 下载次数: 185)
smbmount_sign.zip.007.zip
(1.91 MB, 下载次数: 242)
smbmount_sign.zip.006.zip
(1.91 MB, 下载次数: 316)
smbmount_sign.zip.005.zip
(1.91 MB, 下载次数: 178)
smbmount_sign.zip.004.zip
(1.91 MB, 下载次数: 313)
smbmount_sign.zip.003.zip
(1.91 MB, 下载次数: 201)
smbmount_sign.zip.002.zip
(1.91 MB, 下载次数: 244)
smbmount_sign.zip.001.zip
(1.91 MB, 下载次数: 221)
最后做一点补充,是给那些软件无法正常工作的同学提醒一下.
apk文件解压可以得到m1 这是一个fuse模式挂载squashfs文件的arm程序
gvfs 这个文件 20多兆币 就是squashfs的压缩包,可以用m1程序挂载到手机/usr目录下
如果你的手机运行有问题,
一 . 请查看一下手机/usr下面有没有文件,正常是有sbin bin etc lib等目录的
二 . 然后还要看一下手机/lib下面有没有很多.so的文件 没有就手动从gvfs压缩包中拷贝过去 注意权限就行了
三 . 最后就是/usr/etc下面有几个文件,拷贝到手机/etc/下面
当然 如果会做magisk模块 完全可以把这个东西做成magisk模块使用
理论上这个东西 完全不依赖安卓的api 只是依赖安卓的linux内核 应该不存在兼容问题
最后说一下 我对性能方面的测试
手机开usb热点连接电脑,被电脑识别为无线网卡
然后电脑win10系统 开了一个共享 设置了密码的那种 手机直接挂载了一下
然后用time busybox dd命令写入了一个512M的文件到电脑上 速度还不错 平均速度达到了14m/s 这个速度应该能满足一些日常普通使用了
手机也是老古董了 配置是晓龙615 能有这个性能 我也不想说什么了.最后的最后补充一下 参数的填写问题
default_permissions,allow_other,umask=000 这样最好了 实际使用中uid gid参数挂载是不生效的
挂载点为了兼容性考虑,让所有apk都能正常使用,建议填写/data/media/0/xxx 这个路径
然后这个路径下系统会通过几轮fuse驱动过滤后呈现为/sdcard/xxx 文件夹 这个时候的权限就会变得正常了
|
评分
-
查看全部评分
|