Android TV para Raspberry Pi 3

Publicado: 06 Junio 2016, 11:31
por Cazador


Muchas son las plataformas que se pueden desplegar en las famosas placas Raspberry Pi. En ELSATE.com os hemos detallado como poder utilizar una Raspberry Pi 3 como reproductor multimedia o SmartTV gracias a OSMC. Ahora os vamos a detallas algunas de las ventajas de tener Android TV en vuestra televisión, como la de que podreis todas la aplicaciones compatibles con Android, ya que su base esta basada en Android 6.0.

En Android TV podremos utilizar todas las aplicaciones compatibles con Android

A continuación os vamos a detallar los pasos a seguir para instalar Android TV en vuestra Raspberry Pi 3, y lo que esto supone, que podréis utilizar aplicaciones de Android en vuestra Raspberry Pi. Lo más sencillo es utilizar una imagen ya compilada, pero aquellos que quieran compilar/construir su propia versión pueden pasar al punto de Requisitos Previos para realizar todo el proceso.

Requisitos

- Descargar el software / utilidades para realizar la instalación
- Una Placa Raspberry Pi (versión 3) - ( cuesta unos 40 euros)
- Tarjeta MicroSD de 16 Gb de tamaño como mínimo para el correcto funcionamiento de Android TV (con adaptador SD o lector USB para la instalación desde un PC)

Grabar imagen .img Android TV para Raspberry Pi 3 con win32diskimager (sencillo)

Este es el proceso más sencillo para tener Android TV funcionando en nuestra Raspberry Pi 3.

Paso 1: Descarga de imagen
Descargamos la imagen de Android TV para Raspberry Pi 3 del siguiente enlace: atvrpi320160530.img.bz2 o de atvrpi320160530.img.bz2

