Ексклюзив: Android Oreo отримає безкореневу підтримку загальносистемної теми протягом 1 тижня

click fraud protection

Останній випуск Android Oreo від Google уже має вбудовану підтримку рідної теми, і завдяки системі тем Substratum він з’явиться через 1 тиждень.

Оновлення 13.09.17: випущено доповнення Andromeda для Substratum, яке дозволяє створювати власні теми на пристроях Android Oreo без рутування. Перегляньте цю статтю для отримання додаткової інформації. Оригінальна стаття залишиться нижче.

З кожним новий випуск ОС Android від Google, для більшості користувачів є менше причин рутувати свої пристрої. Однак серед інших користувачів, які все ще вирішують рутувати свої пристрої, однією з найпоширеніших причин є ввімкнення загальносистемної підтримки теми. Як правило, цим керують через Substratum рамка теми з тих пір нещасна смерть CyanogenMod Theme Engine. З часом, команда за Substratum наполегливо працювали, щоб включити підтримку для більшої кількості пристроїв, включивши підтримку Substratum на рівні ПЗУ тому він міг працювати без кореневого доступу. І тепер команда вивела проект за межі того, що будь-хто з нас міг собі уявити 

повна підтримка загальносистемної теми без root для будь-якого пристрою Android Oreo.

Показ скріншотів Чорна тема Sai для Android Oreo працює на нерутованому Google Pixel на Android Oreo 8.0.0

Щоб дати вам уявлення про те, як це зробити це неймовірно, вважайте, що тепер стане можливим наступне без кореня:

  • Тематизація в Android Framework і Android System UI, а також будь-які інші системні програми. (Багато хто з вас збирається любов нарешті доступна темна тема!)
  • Тематизація будь-який сторонній додаток
  • Спеціальні шрифти для сторонніх програм
  • Багато інших модифікацій, наприклад мод центрального годинника рядка стану

Список можна продовжувати! Субстрат має широкий список доступних тем які підтримують структуру (усі вони підтримуються в майбутній новій версії Substratum для Android 8.0), активна спільнота на Google+ і наші власні форуми, і враховуючи цей розвиток, підтримка лише зростатиме!


Android Oreo та служба Overlay Manager

Зразок деяких тем Substratum.

