Skip to content

Repository files navigation

Logo JITserver

A cross-platform GUI application that enables JIT for iOS devices.

Features

  • Device Management: Automatically discover and connect to iOS devices via USB
  • JIT Enabling: Exposing developer mode, mounting Developer Disk Image, attaching debugger, and running scripts (iOS 26 TXM)
  • App Integration: Support to enable JIT for popular apps (even on iOS 26+) including:

Universal script:

  • Amethyst
  • MeloNX
  • MeloCafé
  • Manic EMU
  • DukeX

Alternate:

  • UTM
  • DolphiniOS
  • Flycast-iOS 26 fork
  • ARMSX2 iOS

App-specific:

  • Geode
  • maciOS

Install/Build Prerequisites

  • macOS/Linux/Windows: Must have usbmuxd installed
  • iOS/iPadOS Device: Must have a passcode set and be connected via USB
  • Rust: Required for building from source

Usage

Installation Instructions

macOS

  1. Download JITserver for macOS
  2. Open the Disk Image and drag JITserver to Applications

Windows

  1. Install Apple Devices from the Microsoft Store or iTunes from Apple's website
  2. Download JITserver for Windows and save it to a memorable location

Linux

  1. Install usbmuxd:
    sudo apt install -y usbmuxd
  2. Download JITserver for Linux for your machine's architecture and save it to a memorable location:
  3. Make the downloaded file executable

Prerequisites for JIT

Before enabling JIT, make sure you have:

  1. Sideloaded an app with get-task-allow (can be done with SideStore or a developer [not enterprise] certificate + signer)
  2. Enabled Developer Mode on your iOS/iPadOS device (found in Settings → Privacy & Security after sideloading an app, required on iOS 17+)

App Setup

  1. Connect your iOS device via USB to your computer, or over Local Network if on the same Wi-Fi and previously connected
  2. Launch the application - it will automatically scan for connected devices
  3. Select your device from the dropdown menu if not already selected

Enabling JIT

  1. Open JITserver and select your device from the dropdown menu
  2. Connect your device to your computer via USB cable if it doesn't already appear
    • If prompted, select Trust and enter your passcode
  3. Enable JIT for your app via launching and attaching to the app or attaching to a listed PID (you can search for the app's name). You can also attach+run the selected script.

Building from Source

  1. Clone the repository:

    git clone https://github.com/CelloSerenity/JITserver
    cd JITserver
  2. Build the application:

    cargo build --release
  3. Run the application:

    cargo run --release

Dependencies

This project uses several key dependencies:

  • idevice: Core iOS device communication library
  • egui: Immediate mode GUI framework
  • tokio: Asynchronous runtime

For a complete list of dependencies, see Cargo.toml.

Troubleshooting

Device Not Detected

  • Ensure your iOS device is connected via USB
  • Check that the device is trusted on your computer
  • Try disconnecting and reconnecting the device

Contributing

Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.

License

This project is licensed under the AGPL-3.0 License for non-commercial use. If you wish to use this code commercially, you must obtain a written and explicit license from CelloSerenity.

Acknowledgments

  • Built with the idevice library for iOS device communication
  • GUI powered by egui
  • Heavily based on StikDebug's JIT implementation

About

Desktop JIT enabler for iOS.

Resources

Stars

15 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages