Osmosis — Cliente de mídia Android para câmeras DJI Osmo
Cliente Android terceirizado para baixar vídeos e fotos das câmeras de ação / estabilizadoras da DJI Osmo. Sem dependências do SDK DJI, sem login, sem bloatware, sem ativação.
Funciona com o DJI Osmo Nano, que não é suportado pelo SDK oficial DJI ou pelo R-SDK DJI, e deve funcionar também com o restante da linha de câmeras DJI Osmo (veja Câmeras suportadas). Também testado com o Xtra Edge Pro, uma reembalagem do DJI Osmo Action 5 Pro feita pela empresa front da DJI, Xtra.
- Tela de grade de mídia com miniaturas, extraídas diretamente da câmera.
- Pré-visualização em baixa resolução — arraste qualquer clip sem fazer o download primeiro.
- Corte na pré-visualização — defina pontos de início e fim e faça o download apenas dessa parte do clip de alta resolução. Cópia exata da stream em qualidade original.
- Fila de downloads interrompível — baixes de alta resolução direto para a galeria do seu telefone.
- Status em tempo real — bateria, modo de gravação e armazenamento (interno / SD) exibidos em um indicador. Mais recursos por vir (indicador de gravação, resolução, fps, etc...)
- Múltiplas câmeras — lembra suas câmeras e mostra quais estão atualmente no alcance.
- Favoritos seus vídeos/fotos do aplicativo e veja mídia anteriormente favoritada
- Sincronize GPS com seu Osmo: Usa os comandos Osmo GPS controller do R-SDK para enviar GPS do telefone para a câmera. Útil para adicionar estatísticas posteriormente usando Telemetry Overlay.

