Sobre o projeto

# otaripper Extraia partições de arquivos OTA do Android com verificação criptográfica, fortes garantias de confiabilidade e execução de alto desempenho. ## Visão geral **otaripper** extrai partições de pacotes OTA do Android (`payload.bin` ou arquivos `.zip` de OTA completo). A ferramenta é escrita em Rust e prioriza: * Correção criptográfica e integridade dos dados * Comportamento previsível e à prova de falhas * Execução multithread de alto desempenho * Operações de memória aceleradas por SIMD * Limpeza garantida em caso de falha ou interrupção Diferentemente de muitas ferramentas de extração, o otaripper **verifica as imagens de saída por padrão** e se recusa a deixar para trás arquivos parcialmente válidos ou corrompidos. ⚠️ Pacotes OTA incrementais **não são suportados** intencionalmente. ## Principais recursos * **Verificação de saída**: verificação de hash SHA-256 das imagens extraídas * **Streaming HTTP remoto**: extraia partições específicas diretamente de uma URL sem baixar o pacote OTA completo, usando requisições paralelas em blocos de 8MB * **Recuperação de erros de rede**: novas tentativas automáticas com backoff exponencial e detecção de offline em tempo real * **Payloads comprimidos com Zstd**: suporte à versão menor 10 do mecanismo de atualização do Android (Vivo, iQOO, OTAs modernas) * **Otimização SIMD**: aceleração AVX-512/AVX2/SSE2 com bypass de cache não temporal * **Análise ARB da Qualcomm**: extraia e analise metadados Anti-Rollback de imagens de bootloader * **Análise de metadados de firmware**: analisa automaticamente a versão do SO e os patches de segurança do ZIP * **Detecção de imagens corrompidas**: verificações de sanidade para detectar saídas obviamente inválidas * **Gravações grandes cientes do cache**: I/O otimizado para gravações de partições grandes * **Descompressão zero-copy**: caminhos de extração sem alocação quando os blocos de saída mapeiam de forma limpa para extensões contínuas * **Mapeamento direto de memória do ZIP**: contorna a extração para arquivo temporário em zips OTA STORED * **Interrupção graciosa**: encerramento limpo em caso de interrupção * **Limpeza automática em caso de falha**: limpeza garantida da saída parcial * **Estatísticas de desempenho**: métricas detalhadas de extração * **Extração seletiva**: extraia apenas partições específicas * **Multithread**: extração paralela usando pools de threads do Rayon * **Multiplataforma**: Windows, Linux, macOS, Android/Termux * **Binário autônomo**: sem dependências de runtime ## Início rápido ### Instalação Arquivos pré-compilados empacotados estão disponíveis na página de [Releases](https://github.com/syedinsaf/otaripper/releases) para: * Windows (MSVC e GNU) * Linux (glibc e estático/musl) * Linux ARM64 * macOS (Intel e Apple Silicon) * Android / Termux (ARM64) Cada release inclui um executável principal `otaripper` e uma versão ultraminimalista `otaripper-lite` compilada sem streaming HTTP remoto para extração local compacta. ### Windows (winget) ```powershell winget install syedinsaf.otaripper ``` ### Arch Linux (AUR) ```bash paru -S otaripper # build from source (recommended) paru -S otaripper-bin # prebuilt glibc binary ``` ## Uso básico Extrair tudo: ```bash otaripper ota.zip ``` Listar partições: ```bash otaripper -l ota.zip ``` Extrair partições selecionadas: ```bash otaripper ota.zip -p boot,vendor_boot,init_boot ``` Streaming HTTP remoto (extração sem download): ```bash otaripper https://android.googleapis.com/packages/ota-api/package.zip -p boot,init_boot ``` Imprimir hashes: ```bash otaripper ota.zip --print-hash ``` Verificação estrita: ```bash otaripper ota.zip --strict ``` Analisar metadados Anti-Rollback (ARB) do bootloader da Qualcomm: ```bash otaripper arb update.zip # or directories otaripper arb CPH2583_EDL_Folder/ ``` Inspeção ARB remota com exportação JSON interativa: ```bash otaripper arb https://example.com/firmware.zip ``` ## Limpeza Remover pastas extraídas anteriormente: ```bash otaripper clean ``` Limpar um diretório específico: ```bash otaripper clean -o /path/to/output ``` O comando de limpeza remove apenas diretórios que correspondem a `extracted_*` e se recusa a operar em raízes de sistema de arquivos por segurança. ## Opções de comando | Opção | Descrição | | --- | --- | | `-l, --list` | Apenas listar partições | | `-p, --partitions` | Extrair partições específicas | | `-o, --output-dir` | Diretório de saída personalizado | | `--strict` | Aplicar hashes do manifesto | | `--no-verify` | Desativar verificação (inseguro) | | `--print-hash` | Imprimir hashes SHA-256 | | `--sanity` | Detectar saídas obviamente inválidas | | `--stats` | Mostrar estatísticas de desempenho | | `-t, --threads` | Controle de threads (1–256, 0 = automático) | | `-n, --no-open` | Desativar abertura automática da pasta | | `clean` | Remover pastas `extracted_*` com segurança | | `arbscan`, `arb` | Extrair metadados ARB de imagens de bootloader ou payloads | ## Compilando a partir do código-fonte ### Requisitos * Rust 1.98.1 ou mais recente (MSRV) * Git * Compilador C (gcc / clang / MSVC) ### Compilação ```bash git clone https://github.com/syedinsaf/otaripper.git cd otaripper # Build the standard CLI (with Remote HTTP Streaming support) cargo full # Build the 'lite' CLI (Network-free, local extraction only) cargo lite ``` ### Compilação nativa otimizada Para desempenho máximo, o otaripper pode ser compilado com otimizações específicas de CPU: * **Linux/macOS**: use o script `build.sh` fornecido * **Windows**: use o script PowerShell `build.ps1` fornecido ⚠️ Compilações nativas **NÃO são portáveis** e **NÃO devem ser redistribuídas**. ## Licença otaripper é licenciado sob a **Apache License 2.0**. ## Aviso legal Use por sua conta e risco. Sempre verifique as imagens extraídas antes de fazer o flash. O autor e os contribuidores não são responsáveis por perda de dados, dispositivos brickados ou danos resultantes de uso indevido.