Android Oreo에 테마용 명령줄 인터페이스 도입

Android Oreo에는 RRO 테마에 대한 명령줄 인터페이스 지원이 포함되어 있어 운영 체제가 시스템 전체 테마 지원에 더욱 가까워지고 있음을 암시합니다.

Android Oreo가 출시되면서 소스 코드 내에서 숨겨진 기능을 검색하는 데 많은 시간이 소요됩니다. 과거에는 Android 엔지니어링 팀이 Android O에서 테마를 활성화하는 방법에 대해 이야기했습니다.. 5월에 신고했어요 Android O의 두 번째 개발자 프리뷰는 Google이 OMS(오버레이 관리자 서비스) 및 RRO(런타임 리소스 오버레이)를 지원한다는 힌트일 수도 있지만 이제 우리는 그것이 사실임을 확실히 알고 있습니다. 이제 안드로이드 오레오, 기술적으로는 OMS/RRO 테마를 지원하며 명령줄을 사용할 수 있는 경우 테마 활성화 또는 비활성화를 위한 인터페이스도 제공합니다.

업데이트: Substratum은 개발 미리보기에서 이러한 명령을 사용해 왔으며 이제는 Oreo에서 사용할 수 있게 되었습니다!


RRO와 OMS란 무엇입니까?

RRO는 Sony Xperia 라인의 테마 기능을 위해 Sony에서 내부적으로 개발했습니다. 그 중요성을 인식한 개발자들은 지원을 다른 ROM으로 확장하기 위해 노력했으며, 이를 통해 Sony 장치뿐만 아니라 다양한 장치에 RRO 테마를 적용할 수 있게 되었습니다. 앱 런타임에서 리소스를 독창적으로 대체했는데, 이는 당시 다른 테마 옵션에서는 볼 수 없었던 사용 편의성이었습니다. 이는 Sony가 자체 개발한 OMS로 발전했습니다. 유명한 레이어 관리자 원래는 RRO 테마를 사용했지만 나중에 OMS는 현재 Substratum으로 알려진 것에 적용되었으며 현재 포럼 사용자에게 가장 친숙한 테마 프레임워크입니다. OMS 커밋이 포함된 포럼의 ROM은 Substratum의 표준 테마 엔진을 지원한다는 의미입니다. Substratum 내의 "레거시 모드"는 RRO 테마를 사용하고 있습니다.


Android Oreo에 테마 명령 도입

Google은 이제 AOSP에서 이 테마 유형을 완벽하게 지원하고 시스템에서 지원되는 전체 테마 관리자를 향해 나아가기를 원하는 것 같습니다. Android Gerrit에서 Google은 최근 몇 달 동안(및 Android Oreo를 통해) 시스템 전체에서 테마 엔진을 활성화하기 위한 움직임을 제안하는 여러 가지 변경 사항을 적용했습니다. 변경 사항은 해당 커밋에 대한 링크와 함께 아래에 나와 있습니다.

  • 오버레이 명령
  • OMS(OverlayManagerService) 도입
  • CHANGE_OVERLAY_PACKAGES라는 새로운 권한

이러한 모든 변경 사항은 Google이 향후에 포함될 시스템 테마 응용 프로그램 형식을 향한 움직임을 의미합니다. 위에 나열된 권한에는 시스템 권한이 필요하므로 시스템 응용 프로그램(또는 루트 액세스 권한이 있는 응용 프로그램)만 이 권한을 호출할 수 있습니다. 그럼에도 불구하고 Google이 마침내 다음과 같은 목표를 달성하기 위해 노력하고 있음을 보여주기 때문에 흥미롭습니다. 무엇.