- Controle da câmera: iniciar/parar gravação, tirar foto, alterar configurações
- Visualização ao vivo
- Sincronização via USB-C
- Suporte à sincronização de drones DJI (especificamente Neo2)
| Câmera | Status |
|---|---|
| Osmo Nano | Verificado em hardware |
| Osmo Action 5 Pro / Xtra Edge Pro | Verificado em hardware |
| Osmo Action 6 | Verificado em hardware |
| Osmo Pocket 3 | Verificado em hardware |
| Osmo Pocket 4 / 4 Pro | Planejado |
| Xtra Atto / Edge / Muse | Não testado, deve funcionar |
| Osmo Action 1 | Iniciado, em pausa |
| Osmo Action 4 | Iniciado |
| Osmo 360 | Não planejado (precisa do Mimo para renderizar conteúdo em 360°) |
| Osmo Action 2/3 | Melhor esforço padrão, não testado, não esperado que funcione |
| Drones DJI usando sincronização rápida | Em andamento |
Deseja ajudar a adicionar suporte para uma câmera não suportada? Abra um problema para que possa ser listado como totalmente suportado.
Rebadging da Xtra. A Xtra é uma companhia front da DJI que vende câmeras Osmo rebadgadas apenas nos EUA para contornar o banimento da DJI:
- Edge Pro = Action 5 Pro
- Atto = Nano
- Edge = Action 4
- Muse = Pocket 3.
Tentando ativamente suportar, abra um problema se você tiver essas câmeras e quiser ajudar:
- Osmo Pocket 4/4P
- Osmo Action 4
- Osmo Action 3.
Depuração / suporte a novas câmeras:
Inicie o aplicativo, habilite Salvar Logs, tente se conectar à câmera. Tudo que está sendo enviado e recebido é registrado em um local interno acessível apenas pelo aplicativo. Toque em Salvar Logs novamente para desabilitar a gravação + comprimí-la para compartilhar comigo.
Lista de comandos reversamente engenhados:
Caso queira construir seu próprio aplicativo ou programa que interfira com câmeras DJI Osmo, este documento pode ajudar:
Esta é a documentação mais extensa da protocolo DUML não documentado da DJI para câmeras Osmo (Ação, Pocket, Nano) até o momento. Foi derivada usando capturas de rede Wi-Fi e BLE do DJI Mimo.
Cobre tanto as rotas de transporte BLE/WiFi.
Comandos reversamente engenhados não encontrados em lugar algum:
- Análise da lista de mídia 0x26 e sua resposta 0x00/0x27
- Paginação para consultar mídia mais antiga
- Destaque, excluir arquivo
Sem SDK da DJI — Osmosis fala diretamente com o protocolo DUML da DJI. Cada sessão:
- Pare via BLE com a câmera (requer aprovação na própria câmera uma vez).
- Leia as credenciais Wi-Fi sobre BLE (SSID + senha).
- Aceite e conecte-se ao ponto de acesso Wi-Fi da câmera.
- Liste a mídia via o comando DUML file-list UDP.
- Baixe os arquivos em alta resolução via HTTP do servidor
192.168.2.1da câmera.
O protocolo completo reversamente engenhado — pareamento BLE, transferência Wi-Fi, o formato DUML file-list e mais — está documentado em docs/01-protocol-map.md.
Osmosis se comunica apenas com a sua câmera (192.168.2.1). Sem análises, contas, servidores de ativação ou nuvem. Sua mídia nunca sai do seu telefone e da sua câmera.
Em contraste com os aplicativos oficiais, que exigem login e enviam dados para backends de ativação e telemetria (o app Xtra Companion até inclui análises do ByteDance). Osmosis não tem nada disso — a configuração de segurança da rede limita-o ao endereço local da câmera.
- Android 10+ (API 29).
- Bluetooth LE.
- Permissões: Dispositivos próximos (escaneio/conexão Bluetooth) no Android 12+, ou Localização em versões mais antigas, além de estado e alterações Wi-Fi. Nenhuma permissão de internet é necessária para nada além do ponto de acesso local da câmera.
- Ligue o Bluetooth e WiFi, abra Osmosis; conceda as solicitações de permissões.
- Acenda a câmera e toque nela na lista Câmeras. Deverá aparecer como "NOVA".
- Aprovar o prompt de pareamento na tela da câmera (lerá:
OSMO). - Aprovar a janela Android "conectar-se à Wi-Fi" quando aparecer.
- Navegue pela grade. Toque em um clipe para visualizar, cortar e adicionar à fila de download.
- Toque Baixar — os arquivos serão baixados no seu álbum do telefone.
Construído com uma configuração padrão Gradle Android:
Visuals puros do Android (nenhum Jetpack Compose). Construído com AGP 7.4.2 / Gradle 7.5.1 / JDK 15 (JDK 11–17 devem funcionar); compileSdk 34, minSdk 29.
Trabalho planejado e notas de engenharia reversa estão em ROADMAP.md.
A monumental tarefa de engenharia reversa do protocolo DUML da DJI foi inicialmente feita pelos DJI OGs. A DJI nunca lançou um SDK para sua linha de câmeras Osmo, forçando os usuários a usar o aplicativo oficial DJI Mimo. Felizmente, vários indivíduos no GitHub abriram fontes dos seus esforços de engenharia reversa para interagir com as câmeras da DJI via BLE e Wi-Fi:
O próprio demonstrador Osmo-GPS-Controller da DJI também foi uma referência útil para o protocolo de pareamento do acessório (R-SDK).
Este aplicativo não teria sido construído sem os trabalhos acima. Dito isso, muito disso não funcionava com a Osmo Nano e Edge Pro, então uma grande quantidade adicional de engenharia reversa foi feita para tornar o Osmosis totalmente compatível com a DJI Osmo Nano, bem como para reengenhar completamente as respostas aos comandos DUML não suportados.
Além disso, crédito onde é devido para os testadores que forneceram feedback inicial e ajudaram a desenvolver este aplicativo para câmeras que eu não possuo:
MIT.
Projeto independente de terceiros — não afiliado, autorizado ou endossado pela DJI. "DJI" e "Osmo" são marcas registradas dos respectivos proprietários. Use por sua conta e risco; a exclusão ou transferência da mídia é responsabilidade do usuário.

