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-ebOR
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 to5ALLOW_REGISTRATION- Allows clients to register using the/registerendpoint, defaults to1. Set to 2 to register using client's address instead of generating wireguard addressJITSTREAMER_PORT- The port to bind to, defaults to9172WIREGUARD_CONFIG_NAME- The name of the Wireguard interface, defaults tojitstreamerWIREGUARD_PORT- The port that Wireguard listens on, defaults to51869WIREGUARD_SERVER_ADDRESS- The address the server binds to, defaults tofd00::WIREGUARD_ENDPOINT- The endpoint that client configs point to, defaults tojitstreamer.jkcoxson.comWIREGUARD_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 -dAlternative method:
just docker-build
just docker-runDetailed 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