Paso 2: Grabamos la imagen con Win32DiskImager
Utilizaremos el software Win32DiskImager (http://sourceforge.net/projects/win32diskimager/) para grabar la imagen IMG en la tarjeta SD.


Publicado: 06 Junio 2016, 13:24
por Cazador
Instalación de Android TV para Raspberry Pi 3 mediante compilación (avanzado)

Aquellos que decidáis compilar de 0 la versión de Android TV para empezar tenéis que comprobar los requisitos previos que os detallamos a continuación (eso es si deseáis realizar la compilación vosotros mismos):

Requisitos Previos

Paso 1: Descarga el código fuente de Android con parches

Consulta el enlace oficial http://source.android.com/source/downloading.html

Código:

repo init -u https://android.googlesource.com/platform/manifest -b android-n-preview-2
cd .repo
git clone https://github.com/peyo-hd/local_manifests -b npv
repo sync

Paso 2: Compila el código para Raspberry Pi3

Consulta el enlace https://github.com/peyo-hd/device_brcm_rpi3 - A continuación en este mismo tema detallamos el proceso de Instalación compilando para Raspberry Pi3

Enlace Descarga



Instalación compilando para Raspberry Pi3

Paso 1: Compila el Kernel para Raspberry Pi3

Instalaremos gcc-arm-linux-gnueabihf

Código:

sudo apt install gcc-arm-linux-gnueabihf

Código:

cd kernel/rpi
ARCH=arm scripts/kconfig/merge_config.sh arch/arm/configs/bcm2709_defconfig android/configs/android-base.cfg android/configs/android-recommended.cfg
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make zImage
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make dtbs

Paso 2: Instalar el modulo python mako

Código:

 sudo apt-get install python-mako

Paso 3: Parches para el frameworks/base
Realizaremos los siguientes cambios para solventar algunos detalles que se indican en https://github.com/peyo-hd/device_brcm_ ... gcat-flood y que os detallamos a continuación.

[*]Evitar desbordamiento del logcat

Este parche evita el desbordamiento del Logcat por eventos del ratón.

Código:

core/java/android/view/GestureDetector.java
 @@ line 490 @@ public class GestureDetector {
     public boolean onTouchEvent(MotionEvent ev) {
 +        switch(ev.getAction() & MotionEvent.ACTION_MASK) {
 +        case MotionEvent.ACTION_HOVER_MOVE:
 +        case MotionEvent.ACTION_HOVER_ENTER:
 +        case MotionEvent.ACTION_HOVER_EXIT:
 +        case MotionEvent.ACTION_BUTTON_PRESS:
 +        case MotionEvent.ACTION_BUTTON_RELEASE:
 +        case MotionEvent.ACTION_SCROLL:
 +            return false;
 +        }
          if (mInputEventConsistencyVerifier != null) {


[*]Activa GLSurfaceView

En la actualidad la compilación de mesa3d vc4 solo soporta los siguientes formatos

Código:

opengl/java/android/opengl/GLSurfaceView.java
@@ line 976 @@ public class GLSurfaceView extends SurfaceView implements SurfaceHolder.Callback
         public SimpleEGLConfigChooser(boolean withDepthBuffer) {
-            super(8, 8, 8, 0, withDepthBuffer ? 16 : 0, 0);
+            super(8, 8, 8, 8, withDepthBuffer ? 24 : 0, 0);
         }

[*]Evitar parpadeo de pantalla

El modo estricto se encuentra activado por defecto. Podemos evitarlo mediante la aplicación siguiente parche. Esta opción podría ser activado a través de Configuración -> Opciones de desarrollador -> El modo estricto activado (Settings -> Developer options -> Strict mode enabled)

Código:

core/java/android/os/StrictMode.java
@@ line 1068 @@ public final class StrictMode {
     if (IS_ENG_BUILD) {
-            doFlashes = true;
     }

[*]Activar la decodificación de vídeo por software

Código:

media/libstagefright/colorconversion/SoftwareRenderer.cpp
@@ line 113 @@ void SoftwareRenderer::resetFormatIfChanged(const sp<AMessage> &format) {
     case OMX_TI_COLOR_FormatYUV420PackedSemiPlanar:
     {
-            halFormat = HAL_PIXEL_FORMAT_YV12;
-            bufWidth = (mCropWidth + 1) & ~1;
-            bufHeight = (mCropHeight + 1) & ~1;
         break;
     }

Cómo aplicar el lanzador de Android TV

Podéis encontrar la última versión del lanzador (Launcher) binario en el siguiente enlace: https://developers.google.com/android/n ... ivers#fugu

Antes de realizar el paso de compilación de Android, tenéis que extraer el paquete binario de Android (apk) del enlace anterior. Una vez hecho esto colocaremos los ficheros en la siguiente ruta:

Código:

vendor/google/fugu/proprietary/LeanbackLauncher.apk

Después de eso hacer la compilación de Android y el sistema de archivos de destino de escritura. Compruebe que el lanzador Launcher2 se ha sustituido por el LeanbackLauncher en la carpeta de destino de la Tarjeta SD /system/priv-app .
Ambos lanzadores pueden coexistir. Por ultimo elimine Launcher2 en el PC donde esta montada la tarjeta SD.

Paso 4: Compila los fuentes de Android
Continua con la compilación como se indica en el siguiente enlace http://source.android.com/source/building.html

Código:

source build/envsetup.sh
lunch rpi3-eng
make

Paso 5: Preparar la tarjeta SD
La tarjeta SD deberia tener la siguiente tabla de particiones:

Descarga Software SDFormatterv4 desde la pagina oficial sdcard.org

Descarga Software fat32format

Partición 1
512MB para el arranque (BOOT) : Utilizar fdisk : W95 FAT32(LBA) & Bootable, mkfs.vfat
Partición 2
512MB para el /system : Utilizar fdisk, new primary partition
Partición 3
512MB para cache : Utilizar fdisk, mkfs.ext4
Partición 4
Restante para /data : Utilizar fdisk, mkfs.ex4
Establecemos la etiqueta del volumen para cada partición: system, cache, userdata . Para ello utilizaremos la opción -L de mkfs.ext4, comando e2label , o la opción -n de mkfs.vfat

Paso 6: Escribimos la partición del sistema

Volcamos la imagen del sistema en la partición correcta (partición 2 - /system )

Código:

cd out/target/product/rpi3
sudo dd if=system.img of=/dev/<partición 2> bs=1M

Paso 7: Preparación de partición de arranque Boot, kernel y ramdisk

En este punto tendremos que copiar a cada partición los archivos necesarios para "crear el sistema"

device/brcm/rpi3/boot/* a la raíz / de la partición 1
kernel/rpi/arch/arm/boot/zImage a la raíz / de la partición 1
kernel/rpi/arch/arm/boot/dts/bcm2710-rpi-3-b.dtb a la raíz / de la partición 1
kernel/rpi/arch/arm/boot/dts/overlays/vc4-kms-v3d.dtbo a /overlays/vc4-kms-v3d.dtbo de la partición 1
out/target/product/rpi3/ramdisk.img a la raíz / de la partición 1


Fuentes: https://github.com/peyo-hd/device_brcm_rpi3

Nota: Este tema en el foro pretende ser una guía/tutorial en castellano para aquellos que estén interesados en montar Android TV en una Raspberry Pi 3. Cualquier corrección o aportación sobre el mismo es bien recibida.

Publicado: 30 Septiembre 2016, 11:12
por barthez919
buenas.

funciona perfectamente, pero soy incapaz de instalar una APP , como o donde podría enconar información.

Publicado: 01 Octubre 2016, 11:49
por Cazador
barthez919 escribió:buenas.

funciona perfectamente, pero soy incapaz de instalar una APP , como o donde podría enconar información.



Las aplicaciones las tienes que instalar mediante APK. Empieza por utilizar un Explorador de Archivos para Android (ES Explorer). Tienes que enviar el APK desde otro dispositivo a tu Android TV y habilitar en Android TV la instalación de APP de terceros.

¿Cómo instalar Aplicaciones de Terceros en Android TV?

Paso 1: Habilitar instalación de fuentes desconocidas en Ajustes

No se puede instalar directamente un APK sin habilitar la instalación de fuentes desconocidas, esto está deshabilitado en general para proteger a los usuarios de la instalación de malware desconocido o aplicaciones infectadas. Entre las medidas que permiten la instalación de fuentes desconocidas es similar a la forma en que hacemos en los teléfonos inteligentes Android.

Ir al Menu de Aplicaciones> Ajustes > Seguridad > Orígenes Desconocidos ( App Drawer > Settings > Security and Restrictions )

Paso 2: Descargate el APK desde otro dispositivo, móvil, ordenador...

Tienes que comenzar a bajarte un APK de un explorador de archivos como por ejemplo el ES Explorer, para poder ya desde esa aplicación obtener y gestionar otros APKs de forma sencilla.

Paso 3: Transfiere el archivo APK a tu Android TV usando una memoria USB

Una vez que el archivo APK que quieres instalar ya se ha descargado por completo, copia el archivo en una memoria USB o cualquier otro dispositivo de almacenamiento de ese tipo. Luego conectas el dispositivo de almacenamiento en el que has descargado los archivos APK de Android TV.

Ahora utilizas ese explorador de archivos ES Explorer, para copiar los archivos APK que has descargado en tu Android TV

Publicado: 25 Marzo 2017, 19:19
por AllIn
Bufff menos mal que me funciono con la primera parte, si tengo que hacer lo de compilar no hubiese podido

Publicado: 29 Marzo 2017, 11:49
por ArcaBox
¿Alguien ha probado algún emulador en Android TV? ¿Qué tal en rendimiento, e mueve mejor que con Retropié?

Publicado: 29 Marzo 2017, 11:53
por Google
ArcaBox escribió:¿Alguien ha probado algún emulador en Android TV? ¿Qué tal en rendimiento, e mueve mejor que con Retropié?

El Snes9X va bastante bien la verdad, y te permite configurar el gamepad. Lo mejor es que lo pruebes, ya que lo bueno de Android Tv es que te permite además de poder tener emuladores, usar otras aplicaciones Android.

Publicado: 29 Marzo 2017, 11:55
por Cazador
ArcaBox escribió:¿Alguien ha probado algún emulador en Android TV? ¿Qué tal en rendimiento, e mueve mejor que con Retropié?

Pues como ves en la captura funcionan la mayoria de ellos. Es más puedes instalar la aplicación KODI en Android TV, asi que lo mejor es que si tienes una Raspberry Pi 3 lo pruebes tu mismo

Publicidad