GNU General Public License v3.0

项目介绍

dreth/Altserver-docker 是一个托管在 GitHub 上的开源项目,主要使用 Shell 编写,采用 GNU General Public License v3.0 许可证,目前获得 83 个 Star、9 次 Fork。

仓库全名
dreth/Altserver-docker
开源许可证
GNU General Public License v3.0
Star 数
83
Fork 数
9
未关闭 Issue
9

README 摘要

Altserver-docker A dockerized version of AltServer-Linux with Wi-Fi sync capability. NOTE: I still keep track of this project as unfortunately it's the only way to have a reliable AltServer on Linux, however, as of iOS 18, it seems that AltServer is not open source and the upstream repo that AltServer-Linux tracks from is also unmaintained. Therefore, I would strongly recommend to switching to SideStore, which does…

完整内容见 GitHub 原始 README 或本页 。

常见问题

Altserver-docker 用什么语言开发?

主要使用 Shell 编写,采用 GNU General Public License v3.0 许可证,目前有 83 个 Star。

Altserver-docker 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 Altserver-docker 的源码?

可以直接克隆仓库:git clone https://github.com/dreth/Altserver-docker.git,默认分支为 main;安装与运行步骤见仓库 README。

Altserver-docker 最近还在维护吗?

仓库最近一次更新为 2024年10月20日,当前有 9 个未关闭 Issue;Star 数为 83,可作为社区活跃度的参考。

关于

A dockerized version of AltServer-Linux with Wi-Fi sync capability.

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
106
价值分
52
活跃状态
活跃

README

Altserver-docker

A dockerized version of AltServer-Linux with Wi-Fi sync capability.

NOTE: I still keep track of this project as unfortunately it’s the only way to have a reliable AltServer on Linux, however, as of iOS 18, it seems that AltServer is not open source and the upstream repo that AltServer-Linux tracks from is also unmaintained. Therefore, I would strongly recommend to switching to SideStore, which does not require an AltServer to run. Otherwise, your apps will likely become unverified over time.

Requirements

  • Docker
  • Avahi running on host system
  • usbmuxd NOT running on host system

Installation

Installing Docker (if not installed already)

Linux:

Option 1 (preferred): Docker Engine

Option 2: Docker Desktop

Windows:

Install WSL2 then use the Linux install instructions or install using Docker Desktop.

macOS:

Install using Docker Desktop.

Installing Avahi on Host System

Arch-based distros:
pacman -S avahi
Debian/Ubuntu-based distros:
apt install avahi-daemon
Fedora-based distros:
dnf install avahi
Enable and start the service using systemd:
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon

Stopping or removing usbmuxd from Host System

Stop and disable the service using systemd:
sudo systemctl stop usbmuxd
sudo systemctl disable usbmuxd
Arch-based distros:
pacman -R usbmuxd
Debian/Ubuntu-based distros:
apt remove usbmuxd
Fedora-based distros:
dnf remove usbmuxd

To start up the application, you can run:

docker compose up -d

Or optionally if you’d like to build it yourself, modify the docker-compose.yml, uncomment the build config and run the docker-compose stack with the optional build flag:

docker compose up -d --build

Run Using docker run

Just run run.sh, or manually in your terminal:

docker build . -t altserver-docker && \
docker stop altserver || true && \
docker rm altserver || true && \
sudo docker run -d \
  -v "./lib:/root/.config/Provision/lib" \
  -v "./logs:/altserver/logs" \
  -v "./bin:/altserver/bin" \
  -v "/dev/bus/usb:/dev/bus/usb" \
  -v "/var/lib/lockdown:/var/lib/lockdown" \
  -v "/var/run:/var/run" \
  -v "/sys/fs/cgroup:/sys/fs/cgroup:ro" \
  --name altserver \
  --network host \
  --privileged \
  altserver-docker 

Install AltStore on iOS Device

  1. Make sure you have your Device UDID (can be found using this guide).

  2. Run this command to install AltStore to your device:

docker exec -it altserver /altserver/bin/AltServer -u "<UDID>" -a "<Apple ID>" -p "<Password>" /altserver/bin/AltStore.ipa

NOTE: Only tested with Docker running on Linux. YMMV when running Docker on other operating systems.

Logs

Logs will be stored in the directory where the container is ran inside ./logs

Optional environment variables

Overriding architectures for libraries and binaries

It’s possible to override which architecture of altserver, netmuxd, anisette-server and provision libraries (for anisette) are downloaded by setting the following environment variables in the docker compose file:

  environment:
    - OVERRIDE_ALTSERVER_ARCH=x86_64
    - OVERRIDE_NETMUXD_ARCH=x86_64
    - OVERRIDE_ANISETTE_ARCH=x86_64
    - OVERRIDE_PROVISION_LIBS_ARCH=x86_64

or alternatively adding them in the docker run command before the image name:

  -e OVERRIDE_ALTSERVER_ARCH=x86_64 \
  -e OVERRIDE_NETMUXD_ARCH=x86_64 \
  -e OVERRIDE_ANISETTE_ARCH=x86_64 \
  -e OVERRIDE_PROVISION_LIBS_ARCH=x86_64 \

You can check for which architectures are available by checking the releases of each project:

  • AltServer-Linux
  • netmuxd
  • Provision (this is the anisette-server)
  • The libraries are pulled from the apple music android apk, so the only available options are arm64-v8a, armeabi-v7a, x86, x86_64

Overriding whether provision libraries are decompressed from the repo or downloaded

It’s possible to allow provision to download the libraries it needs from the apple music android apk by setting the following environment variable in the docker compose file:

  environment:
    - ALLOW_PROVISION_TO_DOWNLOAD_LIBS=true

or alternatively adding it in the docker run command before the image name:

  -e ALLOW_PROVISION_TO_DOWNLOAD_LIBS=true \

When this variable is present, the libraries will be downloaded by provision, if it’s not present, the libraries will be decompressed from the repo.

Provision libraries

Provision automatically pulls the libraries it requires (libCoreADI.so and libstoreservicescore.so) from the apple music android apk, but this requires a 60+MB download it does automatically, so I decided to include these in the root of the repo already and have the docker-entrypoint.sh decompress them where Provision normally would. This is optional and can be overridden by setting the ALLOW_PROVISION_TO_DOWNLOAD_LIBS environment variable to true.

Updating lib.tar.xz

To update lib.tar.xz just run:

bash scripts/provision-deps-manual-download.sh

from the root of the repo.

Credits

I authored this repo but I did NOT author the projects it depends on. In particular:

And some other projects which inspired me to create this repo:

Contributing

Feel free to open an issue or a PR if you have any suggestions or improvements to this repo. I’m always open to feedback and contributions!

评论

暂无评论