Algunas aplicaciones de Android pueden recordar si se instalaron anteriormente en el mismo dispositivo. 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ó antes 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 nueva cuenta si se les prohibió usar el servicio una vez. Cuando dichos usuarios crean una nueva cuenta reinstalando 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 prohibido 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?
Hay varias formas de identificar un dispositivo único o su usuario:
ANDROID_ID
(único 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. Consulte 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 cuentas de Google (p. ej., puntuaciones más altas y logros en juegos) pueden seguir a un usuario específico y obtener más información además de si la aplicación se instaló o no.2, 3 y 4 requieren una conexión de red y un servidor del lado del desarrollador.
strace
utilidad que se puede usar para realizar un seguimiento de todas las llamadas del sistema. Por lo tanto, debe iniciar su aplicación strace
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 lo recuerda a pesar de que borró 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.
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 podría realizarse mediante la toma de huellas dactilares de ciertos datos del usuario; esto puede verse como una variante de su primer punto ("mantener un archivo"), pero sería más difícil de detectar y menos conveniente. para evitar.
La resiliencia dependerá de los datos elegidos. El método más obvio sería mirar los detalles de contacto y usar algún tipo de huella digital de esto; una alternativa podría ser el uso de marcas de tiempo de fotos y otros metadatos. Claramente, estos cambian con el tiempo, por lo que cualquiera que sea el método que se use, aún debe 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 simplemente no borre los datos rastreados, pero en muchos casos la gente preferirá no hacerlo.
Es posible que desee observar las huellas dactilares del navegador para tener una idea de cómo funciona esto, aunque va a ser algo diferente porque el hardware del teléfono suele ser 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.
Donde este enfoque falla en particular es si un usuario cambia de teléfono y lleva sus datos con él a un nuevo teléfono; en este caso (a menos que los detalles del teléfono entren en la huella digital) el nuevo teléfono podría detectarse como si ya tuviera una instalación, como se hace la pregunta. Sin embargo, parece bastante probable que en un escenario en el que una aplicación intente prohibir a un usuario, este podría ser el resultado deseado (en lugar de prohibir el teléfono específico en sí)
Tenga en cuenta: de ninguna manera estoy diciendo que esto sea correcto o "bueno" como una forma de operar si está escribiendo aplicaciones, pero parece razonable discutirlo, ya que solo a través de la discusión las personas descubrirán si están lo suficientemente preocupado como para hacer algo al respecto y lo que podría ser.
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 de SharedPreferences guardadas previamente seguirán estando disponibles.
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. Consulte también: stackoverflow.com/a/9815641/1438733 )Existe otra posibilidad: el uso de cookies persistentes con un "tiempo de caducidad" muy grande. Supongo que así es como varias 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.
s mitchell
desfalcado
desfalcado
dotancohen
Do app creators have rights?
En realidad, en mi teléfono, no lo hacen. Podría permitirles ejecutar su código y almacenar sus datos en mi teléfono, pero no tienen derecho y yo me reservo el derecho de revocar ambos privilegios a mi discreción.usuario428517