ユーザーが無意識のうちに許可している非常に重要な許可を要求している可能性があります。このアプリの [権限] タブを見てください (2012 年 6 月 15 日現在): https://play.google.com/store/apps/details?id=com.nqmobile.antivirus20&hl=en。
このアプリが取得するアクセス許可のリストは実に身も凍るようなものです。とりわけ:
システム ツール 実行中のアプリの取得 現在および最近実行されたタスクに関する情報の取得をアプリに許可します。悪意のあるアプリが、他のアプリに関する個人情報を発見する可能性があります。
ネットワーク設定とトラフィックの変更/傍受 ネットワーク設定の変更と、すべてのネットワーク トラフィックの傍受と検査 (APN のプロキシとポートの変更など) をアプリに許可します。悪意のあるアプリは、知らないうちにネットワーク パケットを監視、リダイレクト、または変更する可能性があります。
タブレットのスリープを防止 スマートフォンのスリープを防止 タブレットのスリープを防止することをアプリに許可します。スマートフォンがスリープ状態にならないようにすることをアプリに許可します。
UI 設定の変更 ロケールや全体的なフォント サイズなど、現在の設定を変更することをアプリに許可します。グローバル システム設定の変更 システムの設定データの変更をアプリに許可します。悪意のあるアプリがシステムの構成を破壊する可能性があります。
システム レベルのアラートの表示 システム アラート ウィンドウの表示をアプリに許可します。悪意のあるアプリが画面全体を乗っ取る可能性があります。
ファイルシステムのマウントとマウント解除 リムーバブル ストレージのファイル システムのマウントとマウント解除をアプリに許可します。
ネットワーク接続の変更 ネットワーク接続の状態を変更することをアプリに許可します。
Wi-Fi 状態の変更 Wi-Fi アクセス ポイントへの接続と切断、および設定済みの Wi-Fi ネットワークの変更をアプリに許可します。
- アップデート -
また、Android Package Manager は、要求された場合にパッケージを削除するだけであることもわかりました。そうする前に実行する唯一のチェックは、削除されるパッケージがアクティブなデバイス管理者として現在登録されているかどうかです。
try {
if (dpm != null && dpm.packageHasActiveAdmins(packageName)) {
Slog.w(TAG, "Not removing package " + packageName + ": has active device admin");
return PackageManager.DELETE_FAILED_DEVICE_POLICY_MANAGER;
}
} catch (RemoteException e) {
}
ここの AOSP ソースの PackageManagerService の 6900 行を参照してください。
このためには、ユーザーがアプリケーションをデバイス管理者として明示的に登録する必要があります。デバイス管理に関する注意事項は、http: //developer.android.com/training/enterprise/device-management-policy.htmlを参照してください。