Cómo instalar Android Q Beta GSI en su dispositivo para que pueda probar sus aplicaciones

A medida que avanzamos cada vez más cerca de la versión final de Android Q, el tiempo para que los desarrolladores actualicen sus aplicaciones se acorta. Aunque Android 9 Pie (nivel de API 28) aún no ha alcanzado la gran mayoría de los dispositivos, los requisitos de nivel de API de Google Play, que ya debe conocer, lo obligarán a alcanzar el nivel de API 29 en 2020. Si no lo ha hecho ya actualizó su aplicación para apuntar a Android 9 Pie, entonces tiene hasta agosto si planea lanzar una nueva aplicación o hasta noviembre si planea actualizar una aplicación existente. Para aquellos de ustedes que desean comenzar a desarrollar la próxima versión de Android, ya pueden probar su aplicación en el emulador de Android Studio o en el hardware físico si poseen cualquier teléfono inteligente Google Pixel. Sin embargo, este año, Google ofrece a los desarrolladores otra forma de probar sus aplicaciones con la última versión de Android: flashear un Android Q beta GSI en un dispositivo compatible con Project Treble.

Project Treble es una iniciativa importante para mejorar la velocidad a la que los fabricantes de dispositivos de teléfonos inteligentes pueden lanzar actualizaciones de software y seguridad. En pocas palabras, Treble requiere que los fabricantes de dispositivos separen el software que hace que el hardware funcione del software detrás del sistema operativo. Esto permite a los fabricantes de dispositivos iniciar nuevas versiones de Android en sus dispositivos existentes para que puedan comenzar la ardua tarea de portar su base de código existente sobre la nueva versión de código fuente de Android. Complementario a CTS es VTS, o Vendor Test Suite, un conjunto de pruebas que los fabricantes de dispositivos usan para verificar que su dispositivo cumpla con los requisitos del Proyecto Treble. Una de las comprobaciones más importantes para que los fabricantes de dispositivos prueben es la capacidad de un teléfono inteligente compatible con Treble para iniciar lo que se llama GSI o Imagen del sistema genérico. Un GSI es una compilación no modificada de AOSP que está destinada a que los fabricantes de dispositivos vean si han implementado correctamente Treble. Sin embargo, más allá de los OEM, Google cree que los desarrolladores pueden usar los GSI para las pruebas de compatibilidad de aplicaciones de Android.

Por ejemplo, si no posee un Google Pixel, la única forma de probar el comportamiento de su aplicación en las condiciones que mejor coincidan con la documentación de Google es adquirir un dispositivo Pixel propio, iniciar el emulador de Android Studio o busque un servicio de pruebas en la nube. Cada uno de estos tiene sus pros y sus contras, pero si tienes un dispositivo compatible con Treble y no quieres gastar dinero o lidiar con las limitaciones de un emulador, ¿por qué no aplicarle un GSI? Si su aplicación funciona en un GSI, debería funcionar en casi todos los dispositivos que ejecutan esa versión de Android.

Ese es el proceso de pensamiento detrás de la decisión de Google de lanzar GSI de Android Q, o al menos eso es lo que pensamos. El código fuente de Android Q no estará disponible hasta agosto, por lo que los binarios GSI oficiales de Google son la única forma en este momento de probar Android Q en hardware real que no sea Pixel. Así es como puedes comenzar.

Requisitos

Antes de siquiera considerar instalar la versión beta de Android Q, debe verificar si su dispositivo es compatible con Project Treble y si puede aceptar imágenes de sistema parpadeantes del gestor de arranque.

Requisitos:

  • Su dispositivo DEBE tener un gestor de arranque desbloqueable . Los teléfonos inteligentes Samsung Snapdragon vendidos en los EE. UU., Los dispositivos de la marca Huawei, los dispositivos de la marca Honor y los dispositivos de la marca Nokia de HMD Global (excepto el Nokia 8) no califican aquí.
  • Tiene los últimos binarios ADB y Fastboot instalados en su PC, que puede encontrar aquí. Las versiones desactualizadas de Fastboot pueden provocar flashes incorrectos.
  • Su dispositivo DEBE cumplir con uno de los siguientes criterios para ser considerado compatible con Project Treble:
    • El dispositivo LANZADO con Android 9 Pie. Si este es el caso, puede omitir la confirmación de la compatibilidad de agudos después de llegar al final de esta sección.
    • El dispositivo se lanzó con Android 8.0 Oreo o Android 8.1 Oreo, pero se actualizó a Android 9 Pie con aislamiento VNDK y sistema como root. Detallamos cómo encontrarlo en la sección a continuación.

