Artigo em construção. Este projeto ainda está em andamento e o que está aqui é o meu diário de bancada, não um tutorial. Nada foi validado do começo ao fim, então não recomendo seguir estes passos sem validar antes. Se você quer fazer a mesma coisa, lembre-se: é por sua conta e risco.
Desmontei a minha câmera para você não precisar desmontar a sua. Parte 3.
Se você ainda não viu, recomendo que você veja os últimos dois vídeos, porque lá eu explico a motivação e porque a gente está fazendo isso: a Parte 1 e a Parte 2, no meu Instagram.
Hoje a gente vai trazer o status e os próximos passos.
[LINK DO VÍDEO DA PARTE 3]
O nosso principal objetivo
O nosso principal objetivo é esse: não depender da Xiaomi. Nem para credenciais, nem para enviar nossos dados, podendo enviar até para o Google Drive ou para o nosso NAS aqui local. Não depender de internet, tudo bem simples e amigável.

Essa é a nossa situação
Ou seja, já abrimos a câmera, já mapeamos os chips e colhemos diversos feedbacks dos usuários aqui nos vídeos anteriores, inclusive, mas não limitando, por exemplo, testar o go2rtc.
No meu mapa da jornada, a gente está na fase 5 de 10: a bancada.

Quais as minhas opções e por que eu escolhi a última?

1. go2rtc
Eu poderia sim utilizar o go2rtc, porém eu ainda estaria dependendo da Xiaomi para poder fazer a autenticação e enviando de tabela os nossos dados para lá. Ou seja, dependeria ainda sim de internet.
Ele é bem interessante, porém ele não tira o nosso principal ponto, que é não depender mais da Xiaomi. Aqui a gente precisa ainda conectar numa conta da Xiaomi e fazer troca de credenciais. Não é o nosso propósito.
2. Cartão de memória
Por cartão de memória, isso sim era possível, porém o nosso firmware já está na versão 4, onde a Xiaomi já faz a assinatura do firmware. Ou seja, não é possível também.
3. OpenIPC
Também vimos opiniões sobre o OpenIPC. Procurando sobre alternativas de OpenIPC, eu não achei nenhuma compatível com o nosso modelo, então também foi uma opção descartada.
4. Fóruns em chinês
Achei alguns fóruns, como sugerido, em chinês, e alguns apareciam até promissores. Porém, como eu não tenho nenhum backup do meu firmware ainda, simplesmente baixar às cegas e instalar é a receita do fracasso, porque se brincar, já era.
5. Um GitHub com passo a passo: o escolhido
Então é por isso que eu vou optar por seguir um GitHub, onde ele já tem um passo a passo ali interessante, e eu vou fazer o desbloqueio dele e posteriormente a modificação. O repositório é o tsunglung/xiaomi-360-hacks, que está nas referências no fim do artigo.
Em último caso, eu também pretendo fazer uma engenharia reversa do firmware, porém eu vou deixar como segundo plano. Vou testar essa opção, que parece mais simples e vai ficar mais fácil para eu divulgar para vocês, para vocês fazerem também.
O gravador: CH341B
A abordagem que a gente optou foi fazer a leitura do chip, onde a gente até comprou um gravador e leitor de flash.
Comprei esse micro gravador e leitor de chip. É o CH341B. Tem a versão A também.

Primeiro problema: ele grava em 5 V
Porém eu já encontrei um problema nele de cara. Ele grava em 5 V, o que não é problema para a maioria das soluções. Porém, o nosso chip é de 3,3 V, ou seja, vai queimar. Vou queimar o meu chip se eu tentar fazer uma leitura.
Eu vou ter que fazer um jumpzinho, que eu já achei tutorial na internet, para fazer um downvolt para 3,3 V.

Deixe aqui no comentário se você tem alguma solução para isso.
Segundo problema: a pinça bate na borda da câmera
E o segundo problema, que se você já passou por isso, deixa aqui nos comentários, é que a minha pinça leitora de memória estava batendo exatamente na borda da câmera.
Possivelmente eu vou puxar três fios ali dele, puxar um sinal para fora, e posteriormente a isso eu vou fazer a leitura. Eu não estou querendo fazer dessoldagem para soldar novamente esse chip, então vou optar por isso.

E quais são os próximos passos?
Nos próximos passos, eu tenho que:
- vencer isso que eu acabei de comentar, os dois problemas do gravador;
- fazer um backup. Faça sempre o backup antes de modificar o seu firmware;
- fazer uma gravação, onde eu vou modificar e vou apontar para onde eu quero que o vídeo seja encaminhado, para que eu não dependa mais de internet ou de uma conta da Xiaomi;
- e finalmente, ter os dados totalmente no meu homelab.

Por conta e risco

Se você quer fazer a mesma coisa, lembre-se: é por conta e risco. Aqui a gente também está fazendo por conta e risco.
Comenta aqui, Xiaomi, que eu vou te mandar todo esse material, para você que também está acompanhando. E comenta aqui se você já fez alguma coisa parecida, e vamos nos ajudar.
Até o próximo vídeo.
Ficha técnica
Anotações da minha bancada, ainda em validação.
| Modelo | Xiaomi Mi Home Security Camera 360° 1080p, MJSXJ05CM (IPC019) |
| Processador | SigmaStar SSC323 |
| Memória | cFeon EN25QH128A, 16 MB, 3,3 V, SOP8 |
| Wi-Fi | MediaTek MT7601U |
| UART | GND, TX, RX, 115200 8N1, na placa da lente |
| Firmware | 4.x (o hack foi feito para a 4.3.9_0448) |
| Gravador | CH341B com pinça SOIC8 |
Referências de estudo
O material que eu usei para estudar até aqui. Leia, compare com a sua câmera e valide antes de qualquer coisa.
O hack e os projetos para essa câmera
- tsunglung/xiaomi-360-hacks: o GitHub com o passo a passo que eu vou seguir. Lista a MJSXJ05CM (IPC019) entre os modelos suportados e descreve a instalação pela porta serial (UART), com a câmera aberta.
- cmiguelcabral/mjsxj05cm-hacks: hacks para a MJSXJ05CM pelo cartão de memória. Funciona só no firmware 3.4.2_0062, por isso não serve para quem já está no firmware 4.
- telmomarques/xiaomi-360-1080p-hacks (cópia no archive.org): o projeto mais conhecido para a Mi 360 1080p. O repositório original não está mais no GitHub.
Os caminhos descartados
- go2rtc, fonte Xiaomi (documentação): a conexão pede login na conta Xiaomi e, segundo a própria documentação, precisa de internet a cada conexão para obter as chaves de criptografia.
- go2rtc no GitHub.
- OpenIPC, processadores SigmaStar: o SSC323, processador dessa câmera, aparece como “No equipment”, sem suporte.
O gravador e os 5 V
- flashrom, CH341A/B: explica a diferença entre o CH341A e o CH341B e por que as placas mais comuns mandam quase 5 V para a memória, mesmo tendo um regulador de 3,3 V.
- OpenIPC wiki, correção de tensão do CH341A: como alimentar o chip do gravador com 3,3 V. Afeta as placas anteriores à versão 1.7.
Os vídeos
- Parte 1, no Instagram: o problema do firmware que vem direto da China e o plano da engenharia reversa.
- Parte 2, no Instagram: a câmera aberta e os chips por dentro.
- Parte 3: [LINK DO VÍDEO DA PARTE 3]





