iOSデバイスとのUSBMUXプロトコル接続を処理するためのアプリケーション用のクライアントライブラリ。
このプロジェクトは、コマンドラインユーティリティとともに、iOSデバイスからのマルチプレックス接続をマルチプレックスするクライアントライブラリです。
主に、Libimobiledeviceライブラリを使用してiOSデバイスで実行されているサービスと通信するアプリケーションで使用されています。
ライブラリは、デバイスとの直接接続を確立しませんが、USBMUXDデーモンが提供するソケットに接続する必要があります。
USBMUXDデーモンは、WindowsおよびMac OS XにiTunesをインストールすると実行されています。
Libimobiledeviceプロジェクトは、iTunesをインストールする必要なく、Linuxで使用するために、またはiOSデバイスとの通信の代替として使用するUSBMUXDデーモンのオープンソースの再実装を提供します。
いくつかの重要な機能は次のとおりです。
iproxyユーティリティをデバイスにプロキシポートに提供しますinetcatユーティリティを提供して、デバイスへの生の接続を公開しますさらに、Linuxビルドは、利用可能な場合はInotifyを使用してサポートをオプションで提供します。
作業コンパイラ(GCC/Clang)と開発環境が利用可能である必要があります。このプロジェクトでは、ビルドプロセスにAutoToolsを使用して、異なるプラットフォームで共通のビルドステップを持つことができます。前提条件のみが異なり、このセクションで説明されています。
libusbmuxdには、LibplistとLibimobiledevice-Glueが必要です。 Linuxでは、システムにusbmuxdがインストールされている必要がありますが、Macosには独自のコピーがあり、Windows Applemobiledevicesupportパッケージが提供されます。 Libplistの建物とLibimobiledevice-GlueのそれぞれのREADMEの構築セクションを確認してください。一部のプラットフォームはパッケージとしてそれらを持っている可能性があることに注意してください。
sudo apt-get install
build-essential
pkg-config
checkinstall
git
autoconf
automake
libtool-bin
libplist-dev
libimobiledevice-glue-dev
usbmuxd Xcodeコマンドラインツールがインストールされていることを確認してください。次に、MacPortsまたはHomeBrewのいずれかを使用して、 automake 、 autoconf 、 libtoolなどをインストールします。
MacPortsの使用:
sudo port install libtool autoconf automake pkgconfigHomebrewの使用:
brew install libtool autoconf automake pkg-configMSYS2を使用することは、このプロジェクトをWindowsでコンパイルする公式の方法です。 MSYS2インストーラーをダウンロードして、インストール手順に従ってください。
MSYS2 MINGW 64ビットシェルを使用することをお勧めします。それを実行し、必要な依存関係がインストールされていることを確認してください。
pacman -S base-devel
git
mingw-w64-x86_64-gcc
make
libtool
autoconf
automake-wrapper
pkg-config注:ニーズに応じて、異なるシェルと異なるコンパイラを使用できます。それに応じて上記のコマンドを調整します。
GITチェックアウトからソースコードを構築するか、リリースからターボールをリリースする.tar.bz2からビルドできます。構築する前に、ソースツリーを構築用に構成する必要があります。ステップは、ソースをどこから入手したかに依存します。
libusbmuxdは他のパッケージに依存するため、それに応じてpkg-config環境変数PKG_CONFIG_PATHを設定する必要があります。依存関係と同じプレフィックスを持つパスを使用してください。それらが/usr/localにインストールされている場合、あなたはそうするでしょう
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfiggitから
まだ完了していない場合は、実際のプロジェクトリポジトリをクローンしてディレクトリに変更します。
git clone https://github.com/libimobiledevice/libusbmuxd
cd libusbmuxd建物用のソースツリーを構成します。
./autogen.shリリースTarball(.tar.bz2)から
公式リリースTarball( libusbmuxd-xyztar.bz2 )を使用する場合、手順はわずかに異なります。
ターボールを抽出します:
tar xjf libusbmuxd-x.y.z.tar.bz2
cd libusbmuxd-x.y.z建物用のソースツリーを構成します。
./configure ./configureと./autogen.sh ( configureを生成および呼び出す)の両方が、たとえば--prefixいくつかのオプションを受け入れます。あなたは単にこのようにそれらを渡すことができます:
./autogen.sh --prefix=/usr/localまたは
./configure --prefix=/usr/localコマンドが成功すると、出力の最後の数行は次のようになります。
[...]
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
Configuration for libusbmuxd 2.1.0:
-------------------------------------------
Install prefix: .........: /usr/local
inotify support (Linux) .: no
Now type 'make' to build libusbmuxd 2.1.0,
and then 'make install' for installation.
このユーティリティにより、ローカルTCPポートをバインドできるため、ローカルポートの1つ(またはそれ以上)への接続がUSBMUXデバイスの指定されたポート(またはポート)に転送されます。
ローカルTCPポート2222をバインドし、USBを介して接続された最初のデバイスのポート22に転送します。
iproxy 2222:22これによりlocalhost:2222でSSHを使用してデバイス上のSSHDデーモンに接続できます。これは単なる例であり、SSHDデーモンは、実際にインストールされているジェイルブレイクされたデバイスでのみ利用できることに注意してください。
利用可能なコマンドラインオプションの完全なドキュメントについては、使用情報またはマニュアルページを参照してください。
iproxy --help
man iproxyこのユーティリティは、USBMUXデバイスのTCPポートに読み取り/書き込みインターフェイスを開くことができるシンプルなNetCatのようなツールで、STDIN/STDOUTを介して公開できます。
ssh proxycommandを使用して、SSHを介してイル害したiOSデバイスに接続します。
ssh -oProxyCommand= " inetcat 22 " root@localhost利用可能なコマンドラインオプションの完全なドキュメントについては、使用情報またはマニュアルページを参照してください。
inetcat --help
man inetcat環境変数USBMUXD_SOCKET_ADDRESS使用すると、USBMUXDソケットの場所をローカルデフォルトの場所から変更できます。
リモートホストのポートに露出したUSBMUXDソケットを使用して、Libimobiledeviceプロジェクトのユーティリティを使用する例:
export USBMUXD_SOCKET_ADDRESS=192.168.179.1:27015
ideviceinfoこれにより、libusbmuxdライブラリを使用するアプリケーションの場合、USBMUXDソケットアドレスを192.168.179.1:27015に設定します。
誰からでも貢献を歓迎し、すべてのプルリクエストに感謝しています!
貢献したい場合は、 masterブランチ、変更、コミット、およびレビューのプルリクエストを送信してください。承認されると、メインコードベースにマージできます。
より大きな変更または主要なリファクタリングを提供する予定がある場合は、最初にチケットを作成して、すべての人の労力を少なくするためにアイデアを前もって議論してください。
あなたの貢献が次のことを順守することを確認してください
このライブラリは、 COPYINGファイルのリポジトリにも含まれているGNU以下の一般的なパブリックライセンスv2.1の下でライセンスされています。
ユーティリティのiproxyとinetcat 、GNU General Public License v2.0に基づいてライセンスされています。
Apple、iPhone、iPad、iPod、iPod Touch、Apple TV、Apple Watch、Mac、iOS、iPados、TVOS、WatchOS、およびMacOSはApple Incの商標です。
このプロジェクトは独立したソフトウェアライブラリであり、Apple Inc.によって承認されたり、後援されたり、その他の方法で承認されたりしていません。
README更新:2024-10-22