0

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

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

4

2 回答 2

1

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

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

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

即使我试图从内核访问?

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

于 2012-04-21T10:53:31.663 回答
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

于 2012-04-21T07:58:46.947 回答