Antes de continuar, vale la pena mencionar que flashear un GSI requerirá que realice una limpieza completa de la partición de datos de usuario. Esto significa que perderá todas las fotos, videos, música, documentos o cualquier otra cosa en el almacenamiento interno y externo (/ datos / medios) del dispositivo. Por lo tanto, es muy recomendable realizar una copia de seguridad fuera del dispositivo antes de continuar.

A continuación, tenga en cuenta que estos GSI no han pasado el CTS, por lo que si su aplicación usa la API de certificación de SafetyNet para verificar la integridad del dispositivo con una coincidencia de perfil CTS, entonces eso no funcionará. Además, estas compilaciones no están pensadas para el uso diario, así que no se sorprenda si una o más funciones básicas de hardware no funcionan además de los errores ya documentados en Android Q. Google ya ha enumerado algunos problemas conocidos con el GSI, que puedes encontrar aquí. Cualquier error nuevo que encuentre debe archivarse aquí.

Confirmación de compatibilidad de agudos

Ejecute el siguiente comando:

 adb shell getprop ro.treble.enabled 

Si la respuesta es falsa, entonces su dispositivo no es compatible con Project Treble y no debe continuar. Si la respuesta es verdadera, entonces puedes seguir adelante.

A continuación, verifique la compatibilidad entre versiones ejecutando estos comandos:

 adb shell cat /system/etc/ld.config.28.txt | grep -A 20 "\[vendor\]" 

En la salida, busque la sección [proveedor], y luego dentro de esa sección, busque namespace.default.isolated . Si el valor de ese atributo es verdadero, entonces su dispositivo debería ser compatible con el arranque de Android Q GSI sobre una imagen de proveedor de Android 9 Pie. Si el valor es falso, su dispositivo solo puede usar el GSI para la misma versión del sistema operativo en el dispositivo.

Salida de muestra de un OnePlus 6T.

Por último, debe confirmar si su dispositivo es system-as-root, en el que el disco RAM se fusiona con la imagen del sistema. El sistema como raíz no es obligatorio para los dispositivos que se actualizan a Android 9 Pie, pero es necesario para admitir una OTA exclusiva del sistema, como en el caso de actualizar una nueva versión del sistema operativo a través de GSI. Ejecute los siguientes comandos y verifique que la salida coincida con "system-as-root":

 adb shell cat /proc/mounts | grep -q /dev/root && echo "system-as-root" || echo "non-system-as-root" 

Ahora que sabe que su dispositivo es compatible con Treble, necesita averiguar qué versión del binario GSI descargar, ya que hay diferentes imágenes para diferentes arquitecturas. Para ver qué arquitectura tiene su dispositivo, ejecute el siguiente comando:

 adb shell getprop ro.product.cpu.abi 

Tome nota de la salida aquí, ya que la necesitará cuando descargue el GSI.

Descargando el GSI

Los enlaces de descarga para las versiones oficiales de Android Q beta GSI están disponibles en Google aquí. Debe descargar la versión adecuada según la arquitectura de su dispositivo, que descubrió en el paso anterior. La descarga será bastante grande si descarga la compilación con GMS o Google Mobile Services, algo que recomendamos encarecidamente para que pueda probar su aplicación en una compilación con Google Play Services.

Una vez que el archivo haya terminado de descargarse, puede descomprimirlo. Dentro de dos archivos, system.img y vbmeta.img .

Parpadeando el GSI

  1. Reinicie el cargador de arranque de su dispositivo utilizando una combinación de botones o emitiendo el comando:
     adb reboot bootloader 
  2. A continuación, debemos deshabilitar el arranque verificado de Android (AVB). Puede hacer esto ingresando el siguiente comando:
     fastboot flash vbmeta vbmeta.img 
  3. A continuación, limpiemos la partición del sistema:
     fastboot erase system 
  4. Finalmente podemos flashear el Android Q GSI con:
     fastboot flash system system.img 
  5. Una vez hecho esto, limpie la partición de datos de usuario con:
     fastboot -w 
  6. Reinicie su dispositivo usando el botón de encendido o ingresando:
     fastboot reboot 

Con suerte, debería arrancar después de unos minutos. Estos pasos fueron validados en un Pixel 3 XL, pero deberían funcionar universalmente. Podemos verificar que el Android Q beta 2 GSI no se inicia en el OnePlus 6T, pero sí en el Xiaomi Mi 9. Puede funcionar en el Sony Xperia XZ3, pero se nos dice que no se inicia en el Moto G7. Su kilometraje puede variar ya que los requisitos de Google solo confirman la misma compatibilidad con GSI de la versión del sistema operativo.