-
Notifications
You must be signed in to change notification settings - Fork 92
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
34 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,38 +2,64 @@ Jitterbug | |
========= | ||
[![Build](https://github.com/osy/Jitterbug/workflows/Build/badge.svg?branch=main&event=push)][1] | ||
|
||
This app uses [libimobiledevice][2] and WiFi pairing to use one iOS device to launch apps with the debugger on another iOS device. This "tethered" launch allows JIT to work on the second iOS device. | ||
This app uses [libimobiledevice][2] and WiFi pairing to use one iOS device to launch apps with the debugger on another iOS device. This "tethered" launch allows JIT to work on the second iOS device. It can also create a VPN tunnel to allow a device to debug itself. | ||
|
||
## Download | ||
|
||
[Go to Releases](https://github.com/osy/Jitterbug/releases) | ||
|
||
## Building Jitterbug | ||
## Installation | ||
|
||
[AltStore][6] is the preferred way to install Jitterbug. You can also sideload the IPA through other means or install it on a jailbroken device using [AppSync Unified][7]. | ||
|
||
## Pairing | ||
|
||
Install Jitterbug on your *primary* device and the app you wish to launch on your *secondary* device. | ||
|
||
On macOS and Windows, make sure you have iTunes installed. On Linux, make sure `usbmuxd` is installed (`sudo apt install usbmuxd`). | ||
|
||
Run `jitterbugpair` with your secondary device plugged in to generate `YOUR-UDID.mobiledevicepairing`. You need to have a passcode enabled and the device should be unlocked. The first time you run the tool, you will get a prompt for your passcode. Type it in and keep the screen on and unlocked and run the tool again to generate the pairing. | ||
|
||
## Running | ||
|
||
Use AirDrop, email, or another means to copy the `.mobiledevicepairing` to your primary iOS device. When you open it, it should launch Jitterbug and import automatically. | ||
|
||
Download the [Developer Image][3] for the iOS version running on your *secondary* iOS device (or the closest version if your version is not listed) and copy both `DeveloperDiskImage.dmg` and `DeveloperDiskImage.dmg.signature` to your *primary* iOS device. Open Jitterbug, go to "Support Files" and import both files. | ||
|
||
Open Jitterbug, go to "Launcher", and look for your secondary iOS device to show up. If it is not showing up, make sure both devices are connected to the same network (tethering from primary to secondary OR secondary to primary is OK). Select the device and choose the pairing file. Then choose the app to launch and choose the `DeveloperDiskImage.dmg` file. | ||
|
||
## Development | ||
|
||
### Building Jitterbug | ||
|
||
1. Make sure you cloned all submodules with `git submodule update --init --recursive` | ||
2. Open `Jitterbug.xcodeproj` and change the bundle id to a unique value registered to your Apple Developer account. | ||
3. Build and run "Jitterbug" on your iOS device. | ||
|
||
## Building JitterbugPair | ||
#### Entitlements | ||
|
||
Jitterbug can create a VPN tunnel so a device can debug itself. This requires the "Network Extensions" entitlement which is not available to free developer accounts. If you have a free account, you will get a code signing error when trying to build. To fix it, delete the "Network Extensions" capability from the "Signing & Capabilities" tab for both the "Jitterbug" and "JitterbugTunnel" targets. You will not be able to use Jitterbug to launch apps on the same device but you can still use it to launch apps on a second device. | ||
|
||
### Building JitterbugPair | ||
|
||
The software to generate a pairing token is available for macOS, Linux, and Windows. | ||
|
||
### macOS | ||
#### macOS | ||
|
||
1. Make sure you cloned all submodules with `git submodule update --init --recursive` | ||
2. Install [Homebrew][4] if you have not already. | ||
3. Install dependencies: `brew install meson [email protected] libusbmuxd libimobiledevice pkg-config` | ||
4. Build with `PKG_CONFIG_PATH="/usr/local/opt/[email protected]/lib/pkgconfig" meson build && cd build && meson compile` | ||
4. The built executable is in `build/jitterbugpair`. You can install it with `meson install`. | ||
|
||
### Ubuntu 20.04 | ||
#### Ubuntu 20.04 | ||
|
||
1. Make sure you cloned all submodules with `git submodule update --init --recursive` | ||
2. Install dependencies: `sudo apt install meson libgcrypt-dev libusbmuxd-dev libimobiledevice-dev libunistring-dev` | ||
3. Build with `meson build && cd build && ninja` | ||
4. The built executable is in `build/jitterbugpair`. You can install it with `sudo ninja install`. | ||
|
||
### Windows | ||
#### Windows | ||
|
||
1. Install [MSYS][5] and open MSYS shell. | ||
2. Install dependencies: `pacman -Syy git mingw64/mingw-w64-x86_64-gcc mingw64/mingw-w64-x86_64-pkg-config mingw64/mingw-w64-x86_64-meson mingw64/mingw-w64-x86_64-libusbmuxd mingw64/mingw-w64-x86_64-libimobiledevice` | ||
|
@@ -43,31 +69,6 @@ The software to generate a pairing token is available for macOS, Linux, and Wind | |
6. Build with `meson build && cd build && meson compile` | ||
7. The built executable is `build/jitterbugpair.exe` and `build/libwinpthread-1.dll`. Both files needs to be in the same directory to run. | ||
|
||
## Pairing | ||
|
||
On macOS and Windows, make sure you have iTunes installed. On Linux, make sure `usbmuxd` is installed (`sudo apt install usbmuxd`). | ||
|
||
### macOS 11 | ||
|
||
Jitterbug is also available for macOS 11 and higher. Run the app and connect your device via USB. Select the device and press the export button on the top toolbar to export `YOUR-UDID.mobiledevicepairing`. | ||
|
||
### Other Systems | ||
|
||
Run `jitterbugpair` with your device plugged in to generate `YOUR-UDID.mobiledevicepairing`. You need to have a passcode enabled and the device should be unlocked. The first time you run the tool, you will get a prompt for your passcode. Type it in and keep the screen on and unlocked and run the tool again to generate the pairing. | ||
|
||
## Developer Image | ||
|
||
Go [here][3] and download the ZIP corresponding to the closest iOS version to the target device. Unzip the download and you should get `DeveloperDiskImage.dmg` and `DeveloperDiskImage.dmg.signature`. | ||
|
||
## Running | ||
|
||
1. AirDrop (or email or another means) `YOUR-UDID.mobiledevicepairing`, `DeveloperDiskImage.dmg`, and `DeveloperDiskImage.dmg.signature` to the device with Jitterbug installed. | ||
2. Open Jitterbug and under "Pairings" import your ".mobiledevicepairing". Under "Support Files" import both the ".dmg" and the ".dmg.signature". | ||
3. In "Launcher", wait for the target device to appear. Make sure the target device is connected to the same WiFi and is unlocked. | ||
4. Choose the target device and choose your ".mobiledevicepairing". (Tap "Pair" if the chooser does not appear automatically.) | ||
5. Tap the app you wish to launch with JIT enabled. | ||
6. Choose your "DeveloperDiskImage.dmg" if this is the first time launching an app on this device. (Tap "Mount" if the chooser does not appear automatically.) | ||
|
||
## Troubleshooting | ||
|
||
### Mount fails with "ImageMountFailed" | ||
|
@@ -83,3 +84,5 @@ This application does not have the `get-task-allow` entitlement. Or this is not | |
[3]: https://github.com/xushuduo/Xcode-iOS-Developer-Disk-Image/releases | ||
[4]: https://brew.sh | ||
[5]: https://www.msys2.org | ||
[6]: https://altstore.io | ||
[7]: https://cydia.akemi.ai/?page/net.angelxwind.appsyncunified |