The sequel that nobody wanted, but everyone needed.
JitStreamer is a program to activate JIT across the far reaches of the internet.
I authored the original JitStreamer a few years ago, but Apple has since changed how the protocol for debugging apps works. This program is a rewrite of that original program, while using the new protocol.
Simply put, this program takes a pairing file and returns a Wireguard configuration. That Wireguard configuration allows the device to interact with a server that will activate JIT on the device.
What is EB? Electric Boogaloo. r/outoftheloop
cargo build --release
It's not that deep.
- Start netmuxd
- Install the pip requirements
pip install -r requirements.txt
-
Start tunneld-rs or tunneld
-
Run the program
./target/release/jitstreamer-eb
OR
just run
- Start the Wireguard peer
sudo wg-quick up jitstreamer
- ???
- Profit
JitStreamer reads the following environment variables:
RUNNER_COUNT
- How many Python runners to spawn, defaults to5
ALLOW_REGISTRATION
- Allows clients to register using the/register
endpoint, defaults to1
JITSTREAMER_PORT
- The port to bind to, defaults to9172
WIREGUARD_CONFIG_NAME
- The name of the Wireguard interface, defaults tojitstreamer
WIREGUARD_PORT
- The port that Wireguard listens on, defaults to51869
WIREGUARD_SERVER_ADDRESS
- The address the server binds to, defaults tofd00::
WIREGUARD_ENDPOINT
- The endpoint that client configs point to, defaults tojitstreamer.jkcoxson.com
WIREGUARD_SERVER_ALLOWED_IPS
- The allowed IPs the server can bind to, defaults tofd00::/64
If you don't want to use the built-in Wireguard manager, because you either have your own VPN or want to use a different one, you'll have to manually register your clients.
Run the following SQL on the jitstreamer.db
sqlite file:
INSERT INTO DEVICES (udid, ip, last_used) VALUES ([udid], [ip], CURRENT_TIMESTAMP);
There's a nice dockerfile that contains a Wireguard server and JitStreamer server, all packaged and ready to go. It contains everything you need to run the server.
- create a database
mkdir app
sqlite3 ./jitstreamer.db < ./src/sql/up.sql
- build docker
sudo docker build -t jitstreamer-eb .
- run docker compose
sudo docker compose up -d
Alternative method:
just docker-build
just docker-run
Detailed Step by Step Docker Compose Guide
There is also a script that uses combines the commands from the Step by Step Docker Compose Guide, the steps to use it follow. IMPORTANT: THIS WILL ONLY WORK ON UBUNTU/DEBIAN!!!
- clone the repo onto your home directory
sudo apt install git-all
git clone
- go into the directory and run the script
cd JitStreamer-EB/
bash jitstreamer.sh
-
follow the instructions provided by the script
- use a pairing file you created on another pc (preferred), or create one through following this guide (currently not working in script :( *todo) (https://github.com/osy/Jitterbug)
- then you need to find the IP of your iPhone, you can see this through settings - wifi - i icon - ip address
-
if this docker container stops, you can start it up again in your home directory through
cd /JitStreamer-EB
sudo docker compose up -d
[LICENSE.md]
Please do. Pull requests will be accepted after passing cargo clippy.
- ny for the Python implementation
- pymobiledevice3