Exclusivo: Android Oreo recibirá soporte para temas sin sistema y en todo el sistema en 1 semana

Soporte oficial de temas de OMS expuesto de forma no oficial por sustrato

Actualización 13/09/17: ahora se ha lanzado el complemento Andromeda para Substratum que permite temas personalizados en dispositivos Android Oreo sin raíz. Vea este artículo para más detalles. El artículo original permanecerá a continuación.

Con cada nueva versión del sistema operativo Android de Google, hay menos razones para que la mayoría de los usuarios rooteen sus dispositivos. Sin embargo, entre los usuarios restantes que aún eligen rootear sus dispositivos, una de las razones más comúnmente citadas es habilitar el soporte de temas en todo el sistema. Por lo general, esto se gestiona a través del marco temático Substratum desde la desafortunada desaparición del motor de temas CyanogenMod. Con el tiempo, el equipo detrás de Substratum trabajó duro para incluir soporte para más dispositivos incorporando soporte de Substratum a nivel ROM para que pudiera ejecutarse sin acceso de root. Y ahora, el equipo ha llevado el proyecto más allá de lo que cualquiera de nosotros podría haber imaginado al brindar soporte completo para todo el sistema sin root para ningún dispositivo Android Oreo .

Capturas de pantalla que muestran el tema Android Oreo Black de Sai ejecutándose en un Google Pixel sin raíz en Android Oreo 8.0.0

Para darle una idea de cuán increíble es este desarrollo, considere que lo siguiente ahora será posible sin root :

  • Tematización de Android Framework y la interfaz de usuario del sistema Android, así como cualquier otra aplicación del sistema. (¡A muchos de ustedes les encantará tener un tema oscuro disponible, finalmente!)
  • Tematización de cualquier aplicación de terceros
  • Fuentes personalizadas para aplicaciones de terceros.
  • Muchas otras modificaciones, como un mod de reloj central de barra de estado

¡La lista continua! Substratum tiene una extensa lista de temas disponibles que admiten el marco (todos los cuales son compatibles con esta próxima nueva versión de Substratum para Android 8.0), una comunidad activa en Google+ y nuestros propios foros, y dado este desarrollo, el soporte solo está limitado a ¡crecer!


Android Oreo y el servicio Overlay Manager

Una muestra de algunos temas de sustrato.

Desde que Google incorporó el soporte nativo para el motor de temas Runtime Resource Overlay (RRO) de Sony en Android 6.0 Marshmallow, hemos estado esperando que Google proporcione una interfaz incorporada, así como API públicas que los desarrolladores pueden usar para tema tanto la aplicación de marco del sistema así como aplicaciones de terceros. Lamentablemente, el lanzamiento de Android Nougat trajo poco nuevo a la mesa desde que se agregó el RRO de Sony al Android Open Source Project (AOSP).

Pero gracias al trabajo diligente de los ingenieros de Sony Mobile, el motor de temas RRO eventualmente evolucionó hacia lo que se conoce como Overlay Manager Service (OMS), que es en lo que se basa Substratum. Sony fue el pionero en lo que respecta a una solución de temas de código abierto, pero dado que su motor de temas OMS fue aceptado en AOSP en el momento de la versión final de Android 7.1, la única forma para que los usuarios de dispositivos que no son Sony aprovechen el motor de temas es a través de una ROM personalizada.

Eso cambió en Android 8.0. Cuando Substratum se lanzó inicialmente para las primeras vistas previas de desarrolladores de Android O, los desarrolladores de Substratum se dieron cuenta de que estaba disponible el soporte completo para OMS de Sony. Esto significa que un usuario podría instalar un tema compatible con Substratum existente y funcionaría completamente en dispositivos Android Oreo sin requerir parches de ROM. Sin embargo, solo había un problema: el proceso de habilitar un tema Substratum instalado requería acceso a la raíz, o eso creían .


Soporte de tema de sustrato sin raíz para todo el sistema para Android Oreo

