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, и мы смогли так же легко включить/отключить их.
При копании в исходном коде мы также нашли еще одну команду. Команда следующая
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-доступа, это стало бы важным шагом в направлении свободы пользователя. Конечно, он может быть заблокирован в настройщике системного пользовательского интерфейса на некоторое время (поскольку неработающие темы могут привести к поломке приложений), но позволяя то, что пользователь даже может воспользоваться преимуществами встроенной поддержки тем, является огромным дополнением к мобильной работе. система.