Pesquisadores disponibilizam pipeline completo para emulação de iOS em silício da Apple
Um novo utilitário de linha de comando chamado vphone-cli promete simplificar drasticamente a criação de máquinas virtuais rodando iOS nativo em macs com Apple Silicon. A ferramenta utiliza o Virtualization.framework da Apple e a infraestrutura de VM de pesquisa do PCC (Private Cloud Compute) para orquestrar um pipeline ponta a ponta que vai do download do firmware até o primeiro boot do sistema operacional móvel em ambiente virtualizado.
Com um único comando — vphone-cli vm create — o software executa todas as etapas necessárias: download do IPSW, aplicação de patches binários, restauração via modo DFU, instalação de firmware personalizado (CFW) e inicialização. Para pesquisadores que necessitam de controle granular, as etapas individuais podem ser acionadas separadamente, permitindo reexecutar estágios específicos sem refazer todo o processo.
Variantes de patch e gerenciamento de firmware
O projeto oferece cinco variantes de patch com níveis crescentes de bypass de segurança, selecionáveis via flag --variant. A documentação técnica inclui uma análise comparativa por componente para auxiliar na escolha do equilíbrio ideal entre estabilidade e permissões para cada caso de uso. A atualização para versões mais recentes do iOS é feita apontando o comando fw prepare para arquivos IPSW locais, tanto para o firmware do iPhone quanto para o CloudOS.
Todos os artefatos gerados — firmwares, ferramentas de compilação e pacotes Debian — ficam armazenados por padrão em ~/.vphone/, mantidos fora do repositório e do pacote da aplicação assinada para garantir portabilidade. A localização pode ser redirecionada totalmente através da variável de ambiente $VPHONE_ROOT, com precedência definida para sobrescritas específicas de itens como $VPHONE_LIBRARY_ROOT e $VPHONE_VENV_DIR.
Estratégias para contornar SIP e AMFI
Duas abordagens principais são documentadas para lidar com as proteções de integridade do macOS que impedem a execução do binário da VM. A Opção A desabilita completamente o SIP (System Integrity Protection) e, em seguida, desativa o AMFI (Apple Mobile File Integrity) via argumento de boot amfi_get_out_of_my_way=1, exigindo reinicialização no macOS para aplicar a mudança. A Opção B mantém o SIP ativo no modo “debug relaxado” e utiliza a ferramenta amfidont para colocara na lista de permissões apenas o binário necessário, deixando o AMFI ativo para o restante do sistema.
Limitações de hardware e soluções para erros comuns
A virtualização aninhada não é suportada; se o macOS host já estiver rodando dentro de uma VM (PV=3), o boot do convidado falhará. A solução exige um host físico com macOS 15 ou superior. Durante a configuração inicial do iOS, a escolha de região Japão ou União Europeia trava o processo devido a verificações regulatórias que a VM não consegue satisfazer; a recomendação é selecionar Estados Unidos. Um erro frequente EXC_GUARD / GUARD_TYPE_MACH_PORT ao lançar aplicativos é corrigido reaplicando o patch com a flag --force-exc-guard, algo obrigatório para bases iOS 18.
Bug crítico no ldid-procursus e correção emergencial
Um bug conhecido no ldid-procursus (versões até 2.1.5-procursus7 no Homebrew stable) trava a instalação do CFW durante a reassinatura de binários do sistema como o Campo. O problema ocorre quando um entitlements plist contém um valor inteiro exatamente zero, disparando comportamento indefinido em __builtin_clzll(0) que faz um contador de loop sem sinal sofrer underflow. O resultado é o ldid escrevendo byte a byte em um buffer que cresce indefinidamente até esgotar a memória. A correção já existe no upstream, mas ainda não chegou a uma versão estável; o contorno é compilar a partir da fonte via brew install --HEAD ldid-procursus && brew link --overwrite ldid-procursus, matando o processo travado previamente com sudo kill -9.
Automação programática para testes com IA
Além da interface gráfica via VNC — onde um clique com dois dedos simula o botão Home — a ferramenta expõe um socket de controle Unix (vphone.sock) que permite automação programática completa. A interface aceita comandos para capturas de tela, toques, gestos de deslize, teclas de hardware e manipulação da área de transferência, retornando uma captura de tela embutida a cada ação. Essa arquitetura facilita a integração com agentes de IA para testes de ponta a ponta (E2E), existindo inclusive um wrapper Model Context Protocol chamado vphone-mcp para padronizar essa comunicação.
Com informações de: Hacker News (Y Combinator)