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.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.