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

Con el lanzamiento de Android Oreo, se pasa mucho tiempo buscando cosas ocultas dentro del código fuente. En el pasado, el equipo de ingeniería de Android ha hablado sobre habilitar la temática en Android O. Informamos en mayo de que la segunda Vista previa del desarrollador de Android O podría haber sido un indicio de que Google apoyaba el Servicio de administrador de superposición (OMS) y la Superposición de recursos de tiempo de ejecución (RRO ), pero ahora sabemos con certeza que lo fue. Android Oreo ahora, técnicamente, es compatible con el tema OMS / RRO e incluso proporciona una interfaz para habilitar o deshabilitar temas, siempre que pueda usar la línea de comandos.

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


¿Qué son RRO y OMS?

RRO fue desarrollado internamente por Sony para la funcionalidad del tema en la línea Sony Xperia. Los desarrolladores que reconocieron su importancia trabajaron para extender su soporte a otras ROM, y con él llegó el RRO a través de una multitud de dispositivos, no solo dispositivos Sony. Reemplazó ingeniosamente los recursos en el tiempo de ejecución de la aplicación, una facilidad de uso invisible de otras opciones de temas en ese momento. Esto se ha convertido en OMS, que también fue desarrollado internamente por Sony. El famoso Administrador de capas usó originalmente la temática RRO, pero luego la OMS se adaptó a lo que ahora se conoce como Substratum y es el marco de temática más familiar para los usuarios en nuestros foros. Las ROM en nuestros foros con compromisos de OMS significan que son compatibles con el motor de temas estándar de Substratum. El "modo heredado" dentro de Substratum está usando la temática RRO.


Android Oreo presenta los comandos de tema

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

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

Todos estos cambios significan un movimiento de Google hacia alguna forma de aplicación de tematización del sistema que se incluirá en el futuro. El permiso mencionado anteriormente requiere privilegios del sistema y, por lo tanto, significa que solo una aplicación del sistema (o una aplicación con acceso raíz) puede invocar este permiso. Sin embargo, es interesante, ya que muestra que Google finalmente está trabajando para lograr algo .

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

La interfaz de tema de línea de comando

Probamos el comando en un Google Pixel que ejecuta la versión Android Oreo. Decidimos probar algunos de los comandos y los usamos primero

 cmd overlays list 

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

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

Esto da como resultado una nueva aplicación de configuración del sistema Android en nuestro Google Pixel. Tenga en cuenta que la lista de superposición 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.

Salida

Configuraciones

android.auto_generated_rro __: 0 {

mPackageName …… .: android.auto_generated_rro__

mUserId …………: 0

mTargetPackageName .: android

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

mState ………… .: 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

mState ………… .: STATE_DISABLED

mIsEnabled ………: falso

mIsStatic ……… .: falso

}

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

PackageInfo cache

2 paquete (s)

Como se puede ver, Google ha puesto mucho trabajo en el desarrollo del motor de temas y en integrarlo en la fuente AOSP. Parece que si se agregara en todo el sistema, los temas se habilitarían dentro del sintonizador de la interfaz de usuario del sistema. Google también ha proporcionado información para los OEM, por lo que es posible que los OEM adicionales puedan habilitar el soporte de temas basado en la versión AOSP en el futuro en Android Oreo.

En general, este es un desarrollo muy emocionante. El tema es una de las muchas partes que define Android como un sistema operativo totalmente personalizable en su teléfono, incluso si actualmente requiere root para temas de todo el sistema. En el futuro, si se habilitara para trabajar sin acceso de root, sería un paso importante en la dirección de la libertad del usuario. Por supuesto, puede estar bloqueado en el sintonizador de la interfaz de usuario del sistema durante bastante tiempo (ya que los temas rotos pueden romper las aplicaciones), pero permitir que el usuario incluso aproveche el soporte de temas nativos en primer lugar es una gran adición al sistema operativo móvil.