1 pontos por GN⁺ 2023-10-09 | 1 comentários | Compartilhar no WhatsApp
  • OpenIPC é um projeto de firmware open source que busca substituir firmwares de fabricante fechados ou abandonados em câmeras IP baseadas em ARM e MIPS de vários fabricantes
  • Usuários finais podem instalar por meio de firmware binário pré-compilado, e desenvolvedores podem acessar todo o código-fonte e participar de melhorias
  • O código-fonte é disponibilizado sob a MIT License e pode ser reutilizado até como parte de software proprietário, mas o projeto pede o retorno das melhorias e solicita contato em caso de uso comercial
  • O projeto e seus componentes trazem uma restrição explícita de proibição de uso para fins militares
  • No início, havia suporte apenas para SoCs HiSilicon, mas hoje o conjunto de chips compatíveis foi ampliado para incluir Ambarella, Anyka, Fullhan, Goke, GrainMedia, Ingenic, MStar, Novatek, SigmaStar, XiongMai e outros

Substituição de firmware fechado em câmeras IP

  • OpenIPC é um sistema operacional open source criado por uma comunidade aberta
  • É voltado para câmeras IP baseadas em processadores ARM e MIPS de vários fabricantes
  • O objetivo é substituir o firmware pré-instalado pelo fabricante
    • geralmente é fechado e difícil de inspecionar internamente
    • muitas vezes é inseguro ou acaba sendo abandonado
    • também pode ser uma alternativa para equipamentos que perderam suporte

Instalação e participação no desenvolvimento

  • Para facilitar a instalação por usuários finais, o projeto fornece arquivos binários pré-compilados
  • Para desenvolvimento adicional e melhorias, também há acesso completo aos arquivos-fonte
  • Desenvolvedores interessados em contribuir podem participar da evolução do projeto

Licença e restrições de uso

  • O código-fonte do OpenIPC é disponibilizado sob a MIT License
  • Os usuários recebem permissão explícita para reutilizar o código para qualquer finalidade
    • inclusive como parte de software proprietário
  • O projeto pede que as melhorias sejam contribuídas de volta
  • Em caso de uso do projeto para fins comerciais, é solicitado que entrem em contato
  • Não é permitido o uso para fins militares do projeto OpenIPC e de seus componentes

Expansão do suporte a SoCs

  • Historicamente, o firmware OpenIPC suportava apenas SoCs HiSilicon
  • Com a continuidade do desenvolvimento, a lista de processadores compatíveis foi ampliada
  • Atualmente, os chips suportados incluem os seguintes fabricantes
    • Ambarella
    • Anyka
    • Fullhan
    • Goke
    • GrainMedia
    • Ingenic
    • MStar
    • Novatek
    • SigmaStar
    • XiongMai
  • A lista de processadores compatíveis deverá continuar crescendo no futuro

Documentação e onde consultar

  • Mais informações sobre o projeto podem ser encontradas no site e na wiki do OpenIPC

