Algunas aplicaciones de Android pueden recordar si se instalaron en el mismo dispositivo anteriormente. Suponga que desinstaló una aplicación hace un año. Después de un año, si vuelve a instalar esa misma aplicación, esa aplicación podrá reconocer que se instaló anteriormente en el mismo teléfono.
Las aplicaciones en línea utilizan esta técnica para prohibir permanentemente a los usuarios que vuelvan a crear una cuenta nueva si se les ha prohibido usar el servicio una vez. Cuando dichos usuarios crean una nueva cuenta al reinstalar la aplicación más tarde, estas aplicaciones pueden detectar su "presencia por primera vez" y enviar esta información a los servidores para que el usuario pueda ser bloqueado nuevamente.
¿Cómo lo hacen incluso después de borrar sus datos y desinstalarlos por completo? Significa que guardan algún archivo en algún lugar del teléfono, que no se elimina después de la desinstalación. ¿Cómo desactivo esta detección?
fuente
Do app creators have rights?
En realidad, en mi teléfono, no lo hacen. Puede que les permita ejecutar su código y almacenar sus datos en mi teléfono, pero no tienen derecho y me reservo el derecho de revocar ambos privilegios a mi discreción.Respuestas:
Hay varias formas de identificar un dispositivo único o su usuario:
ANDROID_ID
(únicos por instalación nueva) : este método es simple pero requiere acceso a Internet, al menos en el primer uso. No es muy intrusivo y no persiste en caso de un restablecimiento de fábrica. También es único por usuario. Ver esta información .ANDROID_ID
enfoque, pero requiere un permiso explícito (Android 6.0+) del usuario para acceder. Las aplicaciones que aprovechan el ecosistema de la cuenta de Google (p. Ej., Mejores puntuaciones y logros en los juegos) pueden seguir a un usuario específico y obtener más información que si la aplicación se ha instalado o no.2, 3 y 4 requieren una conexión de red y un servidor en el lado del desarrollador.
fuente
strace
utilidad que se puede utilizar para realizar un seguimiento de todas las llamadas al sistema. Por lo tanto, debe iniciar su aplicación usandostrace
y verificar todas las llamadas del sistema relacionadas con los archivos en el dispositivo y detectará todos los archivos leídos / verificados por la aplicación. Claro: probablemente bastante difícil de hacer en el teléfono inteligente pero definitivamente posible .No está conectado al almacenamiento, sino a la nube. Así es como se recuerda aunque haya eliminado sus datos. Para desactivar esto, vaya a la aplicación de configuración de su dispositivo, toque cuentas de google en personal (toque la cuenta que desee si tiene varias cuentas), luego apague las aplicaciones que no desea sincronizar automáticamente.
fuente
La respuesta de GiantTree lo cubre mejor, pero hay otro punto en el que pensar. Claramente sería un " patrón oscuro ", pero esta identificación también se podría hacer mediante la toma de huellas digitales de ciertos datos del usuario; esto puede verse como una variante en su primer punto ("mantener un archivo"), pero sería más difícil de detectar y menos conveniente para evitar.
Cuán resistente sea esto dependería de los datos elegidos. El método más obvio sería mirar los datos de contacto y usar alguna forma de huella digital de este; Una alternativa podría ser el uso de marcas de tiempo de fotos y otros metadatos. Claramente, estos cambios con el tiempo, por lo que cualquier método que se use necesitaría dar una respuesta cercana después de la modificación (por lo que difiere de una función hash tradicional). Tampoco hay garantía de que un usuario no simplemente limpie los datos rastreados, sino que en muchos casos la gente preferirá no hacerlo.
Es posible que desee ver las huellas digitales del navegador para tener una idea de cómo funciona esto, a pesar de que será algo diferente porque el hardware del teléfono generalmente es más uniforme que el hardware de la PC. Dicho esto, la adición de ciertos detalles del teléfono puede ayudar a reducir un poco la huella digital.
En particular, este enfoque se rompe si un usuario cambia de teléfono y lleva sus datos con ellos a un teléfono nuevo; en este caso (a menos que los detalles del teléfono entren en la huella digital), se puede detectar que el teléfono nuevo ya ha tenido una instalación, como la pregunta formulada. Sin embargo, parece bastante probable que en un escenario en el que una aplicación está tratando de prohibir a un usuario, este sea un resultado deseado (en lugar de prohibir el teléfono específico en sí)
Tenga en cuenta: de ninguna manera estoy diciendo que esto es correcto o "bueno" como una forma de operar si está escribiendo aplicaciones, pero parece razonable discutirlo, ya que es solo a través de la discusión que las personas descubrirán si están lo suficientemente preocupado como para hacer algo al respecto y lo que podría ser.
fuente
Hay una clase SharedPreferences - https://developer.android.com/reference/android/content/SharedPreferences.html - que algunas aplicaciones usan para almacenar datos de preferencias. Estos datos no se eliminan cuando se desinstala la aplicación. Si la aplicación se reinstala más tarde, las claves SharedPreferences guardadas anteriormente aún están disponibles.
fuente
SharedPreferences
en realidad se eliminan cuando se desinstala la aplicación. Hay formas para que los desarrolladores configuren copias de seguridad, pero de forma predeterminada se eliminan al desinstalar. (Fuente: como desarrollador, desinstalo mis aplicaciones para borrar las preferencias. Ver también: stackoverflow.com/a/9815641/1438733 )Hay otra posibilidad: el uso de cookies persistentes con un "tiempo de caducidad" muy grande. Supongo que así es como múltiples aplicaciones del mismo desarrollador solían compartir credenciales tradicionalmente, cuando las credenciales almacenadas a través de la función de cuentas no eran tan abiertas / conocidas por el público.
fuente