altstoreio / AltStore

AltStore is an alternative app store for non-jailbroken iOS devices.
https://altstore.io
GNU Affero General Public License v3.0
11.68k stars 886 forks source link

pymobiledevice3 update to 2.31.0 breaks enabling JIT #1345

Open hscumbie opened 10 months ago

hscumbie commented 10 months ago

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

leixu2txtek commented 10 months ago

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
hscumbie commented 10 months ago

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.

leixu2txtek commented 10 months ago

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.

JoshuaGOB commented 10 months ago

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.

hscumbie commented 10 months ago

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.

bryycee commented 10 months ago

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

romanhmln commented 10 months ago

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.

bryycee commented 10 months ago

what should i do then what commands do i run ?

hscumbie commented 10 months ago

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.

bryycee commented 10 months ago

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 commented 10 months ago

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

FightMan01 commented 10 months ago

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

image
hscumbie commented 10 months ago

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.

boatImpish commented 10 months ago

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.

shanegillio commented 10 months ago

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

Screenshot 2023-12-04 at 11 21 42 AM
hscumbie commented 10 months ago

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

bryycee commented 10 months ago

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 commented 10 months ago

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

shanegillio commented 10 months ago

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

mbrown0603 commented 10 months ago

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

hscumbie commented 9 months ago

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.

mbrown0603 commented 9 months ago

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

hovikgas commented 9 months ago

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?

jcimo commented 9 months ago

With the following

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

sach491 commented 9 months ago

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 commented 9 months ago

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.

afromankenobi commented 9 months ago

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:

This method should work for people with iOS > 17.

liaabreua commented 9 months ago

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

Rickyz3r0 commented 8 months ago

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

morpson commented 8 months ago

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.
Vehnum commented 8 months ago

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.

getting error: "The process 'altjit' failed with code 1. Could not start debugserver on device (insert-device-here). The task timed out after 10 seconds."

hscumbie commented 8 months ago

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.

I had the same issue. For some reason, starting a debug session with Xcode first, making sure the application recognized JIT, closing Xcode and the application, then using AltServer to start JIT for the application worked for me.

Rickyz3r0 commented 8 months ago

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.

I had the same issue. For some reason, starting a debug session with Xcode first, making sure the application recognized JIT, closing Xcode and the application, then using AltServer to start JIT for the application worked for me.

