Hacker News new | past | comments | ask | show | jobs | submit login

can someone explain the usecase for this? what kind of apps you'll opens up when you can communicate to apple devices natively? you can't do that before this?



Flutter uses the tools built on top of this to automate the installation and bootstrap into their interactive code reload mechanism (by watching the device's syslog for the application to output the right port to connect to, which is then also accessed over the USB muxing bridge: libimobiledevice provides a way to activate the port mappings) for iOS apps you develop.

Essentially, this is giving you the ability to write tools similar to Android's adb (Android Debug Bridge), a tool that connects over USB to a daemon running on the phone to let you run commands and install apps and access the logs (which I take advantage of in Cydia Impactor, generalizing over the functionality of an integrated adb client and the functionality from libimobiledevice).


I use it to mount iPhone as a FUSE filesystem in order to download photos using rsync.


It seems like the answer is "no", but … iPhones don't expose themselves as MTP devices when connected to USB?

I'm an Android user, but that just seems like basic table stakes…?


There are some very surprising tradeoffs for being in Apple’s ecosystem. Especially if you’re used to Android.

Let’s just say this: Apple took the time to create a whole different interface for the TRRS headphone jack just so they could have buttons on the headphone cable. Then when app developers thought it was awesome to be able to use that button as a trigger while the app was in the foreground, Apple stopped them by removing their App store listing until the dev submitted a version without that feature. Same with detecting touch size (to ingeniously determine touch pressure).


Is this also possible with music? Got any links on details about that setup?


Maybe also look into unison ( https://github.com/bcpierce00/unison ) instead of rsync so you get 2-way sync :)


From the (currently broken) FAQ [1]: "Sorry, music synchronization with newer devices is currently not supported but if you are a keen developer why not contribute a new service implementation for the ATC Service?"

[1] https://libimobiledevice.org/#faq


I recently found one of the tools (some kind of low level REPL console) helpful to get my phone out of a recovery mode boot loop. I couldn't figure out how to do it any other way and was pretty grateful for its existence.

I had been feeling brave and tried to do a reset + update via KVM'd iTunes, but something went wrong with USB hot plugging with the way the device switches modes between boots ^_^.


can you please share more details about the tool and what did you do? I feel I am in the same boat, and a bit lost :)



I use it for tethering with my iPhone since my phone internet is better and more stable than the cable internet I have otherwise. I wouldn't be aware that this is possible without Libimobiledevice.


If your wireless carrier enables it, you can create a wifi hotspot under Settings > Personal Hotspot.


I believe he is talking about tethering via USB, which should be a more stable connection than Wifi.


Ah but the Settings app does USB hotspots too


You need this library in order for the connection to work. Then it will show up as a LAN connection.


It may support that, but the tethered hotspot mentioned previously works perfectly well without this library for me on my Mac. When tethered together and hotspot enabled, I can use the iPhone's cellular data with no wifi on the Mac at all.


This library is really targeted toward non Apple systems.


With Linux?


Yes with this library and a companion kernel module it will appear like a standard network interface (connected to the phone acting as a NAT router).


Could I use this to (for example) read and/or write the iPhone databases for Reminders and Calendar ? I ask because ifuse source is not compiling on macOS.


We were using this for test automation to install, launch and terminate apps on 50+ devices.


For example, doing backups and restores without requiring iTunes or OS X.


So this is not for building ios applications


This is a communication and control library for iOS-based devices. For example, with this library you could program an application on Solaris which would control iOS devices or be able to transfer data to and from them, or do pedestrian things like load your own certificates into the target iOS device's store...


Does loading certificates allow you to MITM apps? E.g. to discover/reverse engineer an API?

I suppose certificate pinning could pose problems.


You can do this without this library. On iOS you could install an app like Charles Proxy, and install their cert to intercept traffic. Or you could proxy all traffic through your computer. Most apps does use certificate pinning today, but many still don't. I recently used this technique to reverse engineer a video streaming app


Debugging Safari mobile if you don't have a macOS devices. I used to do this when I was using Ubuntu for web development.


It's up to the app. I can use it to copy CBZ/CBR/PDF files into my comics reader or access my saved drawings from ArtStudio Pro: https://i.imgur.com/v5bckxU.png


Yup I’m confused here too

Like is it an alternative to iTunes especially for people who are using Linux


If you do lots of test automation (especially on multiple platforms), its utility is immediately apparent.


I use it for tethering when Comcast goes down. You also need ipheth-utils.


Everything you'd do with adb.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: