OpenIPC: firmware abierto alternativo para cámaras IP
(github.com/OpenIPC)- OpenIPC es un proyecto de firmware de código abierto que busca reemplazar el firmware propietario o abandonado de cámaras IP basadas en ARM y MIPS de varios fabricantes
- Los usuarios finales pueden instalarlo con firmware binario precompilado, y los desarrolladores pueden acceder al código fuente completo para participar en su mejora
- El código fuente se publica bajo la MIT License, por lo que también puede reutilizarse como parte de software propietario, aunque se solicita devolver las mejoras y contactar en caso de uso comercial
- El proyecto y sus componentes incluyen una restricción explícita de prohibición de uso con fines militares
- Al principio solo era compatible con SoC de HiSilicon, pero ahora el rango de chips compatibles se ha ampliado a Ambarella, Anyka, Fullhan, Goke, GrainMedia, Ingenic, MStar, Novatek, SigmaStar, XiongMai y más
Reemplazo de firmware cerrado para cámaras IP
- OpenIPC es un sistema operativo de código abierto creado por una comunidad abierta
- Está dirigido a cámaras IP basadas en procesadores ARM y MIPS de varios fabricantes
- Su objetivo es reemplazar el firmware preinstalado por el proveedor
- Suele ser cerrado y difícil de inspeccionar internamente
- A menudo es inseguro o queda abandonado
- También puede servir como alternativa para equipos cuyo soporte fue descontinuado
Instalación y participación en el desarrollo
- Proporciona archivos binarios precompilados para que los usuarios finales puedan instalarlo fácilmente
- También ofrece acceso a los archivos fuente completos para desarrollo y mejoras adicionales
- Los desarrolladores interesados en contribuir pueden participar en la mejora del proyecto
Licencia y restricciones de uso
- El código fuente de OpenIPC se publica bajo la MIT License
- Los usuarios reciben permiso explícito para reutilizar el código con cualquier propósito
- También se permite usarlo como parte de software propietario
- El proyecto solicita que las mejoras se devuelvan a la comunidad
- También pide que se pongan en contacto si van a usar el proyecto con fines comerciales
- No se permite el uso con fines militares del proyecto OpenIPC ni de sus componentes
Ampliación del soporte de SoC
- Históricamente, el firmware de OpenIPC solo era compatible con SoC de HiSilicon
- A medida que continuó el desarrollo, se amplió la lista de procesadores compatibles
- Actualmente incluye chips de los siguientes fabricantes
- Ambarella
- Anyka
- Fullhan
- Goke
- GrainMedia
- Ingenic
- MStar
- Novatek
- SigmaStar
- XiongMai
- Se espera que la lista de procesadores compatibles siga creciendo
Documentación y referencias
- Se puede encontrar más información sobre el proyecto en el sitio web y la wiki de OpenIPC
1 comentarios
Opiniones en Hacker News
Lo investigué por mi cuenta hace un tiempo, pero en su mayoría fue un proceso decepcionante. En teoría suena bien comprar cualquier cámara IP china y cambiarle el firmware por uno abierto, pero el problema real es comprar una cámara, o 10, y luego comprar más con el paso del tiempo.
Es difícil saber qué hardware interno tiene en un momento determinado, por ejemplo cuál es el SoC real, y los fabricantes chinos cambian con frecuencia el SoC interno para mejorar márgenes. Aunque alguien haya reportado un mismo modelo, si compras el mismo número de modelo 6 meses o 1 año después, es difícil esperar que tenga el mismo hardware.
En los sitios de venta o de los fabricantes casi nunca se indica qué SoC usan, e incluso si puedes encontrar o traducir información útil, no está claro que la empresa con ese nombre siga existiendo unos meses después. Al final, no hay una fuente repetible salvo probar muestras y usarlas hackeándolas uno mismo.
Ojalá alguien vendiera o revendiera una línea de hardware de cámaras con OpenIPC u otro firmware abierto ya instalado. Hay una oportunidad de negocio vacante para ofrecer a usuarios domésticos y de oficina cámaras IP con firmware de seguridad garantizado, y ahora mismo solo hay cachivaches chinos aleatorios.
Se puede reutilizar como firewall una mini PC con varios puertos Ethernet y separar físicamente la subred de videovigilancia del resto de la red. Todas las cámaras van conectadas a un switch, y si se puede, conviene usar uno con soporte PoE. Por razones obvias, ni consideraría Wi-Fi.
Ojalá alguien ofreciera una opción para comprar una cámara con hardware/software abierto, para no tener que abrir la red a servicios cloud aleatorios que exigen las cámaras baratas.
Hardware: https://github.com/maxlab-io/tokay-lite-pcb
Firmware y capa de software: https://github.com/maxlab-io/tokay-lite-sdk
La idea es lanzarla finalmente en Crowd Supply: https://www.crowdsupply.com/maxlab/tokay-lite
Por ejemplo, la mayoría de los drivers de sensores parecen blobs binarios.
Ambarella S3L: https://github.com/OpenIPC/firmware/tree/master/general/pack...
Algunos chipsets HiSilicon: https://github.com/OpenIPC/firmware/tree/master/general/pack...
Edición: algunos sensores más pequeños sí tienen código aquí:
https://github.com/OpenIPC/sensors
Ese repositorio de Git es solo para reportar bugs; no hay código fuente.
Da una fuerte sensación de firmware casero de Android.
https://openipc.org/support-open-source
Si quisieran open source de verdad, el modelo de OpenWrt me parecía bastante bueno, y la naturaleza del trabajo de ingeniería también parece similar. Algunos fabricantes de hardware usan OpenWrt en su firmware, y gracias a eso parece que el OpenWrt open source mainline también termina soportando bien ese hardware.
Para quienes tengan curiosidad por saber si su dispositivo es compatible, aquí hay una lista:
https://github.com/OpenIPC/wiki/blob/master/en/guide-support...
No reconocí ninguna entre las miles de marcas rebautizadas/submarcas conocidas de HikVision y Daihua. Ambas compañías han estado implicadas en la represión de los uigures en China y fueron prohibidas por la NDAA. Referencia: https://ipvm.com/reports/ban-law
Pregunta totalmente al margen, pero ¿alguien recomienda una cámara con buena o muy buena calidad de imagen que hoy sea fácil de conseguir (Amazon, AliExpress, etc.) y que sea compatible con esto?
Hace mucho tiempo armé un negocio con cámaras IP comerciales. Ese campo estaba lleno de firmware con bugs y enormes agujeros de seguridad, y el problema más grande que encontré era que se podían obtener fotos sin autenticación. Ese firmware casi nunca se actualizaba y, apenas sacado de la caja, era software abandonado.
No parece que este proyecto sea completamente abierto, pero cualquier movimiento en esa dirección se siente como una bocanada de aire fresco.
OpenIPC no significaba para nada lo que yo pensaba.
Estaba 100% seguro de que sería alguna abstracción o framework de comunicación entre procesos.
Majestic, el componente “core” principal de streaming de la cámara, es de código cerrado. Maneja RTSP, HLS, etc. El resto está abierto, salvo algunos blobs de SDK de terceros.
Lo interesante de este proyecto es que están reutilizando hardware barato de cámaras IP para usarlo en drones FPV como un sistema de video digital de latencia baja bastante decente.
https://m.youtube.com/watch?v=wZAHkWHfBF4
En su mayoría es una extensión del proyecto OpenHD, y se ve bastante prometedor.
Relacionado con esto, hace tiempo hackeé cámaras de acción Ambarella: https://github.com/petabyt/liemoth
Al final lo dejé porque la calidad de las cámaras de acción era demasiado baja. Había cientos de proveedores vendiendo cámaras chinas baratas rebautizadas, y el firmware también era pésimo. Todo se calentaba y la batería duraba apenas unos minutos.