9 votes

Android 6+ et les autorisations de compte : où sont-ils passés ?

J'étais juste en train de parcourir le Liste des autorisations pour les développeurs Android et j'ai remarqué que la plupart des permissions du compte ont disparu - en fait, tout sauf GET_ACCOUNTS comme il semble. Qu'est-ce que cela signifie, quelles sont les implications pour l'utilisateur final - et qu'est-ce qui s'est passé d'autre (à part le fait qu'il n'y a pas d'autre solution) ? pratiquement pas de INTERNET plus de permission) ?

Comme d'habitude, j'ai essayé mon meilleur Google-Fu mais je n'ai trouvé aucune réponse. Au lieu de cela, des questions sans réponse demandant la même chose. Je ne peux pas le dire avec de meilleurs mots que celles-ci :

Marshmallow a supprimé plusieurs autorisations de compte, notamment MANAGE_ACCOUNTS et USE_CREDENTIALS, mais a conservé GET_ACCOUNTS. Je n'ai pas vu beaucoup de documentation sur ce que cela signifie pour l'utilisateur en pratique, cependant. Je suppose que l'application qui crée un compte peut automatiquement l'utiliser/gérer. Cependant, si une application tierce veut se connecter avec un compte Google/Facebook/etc. qu'elle a créé, elle ne peut pas l'utiliser. no créer :

  • Doit-il toujours demander mon interaction/approbation lors du premier accès/de la première utilisation de chaque compte, ou peut-il utiliser mes comptes automatiquement maintenant ?
  • Si je refuse l'autorisation GET_ACCOUNTS, l'application peut-elle encore me demander de me connecter avec un compte de mon Nexus ? Ou dois-je accorder à l'application l'autorisation de visualiser tous mes comptes pour qu'elle puisse en utiliser un ?

De plus, si l'accès aux comptes est toujours protégé (ce que j'espère !), quelle autorisation le protège maintenant ?


Questions connexes (dont les réponses pourraient devoir être mises à jour maintenant) :


Synthèse des informations recueillies dans les commentaires (nettoyés)

