Android Oreo zawiera obsługę interfejsu wiersza poleceń dla motywów RRO, co sugeruje, że system operacyjny coraz bardziej zbliża się do obsługi motywów dla całego systemu.
Wraz z premierą Androida Oreo wiąże się to z dużą ilością czasu spędzonego na poszukiwaniu ukrytych korzyści w kodzie źródłowym. W przeszłości zajmował się tym zespół inżynierów Androida mówił o włączeniu motywów w Androidzie O. Informowaliśmy w maju że druga wersja deweloperska Androida O mogła wskazywać na to, że Google obsługuje usługę Overlay Manager Service (OMS) i Runtime Resource Overlay (RRO), ale teraz wiemy na pewno, że tak było. Android Oreo teraz, technicznie, obsługuje motywy OMS/RRO, a nawet zapewnia interfejs do włączania i wyłączania motywów, pod warunkiem, że potrafisz to znieść za pomocą wiersza poleceń.
Aktualizacja: Substratum używa tych poleceń w wersjach deweloperskich, a teraz w Oreo, odkąd były dostępne!
Co to są RRO i OMS?
RRO zostało opracowane wewnętrznie przez firmę Sony na potrzeby funkcjonalności motywu w linii Sony Xperia. Programiści, którzy dostrzegli jego znaczenie, pracowali nad rozszerzeniem jego obsługi na inne ROMy, a wraz z nim motywy RRO pojawiły się na wielu urządzeniach – nie tylko urządzeniach Sony. W genialny sposób zastąpił zasoby w czasie wykonywania aplikacji, co stanowi łatwość obsługi niespotykaną wówczas w przypadku innych opcji motywów. Rozwiązanie to przekształciło się w rozwiązanie OMS, które również zostało opracowane samodzielnie przez firmę Sony. Sławny
Menedżer warstw pierwotnie używał motywu RRO, ale OMS został później zaadaptowany do czegoś, co jest obecnie znane jako Substratum i jest obecnie strukturą tematyczną najbardziej znaną użytkownikom na naszych forach. ROMy na naszych forach z zatwierdzeniami OMS oznaczają, że obsługują standardowy silnik motywów Substratum. „Tryb starszej wersji” w Substratum wykorzystuje motyw RRO.Android Oreo wprowadza polecenia tematyczne
Wygląda na to, że Google chce teraz w pełni obsługiwać ten typ motywów w AOSP, prawdopodobnie przechodząc w stronę pełnego, obsługiwanego przez system menedżera motywów. W systemie Android Gerrit firma Google wprowadziła w ostatnich miesiącach szereg zmian (oraz w systemie Android Oreo), które sugerują kroki mające na celu udostępnienie silnika motywów w całym systemie. Zmiany znajdują się poniżej wraz z linkami do odpowiednich zatwierdzeń.
- Polecenia nakładki
- Wprowadzono OverlayManagerService (OMS).
- Nowe pozwolenie zatytułowane CHANGE_OVERLAY_PACKAGES
Wszystkie te zmiany oznaczają ruch Google w kierunku jakiejś formy aplikacji motywującej system, która ma zostać uwzględniona w przyszłości. Uprawnienie wymienione powyżej wymaga uprawnień systemowych, co oznacza, że tylko aplikacja systemowa (lub aplikacja z uprawnieniami roota) może wywołać to uprawnienie. Niemniej jednak jest to interesujące, ponieważ pokazuje, że Google w końcu nad tym pracuje coś.
Dlaczego więc tylko technicznie czy Android Oreo obsługuje motywy? Cóż, prosta odpowiedź jest taka, że chociaż możesz wywołać systemową metodę instalowania motywów, byłoby to raczej bezcelowe. Dzieje się tak dlatego, że chociaż możesz używać nowego interfejsu wiersza poleceń do zarządzania zainstalowanymi motywami, w rzeczywistości nie jest to możliwe instaluj nowe motywy bez dostępu do roota, ponieważ motywy muszą przejść do katalogu, do którego użytkownik nie ma dostępu przestrzeń. Dzięki dostępowi do roota możesz po prostu włączyć motyw Substratum, więc nie ma potrzeby robienia tego w nowy sposób. Firma Google nie dodała aplikacji systemowej do motywowania urządzenia, więc do tego czasu nie ma żadnych korzyści z próbowania zrobienia tego w nowo dołączony sposób.
Interfejs tematyczny wiersza poleceń
W XDA przetestowaliśmy to polecenie na Google Pixel z wersją Androida Oreo. Postanowiliśmy przetestować niektóre polecenia i najpierw je zastosować
cmd overlays list
, aby wyświetlić wszystkie wstępnie zainstalowane nakładki. Zauważyliśmy istnienie „com.google.android.theme.pixel”, wyłączając go i zamiast tego włączając „android.auto_generated_rro__”, uruchamiając następujące polecenia.
Jak widać tutaj, nakładka standardowa jest wyłączona, a nakładka generowana automatycznie jest włączona. Uruchamiając nasze polecenie, aby ponownie wyświetlić zainstalowane nakładki, zobaczymy następujące dane wyjściowe.
W rezultacie w naszym Google Pixel pojawiła się nowa aplikacja ustawień systemu Android. Pamiętaj, że powyższa lista nakładek zawiera również motywy zainstalowane przy użyciu Substratum i równie łatwo mogliśmy je włączyć/wyłączyć.
Podczas przekopywania się przez źródło znaleźliśmy także inne polecenie. Polecenie jest następujące
cmd overlay dump --user 0
daje nam następujące dane wyjściowe.
Wyjście
Ustawienia
android.auto_generated_rro__: 0 {
mPackageName...: android.auto_generated_rro__
mUserId...: 0
mTargetPackageName.: Android
mBaseCodePath...: /vendor/overlay/framework-res__auto_generated_rro.apk
mStan...: STATE_ENABLED
misEnabled...: prawda
mIsStatic...: prawda
}
com.google.android.theme.pixel: 0 {
mPackageName...: com.google.android.theme.pixel
mUserId...: 0
mTargetPackageName.: Android
mBaseCodePath...: /vendor/overlay/Pixel/PixelThemeOverlay.apk
mStan...: STATE_DISABLED
misEnabled...: fałsz
mIsStatic...: fałsz
}
Domyślne nakładki: com.google.android.theme.pixel
Pamięć podręczna PackageInfo
2 opakowania
Czytaj więcej
Jak widać, Google włożyło dużo pracy w rozwój silnika motywów i zintegrowanie go ze źródłem AOSP. Wygląda na to, że gdyby dodać tę funkcję w całym systemie, motywy zostaną włączone w tunerze interfejsu użytkownika systemu. Google też ma przekazał informacje producentom OEM, więc możliwe jest, że w przyszłości dodatkowi producenci OEM będą mogli włączyć obsługę motywów w oparciu o wersję AOSP w systemie Android Oreo.
Ogólnie rzecz biorąc, jest to bardzo ekscytujący rozwój. Motywy to jedna z wielu części, które definiują Androida jako w pełni konfigurowalny system operacyjny na telefonie, nawet jeśli obecnie wymaga on rootowania dla motywów ogólnosystemowych. W przyszłości umożliwienie pracy bez dostępu roota byłoby poważnym krokiem w kierunku wolności użytkownika. Oczywiście może być zablokowany w tunerze interfejsu systemowego przez dłuższy czas (ponieważ uszkodzone motywy mogą powodować uszkodzenie aplikacji), ale pozwala możliwość skorzystania przez użytkownika z natywnej obsługi motywów jest ogromnym dodatkiem do obsługi mobilnej system.