Последняя версия Android Oreo от Google уже имеет встроенную поддержку тем, и благодаря движку тем Substratum она выйдет через 1 неделю.
Обновление от 13.09.17: выпущено дополнение Andromeda для Substratum, которое позволяет использовать собственные темы на нерутированных устройствах Android Oreo. Дополнительную информацию смотрите в этой статье.. Оригинал статьи останется ниже.
С каждым новый выпуск ОС Android от Google у большинства пользователей меньше причин рутировать свои устройства. Однако среди остальных пользователей, которые все еще предпочитают рутировать свои устройства, одной из наиболее часто упоминаемых причин является включение общесистемной поддержки тем. Обычно это осуществляется через Substratum. рамки темы с тех пор как неудачный конец движка тем CyanogenMod. Со временем команда, создавшая Substratum усердно работали над включением поддержки большего количества устройств за счет поддержки Substratum. на уровне ПЗУ чтобы он мог работать без root-доступа. И теперь команда вышла за рамки того, что любой из нас мог себе представить, привнеся
полная общесистемная поддержка тем без рута для любого устройства Android Oreo.Скриншоты, показывающие Черная тема Сая для Android Oreo работает на нерутированном Google Pixel на Android Oreo 8.0.0
Чтобы дать вам представление о том, как невероятное развитие событий, это, учтите, что теперь будет возможно следующее без рута:
- Тематика Android Framework и системный пользовательский интерфейс Android, а также любые другие системные приложения. (Многие из вас собираются любовь наконец-то появилась темная тема!)
- Тематика любое стороннее приложение
- Пользовательские шрифты для сторонних приложений
- Множество других модификаций, таких как мод центральных часов в строке состояния.
Список можно продолжить! Субстрат имеет обширный список доступных тем которые поддерживают структуру (все они поддерживаются в новой версии Substratum для Android 8.0), активное сообщество на Гугл+ и наши собственные форумы, и учитывая такое развитие событий, поддержка будет только расти!
Android Oreo и служба диспетчера наложений
С тех пор, как Google включил встроенная поддержка Sony Runtime Resource Overlay (RRO) движок тем в Android 6.0 Marshmallow, мы ждали чтобы Google предоставил встроенный интерфейс, а также общедоступные API, которые разработчики могут использовать для оформления тем как приложений системной платформы, так и сторонних приложений. Увы, выпуск Android Nougat не принес ничего нового с тех пор, как Sony RRO была добавлена в Android Open Source Project (AOSP).
Но благодаря кропотливой работе инженеров Sony Mobile движок тем RRO в конечном итоге превратился в так называемый Overlay Manager Service (OMS), на котором основан Substratum. Sony была пионером в области решения тем с открытым исходным кодом, но, поскольку их движок тем OMS был принят в AOSP примерно в На момент выхода финальной версии Android 7.1 единственный способ для пользователей устройств сторонних производителей воспользоваться преимуществами движка тем — это настроить ПЗУ.
Ситуация изменилась в Android 8.0. Когда Substratum был первоначально выпущен для первые несколько обзоров разработчиков Android O, разработчики Substratum поняли, что полная поддержка для Sony ОМС был доступен. Это означает, что пользователь может установить существующую тему, поддерживаемую Substratum, и она будет полностью функционировать на устройствах Android Oreo без каких-либо исправлений ПЗУ. Однако была только одна проблема: для включения установленной темы Substratum требовался root-доступ. или они так думали.
Общесистемная поддержка тем Substratum без рута для Android Oreo
В то время как разработчики потихоньку выкладывают свою работу над вопросом предоставления пользователям Android Oreo полностью безрутового тематического решения на обороте. Burner, мы независимо копались в каждой предварительной версии Android O Developer Preview и находили доказательства использования движка тем, хотя мы неправильно определили это как основанный на более старой версии RRO, а не на новой OMS от Sony. Google даже дразнил сообщество по поводу поддержки тем в AMA, ориентированная на разработчиков на Reddit, заявив, что еще предстоит преодолеть некоторые препятствия, прежде чем полноценное решение для тем сможет быть встроено в Android.
Не удовлетворившись таким ответом, мы хотели посмотреть, насколько далеко продвинулась Google в обеспечении поддержки тем для Android Oreo. Для этого я покопался в исходный код Android 8.0 как только вышел финальный релиз, и обнаружил существование команд оболочки ADB, которые могут включать или отключать наложения, о котором вчера рассказал писатель XDA Адам Конвей.
Поначалу меня эта находка не слишком впечатлила, поскольку, насколько мне было известно на тот момент, она была функционально бесполезна, поскольку у меня и моих коллег сложилось впечатление, что установка теме по-прежнему требовался root-доступ, поскольку файлы темы необходимо было бы переместить в папку, недоступную для пользовательского пространства (в /system/vendor/overlay, как это делает RRO функционировал). Николас Чам сам, один из ведущих разработчиков Substratum, прокомментировал нашу публикацию, что он уже довольно давно знает о существовании этих команд и уже использовал его для сборок Android O.
Однако один человек увидел, что появилась возможность после того, как мы вчера опубликовали нашу статью. Собственный XDA Джефф Коркоран, разработчик нашего собственного Приложение XDA Labs, понял, что существует потенциальный обходной путь, позволяющий заставить собственный интерфейс командной строки Android Oreo для работы OMS без root-прав. Речь шла о методе, который использовал Гелий, популярное решение для резервного копирования без полномочий root, а в последнее время — альтернатива Greenify с открытым исходным кодом, известная как Бревент.
Повышенные привилегии с помощью скрипта
Обычно "наложение cmd«Команды, добавленные Google в версию Oreo, можно запускать только через устройство с root-правами или через устройство, привязанное к компьютеру, вызывающее оболочку Android Debug Bridge (ADB). Несколько умных разработчиков, таких как разработчики Helium и Brevent, с годами выяснили как существенно повысить привилегии приложения, работающего на телефоне, до уровня ADB оболочка. При этом приложение может отправлять команды, которые обычно не могут быть выполнены из-за ограниченных разрешений. В случае с субстратом это означает приложение может установить, а затем включить или отключить темы Substratum без рута.
Это осознание было главный прорыв, который был обнаружен только вчера вечером. В течение нескольких часов Николас (с помощью Джеффа) смог создать быструю альфа-версию безрутового менеджера тем Substratum для устройств Android Oreo. И это работает, но с некоторыми оговорками.
Предостережения относительно поддержки бескорневого субстрата
Процесс, необходимый для предоставления повышенных привилегий оболочки Substratum ADB, потребует использования очень простой и легкий настольное приложение (или просто команда оболочки ADB, если вы знаете, что делаете). После предоставления Substratum будет работать так, как вы ожидаете, и сможет управлять всеми установленными вами темами Substratum. Любые установленные вами темы останутся установленными. пока вы снова не решите удалить его через Substratum.
Однако привилегии, предоставляемые Substratum, являются временными, поскольку они теряются, когда пользователь выполняет полную перезагрузку (хотя, к счастью, мягкая перезагрузка системного пользовательского интерфейса не теряет этой привилегии). Это означает, что вам придется снова запустить настольную программу, если вы перезагрузили телефон и хотите использовать Substratum для добавления, удаления или изменения темы. Я хочу еще раз повторить, что любые установленные вами темы останутся установленными даже после перезагрузки, это означает, что если вы хотите лишь время от времени менять несколько тем, это идеально вам подойдет. У вас также должна быть возможность переключать темы из меню «Настройки»., как Опция «Тема» в предварительной версии для разработчиков в настройках дисплея затем распознает установленные темы и позволяет переключаться между ними.
Наконец, последнее, что мне нужно упомянуть, — это то, что кажется очевидным, если задуматься, но в волнении от новостей вы, возможно, забыли. Ваше устройство все еще не рутировано. Это означает, что вы не можете трогать или изменять любые файлы, для редактирования которых абсолютно необходим root-доступ, даже если установленная вами тема Substratum обещала что-то изменить. Извините, но, к сожалению, это означает, что вы не можете применить общесистемное изменение шрифта к верните смайлики-капли, хотя, как было сказано в начале, это является Тема Substratum позволяет изменять шрифты отдельных приложений.
Необходимость субстрата
Давайте теперь уточним важную деталь. Когда это произойдет? Как упоминается в заголовке, первая публичная доступность Substratum без root-доступа для устройств Android 8.0, таких как Google Nexus 5X, Google Nexus 6P, Google Pixel и Google Pixel XL, должна состояться. в течение 1 недели. Это не гарантия любыми способами, поскольку в процессе разработки все может измениться, что может потребовать дополнительных затрат времени, но поскольку OMS уже полностью поддерживается в AOSP, все, над чем сейчас работает команда Substratum, — это интерфейс между приложением Substratum и нерутированным устройства.
Далее: будет ли это бесплатно? Нет. Субстратом для нерутированных устройств Android Oreo будет платное приложение. Я не могу сказать вам, сколько это будет стоить, поскольку Николас еще не определился с ценой, но будьте уверены, цена будет справедливой, учитывая ценность того, что вы получите. До этого момента Substratum был бесплатно доступен для многих устройств, поэтому рассмотрите возможность поддержки такого рода разработки, сначала поддержав Team Substratum. Вы можете либо подождать, пока Google в конце концов выпустит ту темную тему, о которой вы всегда мечтали (ха, хорошо one), или вы можете вложить несколько копеек в поддержку независимого развития, которое многие люди принимают за предоставленный.
Все еще не уверены в его ценности? Ты можешь пытаться установка тем Substratum на собственное нерутированное устройство 8.0. Собственно, это именно то, что мы сделали выше. Конечно, в этом нам немного помог Николас. Если вы хотите установить существующую тему Substratum из Google Play Store, выполните следующие действия:
- Загрузите и установите APK-файл на свое устройство.
- Извлеките содержимое и скомпилируйте каждое наложение в отдельный APK-файл для каждого приложения, которое вы хотите использовать в качестве темы.
- Установите каждый отдельный APK-файл наложения, который вы вручную скомпилировали на шаге 2.
- Для каждого устанавливаемого APK-файла наложения выполните следующую команду, чтобы включить его:
cmd overlay enable
- Если вы хотите изменить приоритет наложений, используйте:
cmd overlay set-priority
PARENT|lowest|highest - Перечислите все установленные вами оверлеи с помощью:
cmd overlay list
- Удалите все ненужные наложения с помощью:
cmd overlay disable
Если вы действительно хотите использовать командную строку для управления темами, будьте нашим гостем! Лично я застрял на шаге №2. Substratum не использует какой-то скрытый метод, который вы не можете придумать самостоятельно, а делает его далеко вам легче управлять. Когда можно сделать что-то вручную, но приложение делает это за меня гораздо проще, я обычно просто позволяю приложению выполнять свою работу. Но это зависит от вас.
Лично я очень, очень взволнован чтобы увидеть, к чему это приведет. Для любых устройств, которые еще не поддерживают встроенную систему управления темами (например, устройства Motorola или OnePlus), теперь у вас есть еще одна причина ожидать обновления Android 8.0. Тем из вас, кому посчастливилось уже попробовать сладкое Орео, есть чего ожидать через неделю.
P.S. Пользователи Samsung, знаете ли вы свои устройства уже поддерживают темы Substratum без необходимости рута?
П.П.С. Вы разработчик и хотите узнать больше о Substratum? загляните к Николаю потрясающая презентация слайд-шоу здесь!