mekkon escribió:maxpower91 escribió:mekkon escribió:Que cosa más rara, fallos de seguridad en Android TV para que una app haga inaccesible el hdmi?
No tengo pruebas, pero tampoco dudas, de que detrás de estos problemas casi siempre hay algún sistema de DRM a nivel de protocolo (normalmente más malo que pegar a un padre en Navidad)
para impedir la captura de contenido.
No sé si realmente es para impedir la captura realmente, ya que todos los HDMI de la TV son de entrada, con lo que no se puede enviar nada de salida, vamos no creo que se pueda revertir la dirección, esta capturando el streaming del hdmi quizás? para enviarlo donde? y para que? es quizás con las Xiaomi que la cosa no va bien si se hace este tipo de operación?
Es curioso que por ejemplo si una app utiliza el micrófono, este te salga en el apartado de los permisos de Android que app esta solicitando/usando la funcionalidad, pero en hdmi no me suena haber visto nada sobre permisos.
El tema es que no es tanto la funcionalidad real sino cómo funciona el DRM del HDMI. Aviso, se viene tremenda chapa
Por ejemplo, Xiaomi quiere fabricar dispositivos con interfaz HDMI que puedan emitir/recibir contenido protegido, pues como fabricante tiene que solicitárselo al consorcio HDMI. Dicho consorcio proporciona a Xiaomi unas claves de encriptación para que su equipo pueda emitir/recibir contenido protegido, pero, para que funcione, la interfaz HDMI de sus dispositivos también cuenta con una clave única que identifica a Xiaomi como fabricante (y que también emite el consorcio). Es una especie de club donde, por ejemplo, Xiaomi y Sony están para que una TV y una PlayStation se entiendan entre ellas (ambos fabricantes tienen las mismas claves de encriptación) y donde, en caso de que alguno la lie y su dispositivo emita contenido sin encriptar (desprotegido) pueden quitarle la "licencia" (para eso la clave de identificación).
¿Os habéis preguntado alguna vez por qué un puerto HDMI sólo emite o recibe aunque sean físicamente iguales? Pues es por dicho DRM (unos encriptan y otros desencriptan) ¿Os habéis preguntado alguna vez por qué el HDMI es tan exigente con la versión de los cables si son físicamente iguales? Pues por el DRM, por que en una señal digital que lleva 1 y 0 la constitución del cable no es muy importante (no tanto como en las señales analógicas, vaya), pero puede que las versiones más antiguas no reconozcan las claves de las más modernas.
Tanto los puertos emisores, como el cable y los puertos receptores han de implementar el DRM para que la cadena funcione. En la época del Blu-Ray esa cadena era más sencilla, pero el dueño del contenido (una película en disco, por ejemplo) no tenía tanto control sobre dónde se reproducía su película. Sin embargo, en los tiempos del
streaming es diferente. Primero está el tema de que Android TV puede estar tanto en un dispositivo emisor (un Chromecast) como receptor (una Smart TV), aunque el SO sea el mismo. Luego las productoras (que han cambiado el Blu-Ray por apps) ahora tienen más control y en la medida de lo posible, quieren que el dispositivo que emite su contenido sea de un fabricante adscrito al consorcio HDMI (vamos, que tenga clave de identificación, la cual se aloja en el
firmware de la interfaz HDMI).
¿Os parece poco? No os preocupéis, que hay más (y no me extrañaría que el problema venga de aquí). A todo este lio añadimos que en realidad un mismo puerto HDMI sí que puede enviar y recibir, no video, pero sí datos; se llama conexión CEC. Dicha conexión sirve para que los dispositivos se comuniquen entre si y muchas veces comienza desde una app. Por ejemplo, a la app de YouTube de mi Pixel le digo que muestre un video en la app de YouTube de mi Fire TV (con la TV apagada). La app del móvil envía la señal a la app del Fire TV, y mientras YouTube hace lo suyo (abrir el video) también le dice al SO del Fire TV que se comunique con la interfaz HDMI para que, mediante CEC, envíe una señal a la TV, esta se encienda y conmute sola a la entrada HDMI donde está conectado el Fire TV. No me extiendo más porque es un lio, pero sí añadir que, como CEC puede enviar y recibir, se aprovecha para otra conexión llamada ARC. Dicha conexión es de sonido y se utiliza para que sea la TV quién lo envíe por HDMI a un receptor A/V, barra de sonido, etc. (normalmente en Dolby Digital o DTS). Para colmo, ARC ni siquiera utiliza el protocolo HDMI, sino el del S/PDIF (que tiene 35 años...).
Resumiendo; que lo más triste de todo es que, incluso con esta chapa, como no soy programador no sé cómo narices se entienden todos en semejante pollo. Lo que si creo es que, aunque la app esté en la propia TV y los HDMI no deberían verse afectados, seguramente el problema venga de que la app de Atresmedia es la misma que se utiliza en todos los dispositivos Android TV (y otros sí hacen uso del HDMI). A partir de ahí bueno, se supone que debería ser Google y su SO los únicos encargados de acceder a la interfaz HDMI, pero entre DRM, claves de identificación, etc. quizá permitan cierto acceso de lectura a las apps. Luego, aunque la app tampoco debería de tocar CEC, si puede hacerlo os aseguro (porque me ha ocurrido) que mal implementada puede incluso bloquear los dispositivos conectados a la TV (no deja de ser una red). No son fallos graves, porque la conexión es muy limitada, pero de reiniciar el aparato (o desinstalar una app, si ese fuera el problema) no te quita nadie.
Desde la llegada del
streaming se avisó de que el DRM actual (HDCP se llama) estaba obsoleto, pues tener DRM en el HDMI no protege mucho, pero puede dar problemas de uso. También se ha dicho que la implementación de CEC debería ser más estricta, no tanto por problemas de seguridad sino porque cada fabricante la implementa como quiere y tiene errores tontos. Si tienes dispositivos de la misma marca o un receptor A/V de un fabricante decente (Yamaha lo implementa muy bien) es una buena experiencia, si no, mejor desconectarlo porque ves auténticos
poltergeists. Sin embargo, a nadie parece preocuparle mucho todo esto y bueno, de aquellos polvos, estos lodos.