有没有办法从操作系统访问(读/写)特定应用程序的sqlite数据库?

时间:2012-04-21 07:43:30

标签: java android sqlite

我正在稍微修改Android操作系统并希望访问特定应用程序的sqlite数据库。

我知道该位置存储在/data/data/your.applications.package/databases,但是,有没有办法从实际应用程序的上下文之外将数据库加载到sqliteDatabase连接器中?

2 个答案:

答案 0 :(得分:1)

  

但是,有没有办法从实际应用程序的上下文之外将数据库加载到sqliteDatabase连接器中?

是的,如果尝试打开数据库的代码具有对数据库文件的读写权限。在这种情况下,只需在open()上使用SQLiteDatabase

因此,以root身份运行的应用程序可以执行此操作,但出于明显的安全原因,普通的其他应用程序无法执行此操作。

  

即使我试图从内核访问?

由于内核不运行Dalvik,您将无法以上述方式打开数据库。

答案 1 :(得分:0)

我不认为这是可能的。它是安全模型的基础 Android系统。 http://developer.android.com/intl/de/guide/topics/security/security.html

其他数据库必须已实现已发布的ContentProvider 在它上面,你可以访问它的数据。 然后你可以尝试这个http://androidforums.com/application-development/65082-accessing-database-another-application-using-content-provider.html