I created this guide mainly because I encountered quite a few errors on the way to get an AltServer running on a Linux system.
During my research I found out that I'm not alone and now I want to collect my experiences here consudilated. This was tested on debian and arch based systems.
First of all, it is important to find out what kind of system architecture AltServer should be installed on.
Just open a terminal and type in uname -m
You don't need to built anything, just use the latest pre-built AltServer-Linux release.
For example, if your system is a x86_64 architecture use AltServer-x86_64.
Personally, AltServer Linux ShellScript is a wonderful solution as it guides you through the process to install the AltStore app correctly on the apple device. So this step is optional, if you decide against AltServer Linux ShellScript, then take a closer look at the AltServer syntax.
At first you need to install needed dependencies:
sudo apt-get install usbmuxd libimobiledevice6 libimobiledevice-utils wget curl libavahi-compat-libdnssd-dev
(of course, if you are using for example pacman as a package manager, you should use sudo pacman -S [...] instead.
Let's go into the home directory:
cd ~
Clone the repository:
git clone https://github.com/powenn/AltServer-Linux-ShellScript
Now move the AltServer file which was previously downloaded into the new AltServer-Linux-ShellScript folder and rename it to AltServer. Lets assume, the file is called AltServer-x86_64:
mv /path/to/AltServer-x86_64 ./AltServer-Linux-ShellScript/AltServer
This is a good point to create a symlink so we can run AltServer by just typing the name AltServer in terminal:
ln -s ./AltServer-Linux-ShellScript/AltServer /bin/AltServer
netmuxd is needed later to enable communication between AltServer and AltStore wirelessly.
If not already, go into the home directory:
cd ~
Visit the latest releases of netmuxd. Again, choose the corret architecture (x86_64 or armv7) and download the correct one.
Personally, I keep everything close together, so let's move the netmuxd file to the AltServer-Linux-ShellScript folder and rename the file at the same time. Let's assume, you downloaded netmuxd-x86_64:
mv /path/to/netmuxd-x86_64 ./AltServer-Linux-ShellScript/netmuxd
Again, i would create a symlink to keep things simple:
ln -s ./AltServer-Linux-ShellScript/netmuxd /bin/netmuxd
To pair the apple device with the linux system, you have to use an usb-cable. It will be the first and last time you have to use a cable, so don't worry. The rest will happen over your wireless network.
- Start
usbmuxd:sudo systemctl start usbmuxd(just to be sure, check the status withsudo systemctl status usbmuxd) - connect the apple device with the usb-cable to your linux system
- type
idevicepair pair
3.1. When the device is not found disconnect the usb-cable, type sudo systemctl restart usbmuxd and try step 2 and 3 again
3.2. When you encounter again error message take a look in the /var/lib/lockdown/ folder. If there is already a UUID.plist file, delete it like sudo rm /var/lib/lockdown/UUID.plist
-
check the opairing with
ideviceinfo -
This one is important: Kill the
usbmuxdprocess. Check the process id ofusbmuxdwithps -a | grep usbmuxdand dosudo kill -9 'USBMUXD PID'. Stopping the deamon is not enough (in my case). If you do not want to pair any other apple device you can also disable the servicesudo systemctl disable usbmuxd. If you don't kill theusbmuxdprocess you will get heartbeat error messages withnetmuxdand the wireless connection will not work. -
When everything is done you should check
ls /var/lib/lockdown/as there should be a new createdUUID.plistfile, whereUUIDis the ID of your paired apple device.
Setting up netmuxd is pretty simple, as with symlinked everything. So sudo netmuxd should be enough. You don't need to add any arguments to this command or use screen like it is explained here.
Someday I'll finish this