Android 6+ y permisos de cuenta: ¿adónde han ido?

Estaba navegando por la lista de permisos de desarrolladores de Android y noté que la mayoría de los permisos de la cuenta habían desaparecido; de hecho, todos menos GET_ACCOUNTSlo que parece. ¿Qué significa eso, qué implicaciones tiene para el usuario final y qué más se estropeó (aparte del hecho de que prácticamente ya no hay INTERNETpermiso)?

Como de costumbre, hice mi mejor esfuerzo con Google-Fu pero no encontré respuestas. En cambio, algunas preguntas sin respuesta preguntan lo mismo. No puedo ponerlo en mejores palabras que estas :

Marshmallow eliminó varios permisos de cuenta, incluidos MANAGE_ACCOUNTS y ​​USE_CREDENTIALS, pero mantuvo GET_ACCOUNTS. Sin embargo, no he visto mucha documentación de lo que esto significa para el usuario en la práctica. Supongo que la aplicación que crea una cuenta puede usarla/administrarla automáticamente. Sin embargo, si una aplicación de terceros quiere iniciar sesión con una cuenta de Google/Facebook/etc. que no creó:

  • ¿Todavía tiene que solicitar mi interacción/aprobación la primera vez que se accede/usa cada cuenta, o puede usar mis cuentas automáticamente ahora?
  • Si niego el permiso GET_ACCOUNTS, ¿puede la aplicación seguir solicitándome que inicie sesión con una cuenta de mi Nexus? ¿O tengo que otorgar permiso a la aplicación para ver todas mis cuentas para que pueda usar una de ellas?

Además: si el acceso a las cuentas todavía está protegido (¡lo cual espero que esté!), ¿qué permiso lo protege ahora?


Preguntas relacionadas (cuyas respuestas quizás deban actualizarse ahora):


Resumiendo la información recopilada en los comentarios (limpiados)

Los siguientes detalles surgieron en los comentarios. No están respondiendo mi pregunta, pero brindan sugerencias valiosas, por lo que los incluyo con mi pregunta (créditos otorgados a sus autores):

  • " prácticamente no hay INTERNETpermiso": sigue ahí, pero se otorga automáticamente a cada aplicación. No hay forma de revocarlo con herramientas/configuraciones integradas. Por eso me vinculé a En Android 6, ¿cómo denegar el permiso de una aplicación para acceder a la red? encima. ¿Por qué eso es importante? Vea abajo.
  • Dan Brown señala que el acceso a las cuentas ahora está sujeto a algún _CONTACTSpermiso. De hecho, el uso de una aplicación para "iniciar sesión con Google" indica: "¿Permitir que X acceda a sus contactos?" No está claro si solo otorga acceso de lectura (lo suficientemente malo) o incluso acceso de escritura. Entonces, ahora incluso una aplicación de almacenamiento en la nube (como Dropbox, Mega, etc.) tiene acceso a sus contactos, razón por la cual otorgar siempre se convierte en una pesadilla de privacidad. Como ahora es obvio que esta parte de los permisos de la cuenta fueron a los contactos (¡felicitaciones a Dan por el puntero!), Realmente me gustaría leer algunos detalles sobre eso: cómo se cambió, por qué se cambió, cuáles son las implicaciones, Como lidiar con. Actualizar:
    acceso a contactos
    INTERNET

    Como la última versión de la aplicación SE ya no requiere acceder a los contactos, Dan creó una pregunta específica sobre esta aplicación en el Meta principal, que podría valer la pena consultar: ¿Cómo funciona el nuevo sistema de inicio de sesión para la aplicación de Android? En resumen, están utilizando una nueva versión del "SDK de inicio de sesión de Google", que ya no requiere el acceso de los contactos. Sin embargo, como eso solo afecta el inicio de sesión de Google, no responde a mi pregunta.
  • Dan también señaló que las aplicaciones usan sus propios administradores de cuentas. Ese ya era el caso antes de MM, y la razón por la que existía el MANAGE_ACCOUNTSpermiso (ver arriba): registraron su servicio con Android, para que otras aplicaciones pudieran usarlo.
  • Como ya mencioné con mi pregunta, GET_ACCOUNTSes el único permiso de cuenta que sobrevive. Ya se requería antes de MM, y probablemente todavía tenga el mismo propósito: para usar una cuenta, nuestra aplicación primero necesita saber que está allí, por lo que debe obtener una lista de cuentas disponibles para comenzar. Si algo ha cambiado en este sentido, inclúyalo con sus respuestas.
@DeathMaskSalesman GET_ACCOUNTSya se necesitaba antes (para acceder a una cuenta, primero debe encontrarla). Pero ahora, como señaló correctamente Dan Brown, una aplicación necesita el _CONTACTSpermiso (¿LEER? ¿ESCRIBIR?) para usar una cuenta, lo que me pone los pelos de punta. Si la gente todavía discute con las versiones recientes de Android, el acceso a la raíz se volvió cada vez más obsoleto, esto por sí solo es un claro contraargumento. Definitivamente no usaré MM+ en un dispositivo que no esté rooteado, ya que la protección a través de Xprivacy & Co ahora es aún más obligatoria.
Nota: Mientras tanto, parte de la pregunta de las cuentas está cubierta por la respuesta de Dan Brown aquí .

Respuestas (1)

Los permisos "peligrosos" se enumeran en la Tabla 1 de esta página de permisos . También hay permisos "normales", enumerados aquí . Los permisos normales se otorgan automáticamente a la aplicación.

Los permisos peligrosos se dividen en grupos. Antes de Android 6, la tienda de Android presentaba la lista de grupos (aunque también incluía permisos "normales") y podía optar por descargar y aceptar todos los permisos o no descargar. Con Android 6, aceptas el permiso cuando ejecutas la aplicación, no cuando la descargas. En lugar de aceptar permisos individuales, acepta o deniega un grupo completo.

Cuando ejecuta la aplicación y otorga un permiso, el permiso permanece otorgado indefinidamente. Si desea revocarlo, puede hacerlo. Vaya a Configuración de Android > Aplicaciones > su aplicación > Permisos. Luego haga clic en el botón deslizante verde para el permiso que desea cambiar.

En cuanto al comportamiento en la aplicación, el gran cambio es desde el punto de vista del desarrollador. Antes de Android 6, la aplicación no necesitaba comprobar si se concedía un permiso (todos se concedían automáticamente al descargar la aplicación). Con Android 6, si a la aplicación se le ha otorgado un permiso, puede realizar la acción asociada. De lo contrario, se bloqueará o, si el desarrollador escribió código adicional, puede hacer algo más elegante.

Tiene inquietudes sobre el acceso a la cuenta. No estoy seguro de qué decir, excepto que con Android 6, la aplicación no puede obtener información de la cuenta sin que acepte el acceso a los contactos. Ver la tabla.

Esta es una respuesta general y es posible que deba publicar preguntas más específicas para obtener detalles adicionales. Espero que esto ayude.

Gracias, pero mi pregunta no era "cómo funciona el sistema de permisos en general". Prefiero saber que se le hizo con Android 6, y en especial a los permisos de las cuentas. Mi pregunta era bastante específica, es su respuesta la que es un poco genérica. Y sí, ya he señalado que el acceso a las cuentas ahora obviamente necesita acceso a todos los contactos (seguramente una medida de seguridad, ya que todas esas cosas nos las venden a nosotros). "Esta es una respuesta general y es posible que deba publicar preguntas más específicas para obtener detalles adicionales". No, esta era una pregunta específica para la que podría necesitar publicar respuestas específicas .