Skip to content

Commit 4ccec2c

Browse files
committed
replace ifuse with sshfs for mount filesystems solution
1 parent 438e8fc commit 4ccec2c

File tree

1 file changed

+27
-13
lines changed

1 file changed

+27
-13
lines changed

restore.sh

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ pause() {
5151
}
5252

5353
clean() {
54-
kill $httpserver_pid $iproxy_pid $anisette_pid 2>/dev/null
54+
kill $httpserver_pid $iproxy_pid $anisette_pid $sshfs_pid 2>/dev/null
5555
popd &>/dev/null
5656
rm -rf "$(dirname "$0")/tmp$$/"* "$(dirname "$0")/iP"*/ "$(dirname "$0")/tmp$$/" 2>/dev/null
5757
if [[ $platform == "macos" && $(ls "$(dirname "$0")" | grep -v tmp$$ | grep -c tmp) == 0 &&
@@ -572,13 +572,13 @@ set_tool_paths() {
572572
ideviceinfo="$dir/ideviceinfo"
573573
ideviceinstaller+="$dir/ideviceinstaller"
574574
idevicerestore+="$dir/idevicerestore"
575-
ifuse="$(command -v ifuse)"
576575
ipwnder+="$dir/ipwnder"
577576
irecovery+="$dir/irecovery"
578577
irecovery2+="$dir/irecovery2"
579578
irecovery3+="../$dir/irecovery"
580579
jq="$dir/jq"
581580
primepwn+="$dir/primepwn"
581+
sshfs="$(command -v sshfs)"
582582

583583
cp ../resources/ssh_config .
584584
if [[ $(ssh -V 2>&1 | grep -c SSH_8.8) == 1 || $(ssh -V 2>&1 | grep -c SSH_8.9) == 1 ||
@@ -615,21 +615,21 @@ install_depends() {
615615

616616
log "Installing dependencies..."
617617
if [[ $distro == "arch" ]]; then
618-
sudo pacman -Sy --noconfirm --needed base-devel ca-certificates ca-certificates-mozilla curl git ifuse libimobiledevice openssh python udev unzip usbmuxd usbutils vim zenity zip zstd
618+
sudo pacman -Sy --noconfirm --needed base-devel ca-certificates ca-certificates-mozilla curl git libimobiledevice openssh python sshfs udev unzip usbmuxd usbutils vim zenity zip zstd
619619
prepare_udev_rules root storage
620620

621621
elif [[ $distro == "debian" ]]; then
622622
if [[ -n $ubuntu_ver ]]; then
623623
sudo add-apt-repository -y universe
624624
fi
625625
sudo apt update
626-
sudo apt install -m -y ca-certificates curl git ifuse libssl3 libzstd1 openssh-client patch python3 unzip usbmuxd usbutils xxd zenity zip zlib1g
626+
sudo apt install -m -y ca-certificates curl git libssl3 libzstd1 openssh-client patch python3 sshfs unzip usbmuxd usbutils xxd zenity zip zlib1g
627627
if [[ $(command -v systemctl 2>/dev/null) ]]; then
628628
sudo systemctl enable --now udev systemd-udevd usbmuxd 2>/dev/null
629629
fi
630630

631631
elif [[ $distro == "fedora" ]]; then
632-
sudo dnf install -y ca-certificates git ifuse libimobiledevice libzstd openssl patch python3 systemd udev usbmuxd vim-common zenity zip
632+
sudo dnf install -y ca-certificates git libimobiledevice libzstd openssl patch python3 sshfs systemd udev usbmuxd vim-common zenity zip
633633
sudo ln -sf /etc/pki/tls/certs/ca-bundle.crt /etc/pki/tls/certs/ca-certificates.crt
634634
prepare_udev_rules root usbmuxd
635635

@@ -638,11 +638,11 @@ install_depends() {
638638
print "* You may need to reboot to apply changes with rpm-ostree. Perform a reboot after this before running the script again."
639639

640640
elif [[ $distro == "opensuse" ]]; then
641-
sudo zypper -n install ca-certificates curl git ifuse libimobiledevice-1_0-6 libzstd1 openssl-3 patch python3 usbmuxd unzip vim zenity zip
641+
sudo zypper -n install ca-certificates curl git libimobiledevice-1_0-6 libzstd1 openssl-3 patch python3 sshfs usbmuxd unzip vim zenity zip
642642
prepare_udev_rules usbmux usbmux # idk if this is right
643643

644644
elif [[ $distro == "gentoo" ]]; then
645-
sudo emerge -av --noreplace app-arch/zstd app-misc/ca-certificates app-pda/ifuse libimobiledevice net-misc/curl openssh python udev unzip usbmuxd usbutils vim zenity zip
645+
sudo emerge -av --noreplace app-arch/zstd app-misc/ca-certificates libimobiledevice net-fs/sshfs net-misc/curl openssh python udev unzip usbmuxd usbutils vim zenity zip
646646

647647
elif [[ $distro == "void" ]]; then
648648
sudo xbps-install curl git patch openssh python3 unzip xxd zenity zip
@@ -1644,6 +1644,7 @@ device_sshpass() {
16441644
ssh_pass="$pass"
16451645
scp="$dir/sshpass -p $pass $scp2"
16461646
ssh="$dir/sshpass -p $pass $ssh2"
1647+
sshfs2="$dir/sshpass -p $pass $sshfs"
16471648
}
16481649

16491650
device_iproxy() {
@@ -7316,10 +7317,11 @@ menu_datamanage() {
73167317
else
73177318
menu_items+=("Backup" "Restore")
73187319
fi
7319-
if [[ -z $ifuse ]]; then
7320-
warn "ifuse not installed. Mount Device options are not available. Install ifuse from your package manager to fix this"
7320+
if [[ -z $sshfs ]]; then
7321+
warn "sshfs not installed. Mount Device options are not available. Install sshfs from your package manager to fix this"
7322+
[[ $platform == "macos" ]] && print "* On macOS, install fuse-t-sshfs"
73217323
else
7322-
menu_items+=("Mount Device" "Mount Device (Raw File System)" "Unmount Device")
7324+
menu_items+=("Mount Device" "Mount Device (Raw File System)")
73237325
fi
73247326
menu_items+=("Connect to SSH" "Cydia App Install")
73257327
if (( device_det >= 9 )); then
@@ -7337,9 +7339,21 @@ menu_datamanage() {
73377339
"Backup" ) mode="device_backup_create";;
73387340
"Restore" ) menu_backup_restore;;
73397341
"Erase All Content and Settings" ) mode="device_erase";;
7340-
"Mount Device" ) mkdir ../mount 2>/dev/null; $ifuse ../mount; log "Device (Media) should now be mounted on mount folder";;
7341-
"Mount Device (Raw File System)" ) mkdir ../mount 2>/dev/null; $ifuse --root ../mount; log "Device (root) should now be mounted on mount folder";;
7342-
"Unmount Device" ) log "Attempting to umount device from mount folder"; umount ../mount;;
7342+
"Mount Device"* )
7343+
local path="/var/mobile/Media"
7344+
[[ $selected == *"Raw"* ]] && path="/"
7345+
device_ssh_message
7346+
device_iproxy no-logging
7347+
device_sshpass
7348+
mkdir ../mount 2>/dev/null
7349+
$sshfs2 -d -F $(pwd)/ssh_config -p 6414 ${ssh_user}@127.0.0.1:$path ../mount &>../saved/sshfs.log &
7350+
sshfs_pid=$!
7351+
log "Device should now be mounted on mount folder"
7352+
print "* Press Enter/Return to unmount the device."
7353+
pause
7354+
umount ../mount 2>/dev/null
7355+
kill $iproxy_pid $sshfs_pid
7356+
;;
73437357
"Connect to SSH" ) device_ssh;;
73447358
"Cydia App Install" )
73457359
echo

0 commit comments

Comments
 (0)