1 comentários

 
GN⁺ 2023-10-09
Opiniões no Hacker News
  • Já pesquisei isso por conta própria no passado, mas na maior parte foi um processo decepcionante. A ideia de comprar qualquer câmera IP chinesa e trocar por um firmware aberto é boa na teoria, mas o problema real é comprar 1 câmera ou 10, e depois comprar mais com o passar do tempo
    Em um determinado momento, é difícil saber qual é o hardware interno, por exemplo qual é o SoC real, e os fabricantes chineses trocam o SoC interno com frequência para melhorar as margens. Mesmo que alguém tenha relatado um mesmo modelo, se você comprar o mesmo número de modelo 6 meses a 1 ano depois, é difícil esperar que seja o mesmo hardware
    Sites de venda ou de fabricantes quase nunca informam qual SoC é usado e, mesmo que você consiga encontrar ou traduzir alguma informação útil, não dá para saber se a empresa com aquele nome ainda vai existir alguns meses depois. No fim, não há uma fonte reproduzível além de testar amostras e ir hackeando por conta própria
    Seria ótimo se alguém vendesse ou revendesse uma linha de hardware de câmeras com OpenIPC ou outro firmware aberto já instalado. Há uma oportunidade de negócio em aberto para oferecer a usuários domésticos/corporativos câmeras IP com firmware de segurança garantido, e hoje só existe tranqueira chinesa aleatória

    • Quando tenho dúvidas, parto do princípio de que toda câmera com firmware fechado contém malware esperando para se comunicar com casa, roubar vídeo/áudio sensível ou participar de uma botnet. Isso já aconteceu várias vezes, e a solução atual é colocar no meio um firewall que bloqueie todo o tráfego para a LAN e para fora, exceto para aplicações em que você confia
      Dá para reaproveitar como firewall um mini PC com várias portas Ethernet e separar fisicamente a sub-rede de vigilância por vídeo do restante da rede. Todas as câmeras devem ser conectadas a um switch e, se possível, é melhor usar um switch com PoE. Por motivos óbvios, nem considero Wi-Fi
    • Concordo totalmente. Passei pela mesma frustração tentando encontrar câmeras que funcionassem em intervalos de meses/anos. É preciso abrir cada produto e hackeá-lo manualmente, e o OpenIPC pode ou não dar suporte. Hoje em dia, há também proteções para dificultar a instalação de firmware, com barreiras como pequenas portas UART/debug e loaders U-Boot desativados
      Seria ótimo se alguém oferecesse a opção de comprar câmeras com hardware/software abertos, para que não fosse necessário abrir a rede para serviços de nuvem aleatórios exigidos por câmeras baratas
    • Para quem precisar, há um projeto paralelo cujo objetivo é criar uma câmera totalmente open source
      Hardware: https://github.com/maxlab-io/tokay-lite-pcb
      Camada de firmware e software: https://github.com/maxlab-io/tokay-lite-sdk
      A intenção é lançá-la no Crowd Supply no fim: https://www.crowdsupply.com/maxlab/tokay-lite
    • Os fabricantes até poderiam fazer isso diretamente, mas a licença proíbe uso comercial
    • Já pensei em algo assim. Alguém quer trabalhar nisso junto?
  • Por exemplo, a maioria dos drivers de sensores parece ser blob binário
    Ambarella S3L: https://github.com/OpenIPC/firmware/tree/master/general/pack...
    Alguns chipsets HiSilicon: https://github.com/OpenIPC/firmware/tree/master/general/pack...
    Edit: alguns sensores menores têm código aqui
    https://github.com/OpenIPC/sensors

    • Sim. A aplicação em user space responsável pelo streaming de fato também é código fechado: https://github.com/OpenIPC/majestic
      Esse repositório Git é apenas para relatórios de bugs, não há código-fonte
    • Eles também usam kernels de fornecedor bem antigos. Variam de 3.x a 4.x e 5.x, o que acaba minando um pouco o propósito. Como a maioria é bem pequena, parece melhor simplesmente fazer engenharia reversa
      Dá uma forte sensação de firmware homebrew de Android
  • https://openipc.org/support-open-source

    It's Open Source
    Price of the Firmware
    The right to use the OpenIPC firmware and its components is granted to all users free of charge and only for personal, non-commercial purposes. If you are interested in using OpenIPC for your business projects, please contact our team.

    • Fico me perguntando se eles realmente querem open source, ou se é uma tentativa comercial de jogar a parte difícil de engenharia para a “comunidade” fazer de graça
      Se quisessem open source de verdade, o modelo do OpenWrt parecia muito bom, e a natureza do trabalho de engenharia também parece parecida. Alguns fabricantes de hardware usam OpenWrt no firmware e, por causa disso, o OpenWrt open source mainline também acaba oferecendo bom suporte a esse hardware
    • Confuso. O repositório no GitHub tem licença MIT. Talvez algum código-fonte secreto seja acrescentado, com a cláusula não comercial se aplicando apenas aos binários compilados?
  • Para quem quer saber se o dispositivo é compatível, a lista está aqui
    https://github.com/OpenIPC/wiki/blob/master/en/guide-support...

    • Uau. Dessas marcas de câmera, só ouvi falar de duas
      Mesmo entre os milhares de rebrands/submarcas conhecidos da HikVision e da Daihua, não reconheci nenhum. Ambas as empresas estiveram envolvidas na repressão aos uigures na China e já foram banidas pela NDAA. Referência: https://ipvm.com/reports/ban-law
    • Finalmente surgiu uma forma de decidir qual câmera IP comprar
  • Pergunta totalmente aleatória, mas alguém tem recomendação de uma câmera com qualidade de imagem boa ou muito boa, que seja fácil de encontrar hoje (Amazon, AliExpress etc.) e que seja compatível com isso?

    • Também tenho curiosidade. Já comprei um produto que achei que fosse compatível e depois descobri que não era. Seria bom saber se alguém teve sucesso com um hardware específico
  • Muito tempo atrás, montei um negócio usando câmeras IP prontas de mercado. Esse setor era cheio de firmwares bugados e enormes falhas de segurança, e o maior problema que encontrei era que dava para obter fotos sem nenhuma autenticação. Esses firmwares quase nunca eram atualizados; era software abandonado assim que saía da caixa
    Este projeto não parece ser totalmente aberto, mas qualquer movimento nessa direção é como uma lufada de ar fresco

  • OpenIPC não era nem de longe o que eu achei que significava
    Tinha 100% de certeza de que seria alguma abstração ou framework de comunicação entre processos

    • Pois é. Aqui, IPC já tem um significado estabelecido demais. Um nome como OpenIPCam talvez fosse um pouco mais seguro
  • O Majestic, o principal componente de “core” de streaming da câmera, é de código fechado. Ele lida com RTSP, HLS etc. O restante é aberto, com exceção de alguns blobs de SDKs de terceiros

  • O interessante nesse projeto é que eles estão reaproveitando hardware barato de câmeras IP para usar como um sistema de vídeo digital de baixa latência bastante decente para drones FPV
    https://m.youtube.com/watch?v=wZAHkWHfBF4
    Em grande parte é uma extensão do projeto OpenHD, e parece bastante promissor

  • Relacionado a isso, há algum tempo eu hackeei câmeras de ação Ambarella: https://github.com/petabyt/liemoth
    Acabei desistindo porque a qualidade das câmeras de ação era baixa demais. Havia centenas de fornecedores lançando câmeras chinesas baratas remarcadas, e o firmware também era péssimo. Tudo esquentava e a bateria durava só alguns minutos