Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,17 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v3
uses: docker/build-push-action@v6
with:
push: true
tags: |
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
FROM debian:bookworm-slim
FROM debian:trixie-slim

ENV ALTSERVER_ANISETTE_SERVER="https://ani.sidestore.io/"

RUN apt-get update && apt-get install -y --no-install-recommends unzip ca-certificates usbmuxd libimobiledevice6 libimobiledevice-utils libavahi-compat-libdnssd-dev curl && \
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates usbmuxd libimobiledevice-1.0-6 libimobiledevice-utils curl && \
apt-get clean && \
rm -rf /var/lib/apt/lists/ && \
mkdir app
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ sudo apt install -y usbmuxd
curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh
sudo usermod -aG docker $USER
docker run --rm -it -v ${PWD}/:/mnt/ -v /var/run/usbmuxd:/var/run/usbmuxd ghcr.io/sidestore/altcon
docker run --rm -it -v ${PWD}/:/mnt/ -v /var/run/usbmuxd:/var/run/usbmuxd -v /var/lib/lockdown:/tmp/lockdown ghcr.io/sidestore/altcon
```

## Credit
Expand Down
55 changes: 36 additions & 19 deletions docker-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,37 +1,54 @@
#!/bin/bash

printf "\nPlug in your idevice and enter your passcode.\n"
printf "=============================================\n"
while ! idevicepair pair; do
sleep 1s
done
# Get udid
if ! idevice_id; then
echo "Plug the device in, then run the command!"
exit
fi

udid=$(idevice_id | awk '{print $1}')

# Check if we need to pair
printf "\nVerify if current mobiledevicepairing file is valid.\n"
printf "====================================================\n"
if ! idevicepair validate -u "${udid}"; then
printf "\nEnter your passcode.\n"
printf "====================\n"
while ! idevicepair pair; do
sleep 1s
done
fi

# Ensure UDID key is present in mobiledevicepairing before we copy to host through mount
printf "\nCopying mobiledevicepairing file for SideStore to current directory on host machine.\n"
printf "====================================================================================\n"
if ! grep -q "<key>UDID</key>" "/tmp/lockdown/${udid}.plist"; then
sed -i "/<\/dict>/ i\\
<key>UDID</key>\\
<string>$udid</string>" "/tmp/lockdown/${udid}.plist"
fi
cp --verbose /tmp/lockdown/${udid}.plist /mnt/${udid}.mobiledevicepairing

# Get SideStore ipa
printf "\nDownloading SideStore.ipa stable.\n"
printf "=================================\n"
curl --progress-bar -L -o SideStore.ipa $(curl -s https://api.github.com/repos/SideStore/SideStore/releases/latest | grep "browser_download_url.*SideStore.ipa*" | cut -d : -f 2,3 | tr -d \")
printf "\nDownloading SideStore.ipa.\n"
printf "==========================\n"
curl --progress-bar -L -o SideStore.ipa https://github.com/SideStore/SideStore/releases/latest/download/SideStore.ipa

# Get SideStore-Nightly ipa
printf "\nDownloading SideStore.ipa nightly.\n"
printf "=================================\n"
printf "\nDownloading SideStore-Nightly.ipa.\n"
printf "==================================\n"
curl --progress-bar -L -o SideStore-Nightly.ipa https://github.com/SideStore/SideStore/releases/download/nightly/SideStore.ipa

# Get udid
udid=$(idevice_id | awk '{print $1}')

# Generate mobiledevicepairing file
printf "\nGenerating mobiledevicepairing file for SideStore\n"
printf "===============================================================\n"
./jitterbugpair -c > /mnt/${udid}.mobiledevicepairing && echo "Check your home folder on your host/after your exit, and copy the ${udid}.mobiledevicepairing file to your iDevice."

# Explain how to install IPA and how to exit container
echo -e "\nTo install an IPA, run the following command and change \033[0;31mmyemail\033[0m and \033[0;31mmyapplepass\033[0m. The \033[0;32mUDID\033[0m is already correct:"
printf "=============================================================================================================\n"
echo -e "./AltServer -u \033[0;32m${udid}\033[0m -a \033[0;[email protected]\033[0m -p \033[0;31mmyapplepass\033[0m SideStore.ipa\n"
echo -e "\nDo note that if your password contains special characters like '@','$' '!'or a space."
echo "It may not work and you need to put backslashes before it"
echo "For example, if your password is 'azerty79!?', you need to write 'azerty79\!\?'"
printf "=============================================================================================\n"
printf "=====================================================================================\n"
echo -e "\nOnce you're finished, type: \033[0;35mexit\033[0m."
printf "=================================\n\n"

# Throw user into a shell
/bin/bash
9 changes: 1 addition & 8 deletions get-latest-files.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,10 @@
# Check if we're running 32-bit arm, x86 or else aarch64/x86_64
if [[ "$(uname -m)" = 'arm'* ]]; then
curl -L -o AltServer $(curl -s https://api.github.com/repos/NyaMisty/AltServer-Linux/releases/latest | grep "browser_download_url.*armv*" | cut -d : -f 2,3 | tr -d \")
curl -L -o jitterbugpair.zip $(curl -s https://api.github.com/repos/Dadoum/Jitterbug-cross/releases/latest | grep "browser_download_url.*armv*" | cut -d : -f 2,3 | tr -d \")
unzip jitterbugpair.zip
elif [[ "$(uname -m)" = 'i'* ]]; then
curl -L -o AltServer $(curl -s https://api.github.com/repos/NyaMisty/AltServer-Linux/releases/latest | grep "browser_download_url.*86" | grep -E '86\>' | cut -d : -f 2,3 | tr -d \")
curl -L -o jitterbugpair.zip $(curl -s https://api.github.com/repos/Dadoum/Jitterbug-cross/releases/latest | grep "browser_download_url.*86" | grep -E '86\>' | cut -d : -f 2,3 | tr -d \")
unzip jitterbugpair.zip
else
curl -L -o AltServer $(curl -s https://api.github.com/repos/NyaMisty/AltServer-Linux/releases/latest | grep "browser_download_url.*$(uname -m)*" | cut -d : -f 2,3 | tr -d \")
curl -L -o jitterbugpair.zip $(curl -s https://api.github.com/repos/Dadoum/Jitterbug-cross/releases/latest | grep "browser_download_url.*$(uname -m)*" | cut -d : -f 2,3 | tr -d \")
unzip jitterbugpair.zip
fi

rm jitterbugpair.zip
chmod +x AltServer jitterbugpair
chmod +x AltServer