Java 是否有方法访问(读取/写入)特定应用程序';来自操作系统的sqlite数据库?
我正在稍微修改android操作系统,希望访问特定应用程序的sqlite数据库Java 是否有方法访问(读取/写入)特定应用程序';来自操作系统的sqlite数据库?,java,android,sqlite,Java,Android,Sqlite,我正在稍微修改android操作系统,希望访问特定应用程序的sqlite数据库 我知道该位置存储在/data/data/your.applications.package/databases,但是,有没有办法从实际应用程序的上下文之外将数据库加载到sqliteDatabase连接器中?我认为这是不可能的。它是安全模型的基础 安卓 另一个数据库必须实现已发布的ContentProvider 让您能够访问它的数据。 那你可以试试这个 但是,有没有办法从实际应用程序的上下文外部将数据库加载到sqlit
我知道该位置存储在
/data/data/your.applications.package/databases
,但是,有没有办法从实际应用程序的上下文之外将数据库加载到sqliteDatabase连接器中?我认为这是不可能的。它是安全模型的基础
安卓
另一个数据库必须实现已发布的ContentProvider
让您能够访问它的数据。
那你可以试试这个
但是,有没有办法从实际应用程序的上下文外部将数据库加载到sqliteDatabase连接器中
是,如果尝试打开数据库的代码对数据库文件具有读写权限。在这种情况下,只需在SQLiteDatabase
上使用open()
因此,一个以root身份运行的应用程序可以做到这一点,但出于明显的安全原因,普通的其他应用程序不能做到
即使我试图从内核访问
由于内核不运行Dalvik,您将无法以我上面描述的方式打开数据库。Hmm,即使我尝试从内核访问,我也不认为这是可能的,除非其他应用程序使用了内容提供商或具有相同的签名,或已将其数据库存储在SD卡上。因为我是从操作系统访问的,所以我能够对数据库文件进行chmod,并将其加载到SQLiteDatabase中。