Клиентская библиотека для приложений для обработки соединений протокола USBMUX с устройствами iOS.
Этот проект представляет собой клиентскую библиотеку для мультиплексных соединений с устройств и к iOS наряду с утилитами командной строки.
В основном он используется приложениями, которые используют библиотеку LibimobileDevice для связи с услугами, работающими на устройствах iOS.
Библиотека не устанавливает прямое соединение с устройством, но требует подключения к розетку, предоставленному Daemon USBMuxd.
Демон USBMuxd работает при установке iTunes в Windows и Mac OS X.
Проект LibimobileDevice обеспечивает повторную реумплемацию с открытым исходным кодом Daemon для использования в Linux или в качестве альтернативы для связи с устройствами iOS без необходимости установить iTunes.
Некоторые ключевые функции:
iproxy для прокси -портов для устройстваinetcat для разоблачения необработанного соединения с устройствомКроме того, Linux Build необязательно обеспечивает поддержку, используя INOTIFY, если она доступна.
Вы должны иметь работающий компилятор (GCC/Clang) и среда разработки. Этот проект использует AutoTools для процесса сборки, позволяя иметь общие шаги сборки на разных платформах. Только предпосылки различаются, и они описаны в этом разделе.
Libusbmuxd требует либеблоста и libimobiledevice-lue. На Linux он также требует, чтобы USBMuxd был установлен в системе, в то время как MacOS имеет свою собственную копию, а в пакете Windows AppleMobileDevicesCopport. Проверьте здание 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 pkgconfigИспользование Homebrew:
brew install libtool autoconf automake pkg-configИспользование MSYS2 является официальным способом составления этого проекта в Windows. Загрузите установщик MSYS2 и выполните шаги установки.
Рекомендуется использовать 64-битную оболочку MSYS2 Mingw Mingw . Запустите его и убедитесь, что необходимые зависимости установлены:
pacman -S base-devel
git
mingw-w64-x86_64-gcc
make
libtool
autoconf
automake-wrapper
pkg-configПримечание. Вы можете использовать другую оболочку и другой компилятор в соответствии с вашими потребностями. Адаптируйте вышеупомянутую команду соответственно.
Вы можете построить исходный код из оформления GIT или из выпуска Tarball .tar.bz2 из выпусков. Прежде чем мы сможем его построить, дерево источника должно быть настроено для построения. Шаги зависят от того, откуда вы получили источник.
Поскольку LibusBmuxd зависит от других пакетов, вам следует установить переменную среды PKG-Config PKG_CONFIG_PATH соответственно. Обязательно используйте путь с тем же префиксом, что и зависимости. Если они установлены в /usr/local вы бы сделали
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfigОт git
Если вы еще не сделали, клонируйте фактический репозиторий проекта и измените в каталог.
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 ./configure , --prefix и ./autogen.sh Вы можете просто передавать их так:
./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, чтобы соединение с одним (или несколькими) локальных портов было перенаправлено в указанный порт (или порты) на устройстве USBMux.
Свяжите локальный порт TCP 2222 и переходите к порту 22 первого устройства, подключенного через USB:
iproxy 2222:22 Это позволило бы использовать SSH с localhost:2222 для подключения к Daemon SSHD на устройстве. Пожалуйста, помните, что это всего лишь пример, и Daemon SSHD доступен только для разъяренных устройств, на которых он фактически установил.
Пожалуйста, проконсультируйтесь с информацией об использовании или странице руководства для полной документации с доступными параметрами командной строки:
iproxy --help
man iproxyЭта утилита представляет собой простой инструмент, похожий на NetCAT, который позволяет открывать интерфейс чтения/записи для порта TCP на устройстве USBMux и подвергать его через stdin/stdout.
Используйте SSH ProxyCommand, чтобы подключиться к устройству iOS с джейлбрандом через SSH:
ssh -oProxyCommand= " inetcat 22 " root@localhostПожалуйста, проконсультируйтесь с информацией об использовании или странице руководства для полной документации с доступными параметрами командной строки:
inetcat --help
man inetcat Переменная среда USBMUXD_SOCKET_ADDRESS позволяет изменить местоположение сокета USBMuxd от локального по умолчанию.
Пример использования утилиты из проекта LibimobileDevice с розеткой USBMuxD, обнаженной на порту удаленного хоста:
export USBMUXD_SOCKET_ADDRESS=192.168.179.1:27015
ideviceinfo Это устанавливает адрес сокета USBMUXD на 192.168.179.1:27015 для приложений, которые используют библиотеку LibusBmuxd.
Мы приветствуем взносы от всех и благодарны за каждый запрос на привлечение!
Если вы хотите внести свой вклад, пожалуйста, разделите master филиал, измените, совершайте и отправьте запрос на просмотр. После одобрения он может быть объединен в основную кодовую базу.
Если вы планируете внести вклад в большие изменения или крупный рефакторинг, сначала создайте билет, чтобы обсудить эту идею заранее, чтобы обеспечить меньше усилий для всех.
Пожалуйста, убедитесь, что ваш вклад придерживается:
Эта библиотека лицензирована в соответствии с GNU Lesser General Public Public License v2.1, также включенной в хранилище в файле COPYING .
Утилиты iproxy и inetcat лицензированы в соответствии с общей публичной лицензией GNU 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