Android Oreo presenta la interfaz de línea de comandos para temas

Android Oreo incluye soporte de interfaz de línea de comandos para temas RRO, lo que sugiere que el sistema operativo se acerca cada vez más al soporte de temas en todo el sistema.

Con el lanzamiento de Android Oreo, se dedica mucho tiempo a buscar elementos ocultos en el código fuente. En el pasado, el equipo de ingeniería de Android tenía habló sobre habilitar temas en Android O. Informamos en mayo que la segunda Vista previa para desarrolladores de Android O puede haber sido un indicio de que Google admite Overlay Manager Service (OMS) y Runtime Resource Overlay (RRO), pero ahora sabemos con certeza que así fue. Android Oreo ahora, técnicamente, admite temas OMS/RRO e incluso proporciona una interfaz para habilitar o deshabilitar temas, siempre que pueda soportar el uso de la línea de comando.

Actualización: ¡Substratum ha estado usando estos comandos con las vistas previas de desarrollo y ahora con Oreo desde que estuvieron disponibles!


¿Qué son RRO y OMS?

RRO fue desarrollado internamente por Sony para la funcionalidad de temas en la línea Sony Xperia. Los desarrolladores que reconocieron su importancia trabajaron para ampliar su soporte a otras ROM, y con ello llegó la temática RRO en una multitud de dispositivos, no solo en los dispositivos Sony. Reemplazó ingeniosamente los recursos en el tiempo de ejecución de la aplicación, una facilidad de uso que no se veía en otras opciones de temas en ese momento. Esto evolucionó hasta convertirse en OMS, que también fue desarrollado internamente por Sony. El famoso

Administrador de capas Originalmente usé la temática RRO, pero OMS se adaptó posteriormente a lo que ahora se conoce como Substratum y es el marco de temática más familiar para los usuarios de nuestros foros. Las ROM en nuestros foros con confirmaciones de OMS significan que son compatibles con el motor de temas estándar de Substratum. El "modo heredado" dentro de Substratum utiliza la temática RRO.


Android Oreo presenta comandos temáticos

Parece que Google ahora desea admitir completamente este tipo de tema en AOSP, posiblemente avanzando hacia un administrador de temas completo y compatible con el sistema. En Android Gerrit, Google ha realizado una serie de cambios en los últimos meses (y con Android Oreo) que sugieren medidas para habilitar el motor de temas en todo el sistema. Los cambios se encuentran a continuación, con enlaces a sus respectivas confirmaciones.

  • Comandos de superposición
  • Se presenta OverlayManagerService (OMS)
  • Un nuevo permiso titulado CHANGE_OVERLAY_PACKAGES

Todos estos cambios significan un movimiento por parte de Google hacia algún tipo de aplicación de temas del sistema que se incluirá en el futuro. El permiso enumerado anteriormente requiere privilegios del sistema y, por lo tanto, significa que solo una aplicación del sistema (o una aplicación con acceso de root) puede invocar este permiso. Es interesante de todos modos, ya que muestra que Google finalmente está trabajando para algo.

Entonces ¿por qué sólo técnicamente ¿Android Oreo admite temas? Bueno, la respuesta simple es que si bien puedes invocar el método del sistema para instalar temas, hacerlo sería bastante inútil. Esto se debe a que, aunque puedes usar la nueva interfaz de línea de comandos para administrar los temas instalados, en realidad no puedes instale nuevos temas sin acceso de root porque los temas deben ir a un directorio restringido al usuario espacio. Con acceso root puedes simplemente habilitar un tema de Substratum de todos modos, por lo que no es necesario hacerlo de la nueva manera. Google no ha incluido una aplicación de sistema para personalizar el dispositivo, por lo que hasta entonces no hay ningún beneficio en intentar hacerlo de la forma recién incluida.

La interfaz temática de la línea de comandos

En XDA probamos el comando en un Google Pixel con la versión de Android Oreo. Decidimos probar algunos de los comandos y primero usamos

cmd overlays list

para ver todas las superposiciones preinstaladas. Notamos la existencia de un "com.google.android.theme.pixel", lo deshabilitamos y en su lugar habilitamos "android.auto_generated_rro__" ejecutando los siguientes comandos.

Como se puede ver aquí, la superposición estándar está deshabilitada y la generada automáticamente está habilitada. Al ejecutar nuestro comando para ver nuestras superposiciones instaladas nuevamente, vemos el siguiente resultado.

Esto da como resultado una aplicación de configuración del sistema Android con un nuevo tema en nuestro Google Pixel. Tenga en cuenta que la lista superpuesta anterior también incluye temas instalados usando Substratum, y pudimos habilitarlos/deshabilitarlos con la misma facilidad.

tema auto_generated_rro

También encontramos otro comando al buscar en la fuente. El comando es el siguiente

cmd overlay dump --user 0

nos da el siguiente resultado.

Producción

Ajustes

android.auto_generated_rro__: 0 {

mPackageName...: android.auto_generated_rro__

mUserId...: 0

mTargetPackageName.: Android

mBaseCodePath...: /vendor/overlay/framework-res__auto_generated_rro.apk

mEstado...: STATE_ENABLED

mIsEnabled...: verdadero

mIsStatic...: verdadero

}

com.google.android.theme.pixel: 0 {

mPackageName...: com.google.android.theme.pixel

mUserId...: 0

mTargetPackageName.: Android

mBaseCodePath...: /vendor/overlay/Pixel/PixelThemeOverlay.apk

Estadom...: STATE_DISABLED

mIsEnabled...: falso

mIsStatic...: falso

}

Superposiciones predeterminadas: com.google.android.theme.pixel

Caché de información del paquete

2 paquetes

leer más

Como puede verse, Google ha trabajado mucho en el desarrollo del motor de temas y en su integración en la fuente AOSP. Parece que si se agregara en todo el sistema, Los temas se habilitarían dentro del sintonizador de interfaz de usuario del sistema.. Google también tiene información proporcionada para los OEM, por lo que es posible que otros OEM puedan habilitar la compatibilidad con temas basados ​​en la versión AOSP en el futuro en Android Oreo.

En general, se trata de un avance muy interesante. La temática es una de las muchas partes que define a Android como un sistema operativo totalmente personalizable en su teléfono, incluso si actualmente requiere root para los temas de todo el sistema. En el futuro, si se permitiera funcionar sin acceso root, sería un paso importante hacia la libertad del usuario. Por supuesto, es posible que esté bloqueado en el sintonizador de la interfaz de usuario del sistema durante bastante tiempo (ya que los temas rotos pueden dañar las aplicaciones), pero permitir Que el usuario aproveche incluso la compatibilidad con temas nativos en primer lugar es una gran adición al funcionamiento móvil. sistema.