Thanks, is worked for me too. But I facing new problem, always crash when try to play some games with dolphinios :(

hscumbie commented 8 months ago

Go to https://github.com/OatmealDome/dolphin-ios/releases/tag/v4.0.0b5 and download the non-jailbroken ipa. Use a sideloader (like sideloadly) to install it. Has been working like a champ for me.

Odilf commented 8 months ago

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

I was having the same problem. Turns out, the issue was that pip was installing an older version (2.30.x). Running python3 -m pip install --force-reinstall -v "pymobiledevice3==2.38.1" fixed it.

The FAQ still says to download version 2.30.0 tho, maybe that should be removed since it seems it doesn't apply? Maybe it depends on the macOS and iOS version, I'm not sure really.

hscumbie commented 8 months ago

I can confirm that pymobiledevice3==2.30.0 and construct==2.10.69 works with iOS 17 on MacOS Ventura

woofbear commented 8 months ago

i dont know what i did but it succeeded, my problem was that the debuger wouldnt attach to altstore, it finally did somehow after i opened Xcode the app (from appstore) opened some project ig? and closed it. the main problem was a lldb timeout whatever cause it did take a bit of time for the JIT to be enabled but miracously it did

rullinoiz commented 8 months ago

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.

this didnt work for me without a workaround, and i was getting some other error. what i did was install the older versions of pymobiledevice3 and construct and instead of running start-tunnel i ran start-quic-tunnel. worked after a few attempts and now altserver is giving me the "altserver needs to make changes" message. utm works perfectly now.

/Applications/Xcode.app/Contents/Developer/usr/bin/python3 -m pip install -U pymobiledevice3==2.30.0 construct==2.10.69 sudo /Applications/Xcode.app/Contents/Developer/usr/bin/python3 -m pymobiledevice3 remote start-quic-tunnel

hovanesgasparian commented 8 months ago

@rullinoiz When you say that it

worked after a few attempts

what happened the first few attempts then, because that didn't work for me. It gave the same old warning about urllib3 v2 only supporting OpenSSL 1.1.1+ and then it just hangs... at least before, using the method you quoted, I would at least be able to start that trusted tunnel, and would get the connection information displayed. Of course, Altserver would still fail to enable JIT, even with the tunnel in place.

hscumbie commented 8 months ago

@rullinoiz When you say that it

worked after a few attempts

what happened the first few attempts then, because that didn't work for me. It gave the same old warning about urllib3 v2 only supporting OpenSSL 1.1.1+ and then it just hangs... at least before, using the method you quoted, I would at least be able to start that trusted tunnel, and would get the connection information displayed. Of course, Altserver would still fail to enable JIT, even with the tunnel in place.

I also get the warning about OpenSSL1.1.1. However, I can still enable JIT. It doesn't seem to be a program breaking error. Make sure you're invoking the correct python binary when downgrading construct and pymobiledevice3 with pip.

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

Then try to enable JIT. This works for me in macOS Ventura.

hovanesgasparian commented 8 months ago

Then try to enable JIT. This works for me in macOS Ventura.

Tried it, and got the following error:

Could not attach debugger to DolphiniOS. The process 'lldb' timed out.

I'm on macOS 14.3, so maybe that's the issue? Also, what version of DolphiniOS are you using, @hscumbie ?

hscumbie commented 8 months ago

Using beta 4.0.0b7. That should be irrelevant though. Just make sure your iDevice is unlocked and Dolphin is running when you try to enable JIT.

Strangely enough, I had the same issue for a bit, but then it magically disappeared.

hovanesgasparian commented 8 months ago

I had the same issue. For some reason, starting a debug session with Xcode first, making sure the application recognized JIT, closing Xcode and the application, then using AltServer to start JIT for the application worked for me.

I don't know how to start a debug session with Xcode, so I think this is the issue, @hscumbie

hscumbie commented 8 months ago

I don't know how to start a debug session with Xcode, so I think this is the issue, @hscumbie

This link gives a nice tutorial for how to attach the Xcode debugger to an iOS process. The process name is DolphiniOS. Be aware though that JIT will be enabled and will work only when connected to Xcode.

AltJIT fixes this limitation by executing the debug server on the iOS device rather than the macOS device.

hovanesgasparian commented 8 months ago

I don't know how to start a debug session with Xcode, so I think this is the issue, @hscumbie

This link gives a nice tutorial for how to attach the Xcode debugger to an iOS process. The process name is DolphiniOS. Be aware though that JIT will be enabled and will work only when connected to Xcode.

AltJIT fixes this limitation by executing the debug server on the iOS device rather than the macOS device.

Thank you for sharing that @hscumbie, unfortunately I guess my Xcode is also broken, becuase it just gets stuck at getting the process list...

image
hscumbie commented 8 months ago

Thank you for sharing that @hscumbie, unfortunately I guess my Xcode is also broken, becuase it just gets stuck at getting the process list...

Use this link to learn how to use your iOS device as a run destination. The process list should populate after it is established as a run destination.

hovanesgasparian commented 8 months ago

Thank you for sharing that @hscumbie, unfortunately I guess my Xcode is also broken, becuase it just gets stuck at getting the process list...

Use this link to learn how to use your iOS device as a run destination. The process list should populate after it is established as a run destination.

Amazing! Thank you so much for sending that @hscumbie! I now see my iPhone 14 Pro Max in my connected Devices and I've set the run destination to "Always" and I even see DolphiniOS in the list of installed apps. However, the Attach to Process is even worse now, as it won't even show Getting Process List... It just shows a blank... I restarted Xcode, just to make sure, same thing.

image image
Igloocooler52 commented 8 months ago

@rullinoiz When you say that it

worked after a few attempts

what happened the first few attempts then, because that didn't work for me. It gave the same old warning about urllib3 v2 only supporting OpenSSL 1.1.1+ and then it just hangs... at least before, using the method you quoted, I would at least be able to start that trusted tunnel, and would get the connection information displayed. Of course, Altserver would still fail to enable JIT, even with the tunnel in place.

I also get the warning about OpenSSL1.1.1. However, I can still enable JIT. It doesn't seem to be a program breaking error. Make sure you're invoking the correct python binary when downgrading construct and pymobiledevice3 with pip.

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

Then try to enable JIT. This works for me in macOS Ventura.

oh my GOD so this worked for downloading JIT, but now my dolphinios just crashes whenever I try to play a game?? no error code or anything. it just shows a black screen w a gc controller, then crashes and disables JIT. Anyone know what I can do from here?? I've spent like 2 hours troubleshooting already lol, this is my first sign of hope (wanted to add: I'm on Sonoma and ios 17.2.1)

hscumbie commented 8 months ago

@rullinoiz When you say that it

worked after a few attempts

what happened the first few attempts then, because that didn't work for me. It gave the same old warning about urllib3 v2 only supporting OpenSSL 1.1.1+ and then it just hangs... at least before, using the method you quoted, I would at least be able to start that trusted tunnel, and would get the connection information displayed. Of course, Altserver would still fail to enable JIT, even with the tunnel in place.

I also get the warning about OpenSSL1.1.1. However, I can still enable JIT. It doesn't seem to be a program breaking error. Make sure you're invoking the correct python binary when downgrading construct and pymobiledevice3 with pip.


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

Then try to enable JIT. This works for me in macOS Ventura.

oh my GOD so this worked for downloading JIT, but now my dolphinios just crashes whenever I try to play a game?? no error code or anything. it just shows a black screen w a gc controller, then crashes and disables JIT. Anyone know what I can do from here?? I've spent like 2 hours troubleshooting already lol, this is my first sign of hope (wanted to add: I'm on Sonoma and ios 17.2.1)

Use the beta DolphiniOS instead (v4.0.0b7 is the current version afaik). Works like a champ on iOS 17.3.

GorgonUK commented 8 months ago

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.

It fixed it, but I'm wondering if I have to run it (sudo python3 -m pymobiledevice3 remote start-tunnel ) every time I want to play a GC game on my phone?

Here are my specs:

I can finally play my childhood favourite game - Gauntlet: Dark Legacy IMG_3912