Un nuevo proyecto llamado Dynamic Android permitirá a los desarrolladores probar AOSP Android Q GSI en cualquier dispositivo que ejecute Android Q o posterior.
Gracias a Proyecto agudos, los fabricantes de dispositivos de teléfonos inteligentes han entregado actualizaciones del software Android Pie más rápido de lo que pudieron hacerlo para la actualización de Android Oreo, al menos para los teléfonos inteligentes emblemáticos. Sin embargo, Google no quiere que sólo los OEM obtengan los beneficios del Proyecto Treble. La empresa anteriormente interes expresado Al lanzar una imagen genérica del sistema (GSI) de Android Q para que los desarrolladores no tengan que depender de emuladores, utilice una servicio de almacenamiento en la nubeo esperar una actualización en su propio dispositivo para probar una aplicación con el último nivel de API. En teoría, lanzar un GSI debería permitir a cualquier desarrollador con un dispositivo compatible con Project Treble (originalmente Android 8.0 Oreo y superior, pero ahora se consideran solo dispositivos que se inician con Android 9 Pie) para probar la última versión de Android versión. Todo lo que el desarrollador tiene que hacer es actualizar una imagen del sistema además de su instalación de software existente, sin necesidad de una recuperación personalizada, un arranque o una imagen del proveedor.
Sin embargo, existen varios problemas con el proceso de instalación actual de GSI. Primero, necesitas un gestor de arranque desbloqueado, que no es posible en dispositivos Huawei u Honor (sin pagar una tarifa), los dispositivos Nokia de HMD Global (excluidos los nokia 8), o dispositivos con la marca de un operador estadounidense. A continuación, el proceso Será difícil para cualquiera que no esté familiarizado con el flasheo de imágenes mediante fastboot. Por último, para actualizar un GSI ahora será necesario borrar completamente el almacenamiento interno, lo que significa que probablemente querrás un dispositivo de repuesto para realizar la prueba. En este momento, actualizar un GSI es solo algo que los OEM usan para probar la compatibilidad de Project Treble en sus dispositivos y, más allá de eso, solo atrae a los más incondicionales. entusiastas de la ROM personalizada. El nuevo proyecto "Android dinámico" de Google puede intentar cambiar eso.
Android dinámico: pruebe fácilmente AOSP GSI en cualquier dispositivo Android Q
Durante los últimos meses, Google ha trabajado en una forma de iniciar de forma segura un GSI sin tener que desbloquear el gestor de arranque. En resumen, Google está desarrollando una aplicación que tiene permisos especiales que le permiten descargar un GSI, reservarle espacio de almacenamiento y marcar el GSI como de arranque. Hay varios componentes en este proyecto, así que analicémoslos uno por uno.
Android dinámico y Android On Tap
Se están agregando dos nuevos servicios a Android Q: los servicios Dynamic Android y Android On Tap. Mientras que Dynamic Android maneja la instalación de un GSI, Android On Tap informa a las aplicaciones del sistema con devoluciones de llamada e intenciones de transmisión. Por ejemplo, Android On Tap alerta a KeyguardManager para que le pida al usuario que confirme una solicitud de instalación si el dispositivo está protegido por un PIN, contraseña o patrón. AOT también alerta al usuario cuando se inicia en un GSI.
Según la descripción de "DynamicAndroidManager", el servicio "ofrece un mecanismo para utilizar un nuevo Android imagen temporalmente." Después de la instalación, el dispositivo puede reiniciarse en la imagen recién instalada con una imagen recién creada. /data. Al reiniciar mientras se está en GSI, el usuario regresa a la imagen original del sistema, pero la imagen recién instalada y sus datos simplemente se desactivan y no se eliminan. Sin embargo, si el usuario decide hacerlo, el GSI y sus datos pueden eliminarse por completo.
Fuentes: [1], [2], [3], [4]
GSID
El demonio GSI asigna espacio en la partición /data para almacenar la imagen GSI y sus datos y hacer que la imagen sea de arranque. Los metadatos del GSI se almacenan en /metadata, mientras que el propio GSI y sus datos se almacenan en /data/gsi. De forma predeterminada, GSID asigna 8 GB de datos de usuario para el GSI recién instalado. En general, GSID busca al menos un 40% de espacio libre antes de comenzar una instalación. Por último, el demonio impide que el usuario instale un GSI dentro de un GSI, por razones obvias.
Fuentes: [1], [2], [3], [4]
Seguridad
El arranque verificado de Android (AVB) está habilitado para la imagen del sistema EXT4 recién instalada (system_gsi montada en /system). Google también ha implementado políticas SELinux para los nuevos servicios. Por último, la instalación de un GSI requiere que una aplicación tenga el nuevo permiso MANAGE_DYNAMIC_ANDROID. Este es un permiso a nivel de firma, lo que significa que la aplicación debe estar firmada por el OEM.
Fuentes: [1], [2]
Comandos ADB y Fastboot
Los GSI también se podrán instalar mediante nuevos comandos ADB. El nuevo comando de shell ADB gsi_tool permitirá a los usuarios deshabilitar, volver a habilitar, instalar y preservar datos de usuario, instalar y crear datos de usuario, instalar y borrar datos de usuario, o verificar el estado de la instalación.
gsi_tool - command-line tool for installing GSI images.
Usage:
gsi_tool <disable|install|wipe|status> [options]
disable Disable the currently installed GSI.
enable Enable a previously disabled GSI.
installInstall a new GSI. Specify the image sizewith
--gsi-size and the desired userdata size with
--userdata-size (the latter defaults to 8GiB)
--wipe (remove old gsi userdata first)
wipe Completely remove a GSI and its associated data
status Showstatus
Se agregarán dos nuevos comandos fastboot para administrar GSI, aunque la instalación fastboot no es compatible ya que fastboot no puede montar datos de usuario.
fastboot gsi wipe
fastboot gsi disable
Fuentes: [1], [2]
¿A quién beneficiará esto?
Quiero decir que los desarrolladores de aplicaciones podrán aprovechar Dynamic Android y Android On Tap, pero no estoy del todo seguro. Aunque Google ha expresado interés precisamente en eso, no hay garantía de que esta función esté disponible en todas las versiones de Android Q a partir de OEM que no son de Google. Para aprovechar esto en el dispositivo, el software necesita una aplicación de selección GSI firmada por el mismo certificado que el ROM. Tampoco estoy seguro de que sea posible instalar GSI desde ADB sin la raíz de ADB debido a las políticas de SELinux.Actualizar: un nuevo comprometerse confirma que se requerirá la raíz de ADB para usar GSI_tool. Si esto no está destinado a que los desarrolladores de aplicaciones prueben sus aplicaciones en una versión limpia de Android, entonces probablemente solo benefician a los ingenieros de OEM que buscan probar Compatibility Test Suite (CTS) y Vendor Test Suite (VTS) en sus dispositivos.
Un agradecimiento especial al desarrollador reconocido de XDA. lucas020400 por su ayuda en este artículo.