How can I mount an iPhone as a drive on OS X

54,375

Solution 1

You can't by default, since iOS in combination with OS X won't allow you to. iOS will only present the iPhone as a camera, so Image Capture can pull the pictures stored under /var/mobile/Media/DCIM, using the PTP (Picture Transfer Protocol).

Two options:

  • You can jailbreak your iPhone and use the USB Drive app from Cydia to turn the device into an actual USB drive. The "Drive only" mode would allow you to do what you want, if I read your question correctly.

  • You could install PhoneDisk for OS X, which will monitor any plugged in devices and mount them as drives

    Note though that PhoneDisk has been discontinued as of July 2012 and its features have been merged in to iExplorer.

Solution 2

There the handy plug-n-play tool iExplorer that slhck mentioned.. but I am not a fan of paying $35-50+ for a one time use just to mount a filesystem; especially when I already paid a ton of money to buy my Mac. Thanks iExplorer for all your work.. but there's a much better solution here.

The free answer because god bless the open source (which Apple has made billions on top of already):

  • install homebrew and open a terminal on your Mac to do the rest

After some quick research, iExplore is built on top of osxfuse and uses common protocols to exchange file information from the device. If you want to see your device, I'd recommend installing lsusb to discover the 40-digit uuid (aka serial).

To get lsusb working on OSX:

brew tap jlhonora/lsusb
brew install lsusb

After you type lsusb you will see your device listed as:

Bus $bus_num Device $dev_num: ID $vendor:$product Apple Inc. iPhone  Serial: $serial

Steps to mount the file system without jailbreaking:

  • brew tap osxfuse/osxfuse
  • brew install osxfuse
  • brew tap Homebrew/homebrew-fuse
  • brew install ifuse

Now that ifuse is installed you can mount the device like this:

cd ~
mkdir ~/iPhone
ifuse ~/iPhone/ -u $serial

This will mount the viewable apple filesystem.. but it probably won't give you everything you see in iExplorer ..like all the apps and their app data.. well no fear, ifuse can do that too. You need one more application to get all the APPID (bundle names). That would be ideviceinstaller.

brew install ideviceinstaller
ideviceinstaller -l

The output will be:

Total: $number_of apps:
$bundle_name - $bundle_version
..

Now if you already mounted the device, I should mention that you first run sudo umount ~/iPhone or click the eject link in Finder next to ~/OSXFUSE <whatever> to unmount that before continuing.

To mount a particular App Container, run:

ifuse ~/iPhone/ -u $serial --container $bundle_name

You can then either navigate to the folder in Finder or use that good 'ole BSD tool cp while you're still in your terminal.

Solution 3

Windows does not mount an iPhone as a USB Mass Storage Device. Just because a device shows up under "My Computer" doesn't means it's a Mass Storage Device. What Windows is doing is detecting the iPhone as a PTP device, and presenting it there to the user. The equivalent in Mac OS X is to open a program that imports photos, such as Photos or Preview, and you will see the iPhone listed there. Mac OS X does not mount PTP devices on the desktop, like it does with USB Mass Storage.

So all the replies on here were how get into the root files of the iPhone, which is not really the equivalent of what the user is seeing on Windows.

Share:
54,375

Related videos on Youtube

Brian
Author by

Brian

I enjoy playing the banjo and hunting caribou in my back yard. Every year I take a trip to the moon where I collect moon rocks to make into jewelry. When I am not doing this, sometimes I program.

Updated on September 18, 2022

Comments

  • Brian
    Brian over 1 year

    When I plug my iPhone in on Windows, it automatically detected as a USB mass-storage device and mounts as a disk. How can I set this up in Finder under OS X?

    • user142485
      user142485 over 11 years
      You can use it as a mass-storage device or it just shows as one?
  • Vitaly Zdanevich
    Vitaly Zdanevich almost 7 years
    I can not install lsusb - it required password for repository - but you can find uuid from ioreg -p IOUSB -l -w 0 - field USB Serial Number
  • Vitaly Zdanevich
    Vitaly Zdanevich almost 7 years
    $ ifuse ~/iPad -u 5932dfa1d13b1c5d55327d4278dec08cd3681540 Failed to connect to lockdownd service on the device. Try again. If it still fails try rebooting your device.
  • Chuck Batson
    Chuck Batson almost 7 years
    Same issue as @VitalyZdanevich. This solution no longer works.
  • Pacerier
    Pacerier over 6 years
    Any known issues with iExplorer or is it safe?
  • mpowered
    mpowered over 6 years
    Per gist.github.com/samrocketman/… You can do the following: brew uninstall --ignore-dependencies libtool && brew install libtool, brew uninstall --ignore-dependencies libimobiledevice && brew install --HEAD libimobiledevice, and brew uninstall ifuse && brew install --HEAD ifuse to get this working.
  • adius
    adius over 6 years
    I had to be in a root shell for it work!
  • adius
    adius over 6 years
    @Vitaly Zdanevich The problem seems to be, that macOS expects the iOS to verify that the connection is safe (normally via a popup on the iOS device), but older devices don't support this and therefore the connection seems to be blocked
  • Greg Sadetsky
    Greg Sadetsky about 4 years
    Just to confirm that it (still) perfectly works under macOS 10.15 and iOS 13.3. Thank you very much!
  • pestophagous
    pestophagous almost 4 years
  • JanX2
    JanX2 over 3 years
    Instead of brew tap homebrew/fuse it’s now brew cask install osxfuse.
  • Mikeumus
    Mikeumus about 3 years
    @slhck, in 2021, BigSur, I don't see anything at /var/mobile/Media/DCIM when I attached my unlocked iPhone to Image-Capture.app 🙁