Les détails suivants sont apparus dans les commentaires. Ils ne répondent pas à ma question, mais donnent des indications précieuses - c'est pourquoi je les inclus dans ma question (crédits donnés à leurs auteurs) :

  • "il y a pratiquement pas de INTERNET permission" : Elle est toujours là, mais accordée automatiquement à chaque application. Aucun moyen de la révoquer avec les outils/réglages embarqués. C'est pourquoi j'ai fait un lien vers Dans Android 6, comment refuser à une application la permission d'accéder au réseau ? ci-dessus. Pourquoi c'est important ? Voir ci-dessous.
  • Dan Brown fait remarquer que l'accès aux comptes est désormais lié à une certaine _CONTACTS permission. En effet, l'utilisation d'une application pour "se connecter avec Google" invite : "Autoriser X à accéder à vos contacts ?"
    contacts access
    Il n'est pas clair si vous accordez uniquement l'accès en lecture (ce qui est déjà assez grave) ou même l'accès en écriture. Ainsi, même une application de stockage dans le nuage (comme Dropbox, Mega, etc.) peut désormais accéder à vos contacts. INTERNET devient un cauchemar pour la vie privée.
    Comme il est maintenant évident que cette partie des autorisations de compte a été transférée aux contacts (bravo à Dan pour l'indication !), j'aimerais vraiment lire quelques détails à ce sujet : comment cela a été changé, pourquoi cela a été changé, quelles sont les implications, comment y faire face.
    Mise à jour : Comme la dernière version de l'application SE ne nécessite plus d'accéder aux contacts, Dan a créé une question dédiée à cette application sur le Meta principal, qui pourrait valoir la peine d'être vérifiée : Comment fonctionne le nouveau système d'identification pour l'application Android ? En bref, ils utilisent une nouvelle version du "Google Sign In SDK", qui ne nécessite plus l'accès aux contacts. Comme cela ne concerne que Google Sign-In, cela ne répond pas à ma question, cependant.
  • Dan a également souligné que les applications utilisent leurs propres gestionnaires de compte. C'était déjà le cas avant le MM - et la raison pour laquelle il y a eu la MANAGE_ACCOUNTS autorisation (voir ci-dessus) : ils ont enregistré leur service auprès d'Android, afin que d'autres applications puissent l'utiliser.
  • Comme je l'ai déjà mentionné dans ma question, GET_ACCOUNTS est la seule autorisation de compte qui subsiste. Elle était déjà requise avant MM, et sert probablement toujours le même objectif : pour utiliser un compte, notre application doit d'abord savoir qu'il existe - elle doit donc obtenir une liste des comptes disponibles pour commencer. Si quelque chose a changé à cet égard, veuillez l'indiquer dans vos réponses.

1 votes

@DeathMaskSalesman GET_ACCOUNTS était déjà nécessaire auparavant (pour accéder à un compte, il faut d'abord le trouver). Mais maintenant, comme Dan Brown l'a correctement souligné, une application a besoin du (LIRE ? ÉCRIRE ?) _CONTACTS la permission d'utiliser un compte - ce qui me fait dresser les cheveux sur la tête. Si les gens soutiennent encore qu'avec les versions récentes d'Android, l'accès à la racine est de plus en plus obsolète, ce seul élément est un contre-argument clair. Je n'utiliserai certainement pas MM+ sur un appareil qui n'est pas rooté, car la protection via Xprivacy & Co est encore plus obligatoire maintenant.

0 votes

Note : Une partie de la question des comptes est couverte par La réponse de Dan Brown ici en attendant.

0voto

Jason S Points 373

Les permissions "dangereuses" sont répertoriées dans le tableau 1 de cette page. permissions page. Il existe également des autorisations "normales", énumérées dans la liste suivante aquí . Les autorisations normales sont automatiquement accordées à l'application.

Les autorisations dangereuses sont réparties en groupes. Avant Android 6, l'Android Store présentait la liste des groupes (bien qu'elle comprenne également les permissions "normales") et vous pouviez choisir de télécharger et d'accepter toutes les permissions ou de ne pas télécharger. Avec Android 6, vous acceptez l'autorisation lorsque vous exécutez l'application, et non lorsque vous la téléchargez. Plutôt que d'accepter des permissions individuelles, vous acceptez ou refusez un groupe entier.

Lorsque vous exécutez l'application et accordez une permission, celle-ci reste accordée indéfiniment. Si vous voulez la révoquer, vous pouvez le faire. Allez dans Réglages Android > Apps > votre application > Permissions. Cliquez ensuite sur le bouton coulissant vert correspondant à l'autorisation que vous souhaitez modifier.

Quant au comportement dans l'application, le grand changement se situe du point de vue du développeur. Avant Android 6, l'application n'avait pas besoin de vérifier si une permission était accordée (toutes étaient automatiquement accordées lorsque vous téléchargez l'application). Avec Android 6, si l'application a obtenu une permission, elle peut effectuer l'action associée. Sinon, elle se plante ou, si le développeur a écrit du code supplémentaire, elle peut faire quelque chose de plus élégant.

Vous avez des préoccupations concernant l'accès au compte. Je ne sais pas trop quoi dire, si ce n'est qu'avec Android 6, l'application ne peut pas obtenir d'informations sur le compte sans que vous acceptiez l'accès aux contacts. Voir le tableau.

Il s'agit d'une réponse générale et vous devrez souvent poser des questions plus spécifiques pour obtenir plus de détails. J'espère que cela vous aidera.

0 votes

Merci - mais ma question n'était pas "comment fonctionne le système de permission en général". Je veux plutôt savoir ce qui lui a été fait avec Android 6, et notamment les permissions des comptes. Ma question était assez spécifique - c'est votre réponse qui est un peu générique. Et oui, j'ai déjà fait remarquer que l'accès aux comptes nécessite maintenant évidemment l'accès à tous les contacts (sûrement une mesure de sécurité, puisque toutes ces choses nous sont vendues). "Il s'agit d'une réponse générale et vous devez souvent poster des questions plus spécifiques pour obtenir des détails supplémentaires." ? ??? Non, il s'agit d'une question spécifique que vous pourriez avoir besoin de poster. spécifique des réponses pour.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X