我正在稍微修改 android 操作系统并希望访问特定应用程序的 sqlite 数据库。
我知道该位置存储在/data/data/your.applications.package/databases
,但是,有没有办法从实际应用程序的上下文之外将数据库加载到 sqliteDatabase 连接器中?
但是,有没有办法从实际应用程序的上下文之外将数据库加载到 sqliteDatabase 连接器中?
是的,如果尝试打开数据库的代码对数据库文件具有读写权限。在这种情况下,只需使用open()
on SQLiteDatabase
。
因此,出于明显的安全原因,以 root 身份运行的应用程序可以执行此操作,但普通的其他应用程序不能。
即使我试图从内核访问?
由于内核不运行 Dalvik,您将无法以我上面描述的方式打开数据库。
我不认为这是可能的。它是 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