Depuis la nouvelle version d'aperçu ADT (version 21) , ils ont un nouvel avertissement de peluches qui m'indique la prochaine chose sur le fichier manifeste (dans la balise d'application):
Devrait définir explicitement android: allowBackup sur true ou false (c'est vrai par défaut, et cela peut avoir des implications de sécurité pour les données de l'application)
Sur le site officiel , ils ont écrit:
Quelques nouvelles vérifications: vous devez explicitement décider si votre application autorise les sauvegardes et une vérification d'étiquette. Il y a un nouvel indicateur de ligne de commande pour définir le chemin de la bibliothèque. De nombreuses améliorations de l'analyse incrémentielle des peluches lors de l'édition.
Quel est cet avertissement? Qu'est-ce que la fonction de sauvegarde et comment l'utiliser?
De plus, pourquoi l'avertissement me dit-il que cela a des implications sur la sécurité? Quels sont les inconvénients et les avantages de désactiver cette fonction?
Il existe deux concepts de sauvegarde pour le manifeste:
- "android: allowBackup " permet de sauvegarder et restaurer via adb, comme illustré ici :
Indique s'il faut autoriser l'application à participer à l'infrastructure de sauvegarde et de restauration. Si cet attribut est défini sur false, aucune sauvegarde ou restauration de l'application ne sera jamais effectuée, même par une sauvegarde complète du système qui autrement entraînerait la sauvegarde de toutes les données d'application via adb. La valeur par défaut de cet attribut est vraie.
Ceci est considéré comme un problème de sécurité car les gens pourraient sauvegarder votre application via ADB et ensuite obtenir les données privées de votre application sur leur PC.
Cependant, je pense que ce n'est pas un problème, car la plupart des utilisateurs ne savent pas ce qu'est adb, et s'ils le savent, ils sauront également comment rooter l'appareil. Les fonctions ADB ne fonctionneraient que si le périphérique a la fonctionnalité de débogage activée, et cela nécessite que l'utilisateur l'active.
Ainsi, seuls les utilisateurs qui connectent leurs appareils au PC et activent la fonction de débogage seraient affectés. S'ils ont une application malveillante sur leur PC qui utilise les outils ADB, cela pourrait être problématique car l'application pourrait lire les données de stockage privé.
Je pense que Google devrait simplement ajouter une fonctionnalité qui est désactivée par défaut, dans la catégorie développeur, pour permettre la sauvegarde et la restauration des applications via ADB.
- "android: backupAgent " permet d'utiliser la fonction de sauvegarde et de restauration du cloud, comme illustré ici et ici :
Nom de la classe qui implémente l'agent de sauvegarde de l'application, une sous-classe de BackupAgent. La valeur d'attribut doit être un nom de classe complet (tel que "com.example.project.MyBackupAgent"). Cependant, en raccourci, si le premier caractère du nom est un point (par exemple, ".MyBackupAgent"), il est ajouté au nom de package spécifié dans l'élément. Il n'y a pas de défaut. Le nom doit être spécifié.
Ce n'est pas un problème de sécurité.
la source
Réponses:
Pour cet avertissement de peluches, comme pour tous les autres avertissements de peluches, notez que vous pouvez obtenir une explication plus complète que celle contenue dans le message d'erreur d'une ligne; vous n'avez pas besoin de rechercher sur le Web pour plus d'informations.
Si vous utilisez lint via Eclipse, ouvrez la vue des avertissements de lint, où vous pouvez sélectionner l'erreur de lint et voir une explication plus longue, ou invoquer la correction rapide (Ctrl-1) sur la ligne d'erreur, et l'une des suggestions est " Expliquez ce problème ", qui affichera également une explication plus complète. Si vous n'utilisez pas Eclipse, vous pouvez générer un rapport HTML à partir de lint (
lint --html <filename>
) qui inclut des explications complètes à côté des avertissements, ou vous pouvez demander à lint d'expliquer un problème particulier. Par exemple, le problème lié àallowBackup
a l'IDAllowBackup
(affiché à la fin du message d'erreur), donc l'explication plus complète est:L'
allowBackup
attribut détermine si les données d'une application peuvent être sauvegardées et restaurées, comme indiqué ici .Cliquez ici pour plus d'informations
la source
Voici ce que signifie réellement la sauvegarde dans ce sens:
~ Extrait de http://developer.android.com/guide/topics/data/backup.html
Vous pouvez vous inscrire à ce service de sauvegarde en tant que développeur ici: https://developer.android.com/google/backup/signup.html
Les types de données qui peuvent être sauvegardés sont les fichiers, les bases de données, les préférences partagées, le cache et la bibliothèque. Ceux-ci sont généralement stockés dans le répertoire /data/data/[com.myapp] de votre appareil, qui est protégé en lecture et auquel vous ne pouvez pas accéder à moins que vous ne disposiez des privilèges root.
MISE À JOUR : Vous pouvez voir cet indicateur répertorié sur le doc api de BackupManager : BackupManager
la source
Ce n'est pas explicitement mentionné, mais sur la base des documents suivants, je pense qu'il est implicite qu'une application doit déclarer et implémenter un BackupAgent pour que la sauvegarde de données fonctionne, même dans le cas où allowBackup est défini sur true (qui est le valeur par défaut).
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 / topics / data / backup.html
la source
C'est un souci de confidentialité . Il est recommandé d'interdire aux utilisateurs de sauvegarder une application si elle contient des données sensibles. Ayant accès aux fichiers de sauvegarde (c'est-à-dire quand
android:allowBackup="true"
), il est possible de modifier / lire le contenu d'une application même sur un appareil non rooté.Solution - utiliser
android:allowBackup="false"
dans le fichier manifeste.Vous pouvez lire cet article pour avoir plus d'informations: Piratage d'applications Android à l'aide de techniques de sauvegarde
la source