Era fácil montar o iPod original e acessá-lo como uma unidade USB. Também é possível fazer isso com um iPhone, embora haja abordagens diferentes dependendo do tipo de dado com que você quer trabalhar.
Neste artigo, vamos explorar as seguintes abordagens:
| Técnica | Arquivos disponíveis | Requisitos |
|---|---|---|
| PTP | Fotos e vídeos | Integrado ao Windows e ao macOS |
| AFC | Fotos, vídeos e alguns apps | iTunes |
| FUSE (sem jailbreak) | Fotos, vídeos e alguns apps | Cliente FUSE gratuito |
| FUSE (com jailbreak) | Todos os arquivos | Jailbreak, cliente FUSE gratuito |
| WebDAV via Filza | Todos os arquivos | Jailbreak, cliente WebDAV gratuito |
| AFC2 | Todos os arquivos | Jailbreak, plugin AFC2, cliente AFC2 |
| Outros | Nenhum | Não funciona no iOS moderno |
Em um dispositivo sem jailbreak, só é possível trabalhar com dados de arquivos da câmera e de apps selecionados. Neste artigo, vemos as duas abordagens.
PTP: acessando fotos, vídeos e dados da câmera como uma montagem de disco
O iOS apresenta automaticamente os dispositivos modernos como câmeras quando eles são conectados por USB. Isso usa o Picture Transfer Protocol (PTP), um sistema bastante limitado que permite copiar fotos de um lado para o outro. Você provavelmente reconhecerá as pastas DCIM em que as fotos costumam aparecer.
O PTP tem várias desvantagens: a mais óbvia é que você não consegue acessar outros arquivos além dos da câmera. E o PTP não oferece funcionalidades como renomear ou modificar arquivos ou pastas: em vez disso, ele precisa apagá-los e recriá-los para efetuar uma alteração. Isso é lento.
Acessando fotos e dados de apps por AFC com o iTunes
A base de conhecimento da Apple tem um artigo que descreve como gerenciar o compartilhamento rudimentar de arquivos com o iTunes.
Acessando dados de apps por USB com FUSE
O FUSE é um sistema que permite montar unidades em computadores Windows ou Mac sem precisar fazer alterações de nível de administrador no sistema. FUSE significa “filesystem in userspace” (sistema de arquivos no espaço do usuário) e está disponível de diferentes formas na maioria das plataformas. O FUSE em si é uma camada de abstração, ou seja, não é a tecnologia que se comunica diretamente com o dispositivo ou a fonte de dados: normalmente outra abordagem é usada para isso. No caso de montar um iPhone como uma unidade, o FUSE se comunicaria com o iPhone usando outro protocolo: SSH, AFC/AFC2, PTP ou WebDAV. No Windows, costuma-se usar o popular sistema de arquivos em modo usuário Dokan e, no macOS, o osxfuse é popular.
Do ponto de vista do usuário, como o FUSE normaliza a forma como os dados do dispositivo são apresentados, geralmente não importa qual protocolo subjacente é responsável pela montagem.
Usando uma montagem FUSE no macOS
Vamos demonstrar essa abordagem no macOS e como montar um dispositivo. Para isso funcionar, você precisará instalar o gerenciador de pacotes Homebrew, que é gratuito, e saber usar o Terminal no macOS.
Primeiro, vamos encontrar o UDID do dispositivo. Você pode fazer isso com a versão gratuita do iPhone Backup Extractor, com o comando lsusb ou com ioreg -p IOUSB -l -w 0. Abra o iPhone Backup Extractor com o dispositivo conectado, selecione o dispositivo e escolha a guia “Informações”. Você verá o UDID na seção “Identificadores de hardware”:

