AltStore icon indicating copy to clipboard operation
AltStore copied to clipboard

pymobiledevice3 update to 2.31.0 breaks enabling JIT

Open hscumbie opened this issue 2 years ago • 80 comments

After the new release of pymobiledevice3 (Version 2.31.0), JIT is now failing with error:

The process 'altjit' failed with code 1. Could not connect to device <udid>. The process 'python3' returned unexpected output. Error: No such command 'start-quic-tunnel'.

It seems pymobiledevice3 no longer supports the start-quic-tunnel command and now requires start-tunnel instead.

A workaround is to downgrade pymobiledevice3 to Version 2.30.0 by executing python3 -m pip install pymobiledevice3==2.30.0.

EDIT: Also, when downgrading pymobiledevice3, you'll also need to downgrade pip package construct to version 2.10.69 by executing python3 -m pip install construct==2.10.69. This fixes the stream.tell() issues.

EDIT 2: The CommandLineTools version of Python needs to be explicitly called when downgrading pymobiledevice3 and construct. This can be done by executing:

/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install pymobiledevice3==2.30.0 construct==2.10.69

EDIT 3: DolphiniOS users: Use the beta version of DolphiniOS (4.0.0b1 or greater) from AltStore to fix the random crashing issue when launching a game.

EDIT 4: Kudos to @orhid for finding a fix for KeyError: <Epoch.INITIAL: 0>. The solution is to force pip package qh3 to version 0.15.1 (qh3==0.15.1).

hscumbie avatar Nov 30 '23 14:11 hscumbie

Not working for me.

iPad OS 7.1.1

M2 Mac mini

Python 3.9.6

downgrade pymobiledevice3 to Version 2.30.0 got

Error Description
The process 'altjit' failed with code 1. The process 'python3' failed with code 1. stream.tell() failed

Failure Reason
The process 'altjit' failed with code 1. The process 'python3' failed with code 1. stream.tell() failed

Title
JIT could not be enabled for UTM SE.

Source Line
96

executableURL
file:///private/var/folders/jw/z5_wnf7j24zfv9pmm4xczk_m0000gn/T/AppTranslocation/A48E8316-48F6-4C49-BCFC-2B9EBBC5B280/d/AltServer.app/Contents/MacOS/altjit

exitCode
1

output
Mounting personalized developer disk...
❌ Unable to mount personalized Developer Disk.
The process 'python3' failed with code 1. stream.tell() failed

leixu2txtek avatar Dec 01 '23 10:12 leixu2txtek

A small detail I forgot to add. construct 2.10.70 breaks pymobiledevice3 2.30.0 (pymobiledevice3 2.31.0 was actually pushed to fix this issue with construct but broke other things). Downgrade construct by executing python3 -m pip install construct==2.10.69.

hscumbie avatar Dec 01 '23 13:12 hscumbie

A small detail I forgot to add. construct 2.10.70 breaks pymobiledevice3 2.30.0 (pymobiledevice3 2.31.0 was actually pushed to fix this issue with construct but broke other things). Downgrade construct by executing python3 -m pip install construct==2.10.69.

It's done. nice workaround.

leixu2txtek avatar Dec 02 '23 04:12 leixu2txtek

Still getting this error:

Source Line
61
executableURL
file:///Applications/AltServer.app/Contents/MacOS/altjit
exitCode
1
output
Usage: python -m pymobiledevice3 remote [OPTIONS] COMMAND [ARGS]...
Try 'python -m pymobiledevice3 remote -h' for help.
Error: No such command 'start-quic-tunnel'.
❌ Unable to enable JIT for AltStore on device 00008101-001164660E80001E.
Could not connect to device 00008101-001164660E80001E. The process 'python3' returned unexpected output. Error: No such command 'start-quic-tunnel'.

Tried downgrading construct first, then downgrading construct and pymobiledevice3, reinstalling AltServer on the M2 and on an iPhone 12 iOS 17.1.

JoshuaGOB avatar Dec 02 '23 04:12 JoshuaGOB

Still getting this error:

Source Line
61
executableURL
file:///Applications/AltServer.app/Contents/MacOS/altjit
exitCode
1
output
Usage: python -m pymobiledevice3 remote [OPTIONS] COMMAND [ARGS]...
Try 'python -m pymobiledevice3 remote -h' for help.
Error: No such command 'start-quic-tunnel'.
❌ Unable to enable JIT for AltStore on device 00008101-001164660E80001E.
Could not connect to device 00008101-001164660E80001E. The process 'python3' returned unexpected output. Error: No such command 'start-quic-tunnel'.

