Una biblioteca de clientes para aplicaciones para manejar las conexiones de protocolo USBMUX con dispositivos iOS.
Este proyecto es una biblioteca de clientes para las conexiones multiplex desde y hacia los dispositivos iOS junto con las utilidades de línea de comandos.
Se utiliza principalmente por aplicaciones que utilizan la Biblioteca LibimobiledEvice para comunicarse con los servicios que se ejecutan en dispositivos iOS.
La biblioteca no establece una conexión directa con un dispositivo, pero requiere conectarse a un socket proporcionado por el demonio USBMUXD.
El demonio USBMUXD se ejecuta al instalar iTunes en Windows y Mac OS X.
El proyecto LibimobileDevice proporciona una reimplementación de código abierto del demonio USBMuxD para usar en Linux o como una alternativa para comunicarse con dispositivos iOS sin la necesidad de instalar iTunes.
Algunas características clave son:
iproxy a los puertos proxy al dispositivoinetcat para exponer una conexión sin procesar al dispositivoAdemás, la compilación de Linux opcionalmente proporciona soporte utilizando inotify si está disponible.
Debe tener un compilador de trabajo (GCC/CLANG) y un entorno de desarrollo disponible. Este proyecto utiliza AutoTools para el proceso de compilación, lo que permite tener pasos de compilación comunes en diferentes plataformas. Solo los requisitos previos difieren y se describen en esta sección.
Libusbmuxd requiere Libplist y LibimobiledEvice-Glue. En Linux, también requiere USBMuxd instalado en el sistema, mientras que MacOS tiene su propia copia y en el paquete Windows AppleMobileDevicesPport lo proporciona. Verifique el edificio de Libplist y la sección de construcción de LibimobiledEvice-Glue del readme respectivo sobre cómo construirlos. Tenga en cuenta que algunas plataformas pueden tenerlas como un paquete.
sudo apt-get install
build-essential
pkg-config
checkinstall
git
autoconf
automake
libtool-bin
libplist-dev
libimobiledevice-glue-dev
usbmuxd Asegúrese de que se instalen las herramientas de línea de comando Xcode. Luego, use MacPorts o Homebrew para instalar automake , autoconf , libtool , etc.
Uso de MacPorts:
sudo port install libtool autoconf automake pkgconfigUsando Homebrew:
brew install libtool autoconf automake pkg-configEl uso de MSYS2 es la forma oficial de compilar este proyecto en Windows. Descargue el instalador MSYS2 y siga los pasos de instalación.
Se recomienda utilizar la carcasa MSYS2 MINGW de 64 bits . Ejecutarlo y asegúrese de que se instalen las dependencias requeridas:
pacman -S base-devel
git
mingw-w64-x86_64-gcc
make
libtool
autoconf
automake-wrapper
pkg-configNota: Puede usar un caparazón diferente y un compilador diferente de acuerdo con sus necesidades. Adaptar el comando anterior en consecuencia.
Puede construir el código fuente a partir de un pago GIT, o a partir de un tarball .tar.bz2 de lanzamiento a partir de lanzamientos. Antes de que podamos construirlo, el árbol de origen debe configurarse para la construcción. Los pasos dependen de dónde obtuviste la fuente.
Dado que LibusbMuxd depende de otros paquetes, debe establecer la variable de entorno PKG-Config PKG_CONFIG_PATH en consecuencia. Asegúrese de usar una ruta con el mismo prefijo que las dependencias. Si están instalados en /usr/local lo haría
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfigDe Git
Si aún no lo ha hecho, clone el repositorio real del proyecto y cambie en el directorio.
git clone https://github.com/libimobiledevice/libusbmuxd
cd libusbmuxdConfigure el árbol de origen para la construcción:
./autogen.shDe lanzar tarball (.tar.bz2)
Al usar una liberación oficial de Tarball ( libusbmuxd-xyztar.bz2 ), el procedimiento es ligeramente diferente.
Extraer el tarball:
tar xjf libusbmuxd-x.y.z.tar.bz2
cd libusbmuxd-x.y.zConfigure el árbol de origen para la construcción:
./configure Tanto ./configure y ./autogen.sh (que genera y llama configure ) aceptan algunas opciones, por ejemplo, --prefix para permitir la construcción de una carpeta de destino diferente. Simplemente puede pasarlos así:
./autogen.sh --prefix=/usr/localo
./configure --prefix=/usr/localUna vez que el comando sea exitoso, las últimas líneas de salida se verán así:
[...]
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.
Esta utilidad permite unir puertos TCP locales para que se reenvíe una conexión a uno (o más) de los puertos locales al puerto (o puertos) especificado en un dispositivo USBMUX.
Vincule el puerto TCP local 2222 y se reenvíe al puerto 22 del primer dispositivo conectado a través de USB:
iproxy 2222:22 Esto permitiría usar SSH con localhost:2222 para conectarse al demonio SSHD en el dispositivo. Por favor, tenga en cuenta que esto es solo un ejemplo y el demonio SSHD solo está disponible para dispositivos jailbreak que realmente lo tienen instalado.
Consulte la información de uso o la página manual para obtener una documentación completa de las opciones de línea de comandos disponibles:
iproxy --help
man iproxyEsta utilidad es una herramienta simple similar a NetCat que permite abrir una interfaz de lectura/escritura a un puerto TCP en un dispositivo USBMUX y exponerla a través de Stdin/STDOUT.
Use SSH proxyCommand para conectarse a un dispositivo iOS jailbreak a través de SSH:
ssh -oProxyCommand= " inetcat 22 " root@localhostConsulte la información de uso o la página manual para obtener una documentación completa de las opciones de línea de comandos disponibles:
inetcat --help
man inetcat La variable de entorno USBMUXD_SOCKET_ADDRESS permite cambiar la ubicación del socket USBMUXD lejos del valor predeterminado local.
Un ejemplo de uso de una utilidad del proyecto LibimobileDevice con un enchufe USBMUXD expuesto en un puerto de un host remoto:
export USBMUXD_SOCKET_ADDRESS=192.168.179.1:27015
ideviceinfo Esto establece la dirección de socket USBMuxd a 192.168.179.1:27015 para aplicaciones que usan la biblioteca LibusbMuxd.
¡Damos la bienvenida a las contribuciones de cualquier persona y estamos agradecidos por cada solicitud de atracción!
Si desea contribuir, bifurca la rama master , cambie, comete y envíe una solicitud de extracción de revisión. Una vez aprobado, se puede fusionar en la base del código principal.
Si planea contribuir con cambios más grandes o una refactorización importante, cree un boleto primero para discutir la idea por adelantado para garantizar menos esfuerzo para todos.
Asegúrese de que su contribución se adhiera a:
Esta biblioteca tiene licencia bajo la Licencia Pública General General de GNU V2.1, también incluida en el repositorio en el archivo COPYING .
Los servicios públicos iproxy e inetcat tienen licencia bajo la Licencia Pública General de GNU V2.0.
Apple, iPhone, iPad, iPod, iPod Touch, Apple TV, Apple Watch, Mac, iOS, iPados, tvos, watchos y macOS son marcas comerciales de Apple Inc.
Este proyecto es una biblioteca de software independiente y no ha sido autorizado, patrocinado o aprobado de otra manera por Apple Inc.
Readme actualizado en: 2024-10-22