Android Oreo には RRO テーマのコマンド ライン インターフェイスのサポートが含まれており、オペレーティング システムがシステム全体のテーマのサポートにこれまで以上に近づいていることを示唆しています。
Android Oreo のリリースに伴い、ソース コード内に隠された便利なものを探すのに多くの時間が費やされるようになりました。 これまで Android エンジニアリング チームは、 Android O でテーマを有効にすることについて話しました. 5月に報告しました Android O の 2 回目の開発者プレビューは、Google がオーバーレイ マネージャー サービス (OMS) とランタイム リソース オーバーレイ (RRO) をサポートすることを示唆するものだったのではないかと考えられていましたが、今ではそれが確かであることがわかりました。 Android Oreoは現在、 技術的には、OMS/RRO テーマをサポートしており、コマンド ラインを使用できる限り、テーマを有効または無効にするためのインターフェイスも提供します。
更新: Substratum はこれらのコマンドを開発プレビューで使用しており、利用可能になってから Oreo でも使用しています。
RRO と OMS とは何ですか?
RRO は、Sony Xperia シリーズのテーマ機能のために Sony によって内部開発されました。 その重要性を認識した開発者は、そのサポートを他の ROM に拡張することに取り組み、それにより、Sony デバイスだけでなく、多数のデバイスにわたって RRO テーマが提供されるようになりました。 これは、アプリの実行時にリソースを独創的に置き換え、当時の他のテーマ オプションでは見られなかった使いやすさを実現しました。 これがOMSに進化し、これもソニーが自社開発したものです。 有名な レイヤーマネージャー は当初 RRO テーマを使用していましたが、OMS は後に Substratum として知られるものに適応され、現在フォーラムのユーザーに最もよく知られているテーマ フレームワークとなっています。 OMS コミットを含むフォーラム上の ROM は、Substratum の標準テーマ エンジンをサポートしていることを意味します。 Substratum 内の「レガシー モード」は RRO テーマを使用しています。
Android Oreo がテーマコマンドを導入
Googleは現在、AOSPでこのテーマタイプを完全にサポートしたいと考えているようで、おそらくシステムで完全にサポートされるテーママネージャーに移行する可能性があります。 Android Gerrit に関して、Google はここ数カ月間 (Android Oreo に関しても) 多くの変更を加え、システム全体でテーマ エンジンを有効にする動きを示唆しています。 変更内容は以下にあり、それぞれのコミットへのリンクが含まれています。
- オーバーレイコマンド
- OverlayManagerService (OMS) の導入
- CHANGE_OVERLAY_PACKAGES というタイトルの新しい権限
これらの変更はすべて、将来的に組み込まれる何らかの形式のシステム テーマ アプリケーションに向けた Google の動きを示しています。 上記のアクセス許可にはシステム権限が必要であるため、システム アプリケーション (または root アクセス権を持つアプリケーション) のみがこのアクセス許可を呼び出すことができることを意味します。 それでも、Google が最終的に次の目標に向けて取り組んでいることを示すものとしては、興味深いものです。 何か.
ではなぜだけ 技術的に Android Oreo はテーマをサポートしていますか? そうですね、簡単な答えは、テーマをインストールするシステム メソッドを呼び出すことはできますが、それを行うのはかなり無意味であることが判明するということです。 これは、新しいコマンド ライン インターフェイスを使用してインストールされているテーマを管理することはできますが、実際には管理できないためです。 テーマはユーザーからのアクセスが制限されているディレクトリに移動する必要があるため、root アクセスなしで新しいテーマをインストールする必要があります。 空間。 root アクセスがあれば、とにかく Substratum テーマを有効にするだけなので、新しい方法で行う必要はありません。 Google にはデバイスのテーマを設定するためのシステム アプリケーションが含まれていないため、それまでは、新しく組み込まれた方法でそれを実行しようとしても何のメリットもありません。
コマンドラインテーマインターフェイス
XDA では、Android Oreo リリースを実行している Google Pixel でコマンドをテストしました。 いくつかのコマンドをテストすることにし、最初に使用したのは
cmd overlays list
プリインストールされているすべてのオーバーレイを表示します。 「com.google.android.theme.pixel」の存在に気づき、それを無効にし、代わりに次のコマンドを実行して「android.auto_generated_rro__」を有効にしました。
ここでわかるように、標準のオーバーレイは無効になっており、自動生成されたオーバーレイは有効になっています。 コマンドを実行して、インストールされているオーバーレイを再度表示すると、次の出力が表示されます。
これにより、Google Pixel 上に新しいテーマの Android システム設定アプリケーションが追加されます。 上記のオーバーレイ リストには、Substratum を使用してインストールされたテーマも含まれており、これらを簡単に有効/無効にすることができたことに注意してください。
ソースを調べてみると、別のコマンドも見つかりました。 コマンドは次のとおりです
cmd overlay dump --user 0
次の出力が得られます。
出力
設定
android.auto_generated_rro__: 0 {
mPackageName...: android.auto_generated_rro__
mUserId...: 0
mTargetPackageName.: アンドロイド
mBaseCodePath...: /vendor/overlay/framework-res__auto_generated_rro.apk
mState...: STATE_ENABLED
mIsEnabled...: true
mIsStatic...: true
}
com.google.android.theme.pixel: 0 {
mPackageName...: com.google.android.theme.pixel
mUserId...: 0
mTargetPackageName.: アンドロイド
mBaseCodePath...: /vendor/overlay/Pixel/PixelThemeOverlay.apk
mState...: STATE_DISABLED
mIsEnabled...: false
mIsStatic...: false
}
デフォルトのオーバーレイ: com.google.android.theme.pixel
PackageInfoキャッシュ
2パッケージ
続きを読む
このように、Google はテーマ エンジンの開発とそれを AOSP ソースに統合することに多大な労力を費やしてきました。 システム全体に追加されると思われますが、 テーマはシステム UI チューナー内で有効になります. Googleはまた、 OEM向けに情報を提供, したがって、追加の OEM が将来 Android Oreo で AOSP バージョンに基づいたテーマのサポートを有効にする可能性があります。
全体として、これは非常にエキサイティングな展開です。 テーマは、現在システム全体のテーマを作成するには root が必要な場合でも、Android を携帯電話上で完全にカスタマイズ可能なオペレーティング システムとして定義する多くの部分の 1 つです。 将来、root アクセスなしで動作できるようになれば、ユーザーの自由への大きな一歩となるでしょう。 もちろん、かなり長い間システム UI チューナーにロックされている可能性があります (テーマが壊れているとアプリが壊れる可能性があるため)。 ユーザーがそもそもネイティブ テーマのサポートを利用できることは、モバイル操作にとって大きなメリットです。 システム。