Tried downgrading construct first, then downgrading construct and pymobiledevice3, reinstalling AltServer on the M2 and on an iPhone 12 iOS 17.1.

Try executing which python3 and report back what it says. I think AltStore uses the Xcode version of Python and won’t work with user installed Python. This will tell us what your system is defaulting to when downgrading construct and pip.

hscumbie avatar Dec 02 '23 14:12 hscumbie

Hey i’m having the same problem and i’ve been following along and Im getting the exact error do I did the command which python3`` and i’m getting /usr/bin/python3 any help?

image

bryycee avatar Dec 03 '23 05:12 bryycee

Had the same issue yesterday, but went with @hscumbie workaround and now it fires fine.

python 3.9.6
construct 2.10.69
pymobiledevice3 2.30.0

Try using the versions above and restarting AltServer after you're done. Also make sure that you've updated the XCode Command Tools in the first place.

romanhmln avatar Dec 03 '23 10:12 romanhmln

what should i do then what commands do i run ?

bryycee avatar Dec 03 '23 19:12 bryycee

Make sure you have Xcode command line tools installed by running xcode-select —install (that’s a double minus btw idk why my iPhone won’t let me type it). The terminal response will either say they’re installed and up to date, or prompt an install. Also, see what Python binary your PATH variable is pointing to (echo $PATH). My issue was I installed Python 3.12 from python.org. If you run the “update shell” script that comes with the installer, it will alter your $PATH to now point to the python.org binary when executing python3 rather than the Xcode Command line python.

hscumbie avatar Dec 03 '23 19:12 hscumbie

Im still confused on what to do. I did all of this and I need specific instructions can you guys tell me what to run so I can fix this issue thanks

bryycee avatar Dec 04 '23 03:12 bryycee

or please add me on discord i need help ill pay anyone my user is fizzrld

bryycee avatar Dec 04 '23 04:12 bryycee

Hi! After downgrading I'm getting a new error. Can anyone help me out? image

FightMan01 avatar Dec 04 '23 10:12 FightMan01

Im still confused on what to do. I did all of this and I need specific instructions can you guys tell me what to run so I can fix this issue thanks

or please add me on discord i need help ill pay anyone my user is fizzrld

Try this in terminal: /Library/Developer/CommandLineTools/usr/bin/python3 --version. It should return Python 3.9.6, indicating that you have CommandLineTools Python installed. If this fails, try executing xcode-select --install and install the CommandLineTools.

Once you have verified the CommandLineTools Python is installed, now run:

/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install pymobiledevice3==2.30.0 construct==2.10.69

^ The above command explicitly calls the CommandLineTools version of Python that is used by AltServer for enabling JIT.

hscumbie avatar Dec 04 '23 15:12 hscumbie

Im still confused on what to do. I did all of this and I need specific instructions can you guys tell me what to run so I can fix this issue thanks

or please add me on discord i need help ill pay anyone my user is fizzrld

Try this in terminal: /Library/Developer/CommandLineTools/usr/bin/python3 --version. It should return Python 3.9.6, indicating that you have CommandLineTools Python installed. If this fails, try executing xcode-select --install and install the CommandLineTools.

Once you have verified the CommandLineTools Python is installed, now run:

/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install pymobiledevice3==2.30.0 construct==2.10.69

^ The above command explicitly calls the CommandLineTools version of Python that is used by AltServer for enabling JIT.

Thanks, it worked for me.

Wolffy233 avatar Dec 04 '23 17:12 Wolffy233

Is anyone getting this issue where it says it failed to start service? Screenshot 2023-12-04 at 11 21 42 AM

shanegillio avatar Dec 04 '23 17:12 shanegillio

Did you check if the DeveloperDiskImage was mounted with python3 -m pymobiledevice3 mounter auto-mount?

hscumbie avatar Dec 04 '23 17:12 hscumbie

Is anyone getting this issue where it says it failed to start service?

Screenshot 2023-12-04 at 11 21 42 AM

we all are same as me

bryycee avatar Dec 04 '23 21:12 bryycee

Im still confused on what to do. I did all of this and I need specific instructions can you guys tell me what to run so I can fix this issue thanks