Si bien los desarrolladores pusieron su trabajo en silencio en el tema de hacer que los usuarios de Android Oreo tuvieran una solución de tema completamente desarraigada en segundo plano, estábamos investigando de forma independiente en cada Vista previa de desarrollador de Android O y encontramos evidencia del motor del tema en juego, aunque lo identificamos erróneamente como basado en el RRO más antiguo en lugar del más nuevo OMS de Sony. Google incluso se burló de la comunidad sobre el soporte de temas en un AMA centrado en el desarrollador en Reddit, afirmando que aún había algunos obstáculos que superar antes de que se pudiera incorporar una solución completa de temas en Android.

No satisfechos con esa respuesta, queríamos ver hasta dónde había llegado Google al obtener soporte de temas para Android Oreo. Para hacer eso, busqué en el código fuente de Android 8.0 una vez que cayó la versión final, y descubrí la existencia de comandos de shell ADB que podrían habilitar o deshabilitar las superposiciones, que el escritor Adam Conway cubrió ayer.

Deshabilitar la superposición predeterminada

Inicialmente, no me impresionó demasiado el hallazgo, ya que, en mi opinión, en ese momento era funcionalmente inútil, ya que mis colegas y yo teníamos la impresión de que instalar un tema aún requería acceso a la raíz, ya que los archivos del tema tendrían que moverse a una carpeta inaccesible para el espacio del usuario (en / system / vendor / overlay, que es cómo funcionaba RRO). El propio Nicholas Chum, uno de los desarrolladores principales detrás de Substratum, comentó en nuestra publicación que estaba al tanto de la existencia de estos comandos durante bastante tiempo y que ya lo ha estado utilizando para las compilaciones de Android O.

Sin embargo, una persona vio una oportunidad surgir después de que publicamos nuestro artículo ayer. El propio Jeff Corcoran, el desarrollador detrás de nuestra aplicación interna de Labs, se dio cuenta de que había una posible solución para obtener la interfaz de línea de comandos nativa de Android Oreo para que OMS funcione sin root. Implicaba un método utilizado por Helium, la popular solución de copia de seguridad no root, y más recientemente por la alternativa de código abierto Greenify conocida como Brevent.

Privilegios elevados a través de un guión

Por lo general, los comandos de "superposición de cmd" que Google agregó a la versión de Oreo solo se pueden ejecutar a través de un dispositivo con privilegios de root o mediante un dispositivo conectado a una computadora que invoca el shell de Android Debug Bridge (ADB). A lo largo de los años, un puñado de desarrolladores inteligentes, como los desarrolladores de Helium y Brevent, descubrieron cómo esencialmente elevar los privilegios de una aplicación que se ejecuta en el teléfono para que coincida con la del shell ADB. Al hacerlo, la aplicación puede enviar comandos que normalmente no podría debido a los permisos restringidos. En el caso de Substratum, eso significa que la aplicación puede instalar y luego habilitar o deshabilitar los temas de Substratum sin root .

Esta realización fue un gran avance que solo se descubrió ayer por la noche. En el transcurso de unas pocas horas, Nicholas (con la ayuda de Jeff) pudo crear una versión alfa rápida de un administrador de temas Substratum sin raíz para dispositivos Android Oreo. Y funciona, pero con algunas advertencias.

Advertencias de soporte de sustrato sin raíz

El proceso requerido para otorgar privilegios elevados de Shell Substratum ADB requerirá el uso de una aplicación de escritorio muy simple y ligera (o simplemente un comando de shell ADB si sabe lo que está haciendo). Una vez otorgado, Substratum funcionará como es de esperar, ya que podrá manejar la administración de todos los temas de Substratum instalados. Cualquier tema que instales permanecerá instalado hasta que elijas desinstalarlo a través de Substratum nuevamente.

Sin embargo, los privilegios que Substratum otorga son transitorios, ya que se pierden cuando el usuario realiza un reinicio completo (aunque afortunadamente los reinicios suaves de la IU del sistema no pierden el privilegio). Esto significa que tendrá que volver a ejecutar el programa de escritorio si ha reiniciado su teléfono y desea utilizar Substratum para agregar, eliminar o modificar un tema. Quiero reiterar nuevamente que los temas que instale permanecerán instalados incluso si reinicia, por lo que si desea cambiar algunos temas solo ocasionalmente, esto debería ser perfecto para usted. También debe poder cambiar temas desde el menú Configuración, ya que la opción "Tema" de la Vista previa del desarrollador en Configuración de pantalla reconoce los temas instalados y le permite cambiar entre ellos.

