Giter VIP home page Giter VIP logo

jitterbug's Introduction

Jitterbug

Build

This app uses libimobiledevice 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

Installation

AltStore 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.

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 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. Rename CodeSigning.xcconfig.sample to CodeSigning.xcconfig and edit it, filling in the information detailed in the next section.
  3. Open Jitterbug.xcodeproj.
  4. Build and run "Jitterbug" or "JitterbugLite" on your iOS device.

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. Jitterbug Lite is a build target that does not require Network Extensions and can be built with a free account.

Because Apple requires unique bundle IDs for developers, you need to choose a unique bundle ID prefix and fill it in CodeSigning.xcconfig.

If you have a paid account, you can find DEVELOPMENT_TEAM by going here. If you have a free account, you can find your Team ID by creating a new Xcode project for iOS, selecting your team under Signing & Capabilities, and looking for the value of DEVELOPMENT_TEAM build setting.

Building JitterbugPair

The software to generate a pairing token is available for macOS, Linux, and Windows.

macOS

  1. Make sure you cloned all submodules with git submodule update --init --recursive
  2. Install Homebrew 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
  5. The built executable is in build/jitterbugpair. You can install it with meson install.

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

  1. Install MSYS 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
  3. Clone the repository: git clone --recursive https://github.com/osy/Jitterbug.git
  4. Close the MSYS shell and open the MingW64 shell.
  5. Open the cloned repository: cd Jitterbug
  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.

Troubleshooting

Mount fails with "ImageMountFailed"

You may have already mounted the developer image. Try launching an app.

Launch fails with "Failed to get the task for process xxx"

This application does not have the get-task-allow entitlement. Or this is not an development app.

jitterbug's People

Contributors

jkcoxson avatar js-john avatar luken11 avatar osy avatar xj-zhang-th avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jitterbug's Issues

Can’t Install / not working on iphone6 / IOS 12.5.5?

I tried to install in a few different ways. But it either wouldn’t fully Install with the lite version. Or it would install but when I tried to open it would crash.

I did finally get 1 error message , that seemed like it’s not supported on my IOS version?

Jitterbug doesn’t seem to be enabling JIT for UTM on iPad OS15.4

Has anyone been able to get Jitterbug to enable JIT and open UTM on iPad with iPad OS15.4? Worked fine till upgraded to OS15.4 now won’t mount either with VPN tunnel on same device or tethered device via Wifi.

I downloaded and installed the new DeveloperDiskImages for OS15.4 from Xcode 13.3 beta 1 and still will not work.

Hopefully someone else has gotten to work.

Thanks!

VPN tunnel failed to start

Primary: iPad Pro 3rd generation
iOS 15.0
latest version of Jitterbug
built using paid developer account with Xcode 13

Secondary: iPhone 13 Pro Max
iOS 15.02
Latest version of Jitterbug
built using paid developer account with Xcode13

I transferred the mobile device pairing file that was generated for my secondary device and copied it to my primary device. All Good there. When I bring up Jitterbug it sees my secondary device.

Next is what I don’t understand. Does the app coming from my secondary device HAVE to be installed on my secondary device? Or, can I not get it from the download files within my Files app? I don’t see anyway to get at it, except if the app was install on the secondary device.

Assuming you can get the app on the primary it says (I assume run it, in my case UTM), to click on the developerDisk…dmg
it is not clickable. I believe I read it right that those to files (signature and dmg) needed to go on the primary. Will it become available when the app is selected.

And the crux of the issue. How to get the tunnel to work??? The network entitlement was built into the Jitterbug build.
So I don’t know what is wrong as the dialog box just says, VPN tunnel failed to start.

ImgMountFailed keeps happening!

EA845092-E52B-4BFA-9D9D-87E3DF1A409D
I keep trying to launch DolphiniOS with JIT from my iPhone with Jitterbug, but nothing works! I used the 15.0 dev disk and it always says image mount failed. And yes I know about the faq but it has the most unhelpful answer to this question.

The devices I am using is an iPad Pro (11”) A12z (Secondary Device) & an iPhone XR (Primary Jitterbug Device)

Use VPN while on cell data

Currently launching apps via VPN only works while connected to a WiFi network.

It should be possible to get it to work when on cell data by turning on Personal Hotspot and connecting to 172.20.10.1. (I've confirmed that you don't need any devices connected by running a local HTTP server with Pythonista.)

Entering the IP address manually doesn't work, presumably because Jutterbug doesn't try to connect via the VPN.

On iOS 15, Always pop up select pairing

When I selected local device, device connected to vpn successfully, and pop up to select pairing, I selected mobiledevicepairing file, then pop up closed, page show Not paired. Thx

A way to stop the VPN tunnel from the app

Thanks for the app!

