Transforme um Android conectado em um desktop no Linux — e cuide do aparelho de ponta a ponta.
Uma aplicação Qt/QML e dois toolkits irmãos sobre as ferramentas oficiais
(scrcpy, adb, fastboot, heimdall, Magisk).
Um workspace com três camadas deliberadamente separadas. A interface nunca executa comandos livres: ela conversa com um serviço local, que delega apenas operações allowlisted aos toolkits existentes.
| Projeto | O que faz | Risco | Root? |
|---|---|---|---|
| ✨ android-dex-ui | Aplicação nativa PySide6/Qt Quick, sessões DeX, Wi‑Fi, diagnóstico e manutenção guiada. | 🟢/🟠 isolado por fluxo | ❌ não |
| 🖥️ android-dex-kit | Experiência desktop/DeX via scrcpy + ADB, com modo automático, perfis OEM, supervisor resiliente, systemd e udev. |
🟢 baixo | ❌ não |
| 🔧 android-dex-flash | Diagnóstico e manutenção guiada, com bundles não executáveis e descritores assinados; gravações sem validação permanecem bloqueadas. | 🔴 alto |
Note
São separados de propósito: espelhar a tela é inofensivo; mexer em bootloader e partições pode brickar o aparelho. A separação evita apertar o botão errado.
- Arquitetura
- Interface Qt/QML
- android-dex — desktop sem root
- android-dex-flash — manutenção do aparelho
- Compatibilidade por marca
- Segurança
- Roadmap
- Créditos
flowchart TD
UI["android-dex-ui<br/><i>PySide6 + Qt Quick/QML</i>"]
D["android-dexd<br/><i>JSON-RPC · socket 0600 · UID</i>"]
C["lib/common.sh<br/><i>fundação compartilhada</i><br/>log · XDG · backoff · ADB helpers"]
subgraph KIT["🖥️ android-dex-kit · sem root"]
direction TB
A1["android-dex<br/><i>supervisor + reconexão</i>"]
A2["android-dex-connect<br/><i>assistente Wi-Fi</i>"]
A3["scrcpy + ADB"]
A1 --> A3
A2 --> A3
end
subgraph FLASH["🔧 android-dex-flash · alto risco"]
direction TB
B0["flash-common.sh<br/><i>guard rails · dry-run · consentimento</i>"]
B1["drivers/<br/>pixel · samsung · xiaomi<br/>motorola · oneplus · generic"]
B2["fastboot · heimdall · Magisk"]
B0 --> B1 --> B2
end
UI -->|"core.sock"| D
D -->|"argv allowlisted"| KIT
D -->|"plano vinculado + confirmação"| FLASH
C --> KIT
C --> FLASH
style C fill:#12233c,stroke:#3ddc84,color:#dbe6f5
style UI fill:#0e1b2f,stroke:#13bdf2,color:#dbe6f5
style D fill:#12233c,stroke:#59d35d,color:#dbe6f5
style KIT fill:#0e1b2f,stroke:#3ddc84,color:#dbe6f5
style FLASH fill:#0e1b2f,stroke:#4f8cff,color:#dbe6f5
A experiência começa pelo modo desktop. Firmware e bootloader ficam em Manutenção avançada, depois de um divisor e com linguagem visual âmbar.
cd android-dex-ui
python3 -m venv .venv
. .venv/bin/activate
pip install -e .
android-dex-ui # uso real; inicia android-dexd quando necessário
android-dex-ui --demo # aparelho fictício, não chama adb/scrcpy/fastboot
android-dex-setup # verifica dependências externasO daemon por usuário continua supervisionando a sessão quando a janela fecha.
O transporte Linux usa $XDG_RUNTIME_DIR/android-dex/core.sock; diretório e
socket são privados (0700/0600) e o UID do cliente é verificado.
👉 Instalação, contrato e testes em android-dex-ui/README.md.
Modo automático tenta DeX somente quando SDK/capacidades o sustentam e cai para mirror quando houver dúvida ou falha rápida. Perfis OEM ajustam launcher e decorações; USB/Wi-Fi reconectam com backoff exponencial.
Instalar e usar (30 segundos)
cd android-dex-kit
./install.sh # instala scrcpy/adb, udev, launcher, systemd
# no aparelho: Opções do desenvolvedor → Depuração USB
android-dex # auto-detecta e sobe a sessão
android-dex-connect # migra p/ Wi-Fi (emparelha e salva o IP)
android-dex --wifi # conecta pelo IP salvo
android-dex --list # lista aparelhos; --device escolhe um deles
android-dex --status # estado, dispositivos e sessão ativa
android-dex-doctor # diagnóstico somente leitura + capacidades👉 Detalhes completos em android-dex-kit/README.md.
Um orquestrador das ferramentas oficiais de cada fabricante — nunca um "motor de flash" próprio. Existe para reduzir erro humano, não para eliminar o risco físico.
Warning
Só use no seu próprio aparelho. Desbloqueio de bootloader, root e flash podem brickar o aparelho e frequentemente são irreversíveis (Knox e-fuse, Play Integrity, garantia).
O que torna "seguro e amigável" real:
- 🧪
--dry-runé o padrão — nada é gravado até você pedir--commit. - ⌨️ Consentimento digitado — antes de gravar, você digita
SIM(não aceitay). - 🛡️ Guard rails — confere modelo, bateria mínima, hash sha256 dos insumos e faz backup do boot.
⚠️ Avisos por marca — ex.: o Knox e-fuse da Samsung é permanente.
Comece sempre pelo diagnóstico (risco ZERO)
cd android-dex-flash
./install.sh
android-dex-flash info # marca/modelo/SO/bootloader + o que é possível e o que se perde
android-dex-flash caps # capacidades e riscos do seu modelo
android-dex-flash check-rollback DIR # assinatura + anti-downgrade
android-dex-flash backup-boot # backup com manifesto e SHA-256
android-dex-flash extract-payload payload.bin DIR
# ações que gravam — dry-run por padrão:
android-dex-flash unlock # simula (mostra a sequência exata)
android-dex-flash unlock --commit # só em drivers dedicados certificados
android-dex-flash flash-firmware DIR # roteiro guiado; não executa scripts👉 Detalhes completos e limites honestos em android-dex-flash/README.md.
Modo desktop (android-dex):
| Marca / SO | Experiência | Ajuste |
|---|---|---|
| Samsung One UI 8 / Android 15+ | 🟢 DeX nativo no display virtual | funciona direto |
| Pixel / AOSP 15+ | 🟡 desktop mode (às vezes exige tela física) | START_APP |
| Xiaomi / Oppo / Motorola | 🟡 abre vazio, precisa de launcher | START_APP + VD_SYSTEM_DECORATIONS=0 |
| Qualquer aparelho | 🟢 MODE="mirror" |
sempre funciona |
Manutenção (android-dex-flash):
| Marca | Desbloqueio | Observação central |
|---|---|---|
| Pixel / AOSP | fastboot flashing unlock |
caminho mais limpo (referência) |
| Samsung | modo Download + confirmação física | 🔥 queima o Knox — permanente; usa heimdall |
| Xiaomi/Redmi/POCO | Mi Unlock oficial + espera | a ferramenta guia, não burla |
| Motorola/Lenovo | código do site oficial | get_unlock_data → e-mail → oem unlock |
| OnePlus/Oppo/Realme/Sony | fastboot flashing unlock |
Oppo/Realme podem exigir app oficial |
ação destrutiva
└─ fingerprint do device ......... quem é o aparelho?
└─ avisos por OEM ................ o que você perde?
└─ --dry-run (padrão) ............ mostra os comandos, não grava
└─ driver permite --commit? . root/firmware/restore: não (fail-closed)
└─ --commit (somente ação certificada)
└─ bateria ≥ 40% ....... trava se estiver baixa
└─ modelo confere ...... recusa firmware de outro modelo
└─ hash sha256 ......... integridade dos insumos
└─ digitar "SIM" ....... consentimento explícito
└─ executa + loga tudo (auditoria)
A ferramenta é honesta sobre o que não faz: não burla espera de unlock, não desbloqueia aparelhos travados pelo fabricante e não restaura Knox/Play Integrity perdidos.
Na interface, um plano destrutivo expira em 10 minutos e vincula serial,
modelo, fingerprint, OEM, ação, caminhos canônicos, tamanhos e SHA-256. No
apply, serviço e script repetem identidade, política do driver, bateria e
hashes. KNOX PERMANENTE é exigido para Samsung; as demais confirmações usam
SIM. A frase digitada nunca é persistida nem incluída nos logs.
Plano histórico em ROADMAP.md. A UI Qt/QML, o contrato
android-dex.machine.v1, o daemon privado e a automação de AppImage já estão
implementados nesta branch; a matriz física multi-OEM permanece uma atividade
de validação de hardware, sem ampliar os drivers que aceitam --commit.
- A1 — regra udev por vendor id (compatibilidade plug-and-play entre marcas)
- A3 / A4 — perfis por dispositivo + detecção automática de
dexvsmirror - Flash Fase 0 ✅
device-info(pronto) → Fases 1–3 (Pixel/Samsung/Xiaomi/Motorola/OnePlus)
Construído sobre scrcpy (Genymobile) e as ferramentas oficiais platform-tools (Google), Heimdall e Magisk. Inspirado no Android-Dex (Shrey113). Firmware sempre de fontes oficiais do fabricante.
⬆ voltar ao topo · Feito com shell, cuidado e muitos avisos de segurança.