Finalmente, lo último que necesito mencionar es algo que parece obvio una vez que lo piensas, pero en tu entusiasmo al escuchar las noticias es posible que hayas olvidado. Su dispositivo aún está desrooteado . Eso significa que no puede tocar ni modificar ningún archivo que requiera absolutamente acceso root para editar, incluso si el tema Substratum que instaló prometió cambiar algo. Lo sentimos, pero desafortunadamente eso significa que no puede aplicar un cambio de fuente en todo el sistema para recuperar los blobs emojis, aunque como se mencionó al principio, es posible que un tema Substratum altere las fuentes de las aplicaciones individuales.

La necesidad del sustrato

Vamos a sacar un detalle importante del camino ahora. ¿Cuándo viene esto? Como el título menciona, la primera disponibilidad pública del Substratum sin raíz para dispositivos Android 8.0 como Google Nexus 5X, Google Nexus 6P, Google Pixel y Google Pixel XL debería estar dentro de 1 semana . Eso no es una garantía de ninguna manera, ya que las cosas pueden cambiar en el proceso de desarrollo que pueden requerir una inversión de tiempo adicional, pero dado que OMS ya es totalmente compatible con AOSP, todo el equipo de Substratum está trabajando ahora en la interfaz entre la aplicación Substratum y no rooteado dispositivos.

Siguiente: ¿será gratis? No. El sustrato para dispositivos Android Oreo sin raíz será una aplicación paga . No puedo decirle cuánto costará, ya que Nicholas aún no ha decidido un precio, pero tenga la seguridad de que el precio será justo dado el valor de lo que recibirá. Hasta este punto, Substratum ha estado disponible de forma gratuita para muchos dispositivos, por lo tanto, considere apoyar este tipo de desarrollo al apoyar primero Team Substratum. Puede esperar a que Google finalmente publique ese tema oscuro que siempre ha deseado (ja, bueno), o puede arrojar unos centavos para apoyar el desarrollo independiente que muchas personas dan por sentado.

¿Todavía no estás convencido de su valor? Puede intentar instalar temas de Substratum en su propio dispositivo 8.0 sin raíz. De hecho, eso es exactamente lo que hicimos arriba. Por supuesto, tuvimos un poco de ayuda de Nicholas para hacerlo. Si desea instalar un tema Substratum existente de Google Play Store, estos son los pasos generales:

  1. Descargue e instale el archivo APK en su dispositivo.
  2. Extraiga el contenido y compile cada superposición en un archivo APK individual para cada aplicación que desee que tenga como tema
  3. Instale cada archivo APK de superposición individual que compiló manualmente en el paso 2
  4. Para cada APK de superposición que instale, ejecute el siguiente comando para habilitarlo: cmd overlay enable
  5. Si desea cambiar la prioridad de las superposiciones, use: cmd overlay set-priority PARENT|lowest|highest
  6. Enumere todas sus superposiciones instaladas con: cmd overlay list
  7. Elimine las superposiciones que no desee con: cmd overlay disable

Si realmente desea utilizar la línea de comandos para administrar temas, ¡sea nuestro invitado! Personalmente, estaba atrapado al pasar el paso 2. Substratum no está utilizando algún método oculto que no se puede encontrar por su cuenta, pero está haciendo que sea mucho más fácil de administrar. Cuando es posible hacer algo manualmente pero una aplicación puede hacerlo por mí mucho más fácilmente, tiendo a dejar que la aplicación haga su trabajo. Pero eso depende de ti.

Personalmente, estoy muy, muy emocionado de ver a dónde va esto. Para cualquier dispositivo que ya no sea compatible con un sistema de administración de temas incorporado (como los dispositivos Motorola o OnePlus), ahora tiene otra razón que esperar en la actualización de Android 8.0. Para aquellos de ustedes que tienen la suerte de probar ese dulce Oreo, tienen algo que esperar en 1 semana.


PD Usuarios de Samsung, ¿sabían que sus dispositivos ya admiten temas de Substratum sin necesidad de root?

PPS ¿Eres un desarrollador interesado en aprender más sobre Substratum? ¡Mira la increíble presentación de diapositivas de Nicholas aquí!