libimobiledevice

C/C++ 2025-08-11

libimobiledevice

使用本机协议与iOS设备上的服务进行通信的库。

特征

libimobiledevice是一个跨平台软件库,可谈论与iOS设备交互的协议。

与其他项目不同,它不取决于使用任何现有的专有图书馆,也不需要越狱。

一些关键功能是:

  • 界面:实现许多设备服务的高级接口
  • 实施:面向对象的体系结构和服务抽象层
  • 跨平台:在Linux,MacOS,Windows和Android平台上进行测试
  • 实用程序:为设备服务提供各种命令行实用程序
  • SSL :允许在OpenSSL,Gnutls或MbedTL之间进行选择来处理SSL通信
  • 网络:支持网络连接使用启用的“ WiFi Sync”设备
  • Python:为Python提供基于Cython的绑定

许多设备服务协议的实施接口允许应用程序:

  • 设备的访问文件系统
  • 访问文件共享应用程序的文件
  • 检索有关设备的信息并修改各种设置
  • 以与iTunes兼容的本机方式备份和还原设备
  • 管理设备上的应用程序图标布置
  • 安装,删除,列出并基本管理应用程序
  • 使用官方服务器激活设备
  • 管理联系人,日历,笔记和书签
  • 检索并删除CrashReports
  • 检索各种诊断信息
  • 建立用于应用调试的调试连接
  • 安装文件系统图像
  • 正向设备通知
  • 管理设备配置
  • 从设备屏幕上获取屏幕截图(需要安装的开发人员图像)
  • 模拟设备的地理位置更改(需要安装的开发人员图像)
  • 中继设备的系统。
  • 公开Webkit远程调试的连接

...还有更多。

自2007年8月以来,该图书馆正在开发,目的是将这些设备的支持带到Linux桌面。

安装 /入门

Debian / Ubuntu Linux

首先安装所有必需的依赖项并构建工具:

libimobiledevice-glue-dev \ libtatsu-dev \ libssl-dev \ usbmuxd">
sudo apt-get install \
	build-essential \
	pkg-config \
	checkinstall \
	git \
	autoconf \
	automake \
	libtool-bin \
	libplist-dev \
	libusbmuxd-dev \
	libimobiledevice -glue-dev \
	libtatsu-dev \
	libssl-dev \
	usbmuxd

注意:libtatsu(因此, libtatsu-dev )是一个新的库,最近才发布,您必须从源头构建它。

如果要选择地构建文档或Python绑定,请使用:

sudo apt-get install \
	doxygen \
	cython

然后克隆实际的项目存储库:

libimobiledevice.git cd libimobiledevice ">
git clone https://**github*.com/libimobiledevice/ libimobiledevice .git
cd libimobiledevice

现在您可以构建并安装它:

./autogen.sh
make
sudo make install

如果您需要传递给./configure自定义前缀或其他选项,则可以将它们直接传递给./autogen.sh

./autogen.sh --prefix=/opt/local --enable-debug
make
sudo make install

默认情况下,OPENSL将用作TLS/SSL库。如果您喜欢gnutls,请与这样的--with-gnutls配置:

./autogen.sh --with-gnutls

也支持MBEDTL,可以通过传递--with-mbedtls进行配置来启用。如果未在默认位置安装MBEDTL,则需要将环境变量设置mbedtls_INCLUDES到包含MBEDTLS标头的路径和mbedtls_LIBDIR来设置库路径。可选地, mbedtls_LIBS可以直接设置库名。例子:

./autogen.sh --with-mbedtls mbedtls_INCLUDES=/opt/local/include mbedtls_LIBDIR=/opt/local/lib

用法

有关在您的应用程序中使用库的文档尚不可用。目前,“黑客方式”是查看所包含的实用程序的实现。

公用事业

该库将工具目录中的以下命令行实用程序捆绑在一起:

公用事业 描述
idevice_id 列出给定设备的附加设备或打印设备名称
idevicebackup 为设备创建或还原备份(遗产)
idevicebackup2 为运行iOS 4或更高版本的设备创建或还原备份
idevicebtlogger 从设备捕获蓝牙HCI流量(需要日志配置文件)
idevicecrashreport 从设备检索崩溃报告
idevicedate 显示当前日期或将其设置在设备上
idevicedebug 与设备的调试服务器服务互动
idevicedebugserverproxy 代理从设备的调试服务器连接进行远程调试
idevicediagnostics 与设备的诊断接口交互
ideviceenterrecovery 使设备输入恢复模式
ideviceimagemounter 在设备上安装磁盘图像
ideviceinfo 显示有关连接设备的信息
idevicename 显示或设置设备名称
idevicenotificationproxy 在设备上发布或观察通知
idevicepair 管理与设备和USBMUXD的主机配对
ideviceprovision 在设备上管理配置配置文件
idevicescreenshot 从连接的设备获取屏幕截图
idevicesetlocation 模拟设备上的位置
idevicesyslog 连接设备的继电器系统。
afcclient 通过AFC/outerrest与设备文件系统进行交互

请咨询每个实用程序的使用信息或手册页,以获取可用命令行选项的文档和诸如此类的用法示例:

ideviceinfo --help
man ideviceinfo

贡献

我们欢迎任何人的捐款,并感谢每个拉的请求!

如果您想做出贡献,请分配master分支,更改,提交并发送拉动请求进行审查。批准后,它可以合并到主代码库中。

如果您打算贡献更大的变化或重大重构,请先创建一张票,以预先讨论这个想法,以确保每个人的精力减少。

请确保您的贡献遵循:

  • 尝试遵循项目的代码样式
  • 提交消息应很好地描述变化而不会太短
  • 尝试将更大的更改分为公共域的单个提交
  • 使用您的真实姓名和有效的电子邮件地址

我们仍在制定指导方针,因此请遵守我们!

链接

  • 主页:https://libimobiledevice.org/
  • 存储库:https://github.com/libimobiledevice/ libimobiledevice .git
  • 存储库(镜子):https://git.libimobiledevice.org/ libimobiledevice .git
  • 问题跟踪器:https://github.com/libimobiledevice/ libimobiledevice /
  • 邮件列表:https://lists.libimobiledevice.org/mailman/listinfo/ libimobiledevice -devel
  • Twitter:https://twitter.com/libimobiledev

执照

该图书馆和实用程序均根据GNU LISHER PORMINAL许可证v2.1获得许可,该库也包含在COPYING文件中的存储库中。

学分

苹果,iPhone,iPad,iPod,iPod Touch,Apple TV,Apple Watch,Mac,iOS,iPados,TVOS,WatchOS和MacOS是Apple Inc.的商标。

该项目是一个独立的软件,尚未获得Apple Inc.的授权,赞助或以其他方式批准。

README更新:2024-10-22

下载源码

通过命令行克隆项目:

git clone https://github.com/libimobiledevice/libimobiledevice.git