frida / frida

Clone this repo to build Frida

Home Page:https://frida.re

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unable to mount Developer Disk Image on iOS 17.5.1 with Xcode 15

sajal4me opened this issue · comments

I am trying to use Frida to instrument a debuggable app on a non-jailbroken iPhone running iOS 17.5.1. I am using a Mac with Xcode 15 installed.

I followed the instructions in the documentation for using Frida without jailbreak. However, I encountered an issue when trying to mount the Developer Disk Image.

According to the documentation, the Developer Disk Image must be mounted, and Xcode should do this automatically when it discovers the iOS device. If not, the documentation suggests using ideviceimagemounter to mount the Developer Disk Image manually.

However, starting from Xcode 15, Apple has changed how Device Support files are managed. Instead of including them in the Xcode application bundle, they are now downloaded on-demand and stored in ~/Library/Developer/Xcode/iOS DeviceSupport/.

I tried to mount the Developer Disk Image for iOS 17.5.1 using ideviceimagemounter, but I got a "No such file or directory" error. It seems that the Developer Disk Image for iOS 17.5.1 is not located in the expected directory.

Here is the command I used and the error message I got:

ideviceimagemounter ~/Library/Developer/Xcode/iOS\ DeviceSupport/iPhone14,5\ 17.5.1\ \(21F90\)/DeveloperDiskImage.dmg
ERROR: stat: /Users/sajal.gupta/Library/Developer/Xcode/iOS DeviceSupport/iPhone14,5 17.5.1 (21F90)/DeveloperDiskImage.dmg: No such file or directory

Could you please update the documentation to reflect these changes made by Apple, and provide guidance on how to mount the Developer Disk Image for iOS versions 15 and above?

I have not tested ideviceimagemouter, the iOS17 support is brand new (commited 2 weeks ago). Therefore you need to clone libimobiledevice and all dependencies directly from git and compile them.

Alternatively you can use pymobiledevice3:

pymobiledevice3 mounter auto-mount

See doronz88/pymobiledevice3#1069

I have not tested ideviceimagemouter, the iOS17 support is brand new (commited 2 weeks ago). Therefore you need to clone libimobiledevice and all dependencies directly from git and compile them.

Alternatively you can use pymobiledevice3:

pymobiledevice3 mounter auto-mount

See doronz88/pymobiledevice3#1069

@jpstotz, I managed to mount the disk successfully using pymobiledevice3. However, I've run into a different problem, which I've documented in this post:

#2907

Could you please take a look at this issue and provide any suggestions that might help me resolve it?

same problem

Frida support is to my knowledge still only partially available available.
In my last tests the only way to make it work was on MacOS with opened XCode. On Linux even with the kernel patch I didn't managed to make it work.

See #2875 for more details.

This seems to be issue with Xcode 15 and the iOS device, not an issue of Frida?
I guess it should be intermittent.

@bigbangvn No it is not an issue with XCode. With iOS 17 Apple has changed the way how XCode and thus other debugging as well have to communicate with a device running iOS17. When XCode recognizes attached development iPhone sit automatically performs certain actions in background.

Thus the opened XCode was a workaround to perform those actions. I just made a test and pymobiledevice3 mounter auto-mount in combination with frida 16.4.10 and it works without opened XCode (tested on MacOS, not sure if this will also work on Linux).

@jpstotz ok, seems that is handled by "MobileDeviceUpdater" process in MacOS. So the cauz can be from iOS 17, or MobileDeviceUpdater, or the Developer Image.
But anyway, it is not an issue of Frida.