Android O Developer Preview에는 신비한 디스플레이 테마 설정이 있습니다. XDA는 이 테마 프레임워크가 Sony의 RRO를 기반으로 한다고 결론지었습니다.
아직 모르는 경우를 대비해 Google은 어제 I/O 이벤트에서 두 번째 Android O 개발자 프리뷰(Android O DP2)를 출시했습니다. 우리는 이미 지금까지 우리가 발견한 모든 새로운 내용을 자세히 살펴보았습니다., 하지만 DP2에 대해 나를 괴롭히는 한 가지가 있었습니다. 누구든지 베타 업데이트를 받았거나 수동으로 플래시했습니다. 새로운 이미지는 신속하게 근본적으로 다른 UI 빠른 설정에서 도대체 Google이 테마를 변경하기로 결정한 이유는 무엇입니까? 좀 더 테스트하고 파헤친 끝에 결론에 도달했습니다. 어떤 이유에서든 Google은 "역전된" 테마 기본 테마; 아마도 회사가 한창일 때였을 것이다. 기반으로 사용자 정의 테마 솔루션 테스트 Sony의 런타임 리소스 오버레이 (RRO), 그들은 Android O 베타 릴리스에 맞춰 기본 Pixel 테마를 작동시키지 못했습니다.
Android O Developer Preview 2의 기본 시스템 테마
Android O의 테마 프레임워크가 Sony의 RRO를 기반으로 한다는 사실은 Google이 Android 6.0 Marshmallow에서 RRO 지원 구현, 비록 루팅된 장치가 필요하기는 하지만요. 하지만 안드로이드 O의 소스 코드가 공개되지 않았기 때문에 안드로이드 O의 이 시스템 테마가 실제로 RRO라고 제안하는 것은 순전한 추측일 것입니다. 그렇기 때문에 우리의 초기 보장 이 신비로운 설정과 취재 결과는 다음과 같습니다. 다른 웹사이트, 이 연결을 만들지 않았습니다. 하지만 이 기능을 테마 프레임워크와 연결하는 몇 가지 증거가 있습니다. Android O의 기기 테마는 RRO를 기반으로 합니다.. RRO 지원이 탑재되어 있으면 다음과 같은 일이 발생할 수 있습니다. 마침내 우리 모두가 기다려온 루팅되지 않은 사용자를 위한 테마 솔루션을 제공합니다..
RRO(런타임 리소스 오버레이)란 무엇입니까?
RRO는 Sony 개발자가 만든 테마 프레임워크입니다. 소니의 Xperia 테마. RRO의 장점은 애플리케이션의 소스 코드를 수정하지 않고도 애플리케이션 리소스를 교체할 수 있다는 것입니다. 이는 애플리케이션이 로드되는 동안 오버레이된 애플리케이션의 리소스를 대체하는 데 사용되는 자체 리소스 문자열이 포함된 오버레이를 사용하여 발생합니다.
"RRO"를 보고 "레이어"를 생각하시는 분들은 꽤 가깝습니다. Layers는 Sony의 RRO를 약간 수정한 버전이지만 기본 수준에서는 매우 유사하게 작동합니다. RRO/Layers는 테마 APK를 /system/vendor/overlay에 "설치"합니다. 부팅 시 패키지 관리자는 이러한 APK를 읽고 확인한 다음 아이디맵 이를 시스템 리소스 테이블에 연결합니다. 더 자세한 FAQ를 읽어보실 수 있습니다. 사이코폼포스, 개발자 (현재는 더 이상 사용되지 않음) 레이어 관리자 앱.
더 이상 사용되지 않는 레이어 관리자 앱의 스크린샷
추천 도서: 테마 지정의 간략한 역사: OEM 테마에서 RRO 레이어까지
물론 Android 맞춤 ROM 커뮤니티에서 여전히 RRO 기반 테마 엔진을 사용하는 사람은 거의 없습니다. 대부분은 다음과 같은 다른 테마 엔진으로 전환했습니다. 하층는 이제 OMS(Overlay Manager Service)를 기반으로 하는 레이어의 진화입니다. (CMTE(CyanogenMod Theme Engine)는 또 다른 인기 있는 테마 프레임워크였습니다. 그 미래는 여전히 공중에 떠있다.) 그러나 OMS 커밋과 함께 사용자 정의 ROM을 사용하지 않더라도 Substratum 테마 엔진 앱 RRO/Layers 테마인 "Substratum Legacy" 테마를 사용하는 기능을 계속 지원합니다. 이로 인해 사용자들은 Android O의 기기 테마와 RRO가 동일하다는 사실을 깨닫기 시작했습니다.
Google, 마침내 RRO를 통해 테마 도입
위에 댓글 섹션 Android경찰 기사, XDA 인정 개발자 Maxr1998 Substratum Legacy 테마가 Google의 기기 테마 선택기에 표시된다고 주장하는 스크린샷을 게시했습니다.
왼쪽에는 Maxr1998이 Android O Developer Preview 1에 설치한 오버레이 APK 목록이 표시됩니다. 오른쪽에서는 Android O Developer Preview 2의 두 가지 테마 선택을 볼 수 있습니다. 이전에는 Android O DP1에서, 두 가지 옵션은 "Pixel"과 "Inverted"였으며 "Pixel"은 기본값으로 설정되었으며 "Inverted"는 O DP2의 기본값인 회색조 모양과 느낌과 유사합니다.
하지만 O DP2의 기본 테마 이름을 주의 깊게 살펴보세요. "android.auto_generated_rro"라고 합니다. 정말 이상한 이름이지만, 이름에 "RRO"가 포함된 것을 보고 처음에는 이것이 실제로 Sony의 RRO라고 믿게 되었습니다.
그런 다음 이것이 실제로 RRO라면 이것을 확증하기 위해 다른 곳을 찾을 수 있다고 생각했습니다. 이러한 생각으로 인해 /system/vendor/overlay를 확인하게 되었고 예상한 대로 실제로 Framework-res__auto_generated_rro.apk 및 PixelThemeOverlay.apk라는 두 개의 APK 파일이 있습니다.
둘 다 디스플레이 설정의 테마 이름과 일치합니다. 신기하게도 디스플레이 설정에서 Pixel 테마를 선택하면 작동하지 않습니다. 저는 RRO 테마 개발 전문가가 아니기 때문에 Pixel 테마가 왜 작동하지 않는지는 알 수 없지만, 하지만 두 애플리케이션의 APK 분해를 수행하면 이것이 실제로 오버레이라는 것이 분명해집니다. 앱.
PixelThemeOverlay.apk APK 분해
[탭][탭 제목 ="AndroidManifest.xml"]
package="com.google.android.theme.pixel" platformBuildVersionCode="25" platformBuildVersionName="O">
<overlayandroid: priority="1"android: targetPackage="android"/>
<applicationandroid: hasCode="false"android: label="@string/pixel_overlay_pixel"/>
manifest>
[/tab][탭 제목 ="strings.xml"]
<resources>
<stringname="pixel_overlay_pixel">Pixelstring>
resources>
[/tab][탭 제목 ="colors.xml"]
<resources>
<colorname="user_icon_1">#ff5e97f6color>
<colorname="user_icon_2">#ff5c6bc0color>
<colorname="user_icon_3">#ff26a69acolor>
<colorname="user_icon_4">#ffec407acolor>
<colorname="user_icon_5">#ff33ac71color>
<colorname="user_icon_6">#ff8bc34acolor>
<colorname="user_icon_7">#ffff9800color>
<colorname="user_icon_8">#ffff7043color>
<colorname="system_error">#ffea4335color>
<colorname="primary_device_default_dark">#ff2d2d2dcolor>
<colorname="primary_device_default_settings">#ff2d2d2dcolor>
<colorname="primary_dark_device_default_dark">#ff242424color>
<colorname="primary_dark_device_default_settings">#ff242424color>
<colorname="secondary_device_default_settings">#ff3a3a3acolor>
<colorname="tertiary_device_default_settings">#ff616161color>
<colorname="quaternary_device_default_settings">#ff9e9e9ecolor>
<colorname="accent_device_default_700">#ff3367d6color>
<colorname="accent_device_default_light">#ff4285f4color>
<colorname="accent_device_default_dark">#ff5e97f6color>
<colorname="accent_device_default_50">#ffe8f0fecolor>
resources>
[/탭]
[/탭]
훑어보면 RRO 문서에 대한 Sony에서 제공하는 것으로 보아 이것이 RRO 테마임이 분명합니다. AndroidManifest 파일에서 오버레이 행은 이 오버레이가 Framework-res.apk 파일("android")을 대상으로 하며 지정할 수 있는 가장 높은 우선순위인 "1"의 우선순위를 가지고 있음을 나타냅니다.
반면에 Framework-res__auto_generated_rro.apk 파일에는 AndroidManifest.xml 파일과 비슷하게 보이지만 테마와 관련 없는 다른 문자열이 많이 있습니다. 그러나 이는 이 RRO 테마가 기본적으로 RRO 테마의 간단한 버전이라는 사실로 쉽게 설명할 수 있습니다. \res\values\bools.xml에 다음 줄이 있으므로 Google Pixel의 Framework-res.apk가 사실이라고 생각했습니다.
우리 포럼의 게시물에서 사용자가 설정해야합니다 ~하기 위해 시스템 전체에서 둥근 아이콘 지원을 활성화합니다..
결론
내 테스터는 Substratum Legacy/RRO 테마를 실행하기 위해 아직 O DP2에서 루트 액세스를 얻을 수 없었지만 내 자신과 Maxr1998의 결과를 바탕으로 다음과 같이 말하는 것이 안전합니다. Google은 마침내 RRO 테마를 대중에게 제공할 준비를 하고 있을지도 모릅니다..
물론, 최신 Android O 빌드 중 하나에서 이 기능이 제거되지 않을 것이라는 보장은 없습니다. Google이 RRO가 원하는 방식으로 작동하지 않는다고 판단하고 기능을 버릴 수도 있습니다. 그러나 Sony와 자체 개발 커뮤니티 모두에서 RRO의 광범위한 역사를 고려하면 우리 중 많은 사람들이 이미 Sony의 런타임 리소스 오버레이의 위대함을 잘 알고 있습니다. 그리고 이미 사용 가능한 RRO 호환 테마가 엄청나게 많기 때문에 Google이 설치를 허용하기로 결정한다면 사용자 정의 테마를 사용하면 사용자가 즐길 수 있는 이미 광범위한 테마 시장에 대한 수문을 열 수 있습니다.
특집 이미지 크레딧: 소니데브월드