我正在稍微修改Android操作系统并希望访问特定应用程序的sqlite数据库。
我知道该位置存储在/data/data/your.applications.package/databases
,但是,有没有办法从实际应用程序的上下文之外将数据库加载到sqliteDatabase连接器中?
答案 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