Android Oreo включва поддръжка на интерфейс на командния ред за RRO теми, намеквайки, че операционната система се приближава все повече към поддръжката на теми в цялата система.
С пускането на Android Oreo идва много време, прекарано в търсене на скрити екстри в изходния код. В миналото инженерният екип на Android имаше говори за активиране на тематизирането в Android O. Докладвахме през май че втората предварителна версия за разработчици на Android O може да е била намек, че Google поддържа Overlay Manager Service (OMS) и Runtime Resource Overlay (RRO), но сега знаем със сигурност, че е така. Android Oreo сега, технически, поддържа OMS/RRO тематизиране и дори предоставя интерфейс за активиране или деактивиране на теми, при условие че можете да преглътнете използването на командния ред.
Актуализация: Substratum използва тези команди с визуализациите за разработчици и сега с Oreo, откакто са налични!
Какво представляват RRO и OMS?
RRO е разработен вътрешно от Sony за функционалност на темата в линията Sony Xperia. Разработчиците, които разпознаха значението му, работиха за разширяване на поддръжката му към други ROM и с него дойде темата за RRO в множество устройства - не само устройства на Sony. Той гениално замени ресурсите по време на изпълнение на приложението, лекота на използване, невиждана от другите опции за оформяне на теми по това време. Това се превърна в OMS, който също е разработен вътрешно от Sony. Известният
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__“, като изпълним следните команди.
Както може да се види тук, стандартното наслагване е деактивирано, а автоматично генерираното е активирано. Изпълнявайки нашата команда за преглед на нашите инсталирани наслагвания отново, виждаме следния резултат.
Това води до ново тематично приложение за системни настройки на Android в нашия Google Pixel. Имайте предвид, че горният списък с наслагвания също включва теми, инсталирани с помощта на 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 производители, така че е възможно допълнителни производители на оригинално оборудване да активират поддръжка на теми въз основа на версията на AOSP в бъдеще на Android Oreo.
Като цяло, това е много вълнуващо развитие. Тематизирането е една от многото части, които определят Android като напълно адаптивна операционна система на вашия телефон, дори ако в момента изисква root за общосистемни теми. В бъдеще, ако бъде разрешено да работи без root достъп, това ще бъде голяма стъпка в посока на свободата на потребителите. Разбира се, той може да бъде заключен в тунера на системния потребителски интерфейс за доста време (тъй като повредените теми могат да развалят приложенията), но позволява потребителят дори да се възползва от поддръжката на естествена тема на първо място е огромно допълнение към мобилната работа система.