Self-debugging starts a VPN tunnel but apparently never stops it.
Unfortunately VPN interferes with things like AirDrop and Universal Control.

It would be nice if there was a "Stop/Unpair" button ("Clear Pairing" doesn't stop the VPN)
Or stopping the tunnel automatically when the debugged app is closed (if there's a way to detect that)
without having to go into VPN settings each time.

Applications will become unresponsive and task error

When I use Jitterbug to turn on UTM or any other software, this application will become unresponsive. After returning to Jitterbug, it will prompt me with the following error.
IMG_0001(20220914-163921)
I've retried many methods but none have worked. Here's how my system is:

ipadOS: 15.6.1
Jitterbug version: 1.3.0
UTM version: 4.0.4

I would appreciate it if you could solve my problem.

Using already existing VPN protocols for Self-launching

Hi! I was wondering if it would be possible to use an already existing VPN protocol (like OpenVPN or WireGuard) so that the device can debug itself through an already existing app, without Jitterbug needing the "Network Extensions" entitlement.

[Feature Request] Allow installing developer-signed IPAs on self

It would be really cool if Jitterbug could install a pre-develop-signed IPA on the device, allowing for OTA distribution of develop-signed (not ad-hoc) IPAs. This is necessary in order to distribute Dolphin OTA as signing for normal ad-hoc strips the debuggable entitlement.

Failing to communicate when resigned with paid account

I’ve have tried the free account method with not luck as it always would fail to mount and launch. Renewed my paid account and loaded via altstore and now it fails to “failed to communicate with device. Make sure the device is connected and unlocked and that the pairing is valid”

any suggestions on getting this up and running because I really would love to get UTM back up and working and also to try it with the new iPad Pro

Self launching app

Would it be possible for the device to connect to itself and launch a "jit" app?

Network Entitlement Extension

29566717-2D6E-411E-A227-A9BA33877DC2

I have a paid developer account threw udid registrations and when I sign the app with ipa signer or the signulous app im unable to use the vpn tunnel feature with Jitterbug and according to the screenshot when I signed the jitterbug IPA the network entitlement extension is included so a little help would be appreciated so I can use JIT with rocket league sideswipe and my ppsspp emulator (I know everyone recommends to use signtools but I'm not competent enough to understand how to use it for jitterbug and don't have access to a Mac Or windows to install altstore and why would I to anyway when I have a signing service) and I really want to use this like so much I literary made a github just to inquire about this issue I'm going threw) also I been going back and forth with udid customer support about the issue with Jitterbug and they send me a email with another entitlement I might need to get this functional I included a screenshot cause your the developer u would know better then anybody if that entitlement they told me was needed or not....
D13843F3-26DD-4B99-806A-DE12EAF0007C

[Question] Is disk image and iOS version have to be the same

In readme.md
"Go here 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."

I installed Jitterbug app on iPhone with iOS 14.6 and try to start the UTM app on iPad with iOS 14.6. An error was reported: Unable to mount
The latest disk image version available is iOS 14.5

Jitterbug

UTM已经通过Altstore安装完毕,使用的是付费开发者账号签名。安装Jitterbug时出现Non-developer Apple IDs are limited to creating 10 App IDs per week.错误。我确认是用付费开发者账号

Debugging session expires shortly after using the vpn trick

When ever I debug DolphiniOS with the vpn self debugging in 1.1.0, it works but shortly after (about 30 seconds) the session expires and the game crashes. I’ve re installed dolphin and jitterbug multiple time and it still doesn’t work. Using a normal debugging session with Libimobiledevice works fine without crashes.

ImageMountFailed

Why did I always have such an error prompt for opening the software for the first time? My device installs the system of Jitterbug's iPhone running ios 14.6, and uses Jit permission ipad os14.6.

[Feature request] Add a 1-click launcher

First of all, many thanks for putting this together. What a wonderfully clever hack.

What I think would further improve the app are “1-click launcher” actions. We can already favorite devices and apps, but this would go one step further. For each action, you would pre-define:

  1. Device
  2. Pairing record
  3. Developer Disk image
  4. App to launch

This would allow a lot smoother and quicker launching of the most often-used apps without the waiting for listing installed apps, pairing, and manual selection of the disk image. Even better if these actions could then be launched via x-callback-url or Shortcuts.

jitterbugpair not generating mobiledevicepairing/Untrusted Developer

I followed the instructions up until using jitterbugpair on my device, this brings up a pop-up on device to Trust This PC. After selecting trust, the UDID.mobiledevicepairing file does not generate. Running the .exe again does nothing. Clicking on the Jitterbug app on device brings a popup stating Untrusted Developer.

Where do I go from here?

Could not find matching provisioning profile

This is the same as issue #15 but the person who created that issue closed it with no context. I'm having the same issue where I get this error when signing it with AltStore using my developer account.

How do I use VPN tunnel ?

Hi,
I was able to successfully configure the tool to play Wii games on iPad at full speed. But I have a paid developer account and I wanted to know how I can configure the VPN tunnel ?
Do I just use the generated file from my Mac on the SAME device instead of secondary ?
Thanks in advance.

[Feature Request] use upnp for jit enabling

I've found a program that uses the jitterbug pair file system and utilizes upnp to sign altstore to the idevice. I am wondering if this can be utilized for non-paid developers to do on-device debugger attaching via libimobiledevice library jitterbug uses.

the only problem with this is that upnp is not the same on all routers and some routers have it disabled. For example, mine allows upnp but only permanent upnp requests and this repo uses timed upnp. from what I hear tho is you can set the time limit to 0 and it would work.

repo in question that could be utilized maybe: https://github.com/NyaMisty/AltServer-Linux

Launch app with JIT on same device

Hello. Looking at the code, it seems to me that it should be possible to launch an app with JIT on the same device instead of having a secondary device. libmobiledevice supports detached debug mode which doesn't need a daemon to be tethered to the JIT app. Is there a technical limitation that I'm missing? Thanks

No mac os tutorial?

I just cannot make it work using mac os. There is literally no tutorial available on internet for mac users. Please help.

Udid registrations

U told me to have udid registrations get in contact with u and they willing to talk with you but u never responded back with your email maybe cause u closed the issue so u didn't see it so I'm just going to give u thier email [email protected]
so u can be able to contact them so they can properly fix the signing service so jitterbug can be signed correctly and have the vpn tunnel avaliable for udid developers thank you and sorry for making another ticket I just want this issue to get fixed cause udid is saying when Im signing the app the network entitlement is there so they don't know why the vpn tunnel is not working for udid users

1.2.0 Failed to communicate with device.

1.2.0 Jitterbug Lite, installed by altstore.

Tried and repaired many times, but still the same message:
Failed to communicate with device. Make sure the device is connected and unlocked and that the pairing is valid.

I used it on one device and want to run UTM.

Please, help me.

"Failed to start application"

-Signed the iPA with iOS App Signer
-Installed it with Xcode and Apple Configurator 2
-Changed the App ID Configuration (Network Extension, Personal VPN)
-Used the Apple Developer Certificate
-Used the Apple Developer Provisioning File
-Enabled VPN
-Mounted DeveloperDiskImage, and DeveloperDiskImage.signature
-Have mobiledevicepairing
-------Whenever to try to start and Application-------
-"Failed to start application"
-Tried installing again, but won't work
Strange thing is, that I signed and installed IPA same way last time and worked, but this time, it won't work!!
Is there any solution?
-iPadOS 15.0.2
-iPad Pro M1, 128GB 8GB RAM

iOS 15?

It seems to connect to VPN ok. But does not Mount support files. I’ve tried the iOS 15 support files as well, still won’t mount

"Jitterbug" must be updated by the developer before "Jitterbug Local Device Tunnel" can be connected.

"Jitterbug" must be updated by the developer before "Jitterbug Local Device Tunnel" can be connected.
1.identifer has modify;
2. Error shows“Embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier.”
So I have enable:"build phases->embed app extentions- copy only when installing"

APP:Jitterbug V1.3.1,Both Personal VPN & network extentions has enable.
Xcode version: 14.1 beta 3/ 14.0.1;
IOS/IPAD OS:14.0.1/16.0/16.1;
IMG_0077

Cannot get the pairing key to work

I am using mac os and trying to pair my iPhone 13 ios 15.2 with my secondary device iPad pro 2020 15.1. Using developer disk image 15.0
Opened command terminal in mac os,
It generated the key
I copied the text from terminal and saved it as it is and airdropped to my iPhone, it opened it in jitterbug but when I try to pair my iPad the app crashes immediately. 2 days I have spent but cannot get it working. Any help?

Local VPN tunneling

Is there anything in the works to get single device VPN tunneling back working again on a paid developer account?

Failure to install via AltStore

When attempting to install Jitterbug using AltStore, the error message "Could not find matching provisioning profile." pops up.

I am using an iPhone 11 Pro Max on iOS 14.4, with AltStore 1.4.6b

No Files Found

Hi I am facing an issue where it states no files found, even though I have added the two files for 14.5. I show them in the video. I am currently on iOS 14.6. Is this possibly related to the fact I am sideloading with AppDb. Thanks! Here is the link: https://imgur.com/a/IN8UF0c

VPN over Cellular

Not sure if this has been covered yet, I’m successful doing the VPN trick over wifi but unable to make it work over cellular.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.