Най-новата версия на Android Oreo на Google вече има вградена поддръжка на родни теми и благодарение на тематичния механизъм Substratum идва след 1 седмица.
Актуализация 09/13/17: Добавката Andromeda за Substratum, която позволява персонализирани теми на нерутирани устройства с Android Oreo, вече е пусната. Вижте тази статия за повече подробности. Оригиналната статия ще остане по-долу.
С всеки ново издание на Android OS на Google, има по-малко причини за повечето потребители руутват своите устройства. Въпреки това, сред останалите потребители, които все още избират да руутват устройствата си, една от най-често цитираните причини е да се активира поддръжка на тема за цялата система. Обикновено това се управлява чрез Substratum тематична рамка още от злощастна смърт на CyanogenMod Theme Engine. С течение на времето, екип зад Substratum работи усилено, за да включи поддръжка за повече устройства чрез включване на поддръжка на Substratum на ниво ROM така че може да работи без root достъп. И сега екипът изведе проекта отвъд това, което всеки от нас би могъл да си представи, като го донесе
пълна поддръжка на теми за цялата система без root за всяко устройство с Android Oreo.Екранни снимки, показващи Черната тема Android Oreo на Sai работещ на нерутиран Google Pixel на Android Oreo 8.0.0
За да ви дам представа как това е невероятно развитие, помислете, че следното вече ще бъде възможно без корен:
- Тематизиране на Android Framework и Android System UI, както и всякакви други системни приложения. (Много от вас ще любов най-накрая има налична тъмна тема!)
- Тематизиране на всяко приложение на трета страна
- Персонализирани шрифтове за приложения на трети страни
- Много други модификации, като мод на централния часовник в лентата на състоянието
Списъкът продължава! Субстратът има обширен списък с налични теми които поддържат рамката (всички от които се поддържат в тази предстояща нова версия на Substratum за Android 8.0), активна общност на Google+ и нашите собствени форуми, и като се има предвид това развитие, поддръжката само ще расте!
Android Oreo и услугата Overlay Manager
Откакто Google се включи вградена поддръжка за наслагването на ресурси за изпълнение на Sony (RRO) тематичен двигател в Android 6.0 Marshmallow, ние сме чакали за Google да предостави вграден интерфейс, както и публични API, които разработчиците могат да използват за тематизиране както на системно рамково приложение, така и на приложения на трети страни. Уви, версията на Android Nougat донесе малко новини на масата, откакто RRO на Sony беше добавен към 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, без да изисква никакви ROM пачове. Имаше обаче само един проблем: процесът на активиране на инсталирана тема на Substratum изискваше root достъп, или поне така си мислеха.
Безкоренна, системна поддръжка на тема за субстрат за Android Oreo
Докато разработчиците тихомълком полагат усилията си по въпроса за предоставянето на потребителите на Android Oreo на напълно безкорпусно решение за тема на гърба Burner, ние независимо копаехме във всеки Android O Developer Preview и откривахме доказателства за действащия механизъм за теми, все пак ние го идентифицирахме погрешно като базиран на по-стария RRO, а не на по-новия OMS на Sony. Google дори подразни общността относно поддръжката на теми в a ориентирана към разработчиците AMA в Reddit, заявявайки, че все още има някои препятствия, които трябва да бъдат преодолени, преди да може да бъде вградено цялостно тематично решение в Android.
Тъй като не сме доволни от този отговор, искахме да видим колко далеч е стигнал Google в получаването на поддръжка на теми за Android Oreo. За да направя това, се зарових изходния код на Android 8.0 след като окончателното издание падна и откри наличие на команди на ADB shell, които могат да активират или деактивират наслагвания, която писателят на 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 без root.
Това осъзнаване беше а майор пробив, който беше открит едва вчера вечерта. В рамките на няколко часа Никълъс (с помощта на Джеф) успя да създаде бърза алфа версия на безкорпусен мениджър на теми Substratum за устройства с Android Oreo. И работи - но с няколко уговорки.
Предупреждения за поддръжка на субстрат без корен
Процесът, необходим за предоставяне на повишени привилегии на обвивката на Substratum ADB, ще изисква използването на много проста и лека настолно приложение (или просто ADB shell команда, ако знаете какво правите). Веднъж предоставен, Substratum ще функционира както бихте очаквали, като може да се справи с управлението на всички ваши инсталирани теми на Substratum. Всички теми, които инсталирате, ще останат инсталирани докато не изберете да го деинсталирате отново чрез Substratum.
Въпреки това, привилегиите, които се предоставят на Substratum, са преходни се губят, когато потребителят извърши пълно рестартиране (въпреки че за щастие мекото рестартиране на потребителския интерфейс на системата не губи привилегията). Това означава, че ще трябва да стартирате настолната програма отново, ако сте рестартирали телефона си и искате да използвате Substratum за добавяне, премахване или модифициране на тема. Искам да го повторя отново всички теми, които инсталирате, ще останат инсталирани дори ако рестартирате, така че това означава, че ако искате просто да промените няколко теми само от време на време, това трябва да е идеално за вас. Трябва също да можете да превключвате теми от менюто Настройки, като Опцията „Тема“ на Developer Preview под Настройки на дисплея след това разпознава инсталираните теми и ви позволява да превключвате между тях
И накрая, последното нещо, което трябва да спомена, е нещо, което изглежда очевидно, след като се замислите, но във вълнението си да чуете новини може да сте забравили. Вашето устройство все още не е руутнато. Това означава, че не можете да докосвате или модифицирате никакви файлове, които абсолютно изискват 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 ще бъде a платено приложение. Не мога да ви кажа колко ще струва, тъй като Nicholas все още не е решил цената, но бъдете сигурни, че цената ще бъде справедлива предвид стойността на това, което ще получите. До този момент Substratum беше свободно достъпен за много устройства, така че помислете дали да не подкрепите този вид разработка, като първо подкрепите Team Substratum. Можете или да изчакате Google в крайна сметка да пусне тази тъмна тема, която винаги сте искали (ха, добре едно), или можете да хвърлите няколко стотинки, за да подкрепите независимото развитие, което много хора приемат предоставено.
Все още не сте убедени в неговата стойност? Можеш опитвам инсталиране на теми на 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. За онези от вас, които имат късмета вече да опитат това сладко Oreo, имате какво да очаквате с нетърпение след 1 седмица.
P.S. Потребители на Samsung, познавахте ли вашите устройства вече поддържа теми Substratum без нужда от root?
P.P.S Вие сте разработчик, който се интересува да научи повече за Substratum? Вижте този на Николас страхотна слайдшоу презентация тук!