Read/Write between Mac and iPhone using libusbmuxd

时间:2015-10-06 08:19:38

标签: ios macos window read-write

I current use libimobiledevice to work around Mac and iPhone. libusbmuxd is very helpful to get device (iPhone/iPad) information when connects to Mac app through USB.

I want more, I want to read/write data (a file like document, image, video, ...) from Mac to iPhone and vice versa but I can't get any document or tutorial on the Internet guiding how to do it.

Can anyone help me

2 个答案:

答案 0 :(得分:2)

如果你想通过usbmuxd在OSX和iOS之间传输数据,它基本上是一个两步过程:

  1. 在iOS或tvOS上的任意端口上启动套接字服务器
  2. 在/ var / run / usbmuxd上打开OSX上usbmuxd服务器的套接字连接。
  3. 完成此操作后,您将从OSX上的usbmuxd服务器收到一些控制消息,包括设备连接和分离事件。已连接到usbmuxd服务器的每个设备都具有唯一的设备ID。此设备ID与套接字服务器的端口组合可用于将套接字连接绑定到套接字服务器。

    如果您想省去从头开始实现此过程的麻烦,您可以查看以下框架。它们都在Objective-C中提供了高级API。

    https://github.com/rsms/peertalk

    https://github.com/jensmeder/DarkLightning

答案 1 :(得分:1)

实际上这很容易。 进一步了解https://github.com/libimobiledevice

特别要看iFuse示例。

libusbmuxd是一个使用usbmuxd的库,它通过USB将iOS设备上的任何套接字连接隧道传输到本地套接字。

在每个iOS设备上,您都可以在端口62078上找到一个打开的套接字。这就是所谓的锁定,用于许多事情。 使用锁定,您可以启动AFC服务(Apple File Conduit),这是一种网络文件系统服务。

libimobiledevice为您完成所有这些工作。 (查看libimobiledevice / afc.h,这里是所有与文件系统相关的函数,如读取文件,检索目录等)。

你必须做的事情:

  • 调用lockdown_client_new_with_handshake(..)

  • 使用“com.apple.afc”服务调用lockdownd_start_service(..)

  • 如果您的设备已越狱,您可以通过“com.apple.afc2”服务获得完整的文件系统访问权限,但标准服务应该可以正常运行。

顺便说一句:只有当您的设备解锁时,锁定连接才有效。

Ciao,Arno