バージョン4.4.x以降を使用している場合、Androidは、アプリを本当に無効にするためにrootアクセス権を持つ必要はありません。あなたに必要なのはadbPCでのセットアップと、ルート化されていないデバイスで有効になっているUSBデバッグ、またはルート化されたデバイスのターミナルエミュレーターアプリ(adbも使用できます)。
Package Mangerの(pm
)の使用法を確認すると、
pmブロック[--user USER_ID] PACKAGE_OR_COMPONENT ")
午後ブロック解除[--user USER_ID] PACKAGE_OR_COMPONENT ")
ロリポップの場合、
pm非表示[--user USER_ID] PACKAGE_OR_COMPONENT ")
pm unhide [--user USER_ID] PACKAGE_OR_COMPONENT ")
パッケージをブロックまたは非表示にする(安全)には、次のようにします。
pm block PACKAGE # for KitKat
pm hide PACKAGE # for Lollipop
パッケージのブロックを解除または再表示するには、次のようにします。
pm unblock PACKAGE #for KitKat
pm unhide PACKAGE # for Lollipop
PACKAGE
→アプリのパッケージ名。アプリのパッケージ名を知るには:
adb shell
非常にコマンドの前に追加して、PCから実行します。
hideの背後にある関数には、ソースコード内に次のコメントがあります。
パッケージを非インストール状態と同じように隠し状態にし、パッケージを使用不可にしますが、データや実際のパッケージファイルは削除されません。非表示状態をリセットするか、インストールすることにより、アプリケーションを再表示できます
同様のコメントがここのブロック に対して行われ ます。
主張を検証するために、dumpsysツールなどのシステムサービスを使用したりmeminfo
、procstats
をactivity
使用してすべてのプロセスを一覧表示したりできます。ブロックされた/非表示のアプリのアクティブな存在を見つけることはできません。ps
同じことは、GUIを使用して無効にしたり、アプリのシステムの多くのために行くpm disable
すべてのアプリケーションのためにではなく、でも無効アプリが受け取ることができるので、放送、それがメモリにロードされている場合にのみ行うことができ、それがために登録した、1。それにもかかわらず、無効化されたアプリはそれ自体では動作できず、他のアプリによって実行することもできません。
私は私の質問pm hide VS pm disable-アイデンティティの危機について、非表示 / ブロックと無効化の違いのいくつかを主張しました 。この回答に対する補足情報のみを提供しているので、スキップしてもかまいません。
編集:
このテクニックは、Android KitKatのすべてのアプリで機能するとは限りません。その場合は、アプリのAPKから読み取り権限を取り消すか、アプリのファイル名から拡張子.APKを削除し(Jaskaranbirが一度提案した後半)、その後ソフト/フル再起動します。これは、システムからアプリを削除するのと同じですが、すべてのファイルが元の場所に残る点が異なります。
どちらの手順も、ルートファイルマネージャーアプリを使用して実行できます。コマンドラインの方法は次のとおりです。
adb shell su -c 'chmod 000 /data/app/PACKAGE*' # 000 means no read-write-executable permission to user,group and others.
adb shell su -c 'mv /data/app/PACKAGE* /data/app/PACKAGE' # doing renaming by moving the file
adb reboot
1:事実を裏付ける技術的証拠がない