or please add me on discord i need help ill pay anyone my user is fizzrld

Try this in terminal: /Library/Developer/CommandLineTools/usr/bin/python3 --version. It should return Python 3.9.6, indicating that you have CommandLineTools Python installed. If this fails, try executing xcode-select --install and install the CommandLineTools.

Once you have verified the CommandLineTools Python is installed, now run:


/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install pymobiledevice3==2.30.0 construct==2.10.69

^ The above command explicitly calls the CommandLineTools version of Python that is used by AltServer for enabling JIT.

new issueimage

bryycee avatar Dec 05 '23 09:12 bryycee

Not sure why the last comment never uploaded, but anyway! I have this version of AltServer working for me, so curious if it will work for everyone here AltServer.zip

shanegillio avatar Dec 06 '23 15:12 shanegillio

After a while of trying to enable JIT I found this forum, tried everything... and IT WORKED!!! Thank you so much!

mbrown0603 avatar Dec 07 '23 22:12 mbrown0603

After a while of trying to enable JIT I found this forum, tried everything... and IT WORKED!!! Thank you so much!

Would you mind sharing what system you're on and what version of macOS you're using? I'm still trying to get mine to work without much luck. I think my hardware is too old.

hscumbie avatar Dec 08 '23 00:12 hscumbie

After a while of trying to enable JIT I found this forum, tried everything... and IT WORKED!!! Thank you so much!

Would you mind sharing what system you're on and what version of macOS you're using? I'm still trying to get mine to work without much luck. I think my hardware is too old.

Using a (I believe 2020) iMac running MacOS 14.1.2 and ipad air 5 running iOS 17.1.2

mbrown0603 avatar Dec 08 '23 04:12 mbrown0603

Not sure why the last comment never uploaded, but anyway! I have this version of AltServer working for me, so curious if it will work for everyone here AltServer.zip

@shanegillio I tried it, and it didn't work... at first I thought it did, because there was no error message, but after waiting for like 2 minutes, I finally tried to load up the Wii menu in Dolphini, which gave the same old screen of "Waiting for JIT" -- and eventually it it finally gave the timeout error of not being able to connect to device... "The process 'python3' timed out."

I'm on a 2019 MBP 16" on macOS 14.1.2 and an iPhone 14 Pro Max on 17.1.1. I downgraded construct and pymobiledevice3 like everyone else mentioned. I double checked to make sure pymobiledevice3 is activated, as well as making sure that the DeveloperDiskImage was mounted successfully by running python3 -m pymobiledevice3 mounter auto-mount

Still doesn't work. Any thoughts?

hovikgas avatar Dec 12 '23 07:12 hovikgas

With the following

  • AltServer 1.7.1 (81) on MacOS 14.2.1
  • pymobiledevice3==2.30.0
  • construct==2.10.69

JIT fails to enable: The process 'altjit' failed with code 1. Could not connect to device X. The process 'python3' returned unexpected output. KeyError: EnumIntegerString.new(3, 'PUBLIC_KEY')

jcimo avatar Jan 02 '24 12:01 jcimo

With the following

  • AltServer 1.7.1 (81) on MacOS 14.2.1
  • pymobiledevice3==2.30.0
  • construct==2.10.69

JIT fails to enable: The process 'altjit' failed with code 1. Could not connect to device X. The process 'python3' returned unexpected output. KeyError: EnumIntegerString.new(3, 'PUBLIC_KEY')

Im getting this exact error, my computer asks me to enter my password as it wants to make changes and then this error pops up. if anybody could please help that would be greatly appreciated.

sach491 avatar Jan 02 '24 17:01 sach491

Just to note that I was getting the error shown at the beginning of the thread, but after downgrading the versions I end up getting this new error.

sach491 avatar Jan 02 '24 17:01 sach491

Hey guys!

I managed to fix the Process 'altjit' that failed with code 1. Could not connect to device X. The process 'python3' returned unexpected output. KeyError: EnumIntegerString.new(3, 'PUBLIC_KEY') error. It's related to a new to the new CoreDevice Framework introduced by iOS17:

Starting with iOS 17.0, Apple introduced the new CoreDevice framework to work with iOS devices. This framework relies on the RemoteXPC protocol.

