Seit der neuen ADT-Vorschau-Version (Version 21) gibt es eine neue Flusenwarnung, die mich über das nächste Element in der Manifestdatei (im Anwendungs-Tag) informiert:
Sollte android explizit setzen: allowBackup auf true oder false (standardmäßig true, und dies kann einige Auswirkungen auf die Sicherheit der Anwendungsdaten haben)
Auf der offiziellen Website haben sie geschrieben:
Einige neue Überprüfungen: Sie müssen explizit entscheiden, ob Ihre App Sicherungen zulässt, und eine Etikettenprüfung. Es gibt ein neues Befehlszeilenflag zum Festlegen des Bibliothekspfads. Viele Verbesserungen an der inkrementellen Flusenanalyse während der Bearbeitung.
Was ist diese Warnung? Was ist die Sicherungsfunktion und wie verwende ich sie?
Warum sagt mir die Warnung auch, dass sie Auswirkungen auf die Sicherheit hat? Was sind die Nachteile und Vorteile der Deaktivierung dieser Funktion?
Es gibt zwei Konzepte für die Sicherung des Manifests:
- "android: allowBackup " ermöglicht das Sichern und Wiederherstellen über adb, wie hier gezeigt :
Gibt an, ob die Anwendung an der Sicherungs- und Wiederherstellungsinfrastruktur teilnehmen darf. Wenn dieses Attribut auf false gesetzt ist, wird niemals eine Sicherung oder Wiederherstellung der Anwendung durchgeführt, selbst bei einer vollständigen Systemsicherung, bei der andernfalls alle Anwendungsdaten über adb gespeichert würden. Der Standardwert dieses Attributs ist true.
Dies wird als Sicherheitsproblem angesehen, da Benutzer Ihre App über ADB sichern und dann private Daten Ihrer App auf ihren PC übertragen können.
Ich denke jedoch, dass dies kein Problem ist, da die meisten Benutzer nicht wissen, was ADB ist, und wenn sie dies tun, wissen sie auch, wie sie das Gerät rooten. ADB-Funktionen funktionieren nur, wenn auf dem Gerät die Debugging-Funktion aktiviert ist und der Benutzer sie aktivieren muss.
Daher sind nur Benutzer betroffen, die ihre Geräte an den PC anschließen und die Debugging-Funktion aktivieren. Wenn sich auf ihrem PC eine bösartige App befindet, die die ADB-Tools verwendet, kann dies problematisch sein, da die App die privaten Speicherdaten lesen kann.
Ich denke, Google sollte nur eine Funktion hinzufügen, die standardmäßig in der Entwicklerkategorie deaktiviert ist, um das Sichern und Wiederherstellen von Apps über ADB zu ermöglichen.
- "android: backupAgent " ermöglicht die Verwendung der Sicherungs- und Wiederherstellungsfunktion der Cloud, wie hier und hier gezeigt :
Der Name der Klasse, die den Sicherungsagenten der Anwendung implementiert, eine Unterklasse von BackupAgent. Der Attributwert sollte ein vollständig qualifizierter Klassenname sein (z. B. "com.example.project.MyBackupAgent"). Wenn das erste Zeichen des Namens jedoch ein Punkt ist (z. B. ".MyBackupAgent"), wird es als Kurzform an den im Element angegebenen Paketnamen angehängt. Es gibt keine Standardeinstellung. Der Name muss angegeben werden.
Dies ist kein Sicherheitsproblem.
quelle
Antworten:
Beachten Sie für diese Flusenwarnung wie für alle anderen Flusenwarnungen, dass Sie eine ausführlichere Erklärung erhalten können als nur das, was in der einzeiligen Fehlermeldung steht. Sie müssen nicht im Internet nach weiteren Informationen suchen.
Wenn Sie Flusen über Eclipse verwenden, öffnen Sie entweder die Ansicht für Flusenwarnungen, in der Sie den Flusenfehler auswählen und eine längere Erklärung anzeigen können, oder rufen Sie die Schnellkorrektur (Strg-1) in der Fehlerzeile auf. Einer der Vorschläge lautet " Erklären Sie dieses Problem ", das auch eine ausführlichere Erklärung enthält. Wenn Sie Eclipse nicht verwenden, können Sie aus lint (
lint --html <filename>
) einen HTML-Bericht erstellen , der neben den Warnungen vollständige Erklärungen enthält, oder Sie können lint bitten, ein bestimmtes Problem zu erläutern. Das betreffende ProblemallowBackup
hat beispielsweise die IDAllowBackup
(am Ende der Fehlermeldung angezeigt). Die ausführlichere Erklärung lautet daher:Das
allowBackup
Attribut bestimmt, ob die Daten einer Anwendung gesichert und wiederhergestellt werden können, wie hier dokumentiert .Klicken Sie hier für weitere Informationen
quelle
Folgendes bedeutet Backup in diesem Sinne wirklich:
~ Entnommen aus http://developer.android.com/guide/topics/data/backup.html
Sie können sich hier als Entwickler für diesen Sicherungsdienst registrieren: https://developer.android.com/google/backup/signup.html
Die Datentypen, die gesichert werden können, sind Dateien, Datenbanken, sharedPreferences, Cache und lib. Diese werden im Allgemeinen im Verzeichnis /data/data/[com.myapp] Ihres Geräts gespeichert, das lesegeschützt ist und auf das nur zugegriffen werden kann, wenn Sie über Root-Rechte verfügen.
UPDATE : Sie können dieses Flag im API-Dokument von BackupManager sehen : BackupManager
quelle
Dies wird nicht explizit erwähnt, aber basierend auf den folgenden Dokumenten wird meiner Meinung nach impliziert, dass eine App einen BackupAgent deklarieren und implementieren muss, damit die Datensicherung funktioniert, selbst wenn allowBackup auf true gesetzt ist (was das ist) Standardwert).
http://developer.android.com/reference/android/R.attr.html#allowBackup http://developer.android.com/reference/android/app/backup/BackupManager.html http://developer.android. com / guide / topic / data / backup.html
quelle
Es ist Datenschutzbedenken . Es wird empfohlen, Benutzern das Sichern einer App zu untersagen, wenn diese vertrauliche Daten enthält. Durch den Zugriff auf Sicherungsdateien (dh wann
android:allowBackup="true"
) ist es möglich, den Inhalt einer App auch auf einem nicht gerooteten Gerät zu ändern / zu lesen.Lösung - Verwendung
android:allowBackup="false"
in der Manifestdatei.In diesem Beitrag finden Sie weitere Informationen: Hacken von Android-Apps mithilfe von Sicherungstechniken
quelle