З моменту включення Google вбудована підтримка накладення ресурсів виконання Sony (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 єдиний спосіб для користувачів пристроїв, що не належать Sony, скористатися перевагами механізму оформлення тем — це спеціальний ROM.

Це змінилося в Android 8.0. Коли Substratum був спочатку випущений для перші кілька попередніх переглядів для розробників Android O, це зрозуміли розробники Substratum повна підтримка для Sony OMS був доступний. Це означає, що користувач може встановити наявну тему, яка підтримується Substratum, і вона буде повністю функціонувати на пристроях Android Oreo, не вимагаючи жодних патчів ПЗУ. Проте була лише одна проблема: процес увімкнення встановленої теми Substratum потребував кореневого доступу, або так вони думали.


Безкоренева підтримка загальносистемної теми Substratum для Android Oreo

У той час як розробники мовчки працюють над тим, щоб отримати для користувачів Android Oreo повністю безкореневе рішення теми на задній панелі Burner, ми незалежно копалися в кожному Android O Developer Preview і знаходили докази того, що движок тем працює, хоча ми помилилися базується на старішому RRO, а не на новішому OMS Sony. Google навіть дражнив спільноту щодо підтримки теми в a AMA, орієнтований на розробника на Reddit, заявивши, що ще потрібно подолати деякі перешкоди, перш ніж можна буде вбудувати в Android повне рішення для створення тем.

Не задоволені цією відповіддю, ми хотіли побачити, наскільки далеко Google зайшов у забезпеченні підтримки тем для Android Oreo. Для цього я копався вихідний код Android 8.0 як тільки остаточний випуск випав, і виявив наявність команд оболонки ADB, які можуть увімкнути або вимкнути накладання, про яку вчора писав письменник XDA Адам Конвей.

Вимкнення накладення за замовчуванням

Спочатку я не був дуже вражений знахідкою, оскільки, наскільки мені було відомо на той час, вона була функціонально марною, оскільки я та мої колеги вважали, що встановлення тема все ще потребує кореневого доступу, оскільки файли теми потрібно буде перемістити до папки, недоступної для простору користувача (у /system/vendor/overlay, як RRO функціонував). Микола Чум сам, один із провідних розробників Substratum, прокоментував нашу публікацію, що він знав про існування цих команд досить давно і вже використовував його для збірок Android O.

Однак одна людина побачила, що з’явилася можливість після того, як ми вчора опублікували нашу статтю. Дуже власний XDA Джефф Коркоран, розробник нашої компанії Додаток XDA Labs, зрозумів, що існує потенційний обхідний шлях, щоб змусити рідний інтерфейс командного рядка Android Oreo для OMS працювати без root-прав. Він включав метод, який використовувався Гелій, популярне некореневе рішення для резервного копіювання, а нещодавно альтернатива Greenify із відкритим кодом, відома як Brevent.

Розширені привілеї за допомогою сценарію

Зазвичай "накладання cmd" команди, які Google додав до випуску Oreo, можна запускати лише через пристрій із правами root або через пристрій, підключений до комп’ютера, що викликає оболонку Android Debug Bridge (ADB). Кілька розумних розробників, таких як розробники Helium і Brevent, протягом багатьох років це зрозуміли як по суті підвищити привілеї програми, що працює на телефоні, щоб відповідати привілеям ADB оболонка. Роблячи це, програма може надсилати команди, які зазвичай не може через обмежені дозволи. У випадку Substratum це означає програму можна встановити, а потім увімкнути або вимкнути теми Substratum без root.

Це усвідомлення було а майор прорив, який було виявлено лише вчора ввечері. Протягом кількох годин Ніколас (за допомогою Джеффа) зміг створити швидку альфа-версію безкорневого менеджера тем Substratum для пристроїв Android Oreo. І це працює, але з деякими застереженнями.

Застереження щодо підтримки безкорінного субстрату

Процес, необхідний для надання підвищених привілеїв оболонки Substratum ADB, вимагатиме використання дуже простий і легкий настільна програма (або просто команда оболонки ADB, якщо ви знаєте, що робите). Після надання Substratum функціонуватиме так, як ви очікували, оскільки він зможе керувати всіма встановленими вами темами Substratum. Будь-які теми, які ви встановите, залишаться встановленими доки ви знову не вирішите видалити його через Substratum.

Однак привілеї, які надає Substratum, є тимчасовими втрачаються, коли користувач виконує повне перезавантаження (хоча, на щастя, м’які перезавантаження системного інтерфейсу користувача не втрачають привілей). Це означає, що вам доведеться знову запустити програму для робочого столу, якщо ви перезавантажили телефон і хочете використовувати Substratum для додавання, видалення або зміни теми. Я хочу ще раз це повторити будь-які встановлені вами теми залишаться встановленими навіть після перезавантаження, тож це означає, що якщо ви хочете лише час від часу змінювати кілька тем, це має бути ідеальним для вас. Ви також повинні мати можливість перемикати теми з меню налаштувань, як Параметр «Тема» попереднього перегляду розробника у розділі Параметри дисплея розпізнає встановлені теми та дозволяє перемикатися між ними

Нарешті, останнє, що мені потрібно згадати, це те, що здається очевидним, якщо ви про це подумаєте, але в хвилюванні новин ви можете забути. Ваш пристрій все ще не рутировано. Це означає, що ви не можете торкатися або змінювати будь-які файли, для редагування яких обов’язково потрібен доступ root, навіть якщо встановлена ​​вами тема Substratum обіцяла щось змінити. Вибачте, але, на жаль, це означає, що ви не можете застосувати загальносистемні зміни шрифту до повернути емодзі краплі, хоча, як згадувалося на початку, це є для теми Substratum можна змінювати шрифти окремих програм.

Необхідність субстрату

Давайте зараз усунемо важливу деталь. Коли це буде? Як зазначено в назві, перша публічна доступність безкорневого Substratum для пристроїв Android 8.0, таких як Google Nexus 5X, Google Nexus 6P, Google Pixel і Google Pixel XL, має бути протягом 1 тижня. це так не гарантія у будь-який спосіб, оскільки в процесі розробки все може змінитися, що може вимагати додаткових інвестицій часу, але оскільки OMS вже є повністю підтримується в AOSP, все, над чим зараз працює команда Substratum, — це взаємодія між додатком Substratum і unrooted пристроїв.

Далі: чи буде це безкоштовно? Немає. Субстратом для нерутованих пристроїв Android Oreo буде a платний додаток. Я не можу сказати вам, скільки це коштуватиме, оскільки Ніколас ще не визначився з ціною, але будьте впевнені, що ціна буде справедливою, враховуючи вартість того, що ви отримаєте. До цього моменту Substratum був у вільному доступі для багатьох пристроїв, тому подумайте про підтримку такого роду розробки, спочатку підтримуючи Team Substratum. Ви можете почекати, поки Google зрештою випустить темну тему, яку ви завжди хотіли (га, добре один), або ви можете вкласти кілька копійок, щоб підтримати незалежний розвиток, який багато людей сприймають надано.

Все ще не впевнені в його цінності? Ти можеш спробувати встановлення тем Substratum на ваш власний нерутований пристрій 8.0. Насправді це саме те, що ми зробили вище. Звичайно, нам у цьому трохи допоміг Микола. Якщо ви хочете встановити наявну тему Substratum із магазину Google Play, виконайте наведені нижче загальні кроки.

  1. Завантажте та встановіть файл APK на свій пристрій.
  2. Витягніть вміст і скомпілюйте кожне накладення в окремий файл APK для кожної програми, яку ви хочете тематизувати
  3. Встановіть кожен окремий файл APK для накладання, який ви зібрали вручну на кроці №2
  4. Для кожного накладеного APK, який ви встановлюєте, виконайте таку команду, щоб увімкнути його: cmd overlay enable
  5. Якщо ви хочете змінити пріоритет накладень, використовуйте: cmd overlay set-priority PARENT|lowest|highest
  6. Перелічіть усі встановлені накладки за допомогою: cmd overlay list
  7. Видаліть непотрібні накладки: cmd overlay disable

Якщо ви дійсно хочете використовувати командний рядок для керування темами, будьте нашим гостем! Особисто я застряг, пройшовши крок №2. Substratum не використовує якийсь прихований метод, який ви не можете придумати самостійно, а створює його далеко вам легше керувати. Коли можна щось зробити вручну, але програма може зробити це за мене набагато легше, я, як правило, просто дозволяю програмі виконувати свою роботу. Але це на ваш розсуд.

Особисто я дуже, дуже схвильований щоб побачити, куди це йде. Для будь-яких пристроїв, які ще не підтримують вбудовану систему керування темами (наприклад, пристрої Motorola або OnePlus), тепер у вас є ще одна причина очікувати оновлення Android 8.0. Для тих із вас, кому пощастило вже скуштувати цей солодкий Oreo, у вас є на що чекати через 1 тиждень.


P.S. Користувачі Samsung, чи знаєте ви свої пристрої? вже підтримують теми Substratum без необхідності root?

P.P.S Ви розробник, зацікавлений дізнатися більше про Substratum? Подивіться на Миколая дивовижна презентація слайд-шоу тут!