在Android上使用sshfs进行备份

最近我要把我的whyred备份一下刷上Android💊了,于是需要进行备份。常规的备份操作是先做一个钛备份(或者类似软件的全盘备份) 然后再进入recovery做一个一个Nandroid备份,然后立即wipe刷机。

以前呢,我基本是直接备份到emmc(没错我没用过ufs)的,或者otg接一个u盘,然而这次我没有空的u盘,也没有otg线,只有个hdd能放备份的,就产生了上述的念头。

这次使用的原料有:

  • 一台手机,一台电脑(废话
  • 一根usb数据线
  • 一块hdd
  • 脑子

sshfs首先肯定要一个能用的sshd啦 外加一个sftp。电脑上的要求就这么点了。

Android上就要复杂很多了。

注意 :接下来的步骤里 本人全程使用termux sshd

首先要找到一个静态编译的sshfs,我比较懒,是从这里解包拿了一个出来,当然也可以自己编译这个软件的上游

接着找一个目录放这些奇奇怪怪的东西,我用的是 /data/local/tmp

# cd /data/local/tmp
# mkdir bin sshfs
# cp path/to/sshfs bin/sshfs
# bin/sshfs -h

注意:如果你的Android rom里没有ssh这个命令的话 你还需要ssh这个binary,并且要在sshfs的参数中指定ssh的位置。

接下来就可以连接了

# bin/sshfs [email protected]:/tmp/sshfs sshfs -f -o ssh_command='ssh' -o allow_other -o umask=000 -o uid=0 -o gid=0
# ls -al sshfs

成功了?接下来 bind mount到需要的目录吧

如果logcat中看到avc denied之类的字样,可以暂时permissive。

# setenforce 0 #用完记得 setenforce 1
# cd /sdcard
# mkdir tbmnt
# cd /mnt/runtime/default/emulated/0
# mount --bind /data/local/tmp/sshfs tbmnt

现在一切应该都已经完成了哦,在钛备份里设置备份目录为 /storage/emulated/0/tbmnt即可。

进阶:在twrp中使用sshfs

使用中我发现一个严重的问题,我的ssh一直断掉(怕不是手机wifi断流?)。于是换了adb转发端口,连一根数据线代替wifi。

$ adb reverse tcp:2222 tcp:22 # 将本地22端口转发到手机2222端口
$ adb reverse --list
$ adb reverse --remove tcp:2222

这样一来 只需要adb就可以使用sshfs了,所以在twrp中也能用。因为大体雷同,这里就不写了。

0 0 votes
Article Rating
Published
Categorized as Posts
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments