Google может наконец включить пользовательские темы, созданные на основе Sony RRO Framework

click fraud protection

Предварительная версия Android O Developer Preview имеет загадочную настройку темы отображения. XDA пришла к выводу, что эта структура тем основана на RRO от Sony.

Если вы еще не знаете, Google выпустила вторую предварительную версию Android O Developer Preview (Android O DP2) во время вчерашнего мероприятия I/O. Мы уже сделали глубокое погружение во все новое, что мы нашли до сих пор, но в DP2 меня беспокоила одна вещь. Все, кто получил бета-обновление или прошил вручную новые изображения были быстро встречены радикально другой интерфейс в быстрых настройках. Почему Google решил сменить тему? После еще нескольких тестов и раскопок я пришел к выводу. По какой-то причине Google решил сделать свой «Перевернутая» тема тема по умолчанию; возможно, пока компания была в середине тестирование индивидуального решения по темам на основе Наложение ресурсов времени выполнения Sony (RRO), им не удалось заставить стандартную тему Pixel работать к выпуску бета-версии Android O.

Системная тема по умолчанию в Android O Developer Preview 2

Тот факт, что структура тем Android O основана на RRO от Sony, может показаться очевидным для некоторых, учитывая, что Google реализована поддержка RRO в Android 6.0 Marshmallow, хотя для этого необходимо иметь рутированное устройство. Однако, поскольку исходный код Android O не был опубликован, было бы чистым предположением предположить, что эта системная тема в Android O на самом деле является RRO. Вот почему наш первоначальное покрытие об этой загадочной обстановке, а также о репортажах, сделанных другие сайты, не сделал этой связи. Но есть несколько свидетельств, связывающих эту функцию со структурой тем, которые, по нашему мнению, должны убедительно показать, что Тема устройства Android O основана на RRO. При наличии поддержки RRO это может наконец-то предоставили тематическое решение для нерутированных пользователей, которого мы все ждали.


Что такое наложение ресурсов времени выполнения (RRO)?

RRO — это платформа тем, созданная разработчиками Sony, которая позволила Темы Sony Xperia. Прелесть RRO в том, что он позволяет заменять ресурсы приложения без необходимости изменения исходного кода приложения. Это происходит за счет использования наложения, которое содержит свои собственные строки ресурсов, которые используются для замены ресурсов наложенного приложения во время загрузки приложения.

Те из вас, кто видит «RRO» и думает «Слои», вы очень близки к этому. Layers — это слегка модифицированная версия RRO от Sony, но на базовом уровне она работает очень похоже. RRO/Layers «устанавливает» APK темы в /system/vendor/overlay. При загрузке менеджер пакетов считывает эти APK, проверяет их, а затем использует карта идентификаторов чтобы связать его с таблицей системных ресурсов. Вы можете прочитать более подробный FAQ по СикоПомпос, разработчик (сейчас устарело) Менеджер слоев приложение.

Снимки экрана устаревшего приложения Layers Manager


Рекомендуемое чтение: Краткая история тем: от OEM-тем до слоев RRO


Конечно, лишь немногие в сообществе пользовательских прошивок Android до сих пор используют движок тем, основанный на RRO. Большинство из них перешли на другой механизм тем, такой как Субстрат, который представляет собой эволюцию слоев, теперь основанную на службе диспетчера наложений (OMS). (CyanogenMod Theme Engine (CMTE) был еще одной популярной платформой тем. его будущее все еще под вопросом.) Однако, даже если вы не используете собственное ПЗУ с коммитами OMS, Приложение-движок тем Substratum по-прежнему поддерживает возможность использования тем «Substratum Legacy», которые являются просто темами RRO/Layers. И из-за этого пользователи начали понимать, что темы устройства Android O и RRO — это одно и то же.


Google наконец-то представил тематизацию через RRO

На раздел комментариев AndroidПолиция статья, Признанный разработчик XDA Макср1998 опубликовал скриншот, утверждающий, что темы Substratum Legacy отображаются в средстве выбора тем устройства Google.

Слева вы можете увидеть список оверлейных APK-файлов, установленных Maxr1998 на Android O Developer Preview 1. Справа вы можете увидеть два варианта тем в Android O Developer Preview 2. Ранее в Android O DP1, двумя опциями были «Пиксель» и «Инвертированный», при этом «Пиксель» был установлен по умолчанию, а «Инвертированный» напоминает внешний вид шкалы серого, который используется по умолчанию в O DP2.

Но внимательно посмотрите на название темы по умолчанию в O DP2. Он называется «android.auto_generated_rro». Действительно, очень странное имя, но включение в него буквы «RRO» заставило меня сначала поверить, что это действительно RRO от Sony.

Тогда я подумал: если это действительно RRO, где еще я могу найти подтверждение этому? Эти мысли побудили меня проверить /system/vendor/overlay, и, как и ожидалось, внутри действительно находятся два APK-файла: framework-res__auto_generated_rro.apk и PixelThemeOverlay.apk.

Оба они соответствуют названиям тем в настройках дисплея. Любопытно, что при выборе темы Pixel в настройках дисплея она не работает. Я не эксперт в разработке тем RRO, поэтому не могу сказать, почему тема Pixel не работает, хотя, выполнив демонтаж APK обоих приложений, становится ясно, что это действительно наложение Программы.

PixelThemeOverlay.apk APK Разбор

[tabs][tab title ="AndroidManifest.xml"]


package="com.google.android.theme.pixel" platformBuildVersionCode="25" platformBuildVersionName="O">
<overlayandroid: priority="1"android: targetPackage="android"/>
<applicationandroid: hasCode="false"android: label="@string/pixel_overlay_pixel"/>
manifest>

[/tab][tab title ="strings.xml"]


<resources>
<stringname="pixel_overlay_pixel">Pixelstring>
resources>

[/tab][tab title="colors.xml"]


<resources>
<colorname="user_icon_1">#ff5e97f6color>
<colorname="user_icon_2">#ff5c6bc0color>
<colorname="user_icon_3">#ff26a69acolor>
<colorname="user_icon_4">#ffec407acolor>
<colorname="user_icon_5">#ff33ac71color>
<colorname="user_icon_6">#ff8bc34acolor>
<colorname="user_icon_7">#ffff9800color>
<colorname="user_icon_8">#ffff7043color>
<colorname="system_error">#ffea4335color>
<colorname="primary_device_default_dark">#ff2d2d2dcolor>
<colorname="primary_device_default_settings">#ff2d2d2dcolor>
<colorname="primary_dark_device_default_dark">#ff242424color>
<colorname="primary_dark_device_default_settings">#ff242424color>
<colorname="secondary_device_default_settings">#ff3a3a3acolor>
<colorname="tertiary_device_default_settings">#ff616161color>
<colorname="quaternary_device_default_settings">#ff9e9e9ecolor>
<colorname="accent_device_default_700">#ff3367d6color>
<colorname="accent_device_default_light">#ff4285f4color>
<colorname="accent_device_default_dark">#ff5e97f6color>
<colorname="accent_device_default_50">#ffe8f0fecolor>
resources>

[/таб]

[/табс]

Если вы просматриваете над документацией РРО предоставлено Sony, понятно, что это тема RRO. В файле AndroidManifest строка наложения указывает, что это наложение предназначено для файла framework-res.apk («android») и имеет приоритет «1», который является наивысшим приоритетом, который ему может быть присвоен.

С другой стороны, в файле framework-res__auto_generated_rro.apk есть похожий файл AndroidManifest.xml, но в нем присутствует множество других строк, не связанных с темами. Но это легко объяснимо тем, что данная тема RRO по сути является урезанной версией framework-res.apk Google Pixel, что, как я полагал, верно, поскольку в \res\values\bools.xml есть строка true из сообщения на нашем форуме я знаю, что это строка, которую пользователи нужно установить для того, чтобы включить поддержку круглых значков во всей системе.


Заключение

Мой тестер еще не смог получить root-доступ в O DP2, чтобы попытаться запустить тему Substratum Legacy/RRO, но, учитывая мои собственные выводы и результаты Maxr1998, можно с уверенностью сказать, что Google, возможно, наконец-то готовится внедрить тему RRO в массы.

Конечно, нет никакой гарантии, что эта функция не будет удалена в одной из более поздних сборок Android O. Вполне возможно, что Google решит, что RRO работает не так, как им хочется, и откажется от этой функции. Однако, учитывая обширную историю RRO как в руках Sony, так и в нашем собственном сообществе разработчиков, многие из нас уже знакомы с величием Runtime Resource Overlay от Sony. А поскольку уже существует масса RRO-совместимых тем, если Google когда-нибудь решит разрешить нам установку пользовательские темы, они откроют шлюзы для и без того широкого рынка доступных тем для пользователей.


Кредиты на изображения: SonyDevWorld