그렇다면 왜 기술적으로 Android Oreo는 테마를 지원하나요? 글쎄, 간단한 대답은 테마를 설치하는 시스템 방법을 호출할 수 있지만 그렇게 하는 것은 다소 무의미하다는 것입니다. 이는 새로운 명령줄 인터페이스를 사용하여 설치된 테마를 관리할 수 있더라도 실제로는 테마는 사용자 접근이 제한된 디렉토리에 들어가야 하므로 루트 액세스 없이 새 테마를 설치합니다. 공간. 어쨌든 루트 액세스를 사용하면 간단히 Substratum 테마를 활성화할 수 있으므로 새로운 방식으로 수행할 필요가 없습니다. Google은 기기 테마를 위한 시스템 애플리케이션을 포함하지 않았으므로 그때까지는 새로 포함된 방식으로 테마를 적용해도 아무런 이점이 없습니다.

명령줄 테마 인터페이스

XDA에서는 Android Oreo 릴리스를 실행하는 Google Pixel에서 명령을 테스트했습니다. 우리는 몇 가지 명령을 테스트하기로 결정하고 먼저

cmd overlays list

사전 설치된 모든 오버레이를 보려면 우리는 "com.google.android.theme.pixel"의 존재를 확인하고 이를 비활성화하고 대신 다음 명령을 실행하여 "android.auto_generated_rro__"를 활성화했습니다.

여기에서 볼 수 있듯이 표준 오버레이는 비활성화되고 자동 생성된 오버레이는 활성화됩니다. 설치된 오버레이를 다시 보기 위해 명령을 실행하면 다음 출력이 표시됩니다.

그 결과 Google Pixel에 새로운 테마의 Android 시스템 설정 애플리케이션이 생성됩니다. 위의 오버레이 목록에는 Substratum을 사용하여 설치된 테마도 포함되어 있으며 이러한 테마를 쉽게 활성화/비활성화할 수 있었습니다.

auto_generated_rro 테마

소스를 살펴보면서 또 다른 명령도 발견했습니다. 명령은 다음과 같습니다

cmd overlay dump --user 0

다음과 같은 출력을 제공합니다.

산출

설정

android.auto_generated_rro__: 0 {

mPackageName...: android.auto_generated_rro__

m사용자 ID...: 0

mTargetPackageName.: 안드로이드

mBaseCodePath...: /vendor/overlay/framework-res__auto_generated_rro.apk

m상태...: STATE_ENABLED

mIsEnabled...: 참

mIsStatic...: 사실

}

com.google.android.theme.pixel: 0 {

mPackageName...: com.google.android.theme.pixel

m사용자 ID...: 0

mTargetPackageName.: 안드로이드

mBaseCodePath...: /vendor/overlay/Pixel/PixelThemeOverlay.apk

m상태...: STATE_DISABLED

mIsEnabled...: 거짓

mIsStatic...: 거짓

}

기본 오버레이: com.google.android.theme.pixel

패키지 정보 캐시

2개 패키지

더 읽어보세요

보시다시피 Google은 테마 엔진 개발과 이를 AOSP 소스에 통합하는 데 많은 노력을 기울였습니다. 시스템 전체에 추가되는 것처럼 보입니다. 테마는 시스템 UI 튜너 내에서 활성화됩니다.. 구글도 있다 OEM을 위한 정보 제공, 따라서 추가 OEM이 향후 Android Oreo에서 AOSP 버전을 기반으로 테마 지원을 활성화할 수 있습니다.

전반적으로 이것은 매우 흥미로운 발전입니다. 테마는 현재 시스템 전체 테마에 대한 루트가 필요하더라도 Android를 휴대폰에서 완전히 사용자 정의할 수 있는 운영 체제로 정의하는 많은 부분 중 하나입니다. 미래에 루트 액세스 없이 작동할 수 있다면 이는 사용자 자유를 향한 중요한 단계가 될 것입니다. 물론 시스템 UI 튜너에 꽤 오랫동안 잠겨 있을 수 있지만(깨진 테마는 앱을 중단시킬 수 있으므로) 허용됩니다. 사용자가 기본 테마 지원을 활용하는 것은 모바일 운영에 큰 도움이 됩니다. 체계.