¿Es posible acceder a la base de datos SQLite de una aplicación para Android en mi teléfono?

Estoy creando una aplicación donde el usuario hace algunas cosas durante un juego, y estas acciones se registran en una base de datos SQLite. Al final del juego, la aplicación presenta estos registros a través de una pantalla, que son leídos por los administradores del juego (como, leídos físicamente por los administradores del juego que ven la pantalla). ¿Hay alguna manera para que los concursantes manipulen la base de datos, y si no, qué medidas de seguridad les impiden hacer esto?

5 Solutions collect form web for “¿Es posible acceder a la base de datos SQLite de una aplicación para Android en mi teléfono?”

La base de datos se almacena en /data/data/your.applications.package/databases . Normalmente esta ubicación sólo podría ser el acceso del usuario al sistema operativo Android creado para la aplicación. Ningún otro usuario puede acceder a esta ubicación a menos que el dispositivo esté enraizado. Entonces cualquier usuario puede tener acceso a cualquier localización en el teléfono y manipular los datos.

Así que si desea evitar que los usuarios de hacer trampa que necesita alguna manera de comprobar si los valores en la base de datos están intactas. Tal vez usted puede almacenar algún tipo de huella digital en un servidor para comprobar esto.

Sí, puedes hacerlo programáticamente, siempre y cuando seas el desarrollador. Aquí está el Android docs para SQLiteDatabase .

Estos son algunos enlaces para trabajar con SQLiteDatabases de forma programática:

  1. Desde documentos de Android
  2. De un blog
  3. De otro blog

El SQLiteDatabase en una aplicación debe ser "sandboxed" a esa aplicación específica, lo que significa que ninguna otra aplicación debe ser capaz de obtener a esos datos, siempre y cuando el desarrollador no le proporcionó acceso a él con un ContentProvider. Así que para responder a su pregunta final, no, no debería haber una manera para los concursantes para manipular la base de datos, excepto en las formas que el desarrollador ya ha permitido.

Sí, los usuarios pueden examinar y cambiar la base de datos cuando se conectan a través de USB a través de ADB: http://developer.android.com/guide/developing/tools/adb.html#shellcommands

Actualizar:

Esto sólo funciona con dispositivos enraizados o con dispositivos Google Dev oficiales: ¿Por qué tengo acceso denegado a la carpeta de datos al usar adb?

Sin embargo, esto permitiría a los usuarios acceder a la base de datos y cambiar los resultados del juego. Así que no puedes confiar en que databse no sea accesible.

A menos que emita los dispositivos a los usuarios y observe atentamente lo que hacen con ellos, para estar seguros contra cualquier persona determinada, debe firmar digitalmente las entradas en la base de datos utilizando un mecanismo oculto en el código de la aplicación obnuscada. E incluso eso sólo lo hace más difícil.

Tenga en cuenta que el uso de un servidor no ayuda a menos que una parte clave de la propia lógica del juego se implemente en el servidor; si el usuario sabe cómo falsificar su mecanismo de firma para escribir entradas falsas de base de datos, también pueden enviar informes falsos a su servidor.

Puede utilizar Proguard para ofuscar su código.

También tiene la base de datos ser único con un identificador particular de acuerdo con el identificador del dispositivo con algún tipo de devolución de llamada del servidor, para validar la base de datos.

  • Android Cursor? Cómo leer datos de objetos?
  • Conexiones de la base de datos Android y cursores oh my
  • Restricción única del reino en varios campos
  • Cómo utilizar SQLiteDatabase.CursorFactory
  • Compartir y persistir datos entre varias aplicaciones de Android
  • ¿Cómo agregar y utilizar la extensión de carga de Sqlite en android?
  • Ubicación de la base de datos sqlite en el dispositivo
  • Eliminar todas las filas de una tabla, lanza nullpointer
  • Cómo ver los datos guardados en la base de datos android (SQLite)?
  • Obtener nueva fila agregada en la tabla SQLite
  • ¿Cómo puedo interpretar este seguimiento de la pila de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.