domingo, 29 de noviembre de 2015

Problemas con el HDMI de la app de Orange TV en Android y cómo solucionarlo.

La app de Orange TV para Android viene de serie capada para que no podamos usar el HDMI de nuestra tablet o smartphone para poder ver los canales en nuestro flamante televisor.

Tal día como hoy, me dispuse a conectar mi tablet por HDMI al televisor. Arranqué la app de Orange TV y puse un canal al azar. Conecté el cable HDMI a la tablet y WTF!

Error HDMI Orange TV

A santo de que los lumbreras de Orange deciden capar el HDMI para poder ver el contenido desde mi televisor? No me parece justo, ya que además de cliente de TV, también lo soy de móvil y ADSL / Fibra y me gasto los cuartos para que encima decidan si puedo usar o no el HDMI!

Ante esta indignación e imagino que la de mucha gente, indico una serie de pasos básicos para poder usar el puerto HDMI con la app de Orange TV de Android.
Básicamente consiste en eliminar el IntentFilter para que la aplicación no se entere cuando ocurran los eventos / acciones relacionados con:

  • HDMI_AUDIO_PLUG
  • HDMI_PLUGGED

Asumo que tienes conocimientos de reversing en Android, por lo que no voy a comentar muchos de los pasos por lo que los doy por sabidos.
  • Hazte con una copia del apk de Orange TV.
  • Decompilamos con apktool
    • ./apktool d com.orange.es.orangetv-1.apk
  • Modificar constructor privado ".method private constructor <init>()V" de la clase "com/discretix/drmdlc/api/DxBroadcastReceiver.smali" eliminando estas líneas:

    const-string v1, "android.intent.action.HDMI_AUDIO_PLUG"

    invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V

    const-string v1, "android.intent.action.HDMI_PLUGGED"

    invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
  • Compilamos con apktool: 
    • ./apktool b com.orange.es.orangetv-1
  • Firmar (Me he generado el keystore "apktool.keystore" con contraseña "apktool" para firmar con el certificado "apktool")
    • jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore apktool.keystore -storepass apktool com.orange.es.orangetv-1.apk apktool
  • Verificamos firma
    • jarsigner -verify -verbose -certs com.orange.es.orangetv-1.apk
  • Alineamos
    • zipalign -v 4 com.orange.es.orangetv-1.apk "com.orange.es.orangetv-1.align.apk"
  • Desinstalamos la app original de Orange TV.
  • Conectamos nuestro dispositivo e instalamos la app "tuneada"
    • adb install com.orange.es.orangetv-1.align.apk
Para los más perezosos, dejo una copia del apk modificado. Es la versión 1.3.2, la tenéis aquí.

Saludos,