標準では無効化できないアプリを強制的に無効化する方法を紹介します。 (root権限不要)
注意事項
この記事で紹介している方法は
- Android 7.0 (Nougat)
- Android 7.1 (Nougat)
- Android 8.0 (Oreo)
- Android 8.1 (Oreo)
- Android 9 (Pie)
- Android 10 (Q)
で使えることを確認しています。
使い方を誤った場合、「起動しない」「無限に再起動する (ブートループ) 」といった事態に陥り、端末の初期化が必要になります。細心の注意を払ってご利用ください。
無効化するアプリ
今回は例として「Digital Wellbeing」アプリを無効化してみたいと思います。
パッケージ名を調べる
まず最初に、無効化したいアプリのパッケージ名を調べます。使用するアプリはこちら。
本来はハードウェアの仕様やビルド番号などを調べるためのアプリですが、インストールしているアプリの一覧からパッケージ名を表示できるので、このアプリを使います。
DevCheckを起動して「アプリ」タブに移動後、表示を「システム」に変更して無効化したいアプリを探します。
今回の場合は「com.google.android.apps.wellbeing」がパッケージ名となります。
adbコマンドを使えるようにする
adbデバッグをオンにする
adb.exeをダウンロード
まずは以下のページにアクセスします。
「List of devices attached」のところに何も表示されない場合
何かしらのミスが発生しています。よくあるパターンとしては
- 物理的にうまく接続できていない
- ADBドライバーが当たっていない
等があります。
以下のサイトが役に立つので、自分で頑張って何とかしてください。
アプリを無効化する
さて、いよいよアプリを無効化します。といってもコマンドを1行実行するだけです。
使用するコマンドは以下の通りです。
adb shell pm disable-user --user 0 <パッケージ名>
例えば「Digital Wellbeing」アプリであれば、コマンドは以下のようになります。
adb shell pm disable-user --user 0 com.google.android.apps.wellbeing
作業が終わったら
アプリが無効化されているか確認
作業が終わったら、アプリがちゃんと無効化されているか確認しましょう。
USBデバッグをオフにする
他にadbコマンドを使う予定がないのであれば、「USBデバッグ」はオフにしておきましょう。
元に戻す方法
無効化したアプリを有効化したい場合、
adb shell pm enable <パッケージ名>
で有効化できます。
例えば今回の「Digital Wellbeing」アプリでは、
adb shell pm enable com.google.android.apps.wellbeing
を実行すれば、再びDigital Wellbeingアプリを使えるようになります。
再起動すると復活してしまうアプリがある場合
基本的には「adb shell pm diable-user」で無効化できますが、中には「無効化したはずなのに再起動すると勝手に有効になって復活するアプリ」があります。
そういったアプリに対しては、奥の手として「pm uninstall」というコマンドを使うことによって「無効化」ではなく「アンインストール」することができます。
使い方は以下の通りです。
adb shell pm uninstall -k --user 0 <パッケージ名>
「Digital Wellbeing」アプリであれば、コマンドは以下のようになります。
adb shell pm uninstall -k --user 0 com.google.android.apps.wellbeing
アンインストールしたアプリを再びインストールする場合は以下のコマンドを使用します。
adb shell cmd package install–existing <パッケージ名>
もし無効化・アンインストールによって動作がおかしくなってしまい、自力で元に戻せなくなってしまった場合は、端末を初期化 (Factory Reset) すると全て正常に動作するようになります。 (データは全部吹っ飛びますが)
あくまでユーザーが手を出すことのできる範囲内でいじっているだけであり、/systemをいじっている訳ではないので、アップデートが降ってこなくなったり保証対象外になるといったことはないはずです。