Uma biblioteca de clientes para aplicativos para lidar com conexões de protocolo USBMUX com dispositivos iOS.
Este projeto é uma biblioteca de clientes para conexões multiplex de dispositivos e iOS ao lado dos utilitários da linha de comando.
É usado principalmente por aplicativos que usam a biblioteca Libimobilevice para se comunicar com os serviços em execução em dispositivos iOS.
A biblioteca não estabelece uma conexão direta com um dispositivo, mas requer conexão com um soquete fornecido pelo daemon USBMUXD.
O daemon USBMUXD está em execução ao instalar o iTunes no Windows e Mac OS X.
O projeto Libimobilevice fornece uma reimplementação de código aberto do daemon USBMUXD para usar no Linux ou como uma alternativa para se comunicar com os dispositivos iOS sem a necessidade de instalar o iTunes.
Alguns recursos importantes são:
iproxy para portas proxy para o dispositivoinetcat para expor uma conexão bruta com o dispositivoAlém disso, o Build Linux fornece opcionalmente usando o INOTIFY, se disponível.
Você precisa ter um compilador de trabalho (gcc/clang) e um ambiente de desenvolvimento disponível. Este projeto usa o AutoTools para o processo de construção, permitindo ter etapas de construção comuns em diferentes plataformas. Somente os pré -requisitos diferem e são descritos nesta seção.
Libusbmuxd requer liblista e libimobilievice-Glue. No Linux, ele também requer o USBMUXD instalado no sistema, enquanto o MacOS possui sua própria cópia e no Windows AppleMobiledEvicesPurport Package fornece. Verifique o prédio da Libplist e a seção de construção da Libimobilevice-Glue do respectivo leitura sobre como construí-los. Observe que algumas plataformas podem tê -las como um pacote.
sudo apt-get install
build-essential
pkg-config
checkinstall
git
autoconf
automake
libtool-bin
libplist-dev
libimobiledevice-glue-dev
usbmuxd Verifique se as ferramentas da linha de comando Xcode estão instaladas. Em seguida, use Macports ou Homebrew para instalar automake , autoconf , libtool , etc.
Usando Macports:
sudo port install libtool autoconf automake pkgconfigUsando homebrew:
brew install libtool autoconf automake pkg-configO uso do MSYS2 é a maneira oficial de compilar este projeto no Windows. Faça o download do instalador do MSYS2 e siga as etapas de instalação.
Recomenda-se usar o shell MSYS2 Mingw de 64 bits . Execute -o e verifique se as dependências necessárias estão instaladas:
pacman -S base-devel
git
mingw-w64-x86_64-gcc
make
libtool
autoconf
automake-wrapper
pkg-configNota: Você pode usar um shell diferente e um compilador diferente de acordo com suas necessidades. Adapte o comando acima de acordo.
Você pode construir o código -fonte a partir de uma finalização do git ou a partir de um Tarball de liberação .tar.bz2 a partir de lançamentos. Antes que possamos construí -lo, a árvore de origem deve ser configurada para a construção. As etapas dependem de onde você tirou a fonte.
Como o libusbmuxd depende de outros pacotes, você deve definir a variável de ambiente PKG-Config PKG_CONFIG_PATH de acordo. Certifique -se de usar um caminho com o mesmo prefixo que as dependências. Se eles estiverem instalados em /usr/local você faria
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfigDe git
Se você ainda não fez, clone o repositório real do projeto e mude no diretório.
git clone https://github.com/libimobiledevice/libusbmuxd
cd libusbmuxdConfigure a árvore de origem para a construção:
./autogen.shDo lançamento Tarball (.tar.bz2)
Ao usar um Tarball de liberação oficial ( libusbmuxd-xyztar.bz2 ), o procedimento é um pouco diferente.
Extraia o tarball:
tar xjf libusbmuxd-x.y.z.tar.bz2
cd libusbmuxd-x.y.zConfigure a árvore de origem para a construção:
./configure Ambos ./configure e ./autogen.sh (que gera e chamadas configure ) aceitam algumas opções, por exemplo --prefix para permitir a criação de uma pasta de destino diferente. Você pode simplesmente passá -los assim:
./autogen.sh --prefix=/usr/localou
./configure --prefix=/usr/localQuando o comando for bem -sucedido, as últimas linhas de saída ficarão assim:
[...]
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.
Esse utilitário permite a ligação de portas TCP locais para que uma conexão com uma (ou mais) das portas locais seja encaminhada para a porta especificada (ou portas) em um dispositivo USBMux.
Ligue a porta TCP local 2222 e a porta 22 do primeiro dispositivo conectado via USB:
iproxy 2222:22 Isso permitiria o uso do SSH com localhost:2222 para se conectar ao daemon SSHD no dispositivo. Por favor, lembre -se de que este é apenas um exemplo e o daemon SSHD está disponível apenas para dispositivos de jailbreak que realmente o instalam.
Consulte as informações de uso ou a página manual para obter uma documentação completa das opções de linha de comando disponíveis:
iproxy --help
man iproxyEste utilitário é uma ferramenta simples do tipo NetCat que permite abrir uma interface de leitura/gravação em uma porta TCP em um dispositivo USBMUX e expor-a via Stdin/STDOUT.
Use o SSH ProxyCommand para conectar -se a um dispositivo iOS de jailbreak via SSH:
ssh -oProxyCommand= " inetcat 22 " root@localhostConsulte as informações de uso ou a página manual para obter uma documentação completa das opções de linha de comando disponíveis:
inetcat --help
man inetcat A variável de ambiente USBMUXD_SOCKET_ADDRESS permite alterar a localização do soquete USBMUXD para longe do padrão local.
Um exemplo de uso de um utilitário do projeto Libimobilevice com um soquete USBMUXD exposto em uma porta de um host remoto:
export USBMUXD_SOCKET_ADDRESS=192.168.179.1:27015
ideviceinfo Isso define o endereço do soquete USBMUXD para 192.168.179.1:27015 para aplicativos que usam a biblioteca Libusbmuxd.
Congratulamo -nos com contribuições de qualquer pessoa e agradecemos todas as solicitações de tração!
Se você quiser contribuir, bifurque a filial master , altere, comprometa e envie uma solicitação de revisão. Uma vez aprovado, ele pode ser mesclado na base de código principal.
Se você planeja contribuir com alterações maiores ou uma grande refatoração, crie um ingresso primeiro para discutir a idéia adiantada para garantir menos esforço para todos.
Por favor, verifique se sua contribuição adere a:
Esta biblioteca está licenciada sob a Licença Pública Geral GNU menor v2.1, também incluída no repositório no arquivo COPYING .
O iproxy e inetcat são licenciados sob a licença pública geral da GNU v2.0.
Apple, iPhone, iPad, iPod, iPod Touch, Apple TV, Apple Watch, Mac, iOS, iPados, TvOS, WatchOS e MacOS são marcas comerciais da Apple Inc.
Este projeto é uma biblioteca de software independente e não foi autorizada, patrocinada ou aprovada pela Apple Inc.
Readme atualizado em: 2024-10-22