Dados do dispositivo exibidos no iPhone Backup Extractor
Em seguida, vamos preparar o FUSE para macOS:
$ brew tap homebrew/cask
$ brew cask install osxfuse
==> Caveats
To install and/or use osxfuse you may need to enable their kernel extension in
System Preferences → Security & Privacy → General
For more information refer to vendor documentation or the Apple Technical Note:
https://developer.apple.com/library/content/technotes/tn2459/_index.html
You must reboot for the installation of osxfuse to take effect.
E vamos instalar o ifuse, que é o código capaz de se comunicar com dispositivos iOS por meio do FUSE:
$ brew install ifuse
Com o ifuse instalado, é possível montar o iPhone ou o iPad usando o UDID que obtivemos antes:
$ mkdir ~/iphone
$ ifuse ~/iphone --udid 000000000000000000000000
Isso monta o iPhone como um disco na sua máquina. Se quiser ir além e explorar mais dados, esta publicação no superuser é bem útil e, da mesma forma, esta outra publicação aborda o uso da ferramenta usbmuxd.
Solução de erros que você pode encontrar
O ifuse pode exibir esta reclamação: Invalid device UDID specified, length needs to be 40 characters. A partir do iPhone X, a Apple mudou os UDID para usar 24 bytes e um hífen (-) em vez do antigo formato de 40 bytes.
Se aparecer Failed to connect to lockdownd service on the device. Try again. If it still fails try rebooting your device., confirme que o dispositivo está conectado e que não está exibindo a caixa de diálogo “Confiar neste computador”. Você precisará aprová-la primeiro. Se depois aparecer ERROR: Device 000000000000000000000000 returned unhandled error code -13, será preciso desconectar e reconectar o dispositivo.
Ao fazer isso, convém garantir que nenhum outro aplicativo em execução no PC ou no Mac esteja tentando se conectar ao dispositivo iOS.
Se você só vai montar um único dispositivo iOS, basta executar ifuse ~/iphone.
É preciso usar uma versão de pré-lançamento do usbmuxd?
O usbmuxd não é atualizado com frequência; por isso, às vezes, quando uma nova versão do iOS é lançada, ele ainda não oferece suporte a ela. Para corrigir isso, você pode instalar a versão de desenvolvimento mais recente dele, como abaixo:
brew unlink usbmuxd
brew install --HEAD usbmuxd
brew unlink libimobiledevice
brew install --HEAD libimobiledevice
brew cask uninstall osxfuse
brew cask install osxfuse idevicepair
Acessando dados de apps por USB com FUSE em um dispositivo com jailbreak
As instruções são exatamente as mesmas acima. Com o dispositivo com jailbreak, você verá mais dados logo de cara. Legal, né?
Usando o servidor WebDAV do Filza para acessar a raiz do iOS
Em um dispositivo iOS com jailbreak, é possível instalar pelo Cydia um app gerenciador de arquivos chamado Filza. Nos ajustes do Filza, você pode ativar o modo de servidor WebDAV. Isso oferece uma interface bastante simples para outros dispositivos acessarem o dispositivo iOS, embora seja extremamente insegura. O WebDAV é um mecanismo muito geral para trabalhar com dados da web, e há muitos clientes que podem acessá-lo, inclusive uma interface web integrada ao Filza. Conecte-se ao dispositivo com um navegador da web e você verá a interface. Fácil.
Usando o AFC2 para acessar arquivos do iOS por USB
O que é o AFC2?
AFC significa “Apple File Conduit”, o mecanismo da própria Apple para transferir dados de um dispositivo iOS para um computador host. O AFC roda em todo dispositivo iOS, mas é restrito a dar acesso apenas a um conjunto limitado de dados. “AFC2” é o apelido dado a uma série de ferramentas criadas pela comunidade de jailbreak que emulam o AFC, mas dão acesso ao dispositivo inteiro. A implementação mais recente do AFC2 foi criada por Cannathea e está disponível no GitHub.
O AFC2 pode ser instalado pelo Cydia e, depois de instalado, permite que um cliente AFC navegue pelo dispositivo inteiro.
Outras técnicas para acessar todos os dados em dispositivos com jailbreak
Antes do lançamento do iOS 8, havia vários plugins do Cydia para dispositivos com jailbreak que faziam o iPhone se apresentar como um pen drive USB quando conectado. Infelizmente, eles não têm mais suporte nas versões modernas do iOS.
Recuperando arquivos apagados de um dispositivo iOS montado
Se você consegue montar o iPhone ou o iPad como uma unidade, pode pensar que daria para recuperar arquivos apagados manipulando diretamente o sistema de arquivos em um dispositivo com jailbreak. Infelizmente, não é possível recuperar arquivos assim em um iPhone, pois o sistema de arquivos é criptografado. Mesmo que você encontrasse trechos dos dados, não conseguiria descriptografá-los. Cada arquivo tem sua própria chave de criptografia, e essas chaves são descartadas na exclusão.
O Guia de Segurança do iOS da Apple aborda isso brevemente na página 17, na “visão geral da arquitetura”:
Toda vez que um arquivo na partição de dados é criado, a Proteção de Dados cria uma nova chave de 256 bits (a chave “por arquivo”) e a entrega ao mecanismo AES de hardware, que usa a chave para criptografar o arquivo à medida que ele é gravado na memória flash usando o modo AES-XTS. Em dispositivos com SoC A7, S2 ou S3, é usado o AES-CBC. O vetor de inicialização é calculado com o deslocamento de bloco no arquivo, criptografado com o hash SHA-1 da chave por arquivo.
A montagem funciona bem para acessar arquivos existentes, mas não ajuda muito na recuperação. Para isso, você precisa de um backup do iTunes ou do iCloud, de dados sincronizados com o iCloud ou de uma imagem forense do dispositivo de antes de os dados serem apagados.
Bônus: montando o computador Windows a partir do iPhone ou do iPad
O iOS 13 introduziu o suporte a SMB no iOS. Isso permite que os usuários acessem remotamente unidades de computadores Windows. Veja como funciona:
- Encontre o endereço IP do computador Windows. O comando
ipconfigdeve informar isso. - No computador Windows, clique com o botão direito na pasta que quer compartilhar e escolha
Properties→Sharing→Advanced sharing. Clique em “Compartilhar esta pasta”. - Na guia Compartilhamento, selecione
Share...; depois, no menu suspenso, selecione sua conta de usuário, adicione-a e confirme que ela tem permissões de “Leitura/gravação”. Clique em “Compartilhar” e em “Aplicar” e feche a janela. - No dispositivo iOS, abra o app “Arquivos” da Apple e toque em “Conectar ao Servidor”. Digite
smb://seguido do endereço IP do PC. Depois, escolha “Usuário Registrado” e digite o nome e a senha da sua conta do Windows.
Feito isso, a unidade do Windows deve aparecer no dispositivo iOS.