Xposed Frameworkについて

Xposedとは?

たしか「クロスポーズド」って読むんでしたっけ?(ずっと「エクスポーズド」って読んでますが)

これはAndroidの標準フレームワークを置き換えて使う、仮想的なカスタムフレームワークです。
「フレームワーク」とは、ソフトウェア(アプリケーション)を構成する骨組みのことです。この骨組みを「カスタマイズ可能にする」のが本来の役目のはずです。
このため(動作にrootは必要ですが)rootアプリとはまるで異なるものになります。

何ができるかといえば、標準のフレームワーク(通知領域、ステータスバー、アクションバー、ナビバー、履歴画面など)に機能を追加したりできます。
これだけならrootアプリや手動改変で代用できることも多いですが、Xposedの良い所は復元が簡単なところです。使用したモジュール(apk)またはカスタムフレームワーク自体をアンインストールすれば元に戻ります。
GX持ってた頃にあれだけ苦労したナビバーの改変もモジュールを入れるだけ、戻す時もアンインストールするだけ。便利です。

とりあえず過去に紹介した記事の一覧を作成してみます。随時追加予定。

※まとめページ作成にあたって、過去にアップしたいくつかの記事は諸事情から画像が失われているため割愛します。
※全ての記事の内容および画像は紹介時点のものです。アップデートによっていろいろ異なっている場合があります。

Xposed Framework

こちらがカスタムフレームワーク本体です。本体は「Xposedインストーラ」というアプリで提供されています。

Xposed - General info, versions & changelog - XDA Forums

インストーラをインストール後にフレームワークをインストールします。必ず最新版を入れるようにしてください。
フレームワークとモジュールを追加した時は必ず「有効化」してから「再起動」する必要があります。

過去に紹介した記事(上にあるものほど新しいです)↓

【Xperia】Lollipop Z3 Compact ロリポ版の初期設定からXposed Framework導入まで

Xposed Framework v2.5が正式版にアップデート。

Xposed Framework v2.5 Beta2を導入。インストール方法が3種類になり丁寧な説明と注意書きまで追加!

Xposed Frameworkにv2.5 Beta1が登場。というか既にBeta2でした。4.3↑搭載Xperiaとの互換性が向上

【2016年夏】
Android 6.0.1 Marshmallow版(SDK23)のXposed Frameworkについてはこちらで触れています。

【root】Xperia Z3 Compact SO-02GをSO-04Gのftfを使ってMarshmallow化(prerooted.zip作成方法)とその後の作業

Xposedモジュール

Xposed Frameworkは、本体である「フレームワーク(カスタムフレームワーク)」に「モジュール」を追加する形でカスタマイズを行います。

モジュール一覧はこちら(別ページ)にまとめておきます。

※Xposed Frameworkは日本人が作ったものではありません。有志によって日本語化されたものもいくつかありますが、たいていは英語です。また、モジュールは基本的に「Xposedモジュールリポジトリ」という場所で公開されており、Playストアで販売されていないことも多いです。

Welcome to the Xposed Module Repository! | Xposed Module Repository

※極稀にではありますが、リポジトリやXDAなどで無料で配布しているapkを無断でPlayストアにアップロードし、有料で販売する悪質なユーザーもいます。
基本的にこの手のアプリを扱う時はデベロッパ名、公式ウェブサイト、リポジトリやサポートフォーラム(XDA)へのリンクなどをよく確認してください。

※リポジトリでは無料、しかしPlayストアでは有料というパターンの中に、Donate(課金)用apkをPlayストアで販売している例もあります。こちらは正規のものとなることが多いです(例:Greenify、GravityBoxなど)

インストール前に1回、その後も定期的にバックアップを!

CWMでもTWRPでも構いません。いざという時自分で復元できる方法でバックアップを残しましょう。
ネットのどこを探しても「自分のそれまでの環境」を纏めたファイルなんて存在しませんからネ。

特にXposedによるカスタムを行う際は頻繁に再起動する必要が生じるため、ブートループと隣合わせとなることが多いので要注意です。

Titanium Backupを使うのも良い方法です。こちらはアプリの個別バックアップ(アプリデータを含む)が可能、世代バックアップ可能、オンラインストレージにバックアップ可能です。

Titanium Backup ★ root - Google Play の Android アプリ
Titanium Backup PRO Key ★ root - Google Play の Android アプリ

ただしTitaniumを使う場合、バックアップの保存先を内部ストレージにしていると初期化した際にバックアップデータも消えてしまいます。
とはいえKitKatでは外部ストレージ(SDカード)へのアクセス権限が修正されているため、そのままの状態ではSDに保存したバックアップデータを読み取ることができなくなっています。
これを解消するモジュールなどもありますが、PCやクラウドなど完全に端末と切り離した場所にコピーを置いておくのも1つの手です。

トラブル発生時の対処法

たとえば、モジュールによってはフレームワークの同じ部分に干渉するために動作が競合する(異なる2つのモジュールからフレームワークの1箇所に対し変更命令が出て、どっちを適用するか判断できなくなる)ことがあります。
これによってパフォーマンスが悪化したり、表示がおかしくなったり、最悪の場合ブートループ(ブート画面から進まず起動できない状態)になることもあります。

対処法は症状によって若干異なります。

■(軽度)表示がおかしくなった、パフォーマンスが悪化した場合

特定のボタンが消えたり、文字化けしたり、あるいは電池がものすごい勢いで減ったり、端末が熱くなったりといった症状の場合、OSは起動できていると思われるため症状は軽度といえます。

原因がXposedにあるとはっきりしている時の対処法は次の2つです。

  1. 原因となっているモジュールの該当の機能を変更する、またはオフにする
  2. 原因となっているモジュールをアンインストール、もしくは無効化(チェックを外す)して再起動する

特にGravityBoxやXBlast Tools、Xperia Xposedなど、多機能なモジュールを使っているとフレームワークのさまざまな部分にアクセスするため、他のモジュールと競合する可能性も増加します。

■(重度)ブートループに陥った場合

再起動したところ端末やキャリア、OSのロゴが出てくる「ブート画面」を何度も繰り返すようになったり、ブート画面で固まってしまい(=フリーズ)そこから先に進めなくなった場合は若干厄介です。

原因がXposedにあり、かつCWM/TWRPに入れる場合は次の対処法を実行します。

  • CWM/TWRP等を使って「Xposed-Disabler-Recovery.zip」を焼く

このZIPファイルはフレームワークのインストール時に内部ストレージなどに自動的に追加されることもありますが、見当たらない場合は次の場所で公開されています。

Xposed - General info, versions & changelog - XDA Forums

「Xposed-Disabler-Recovery.zip」を焼くと、Xposed Frameworkが取り除かれます。
ブートループの原因がXposedによるカスタムにある場合これで解消できるはずなので、起動後に原因となるモジュールを取り除く等してから再度フレームワークをインストールします。

フレームワークをアンインストールしても、モジュールのapkがインストールされている場合、再度フレームワークをインストールした後でモジュールを有効化して再起動すれば元のカスタムが再適用されます。

この方法で改善されなかった場合、残された手段は次の通りです。

  • 端末を初期化する

バックアップがないと泣けます。

そんな感じ。