質問: 設定アプリのアプリケーションの一覧画面からアプリを無効化できますが、これをadbコマンドで行うことはできますか? 手元にある20台くらいの端末(機種は同じ)の中の決められたパッケージのアプリを無効化するスクリプトを書きたいです。
回答: `adb`から`pm`コマンドでパッケージマネージャを起動して、類似のことはできます。 Android 4.4以降であれば、`block/unblock`コマンドが使えます。 ``` // アプリを無効化 adb shell pm block // アプリ無効化を解除 adb shell pm unblock ``` Android5.0からはコマンドが変わり、`hide/unhide`になりました。 ``` // アプリを無効化 adb shell pm hide // アプリ無効化を解除 adb shell pm unhide ``` 類似のコマンドに`disable/enable`があり、こちらはAndroid4.0から使えますがroot権限が必要のようです? ``` // アプリを無効化(アプリ一覧からも抹消) adb shell pm disable // アプリを無効化(アプリ一覧には残す) adb shell pm disable-user // アプリ無効化を解除 adb shell pm enable ``` これらのコマンドは、設定から無効化を行えないアプリも対象にできるほか、コンポーネント単位で指定できるので特定の`Activity`だけ無効化するといったことも可能です。