本記事では、通常は削除&無効化できないプリインストールアプリを強制的に消す方法を解説します。
パソコンのadb環境さえあれば、比較的カンタンな操作で実現できますよ。
iPhoneでプリインストールアプリを削除する手順は、関連記事【iPhoneで不要なプリインストールアプリを消す方法! iOSのホーム画面で消せない標準アイコンを非表示にしよう】で解説しています。
Androidのプリインアプリを無理やり削除する方法
本パートでは、adbコマンドを使った具体的な手順を解説します。
- 前提アプリを強制的に無効化or削除するとは? -メリット/デメリット-
- 説明①adbコマンドでシステムアプリを消す方法
前提:アプリを強制的に無効化or削除するとは? -メリット/デメリット-
通常、Androidでは不要なアプリに対して、アンインストール(削除)または無効化という処理を実行できます。
▼アンインストールと無効化の違い
アンインストール | 無効化 | |
---|---|---|
アプリの データ |
消える | 消えない |
アプリの 動作 |
止まる | 止まる |
アプリの 表示 |
消える | 消える |
主な対象 アプリ |
Playストアから 追加したアプリ |
プリインストール アプリ |
アンインストールは一部プリインストールアプリを除き、基本的にどのアプリに対しても実行できます。
アンインストールは様々な手順が存在します。関連記事【Androidでアプリを完全削除する方法! アプリをアンインストールしてデータを消そう】で解説しています。
一方、プリインストールアプリの中には、削除できない代わりに無効化という操作が用意されます。
無効化の手順について、詳細は関連記事【Androidで消せないアプリを無効化する方法! 削除できないプリインストールソフトを停止しよう】で解説しています。
以上のとおり、プリインストールアプリであっても、動作を止める手段が用意されています。
が、中には”アンインストール”と”無効化”両方とも実行できない、特別なアプリが存在します。
実はこのようなプリインストールアプリも、パソコンのadb環境さえあれば、比較的カンタンな操作で無効化またはアンインストールが可能です(root権限も不要)。
コチラの方法のメリット/デメリットです。
メリット | デメリット |
---|---|
|
|
メリットは、今まで削除/無効化できなかったアプリを止められるため、さらに端末の負担を軽減できる点です。
一方デメリットとして、そもそも制約があるのは、プリインストールアプリの中でも重要な役割を担っているからであり、機能を止めることでスマホの動作に問題が生じるリスクがあります。
またadbコマンドで無理やり削除をするため、元に戻すには初期化が必要な可能性も。
本記事では、adbコマンドを実行する具体的な手順、および関連情報を詳しく解説しています。
adbコマンドでシステムアプリを消す方法
ここまで説明したとおり、Androidの一部プリインストールアプリは、削除および無効化どちらも実行できないケースがあります。
一方、パソコンのadbコマンドを使用すれば、この制約を突破して無効化 or 削除することが可能です。
▼強制的に無効化する
adb shell pm disable-user --user 0 <アプリのパッケージ名>
▼強制的にアンインストールする
adb shell pm uninstall -k --user 0 <アプリのパッケージ名>
両コマンド(強制アンインストール・無効化)の違いは次のとおりです。
強制アンインストール pm uninstall |
強制無効化 pm disable-user |
|
---|---|---|
アプリの データ |
消える | 消えない |
アプリの 動作 |
止まる | 止まる |
アプリの 表示 |
消える | 消える |
対象アプリ の範囲 |
○ | △ (一部アプリは効果なし) |
アプリの 復活(※1) |
△ (失敗するかも…) |
○ |
OS要件(※2) | Android 5.0以降 (再インストールはAndroid 8.0以降) |
Android 7.0以降 |
次の順番で説明します。
- パソコンのadb環境を用意する
- 無効化or削除したいアプリのパッケージ名を調べる
- adbコマンドでアプリを無効化する(pm disable-user)
- adbコマンドでアプリをアンインストールする(pm uninstall)
1. パソコンのadb環境を用意する
お使いのパソコンでadbコマンドを使用できる環境を用意して下さい。
Windows・Macそれぞれにおける手順は関連記事で解説しています。
またパソコンとAndroidを接続するケーブルも必要です。
スマートフォンのUSB端子形状(micro USB / Type C)に合わせ用意しましょう。
さらに設定の システム から 開発者向けオプション を開き、USBデバッグを有効にして下さい。
初めて開発者向けオプションを使う場合、デバイス情報の ビルド番号 を連続タップして、メニューを表示させて下さい。
その他、USBデバッグの全般的な説明含め、関連記事【AndroidでUSBデバッグを有効/無効にする方法! 設定をオンオフ切り替えよう】で解説しています。
2. 無効化or削除したいアプリのパッケージ名を調べる
adbコマンドを実行する際、対象アプリのパッケージ名を指定する必要があります。
▼パッケージ名の一例
アプリ名 | パッケージ名 |
---|---|
ドコモ電話帳 |
com.android.contacts |
dマーケット |
com.nttdocomo.android.store |
docomo LIVE UX |
com.nttdocomo.android.homezozo |
docomo Application Manager |
com.nttdocomo.android.applicationmanager |
dアカウント設定 |
com.nttdocomo.android.idmanager |
Xperiaホーム |
com.sonymobile.launcher |
かんたんホーム |
com.sonymobile.simplehome |
What’s New |
com.sonymobile.entrance |
Xperiaアシスト |
com.sonymobile.assist_light |
スタイルカバー |
com.sonymobile.coverapp2 |
パッケージ名の調べ方はいろいろあり、例えばAplinというアプリが便利です。
説明が長くなるため、より詳細なパッケージ名の調べ方は、関連記事【Androidアプリのパッケージ名を調べる方法! Google PlayやapkのアプリケーションID確認しよう】で解説しています。
3. adbコマンドでアプリを無効化する(pm disable-user)
ここからは、アプリを強制的に無効化するadbコマンドを紹介します。
後ほど”アンインストール”の方法も取り上げますが、元に戻す際のリスクが大きいため、まずはこちらの”無効化”の方法をお試し下さい。
AndroidとUSB接続した上で、パソコン側でadbコマンドを入力していきます。
下記コマンドをペーストし、「アプリのパッケージ名」に無効化したいアプリを入れます。
adb shell pm disable-user --user 0 <アプリのパッケージ名>
例えばXperiaアシストなら、次のようになります。
adb shell pm disable-user --user 0 com.sonymobile.assist_light
次のメッセージが表示されればOK(Xperiaアシストの例)。
Package com.sonymobile.assist_light new state: disabled-user
設定のアプリ情報で、”無効”ステータスとなっていれば成功です。
元に戻したい場合、下記コマンドを入力します。
adb shell pm enable <アプリのパッケージ名>
例えばXperiaアシストなら、次のようになります。
adb shell pm enable com.sonymobile.assist_light
次のメッセージが表示されればOK(Xperiaアシストの例)。
Package com.nttdocomo.android.applicationmanager new state: enabled
設定のアプリ情報で、”無効”ステータスが消えます。
以上、説明でした。
その他のアプリであってもパッケージ名さえ変えれば、実行するコマンドは同じです。
▼強制的に無効化する
adb shell pm disable-user --user 0 <アプリのパッケージ名>
▼元に戻す
adb shell pm enable <アプリのパッケージ名>
なお欠点として、プリインストールアプリによっては効果がなく、再起動後に自動で元に戻ってしまいます。
ボクの検証環境では、docomo Application Managerが該当しました。
解決策として、より強力なアンインストールのコマンド(pm uninstall)をお試し下さい。
以降より紹介します。
4. adbコマンドでアプリをアンインストールする(pm uninstall)
ここからは、アプリを強制的にアンインストールするadbコマンドを紹介します。
こちらの方法なら、より強力にアプリを止めることが可能です。一方、元に戻す際のリスクが大きく、処理に失敗した場合は初期化が必要となります。
元に戻せないケースに備え、プリインストールアプリのapkファイルをバックアップしておくと安心です。手順は関連記事【Androidでapkファイルを抽出する方法! インストール先の保存場所からダウンロードしよう】で解説しています。
AndroidとUSB接続した上で、パソコン側でadbコマンドを入力していきます。
下記コマンドをペーストし、「アプリのパッケージ名」にアンインストールしたいアプリを入れます。
adb shell pm uninstall -k --user 0 <アプリのパッケージ名>
例えばdocomo Application Managerなら、次のようになります。
adb shell pm uninstall -k --user 0 com.nttdocomo.android.applicationmanager
「Success」と表示されればOK。
設定のアプリ情報で”未インストール”となっていれば成功です。
元に戻したい場合、下記コマンドを入力します。
adb shell cmd package install-existing <アプリのパッケージ名>
例えばdocomo Application Managerなら、次のようになります。
adb shell cmd package install-existing com.nttdocomo.android.applicationmanager
次のメッセージが表示されればOK(docomo Application Managerの例)。
Package com.nttdocomo.android.applicationmanager installed for user: 0
設定のアプリ情報で、”未インストール”ステータスが消えます。
強制的にアンインストールしたアプリを元に戻す仕組みです。
アンインストール時に入力したadbコマンドは下記のとおりで、あくまで現在ログインしている”ユーザー0″からのみ削除しています。
adb shell pm uninstall -k --user 0 <アプリのパッケージ名>
▼pm uninstallオプションの意味
オプション | 意味 |
---|---|
-k | パッケージの削除後も、データとキャッシュのディレクトリを保持します。 |
–user user_id | 実行するユーザーを指定します |
参考 Google Developers – Android Debug Bridge
よってAndroid内部には、削除したアプリ本体が残っているため、下記コマンドを入力すれば再復活が可能となります。
adb shell cmd package install-existing <アプリのパッケージ名>
ただし、いろいろ欠点があります。
まずこのコマンドは、Android 7.x以前だと対応していません。
またAndroid 8.x以降であっても、”-k”・”–user 0″部分を除いてコマンドを実行した等の理由で、元に戻せないケースが想定されます。
その場合、あらかじめバックアップしておいたapkファイルから再インストールする必要があります。
以上、Androidのプリインストールアプリを強制的に無効化 or 削除する手順でした。
実行するadbコマンドはシンプルなので、対象アプリのパッケージ名さえ調べることができれば、ハードルは高くありません。
一方、繰り返しになりますが、これらプリインストールアプリは機能停止を想定しておらず、メーカー側で検証もされていないはずです。
思わぬトラブルを招くリスクがあることも承知の上、お試し下さい。
補足:Androidアプリの強制消去に関するアレコレ
本パートでは、adbコマンドを使ったアプリ強制消去の細かい情報を補足します。
マニアックな内容も含まれるため、興味があればどうぞ。
- 補足①Android 5.0以前のadbコマンド -pm block/pm hide-
- 補足②adbコマンドでエラーが表示される原因と解決策
- 補足③削除したプリインアプリを再インストールする方法
Android 5.0以前のadbコマンド -pm block/pm hide-
記事冒頭で紹介したとおり、前パートで取り上げたadbコマンドにはOS要件があります。
▼強制的に無効化する(Android 7.0以降で対応)
adb shell pm disable-user --user 0 <アプリのパッケージ名>
▼強制的にアンインストールする(Android 5.0以降で対応)
adb shell pm uninstall -k --user 0 <アプリのパッケージ名>
実は、これより古いOSバージョン向けの専用コマンドが存在します。
▼強制的に無効化する(Android 4.4で対応)
adb shell pm block <アプリのパッケージ名>
▼強制的に無効化する(Android 5.xで対応)
adb shell pm hide <アプリのパッケージ名>
ちょっとややこしいので、↓が整理した表です。
強制無効化 pm disable-user |
強制アンインストール pm uninstall |
強制無効化 pm block |
強制無効化 pm hide |
|
---|---|---|---|---|
Android 4.4 | ✕ | ✕ | ○ | ✕ |
Android 5 | ✕ | ○ | ✕ | ○ |
Android 6 | ✕ | ○ | ✕ | ✕ |
Android 7以降 | ○ | ○ | ✕ | ✕ |
もし古いOSの端末を継続して使っている場合、pm block/pm hideをどうぞ。
それぞれ参考までに紹介します。
Android 4.4 KitKat向け – pm block
下記コマンドをペーストし、「アプリのパッケージ名」に無効化したいアプリを入れます。
adb shell pm block <アプリのパッケージ名>
例えばChromeなら、次のようになります。
adb shell pm block com.android.chrome
次のメッセージが表示されればOK(Chromeの例)。
Package com.android.chrome new blocked state: true
元に戻したい場合、下記コマンドを入力します。
adb shell pm unblock <アプリのパッケージ名>
次のメッセージが表示されればOK(Chromeの例)。
Package com.android.chrome new blocked state: false
なおここで紹介したadbコマンドは、Android 4.4 KitKatのみ対象です。
それ以外のOSバージョンで実行しても、次のエラーメッセージが表示されます。
Error: unknown command 'block'
Android 5.0 Lollipop向け – pm hide
下記コマンドをペーストし、「アプリのパッケージ名」に無効化したいアプリを入れます。
adb shell pm hide <アプリのパッケージ名>
例えばWhat’s Newなら、次のようになります。
adb shell pm hide com.sonymobile.entrance
次のメッセージが表示されればOK(What’s Newの例)。
Package com.sonymobile.entrance new hidden state: true
元に戻したい場合、下記コマンドを入力します。
adb shell pm unhide <アプリのパッケージ名>
次のメッセージが表示されればOK(What’s Newの例)。
Package com.sonymobile.entrance new hidden state: false
なおここで紹介したadbコマンドは、Android 5.x Lollipopのみ対象です。
それ以外のOSバージョンで実行しても、次のようなエラーメッセージが表示されます。
Error: java.lang.SecurityException: Neither user xxxx nor current process has android.permission.MANAGE_USERS.
adbコマンドでエラーが表示される原因と解決策
adbコマンド実行時に表示される主なエラー例を紹介します。
エラー | 想定される原因 |
---|---|
Error: Unknown option: -u | ”user”の前にハイフンを2つ入力していない |
Error: java.lang.SecurityException: Permission Denial | OS要件を満たしていない ※pm disable-userの対象はAndroid 7.0〜 |
Error: Unknown option: –user | OS要件を満たしていない ※pm uninstallの対象はAndroid 5.0〜 |
/system/bin/sh: cmd: not found、および Unknown command: install-existing |
OS要件を満たしていない ※cmd package install-existing の対象はAndroid 8.0〜 |
Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER] | 該当アプリが端末管理アプリとなっている |
error: no devices/emulators found error: device unauthorized |
パソコンがAndroidを 正しく識別できていない |
同じエラーが出て困っていれば、参考にして下さい。
Error: Unknown option: -u
下記エラーが表示される場合、”user”の前にハイフンを2つ入力しているか確認して下さい。
Error: Unknown option: -u
例えば強制アンインストールしたい場合、入力するコマンドは次の通りです。
adb shell pm uninstall -k --user 0 <アプリのパッケージ名>
下記のように、”user”の前にハイフンが1つしかないミスが多いためご注意を。
adb shell pm uninstall -k -user 0 <アプリのパッケージ名>
Error: java.lang.SecurityException: Permission Denial
下記エラーが表示される場合、実行したコマンドがOSバージョンに対応していない可能性があります。
Error: java.lang.SecurityException: Permission Denial: attempt to change component state from pid=xxxx, uid=xxxx, package uid=xxxx
例えば上記ケースは、下記のコマンドを実行した際に表示されましたが、
adb shell pm disable-user --user 0 <アプリのパッケージ名>
対応するのはAndroid 7.0以降となるため、Android 6.x以前だとエラーが出ます。
Error: Unknown option: –user
下記エラーが表示される場合、実行したコマンドがOSバージョンに対応していない可能性があります。
Error: Unknown option: --user
例えば上記ケースは、下記のコマンドを実行した際に表示されましたが、
adb shell pm uninstall -k --user 0 <アプリのパッケージ名>
対応するのはAndroid 5.0以降となるため、Android 4.x以前だとエラーが出ます。
/system/bin/sh: cmd: not found・Unknown command: install-existing
強制アンインストール(pm uninstall)実行後、元に戻すため、下記コマンドを入力した際に表示されます。
adb shell cmd package install-existing <アプリのパッケージ名>
対応するのはAndroid 8.0以降となるため、Android 7.x以前だとエラーが出ます。
▼Android 6.x以前の場合
/system/bin/sh: cmd: not found
▼Android 7.xの場合
Unknown command: install-existing
Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER]
下記エラーが表示される場合、該当のアプリが端末管理アプリとして設定されている可能性があります。
Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER]
解決策として、権限をオフにして下さい。
設定より アプリと通知 → 特別なアプリアクセス と進み、
機器管理アプリ より該当アプリのチェックを外します。
この機器管理アプリを無効にする を実行すればOK。
error: no devices/emulators found…etc
下記エラーが表示される場合、パソコンとUSB接続したAndroidが正しく認識されていません。
▼エラー例1
error: no devices/emulators found
▼エラー例2
error: device unauthorized
次の2点が原因であるケースが多いので、確認して下さい。
- AndroidのUSBデバッグを有効にしているか
- 「このパソコンからのUSBデバッグを常に許可する」にチェックを入れたか
より詳細な情報について、関連記事【adbコマンドでエラーが出る原因まとめ! adb/fastboot devicesの認識されない問題を解決しよう】で解説しています。
削除したプリインアプリを再インストールする方法
記事中でも紹介したとおり、削除したプリインストールアプリを元に戻すコマンドが存在します。
▼強制的にアンインストールする
adb shell pm uninstall -k --user 0 <アプリのパッケージ名>
▼元に戻す
adb shell cmd package install-existing <アプリのパッケージ名>
が、このコマンドはAndroid 7.x以前だと対応していないため、別の手段で再インストールが必要となります。
ここでは主な方法を3パターン紹介します。①と②がapkファイルをサイドロードする方法、③が初期化する方法です。
方法 | メリット | デメリット |
---|---|---|
①:事前にバックアップした apkファイルから再インストールする |
|
|
②:ネット上で入手した apkファイルから再インストールする |
|
|
③:本体を初期化する |
|
|
プリインストールWhat’s Newを復活させるケースを例に、それぞれ解説します。
①:事前にバックアップしたapkファイルから再インストールする
プリインストールアプリであっても、Android本体の内部にapkファイルが存在します。
これを事前に抽出しておけば、削除後はバックアップファイルから復元可能です。
まずapkファイルの保存場所を調べます。
下記コマンドをペーストし、「アプリのパッケージ名」にapkを抽出したいアプリを入れます。
adb shell pm list packages -f | findstr <アプリのパッケージ名>
すると結果として”package”以降に表示される「〜.apk」の部分が、アプリが保存される「パス」を示します(What’s Newの例)。
/system/priv-app/sonyentrance2-release/sonyentrance2-release.apk
これでapkファイルの保存場所がわかりました。
最後に下記コマンドをペーストし、「アプリのパス」に確認した場所を入れます。
adb pull <アプリのパス>
すると抽出作業が始まり、しばらく待つとパソコン上にapkファイルが保存されます。
これでバックアップは完了です。
プリインストールアプリを削除した後、このapkファイルから再インストールすることで復活できます。
apkファイルの抽出方法はいろいろあります。まとめて関連記事【Androidでapkファイルを抽出する方法! インストール先の保存場所からダウンロードしよう】で解説しています。
②:ネット上で入手したapkファイルから再インストールする
インターネット上の様々なサイトで、プリインストールアプリのapkファイルが配布されています。
この中から目的のapkを見つけ、Androidにインストールすることで元に戻せます。
まず、入手したいアプリ名で検索してみましょう。
ダウンロードしたapkファイルは通常、下記の場所に保存されます。
本体ストレージ/Download
apkファイルが見つからない場合、解決策のヒントを関連記事【Androidでダウンロードしたファイルの保存先はどこ? 内部ストレージからデータの場所を探そう】で解説しています。
ファイル管理アプリで表示して、インストールしましょう。
初めてapkをインストールする際は、提供元不明アプリに関する権限付与が求められます。詳細は関連記事【Androidで提供元不明アプリをインストールする方法! スマホ操作でapkファイルを許可しよう】で解説しています。
③:本体を初期化する
Android本体を初期化すれば、削除されたプリインストールアプリを復元できます。
もちろんすべてのデータが消えるため、安易に実行できる手段ではありませんが、apkファイルをサイドロードする煩わしさがない点はメリットです。
Androidの初期化全般の情報は、関連記事【Androidを初期化する方法まとめ! スマートフォンやタブレットの個人情報を消去しよう】で解説しています。
〆:いらないシステムアプリを削除しよう!
以上、Androidでプリインストールアプリを強制的に削除する方法! 消せない標準ソフトもアンインストール/無効化できる の説明でした。
アンインストールと無効化、どちらも塞がれているアプリに対して、今回の方法なら無理やり消すことが可能です。
一方、そのようなアプリは内部システムと密接な役割を担っているケースも多く、片っぱしから削除するのはリスクがあります。
事前にネット等で情報を集めてから、不要なアプリへadbコマンドを実行することをオススメします。
ぜひ、ご参考下さい。
参考 XDA – How to disable any pre-installed system app bloatware on Android without root
参考 XDA – How to Uninstall Carrier/OEM Bloatware Without Root Access
コメント
こんにちは
突然ですが
adb shell pm uninstall -k –user 0 アプリのパッケージ名
と打っても
Error: Unknown option: —user
と出てくるのですがどうしたら良いでしょうか?
“user”の前にハイフンを2つ入力しているか確認して下さい。
記事中にも本件について追記しました。
すいません、
これやってみたんですが、apkのバックアップで復元すると未インストールのままになります。どうすれば、いいですか。
「設定」→「アプリと権限(多分)」→「すべてのアプリ」→アプリ選択→「有効にする」で、できると思います
内臓アプリケーションは、
/system/app
/system/priv-app
に、入っています。
すいません、削除しようとするとセキュリティが何たらこんたらというコマンドが表示されて出来ません。root化しなければいけないのでしょうか?
思い当たる原因として、コマンドごとのOS要件を満たしているか、端末管理アプリとして設定されていないか、などがあります。
記事中で解説しているので、ご参考下さい。。。
煩わしいプリインストールアプリを削除することができました。ありがとうございます!
ROOT取らなくても削除できる方法があるとは知らなかったので、助かりました!
Error: Unknown option: –user
と表示される場合の対処法はありますか?
Android 4.x以前だと、記載いただいたようなエラーが表示されます。
※詳細は、次のコメントへの回答で記載しています。
Error: Unknown option: –user
ダメもとで試しましたがエラーで無理でした。
できる方と、できない方?Androidのバージョンの違いですかね、4.2.2では無理でした、なのでroot化しました。
6.0.1は出来ました。
8.0.0も出来ました。
強制アンインストールの下記コマンドは
Android 5.0以降で対応しており、Android 4.x以前だと記載いただいたようなエラーが表示されます。
本件、記事中でも追記しました。
初心者にも分かり易い丁寧な説明ありがとうございます。
質問なのですが、この方法ではプリインストールアプリの種類によって「無効化」になるか「パッケージ削除」になるかやってみないとわからないのでしょうか?
無効になるだけならapkのバックアップは不要かなと思ったもので、、、
あと別ページで紹介されている抽出したapkは内部ストレージからSDなどに移動しても問題ないでしょうか?
お忙しいかと思いますが宜しくお願い致します。
>>「無効化」になるか「パッケージ削除」になるかやってみないとわからないのでしょうか?
そうですね、ボクの知る限り、わからないと思います。。
>>apkは内部ストレージからSDなどに移動しても問題ないでしょうか?
バックアップの保存先をどこにするか、なので、SDカードでも問題ないと思います
こんにちは.
先日,この記事の方法でダウンロード(com.android.providers.downloads.ui)
とダウンロードマネージャー(com.android.providers.downloads)
をアンインストールしたところ,アプリをインストールしようとすると”パッケージインストーラが停止しました”と表示されてインストールできない状態になってしまいました.対処法を教えてください.
2つのアプリのapkファイルについてはバックアップをとってあります.google playとgoogle play 開発者サービスはアンインストールしてあります.
よろしくお願いします.
お使いの機種がAndroid 8.x以降であれば、記事中で紹介している下記コマンドでダウンロードマネージャーを復活できないかお試し下さい。
またはapkファイルのバックアップがあるのであれば、adbコマンドを使ってパソコンから直接インストールを指示する方法などもどうぞ(詳細はコチラの記事で解説)。
あるいは、Google PlayとGoogle Play開発者サービスをアンインストールしているのが原因かもしれないため、切り分け上、いったん元に戻してみる、、、などなどお試し下さい。
[…] あっとはっく Androidでプリインストールアプリを強制的に削除する方法! 消… […]