新しい ADT プレビュー バージョン (バージョン 21)以降、マニフェスト ファイル (アプリケーション タグ内) に次のことを知らせる新しい lint 警告があります。
android:allowBackup を明示的に true または false に設定する必要があります (デフォルトでは true であり、アプリケーションのデータのセキュリティに影響を与える可能性があります)。
公式ウェブサイトでは、彼らは次のように書いています。
いくつかの新しいチェック: アプリがバックアップを許可するかどうかを明示的に決定する必要があり、ラベル チェックがあります。ライブラリ パスを設定するための新しいコマンド ライン フラグがあります。編集中のインクリメンタル lint 分析に対する多くの改善。
この警告は何ですか? バックアップ機能とは何ですか? また、どのように使用しますか?
また、セキュリティに影響があると警告が表示されるのはなぜですか? この機能を無効にすることの欠点と利点は何ですか?
マニフェストのバックアップには 2 つの概念があります。
- 「android: allowBackup」では、次のように、adb 経由でバックアップと復元を行うことができます。
アプリケーションがバックアップおよび復元インフラストラクチャに参加できるようにするかどうか。この属性が false に設定されている場合、アプリケーションのすべてのデータが adb 経由で保存される完全なシステム バックアップであっても、アプリケーションのバックアップまたは復元は実行されません。この属性のデフォルト値は true です。
人々がADB経由でアプリをバックアップし、アプリのプライベート データを自分の PC に取り込む可能性があるため、これはセキュリティ上の問題と見なされます。
ただし、ほとんどのユーザーはadbが何であるかを知らないため、それは問題ではないと思います。もし知っていれば、デバイスをルート化する方法も知っているでしょう。ADB 機能は、デバイスでデバッグ機能が有効になっている場合にのみ機能し、これにはユーザーが有効にする必要があります。
そのため、デバイスを PC に接続し、デバッグ機能を有効にしているユーザーのみが影響を受けます。PC に ADB ツールを使用する悪意のあるアプリがある場合、アプリがプライベート ストレージ データを読み取る可能性があるため、これは問題になる可能性があります。
Google は、デフォルトで無効になっている機能を開発者カテゴリに追加して、ADB を介したアプリのバックアップと復元を許可する必要があると思います。
BackupAgent のサブクラスである、アプリケーションのバックアップ エージェントを実装するクラスの名前。属性値は、完全修飾クラス名 (「com.example.project.MyBackupAgent」など) である必要があります。ただし、省略形として、名前の最初の文字がピリオド (「.MyBackupAgent」など) の場合、要素で指定されたパッケージ名に追加されます。デフォルトはありません。名前を指定する必要があります。
これはセキュリティ上の問題ではありません。