Skip to content

A program to activate JIT across the far reaches of the internet, but for iOS 17.4+

License

Notifications You must be signed in to change notification settings

jkcoxson/JitStreamer-EB

Repository files navigation

JitStreamer EB

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.

EB

What is EB? Electric Boogaloo. r/outoftheloop

Building

cargo build --release

It's not that deep.

Running

  1. Start netmuxd
  2. Install the pip requirements
pip install -r requirements.txt
  1. Start tunneld-rs or tunneld

  2. Run the program

./target/release/jitstreamer-eb

OR

just run
  1. Start the Wireguard peer
sudo wg-quick up jitstreamer
  1. ???
  2. Profit

Variables

JitStreamer reads the following environment variables:

  • RUNNER_COUNT - How many Python runners to spawn, defaults to 5
  • ALLOW_REGISTRATION - Allows clients to register using the /register endpoint, defaults to 1
  • JITSTREAMER_PORT - The port to bind to, defaults to 9172
  • WIREGUARD_CONFIG_NAME - The name of the Wireguard interface, defaults to jitstreamer
  • WIREGUARD_PORT - The port that Wireguard listens on, defaults to 51869
  • WIREGUARD_SERVER_ADDRESS - The address the server binds to, defaults to fd00::
  • WIREGUARD_ENDPOINT - The endpoint that client configs point to, defaults to jitstreamer.jkcoxson.com
  • WIREGUARD_SERVER_ALLOWED_IPS - The allowed IPs the server can bind to, defaults to fd00::/64

Custom VPN

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);

Docker

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.

  1. create a database
mkdir app
sqlite3 ./jitstreamer.db < ./src/sql/up.sql
  1. build docker
sudo docker build -t jitstreamer-eb .
  1. 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!!!

  1. clone the repo onto your home directory
sudo apt install git-all 
git clone
  1. go into the directory and run the script
cd JitStreamer-EB/
bash jitstreamer.sh
  1. 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
  2. if this docker container stops, you can start it up again in your home directory through

cd /JitStreamer-EB
sudo docker compose up -d

Additional methods of installation

Click this

License

[LICENSE.md]

Contributing

Please do. Pull requests will be accepted after passing cargo clippy.

Thanks

About

A program to activate JIT across the far reaches of the internet, but for iOS 17.4+

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published