To make it work, make sure you:

  • Install the latest version of pymobiledevice: python3 -m pip install -U pymobiledevice3.
  • Create a trusted tunnel: sudo python3 -m pymobiledevice3 remote start-tunnel.
  • Enable JIT from AltServer for the desired application as usual.

This method should work for people with iOS > 17.

afromankenobi avatar Jan 02 '24 19:01 afromankenobi

hi! i tried this but i keep getting: "Error: No such command 'start-tunnel'" could anyone help please?

liaabreua avatar Jan 04 '24 21:01 liaabreua

Hey guys!

I managed to fix the Process 'altjit' that failed with code 1. Could not connect to device X. The process 'python3' returned unexpected output. KeyError: EnumIntegerString.new(3, 'PUBLIC_KEY') error. It's related to a new to the new CoreDevice Framework introduced by iOS17:

Starting with iOS 17.0, Apple introduced the new CoreDevice framework to work with iOS devices. This framework relies on the RemoteXPC protocol.

To make it work, make sure you:

  • Install the latest version of pymobiledevice: python3 -m pip install -U pymobiledevice3.
  • Create a trusted tunnel: sudo python3 -m pymobiledevice3 remote start-tunnel.
  • Enable JIT from AltServer for the desired application as usual.

This method should work for people with iOS > 17.

image I'm getting stuck while create a trusted tunnel, are there any steps missed? I've added my MacBook to trust devices on my iPhone

Rickyz3r0 avatar Jan 10 '24 09:01 Rickyz3r0

Hey guys! I managed to fix the Process 'altjit' that failed with code 1. Could not connect to device X. The process 'python3' returned unexpected output. KeyError: EnumIntegerString.new(3, 'PUBLIC_KEY') error. It's related to a new to the new CoreDevice Framework introduced by iOS17:

Starting with iOS 17.0, Apple introduced the new CoreDevice framework to work with iOS devices. This framework relies on the RemoteXPC protocol.

To make it work, make sure you:

  • Install the latest version of pymobiledevice: python3 -m pip install -U pymobiledevice3.
  • Create a trusted tunnel: sudo python3 -m pymobiledevice3 remote start-tunnel.
  • Enable JIT from AltServer for the desired application as usual.

This method should work for people with iOS > 17.

image I'm getting stuck while create a trusted tunnel, are there any steps missed? I've added my MacBook to trust devices on my iPhone

I got this far and am getting a new error I haven't seen before

Error Description
The process 'altjit' failed with code 1. Could not detach debugger from AltStore. The process 'lldb' timed out.

Failure Reason
The process 'altjit' failed with code 1. Could not detach debugger from AltStore. The process 'lldb' timed out.

Title
JIT could not be enabled for AltStore.

Source Line
61

executableURL
file:///Applications/AltServer.app/Contents/MacOS/altjit

exitCode
1

output
Connected to device 00008027-000909510E06802E! fd32:276:39db::1 49353
Started debugserver on port 52885.
Attaching debugger...
Attached debugger to AltStore.
(lldb) platform select remote-ios
  Platform: remote-ios
 Connected: no
  SDK Path: error: unable to locate SDK
(lldb) process connect connect://[fd32:276:39db::1]:52885
(lldb) settings set target.memory-module-load-level minimal
(lldb) attach -p 930
Could not find implementation lookup function "class_getMethodImplementation" step in through ObjC method dispatch will not work.
warning: libobjc.A.dylib is being read from process memory. This indicates that LLDB could not find the on-disk shared cache for this device. This will likely reduce debugging performance.
Process 930 stopped
* thread #1, stop reason = signal SIGSTOP
    frame #0: 0x00000001dd049178 libsystem_kernel.dylib
->  0x1dd049178: ret    
    0x1dd04917c: mov    x16, #-0x30
    0x1dd049180: svc    #0x80
    0x1dd049184: ret    
Target 0: (AltStore) stopped.
Executable module set to "/private/var/containers/Bundle/Application/C8BF911D-C905-47D3-9EE2-EA45DAF9896F/AltStore.app/AltStore".
warning: Architecture changed from arm64e-apple-ios to arm64-apple-ios.
(lldb) c
Process 930 resuming
(lldb) detach
error: Detach failed: Sending isconnect packet failed.

❌ Unable to enable JIT for AltStore on device 00008027-000909510E06802E.
Could not detach debugger from AltStore. The process 'lldb' timed out.

morpson avatar Jan 11 '24 11:01 morpson