在 Mac 上无线挂载 Android /sdcard
今天发现了小米有一个ftp的东西,可以用来在mac的finder上当做一个载入卷用,很高兴地试了下,发现卷是只读模式,也就意味着不能移动、删除、载入文件进去。
查了下,说是mac os10开始处于安全原因禁掉的。
我很能够理解。毕竟这玩意确实,明文太不安全了。那怎么办呢,看到有说用sftp,这玩意和ssh有那么些联系。一搜罗,小米就没给带这个功能,找了下三方app,ssh能正常通过terminal连接上,但是可能是一些权限原因,死活没法挂载到finder上。
最后搜罗出了一个用adb的方法:
一、前提条件
-
Mac 已安装 Homebrew
-
手机已开启开发者模式和 USB 调试
-
无线网络可连接手机
二、安装必要工具
-
安装 macFUSE
macFUSE 提供了 FUSE 框架,使非原生文件系统可以挂载到 Mac。
brew install --cask macfuse
这里呢,由于macfuse是内核级别上操作的文件,所以权限管理比较严格。下载好之后需要关机后长按电源键,进入option,找到个选项把个enable kernel extensions的东西开起来(可以参考https://zhuanlan.zhihu.com/p/14426113574),然后再回来运行时去系统偏好设置 → 安全性与隐私再输一次密码给他开开
2.安装 Android Platform Tools(包含 adb)
brew install --cask android-platform-tools
3.安装编译工具
brew install pkg-config
4.获取并编译 adbfs-rootless
git clone https://github.com/spion/adbfs-rootless.git cd adbfs-rootless make CXXFLAGS="-D_FILE_OFFSET_BITS=64"
编译完成后,会在目录下生成 adbfs可执行文件。
(这里由于我比较懒不想插线,实际上插线也可以,并且稳定性会高很多)
三、连接手机(无线 ADB)
首次无线连接需要用数据线:
adb tcpip 端口号
adb connect <手机IP>:端口号
adb devices
后续可直接通过 Wi-Fi 连接,无需数据线。
四、创建挂载点
重要:挂载目录必须是 Mac 本地磁盘路径,不能在 FUSE 卷或网络挂载下。
mkdir -p 自己定义个路径
五、挂载 Android /sdcard
前台运行,方便查看报错:
~/adbfs-rootless/adbfs ~前面定义的路径
成功后终端会显示:
--*-- exec_command: adb shell "ls"
此时,Android /sdcard
已挂载到mac,可以通过finder直接看。
六、卸载挂载
umount ~前面设置的路径
或强制卸载:
diskutil unmount force ~前面设置的路径
ps.这个方法感觉不大稳定,速度很慢+动不动断,甚至删除200个文件都要跑很久。