kobar9568のブログ

技術的なメモやその他諸々

Android 9 Pieのtheme(overlay)周りに関するメモ(rooted)

Androidのテーマカラーをいい感じにしたかった時のメモ

はじめに

  • 実験機はSony G8342 (Xperia XZ1 Dual) + Phh-Treble AOSP 9.0 + Magisk
    • Trebleを使ったほぼAOSP環境
  • SonyXperiaシリーズをはじめ、ベンダーカスタムでテーマ機能を実装している端末もあるが、AOSPの機能の話

f:id:kobar9568:20200303024245p:plain

  • クイック設定パネル周りで特に目立つ機能
  • 後は設定アプリのアイコンの色とか、文字とか
  • この辺の見た目を変えたい

内部の動き的なやつ

  • 色の方(上の画像で言うスライダーの色とか)が、Accent color、背景の方はtheme(正式な呼び方が分からないけど)として、別れている どちらも、overlayとしてアプリになっている
  • 適当なAndroidのシェル(adb shellとかTermuxとか)でrootシェルでcmd overlay listでデバイスにインストールされているoverlayの一覧が確認できる
    • 現在適用されているoverlayもここで確認できる

f:id:kobar9568:20200303025222p:plain

問題点

  • Magiskモジュールとして、System-Accent-Theme-Colors-for-P(GitHub)と言う(恐らく)Androidが標準で持っているアクセントカラー選択機能を有効化するものがあるが、デバイスをダークテーマに設定していると、表示が崩れる
    • バイスがライトテーマなら、問題は無い
    • このモジュールをインストールして、cmd overlay listで確認すると、com.google.android.theme.(色名)というoverlayが追加されている
      • これらのoverlayは、Accent Colorしか持ってないので、別途テーマのoverlayが必要

解決

  • Pluvius(Google Play)というoverlayを弄ることの出来るアプリを使う
    • このアプリもデバイスにoverlayをインストールし、インストールされたoverlayをアプリから切り替えることが出来る
    • 但し、Pixelと同じアクセントカラーのoverlayは無かったので、先程のSystem-Accent-Theme-Colors-for-Pと組み合わせて、アクセントカラーは前者の、背景テーマカラーはPluviusのoverlayを使う

f:id:kobar9568:20200303031933p:plain

  • アクセントカラーにcom.google.android.theme.pixelを、テーマにfancystuff.overlay.systemui.grey900を適用

参考にしたやつ

Android P Blocks Custom Overlays (Substratum Themes) From Being Installed

Dark theme conflict, request for white accent · Issue #2 · LudwigVan33/System-Accent-Theme-Colors-for-P · GitHub

[APP] [8.0+] Pluvius - Dynamic OMS Framework… | Android Development and Hacking

メモ

  • Android 10からはテーマ変更機能が正式に使えるらしい?
  • Pieの時点では、正式な手順ではインストール時に固定されたテーマしか使えないっぽい
  • アクセントカラーを変更すると、設定アプリのアイコンの色とかが古いまま残ったりする ランチャーがキャッシュを持っているようなので、ランチャーのストレージを消して強制停止の上で上げ直すと更新される