DownRa1n/linux_fix.sh
2023-04-13 19:41:06 -04:00

82 lines
3.8 KiB
Bash
Executable file

#!/usr/bin/env bash
# Futurerestore/irecovery linux fix script made by @Cryptiiiic
# Supported Distros: archlinux, ubuntu, debian
set -e
pacman=0
aptget=0
dnf=0
if [ "$EUID" -ne 0 ]
then
echo "-1: Please run as root"
exit -1
fi
if [[ -f "/etc/fedora-release" ]]
then
echo "Fedora detected installing ca-certs..."
echo "Done!"
fi
echo "Attemping linux usb fixes please wait..."
if [[ $(which pacman 2>/dev/null) ]]
then
pacman=1
elif [[ $(which apt-get 2>/dev/null) ]]
then
aptget=1
elif [[ $(which dnf 2>/dev/null) ]]
then
dnf=1
else
echo "-2: Linux Distro not supported!"
exit -2
fi
if [[ "$(expr $pacman)" -gt '0' ]]
then
if [[ -f "/etc/arch-release" ]]
then
echo "Arch Linux Detected!"
sudo pacman -Syy --needed --noconfirm >/dev/null 2>/dev/null
sudo pacman -S --needed --noconfirm udev usbmuxd >/dev/null 2>/dev/null
sudo systemctl enable systemd-udevd usbmuxd --now 2>/dev/null
echo "QUNUSU9OPT0iYWRkIiwgU1VCU1lTVEVNPT0idXNiIiwgQVRUUntpZFZlbmRvcn09PSIwNWFjIiwgQVRUUntpZFByb2R1Y3R9PT0iMTIyWzI3XXwxMjhbMC0zXSIsIE9XTkVSPSJyb290IiwgR1JPVVA9InN0b3JhZ2UiLCBNT0RFPSIwNjYwIgoKQUNUSU9OPT0iYWRkIiwgU1VCU1lTVEVNPT0idXNiIiwgQVRUUntpZFZlbmRvcn09PSIwNWFjIiwgQVRUUntpZFByb2R1Y3R9PT0iMTMzOCIsIE9XTkVSPSJyb290IiwgR1JPVVA9InN0b3JhZ2UiLCBNT0RFPSIwNjYwIgo=" | base64 -d | sudo tee /usr/lib/udev/rules.d/39-libirecovery.rules >/dev/null
else
echo "-3: Linux Distro not supported!"
exit -3
fi
elif [[ "$(expr $aptget)" -gt '0' ]]
then
if [[ -f "/etc/lsb-release" || -f "/etc/debian_version" ]]
then
echo "Ubuntu or Debian Detected!"
sudo apt-get update -qq >/dev/null 2>/dev/null
sudo apt-get install -yqq usbmuxd udev >/dev/null 2>/dev/null
sudo systemctl enable udev >/dev/null 2>/dev/null || true
sudo systemctl enable systemd-udevd >/dev/null 2>/dev/null || true
sudo systemctl enable usbmuxd >/dev/null 2>/dev/null || true
sudo systemctl restart udev >/dev/null 2>/dev/null
sudo systemctl restart systemd-udevd >/dev/null 2>/dev/null
sudo systemctl restart usbmuxd >/dev/null 2>/dev/null
echo "QUNUSU9OPT0iYWRkIiwgU1VCU1lTVEVNPT0idXNiIiwgQVRUUntpZFZlbmRvcn09PSIwNWFjIiwgQVRUUntpZFByb2R1Y3R9PT0iMTIyWzI3XXwxMjhbMC0zXSIsIE9XTkVSPSJ1c2JtdXgiLCBHUk9VUD0icGx1Z2RldiIsIE1PREU9IjA2NjAiCgpBQ1RJT049PSJhZGQiLCBTVUJTWVNURU09PSJ1c2IiLCBBVFRSe2lkVmVuZG9yfT09IjA1YWMiLCBBVFRSe2lkUHJvZHVjdH09PSIxMzM4IiwgT1dORVI9InVzYm11eCIsIEdST1VQPSJwbHVnZGV2IiwgTU9ERT0iMDY2MCIKCg==" | base64 -d | sudo tee /usr/lib/udev/rules.d/39-libirecovery.rules >/dev/null
else
echo "-4: Linux Distro not supported!"
exit -4
fi
else
if [[ -f "/etc/fedora-release" ]]
then
echo "Fedora Detected!"
sudo dnf install -y usbmuxd udev systemd ca-certificates >/dev/null 2>/dev/null
sudo ln -sf /etc/pki/tls/certs/ca-bundle.crt /etc/pki/tls/certs/ca-certificates.crt >/dev/null 2>/dev/null
sudo systemctl enable --now systemd-udevd usbmuxd >/dev/null 2>/dev/null
echo "QUNUSU9OPT0iYWRkIiwgU1VCU1lTVEVNPT0idXNiIiwgQVRUUntpZFZlbmRvcn09PSIwNWFjIiwgQVRUUntpZFByb2R1Y3R9PT0iMTIyWzI3XXwxMjhbMC0zXSIsIE9XTkVSPSJyb290IiwgR1JPVVA9InVzYm11eGQiLCBNT0RFPSIwNjYwIiwgVEFHKz0idWFjY2VzcyIKCkFDVElPTj09ImFkZCIsIFNVQlNZU1RFTT09InVzYiIsIEFUVFJ7aWRWZW5kb3J9PT0iMDVhYyIsIEFUVFJ7aWRQcm9kdWN0fT09IjEzMzgiLCBPV05FUj0icm9vdCIsIEdST1VQPSJ1c2JtdXhkIiwgTU9ERT0iMDY2MCIsIFRBRys9InVhY2Nlc3MiCgoK" | base64 -d | sudo tee /usr/lib/udev/rules.d/39-libirecovery.rules >/dev/null 2>/dev/null
fi
fi
sudo chown root:root /usr/lib/udev/rules.d/39-libirecovery.rules >/dev/null 2>/dev/null
sudo chmod 0644 /usr/lib/udev/rules.d/39-libirecovery.rules >/dev/null 2>/dev/null
sudo udevadm control --reload-rules >/dev/null 2>/dev/null
echo "Done!"
echo "Please unplug and replug your iDevice!"