O Android Oreo inclui suporte de interface de linha de comando para temas RRO, sugerindo que o sistema operacional está cada vez mais próximo do suporte a temas em todo o sistema.
Com o lançamento do Android Oreo, passa muito tempo procurando itens ocultos no código-fonte. No passado, a equipe de engenharia do Android falou sobre como ativar temas no Android O. Informamos em maio que a segunda prévia do desenvolvedor do Android O pode ter sido uma dica de que o Google apoiava o Overlay Manager Service (OMS) e o Runtime Resource Overlay (RRO), mas agora sabemos com certeza que sim. Android Oreo agora, tecnicamente, suporta temas OMS/RRO e ainda fornece uma interface para ativar ou desativar temas, desde que você tenha estômago para usar a linha de comando.
Atualização: O Substratum tem usado esses comandos com as visualizações de desenvolvimento e agora com o Oreo desde que foram disponibilizados!
O que são RRO e OMS?
RRO foi desenvolvido internamente pela Sony para funcionalidade de tema na linha Sony Xperia. Os desenvolvedores que reconheceram sua importância trabalharam para estender seu suporte a outras ROMs, e com isso veio o tema RRO em uma infinidade de dispositivos – não apenas em dispositivos Sony. Ele substituiu engenhosamente recursos no tempo de execução do aplicativo, uma facilidade de uso nunca vista em outras opções de temas da época. Isto evoluiu para o OMS, que também foi desenvolvido internamente pela Sony. O famoso
Gerenciador de camadas usou o tema RRO originalmente, mas o OMS foi posteriormente adaptado para o que hoje é conhecido como Substratum e é a estrutura de tema mais familiar aos usuários em nossos fóruns atualmente. ROMs em nossos fóruns com commits OMS significam que eles suportam o mecanismo de temas padrão do Substratum. O "modo legado" no Substratum usa o tema RRO.Android Oreo apresenta comandos de tema
Parece que o Google agora deseja oferecer suporte total a esse tipo de tema no AOSP, possivelmente avançando em direção a um gerenciador de temas completo e com suporte do sistema. No Android Gerrit, o Google fez uma série de mudanças nos últimos meses (e com o Android Oreo) que sugerem medidas para habilitar o mecanismo de temas em todo o sistema. As alterações estão abaixo, com links para seus respectivos commits.
- Comandos de sobreposição
- OverlayManagerService (OMS) introduzido
- Uma nova permissão intitulada CHANGE_OVERLAY_PACKAGES
Todas essas mudanças significam uma mudança do Google em direção a alguma forma de aplicativo de tema de sistema a ser incluído no futuro. A permissão listada acima requer privilégios de sistema e, portanto, significa que apenas um aplicativo do sistema (ou um aplicativo com acesso root) pode invocar essa permissão. Mesmo assim, é interessante, pois mostra que o Google está finalmente trabalhando para algo.
Então por que apenas tecnicamente o Android Oreo oferece suporte a temas? Bem, a resposta simples é que, embora você possa invocar o método de sistema para instalar temas, fazer isso seria bastante inútil. Isso ocorre porque, mesmo que você possa usar a nova interface de linha de comando para gerenciar temas instalados, você não pode realmente instale novos temas sem acesso root porque os temas precisam ir para um diretório restrito ao usuário espaço. Com acesso root você pode simplesmente habilitar um tema Substratum de qualquer maneira, então não há necessidade de fazer isso da nova maneira. O Google não incluiu um aplicativo de sistema para tematizar o dispositivo, portanto, até então, não há nenhum benefício em tentar fazê-lo da maneira recém-incluída.
A interface temática da linha de comando
Nós do XDA testamos o comando em um Google Pixel rodando a versão Android Oreo. Decidimos testar alguns dos comandos e primeiro usamos
cmd overlays list
para visualizar todas as sobreposições pré-instaladas. Percebemos a existência de um "com.google.android.theme.pixel", desabilitando-o e habilitando "android.auto_generated_rro__" executando os seguintes comandos.
Como pode ser visto aqui, a sobreposição padrão está desabilitada e a gerada automaticamente está habilitada. Executando nosso comando para visualizar nossas sobreposições instaladas novamente, vemos a seguinte saída.
Isso resulta em um aplicativo de configurações do sistema Android com novo tema em nosso Google Pixel. Observe que a lista de sobreposição acima também inclui temas instalados usando o Substratum, e pudemos ativá-los/desativá-los com a mesma facilidade.
Também encontramos outro comando ao pesquisar a fonte. O comando é o seguinte
cmd overlay dump --user 0
nos dá a seguinte saída.
Saída
Configurações
android.auto_generated_rro__: 0 {
mPackageName...: android.auto_generated_rro__
mUserId...: 0
mTargetPackageName.: android
mBaseCodePath...: /vendor/overlay/framework-res__auto_generated_rro.apk
mEstado...: ESTADO_ENABLED
mIsEnabled...: verdadeiro
mIsStatic...: verdadeiro
}
com.google.android.theme.pixel: 0 {
mPackageName...: com.google.android.theme.pixel
mUserId...: 0
mTargetPackageName.: android
mBaseCodePath...: /vendor/overlay/Pixel/PixelThemeOverlay.apk
mEstado...: ESTADO_DISABLED
mIsEnabled...: falso
mIsStatic...: falso
}
Sobreposições padrão: com.google.android.theme.pixel
Cache de informações do pacote
2 pacotes
consulte Mais informação
Como pode ser visto, o Google trabalhou muito no desenvolvimento do mecanismo de temas e na integração dele ao código-fonte AOSP. Parece que se fosse adicionado em todo o sistema, os temas seriam ativados no sintonizador da UI do sistema. O Google também forneceu informações para OEMs, portanto, é possível que OEMs adicionais possam ativar o suporte a temas com base na versão AOSP no futuro no Android Oreo.
No geral, este é um desenvolvimento muito emocionante. O tema é uma das muitas partes que definem o Android como um sistema operacional totalmente personalizável em seu telefone, mesmo que atualmente exija root para temas de todo o sistema. No futuro, se fosse permitido funcionar sem acesso root, seria um grande passo na direção da liberdade do usuário. Claro, ele pode ficar bloqueado no sintonizador da UI do sistema por algum tempo (já que temas quebrados podem quebrar aplicativos), mas permitir o usuário aproveitar as vantagens do suporte ao tema nativo em primeiro lugar é uma grande adição à operação móvel sistema.