Android Oreo представляет интерфейс командной строки для тем

Android Oreo включает поддержку интерфейса командной строки для тем RRO, намекая на то, что операционная система все ближе приближается к общесистемной поддержке тем.

С запуском Android Oreo приходится тратить много времени на поиск скрытых полезностей в исходном коде. В прошлом команда разработчиков Android рассказал о включении тем в Android O. Мы сообщали в мае что вторая предварительная версия Android O для разработчиков могла быть намеком на поддержку Google Overlay Manager Service (OMS) и Runtime Resource Overlay (RRO), но теперь мы точно знаем, что так оно и было. Андроид Орео сейчас, технически, поддерживает темы OMS/RRO и даже предоставляет интерфейс для включения или отключения тем, при условии, что вы умеете использовать командную строку.

Обновление: Substratum использовал эти команды в предварительных версиях для разработчиков, а теперь и в Oreo, поскольку они были доступны!


Что такое РРО и ОМС?

RRO был разработан внутри компании Sony для функциональности тем в линейке Sony Xperia. Разработчики, осознавшие его важность, постарались распространить его поддержку на другие ПЗУ, и вместе с этим появилась тематика RRO на множестве устройств, а не только на устройствах Sony. Он гениально заменил ресурсы во время выполнения приложения, обеспечивая простоту использования, невиданную в то время в других вариантах оформления тем. Это превратилось в OMS, которая также была разработана Sony. Известный

Менеджер слоев Первоначально использовалась тематика RRO, но позже OMS была адаптирована в то, что сейчас известно как Substratum, и сейчас это структура тем, наиболее знакомая пользователям на наших форумах. ПЗУ на наших форумах с коммитами OMS означают, что они поддерживают стандартный механизм тем Substratum. «Устаревший режим» в Substratum использует тему RRO.


Android Oreo представляет команды тем

Кажется, Google теперь хочет полностью поддерживать этот тип тем в AOSP, возможно, переходя к полноценному, поддерживаемому системой менеджеру тем. В Android Gerrit за последние месяцы Google внес ряд изменений (и в Android Oreo), которые предполагают шаги по включению механизма тем в масштабах всей системы. Изменения приведены ниже со ссылками на соответствующие коммиты.

  • Команды наложения
  • Представлен OverlayManagerService (OMS)
  • Новое разрешение под названием CHANGE_OVERLAY_PACKAGES.

Все эти изменения означают переход Google к той или иной форме приложения для системных тем, которое будет включено в будущее. Перечисленное выше разрешение требует системных привилегий и, следовательно, означает, что только системное приложение (или приложение с root-доступом) может использовать это разрешение. Тем не менее, это интересно, поскольку показывает, что Google наконец-то работает над что-нибудь.

Так почему только технически поддерживает ли Android Oreo темы? Что ж, простой ответ заключается в том, что, хотя вы и можете использовать системный метод установки тем, это окажется довольно бессмысленным. Это связано с тем, что, хотя вы и можете использовать новый интерфейс командной строки для управления установленными темами, на самом деле вы не можете устанавливать новые темы без root-доступа, поскольку темы должны находиться в каталоге, доступ к которому ограничен для пользователя. космос. Имея root-доступ, вы в любом случае можете просто включить тему Substratum, поэтому нет необходимости делать это по-новому. Google не включил системное приложение для оформления устройства, поэтому до тех пор нет никакой пользы пытаться сделать это новым способом.

Интерфейс тем командной строки

Мы в XDA протестировали команду на Google Pixel под управлением версии Android Oreo. Мы решили протестировать некоторые команды и сначала использовали

cmd overlays list

для просмотра всех предустановленных наложений. Мы заметили существование «com.google.android.theme.pixel», отключив его и вместо этого включив «android.auto_generated_rro__», выполнив следующие команды.

Как видно здесь, стандартное наложение отключено, а автоматически созданное включено. Запустив команду для повторного просмотра установленных наложений, мы увидим следующий вывод.

В результате на нашем Google Pixel появилось новое тематическое приложение настроек системы Android. Обратите внимание, что приведенный выше список наложений также включает темы, установленные с помощью Substratum, и мы смогли так же легко включить/отключить их.

auto_generated_rro Тема

При копании в исходном коде мы также нашли еще одну команду. Команда следующая

cmd overlay dump --user 0

дает нам следующий результат.

Выход

Настройки

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...: правда

mIsStatic...: правда

}

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...: ложь

mIsStatic...: ложь

}

Оверлеи по умолчанию: com.google.android.theme.pixel.

Кэш PackageInfo

2 пакет(а)

читать далее

Итак, как можно видеть, Google вложил много усилий в разработку механизма тем и его интеграцию в исходный код AOSP. Похоже, если бы его нужно было добавить в масштабе всей системы, темы будут включены в тюнере системного пользовательского интерфейса.. У Google также есть предоставил информацию для OEM-производителей, поэтому вполне возможно, что в будущем дополнительные OEM-производители смогут включить поддержку тем на основе версии AOSP в Android Oreo.

В целом, это очень интересная разработка. Темы — это одна из многих частей, которая определяет Android как полностью настраиваемую операционную систему на вашем телефоне, даже если в настоящее время для общесистемных тем требуется root. В будущем, если бы ему разрешили работать без root-доступа, это стало бы важным шагом в направлении свободы пользователя. Конечно, он может быть заблокирован в настройщике системного пользовательского интерфейса на некоторое время (поскольку неработающие темы могут привести к поломке приложений), но позволяя то, что пользователь даже может воспользоваться преимуществами встроенной поддержки тем, является огромным дополнением к мобильной работе. система.