Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有方法访问(读取/写入)特定应用程序';来自操作系统的sqlite数据库?_Java_Android_Sqlite - Fatal编程技术网

Java 是否有方法访问(读取/写入)特定应用程序';来自操作系统的sqlite数据库?

Java 是否有方法访问(读取/写入)特定应用程序';来自操作系统的sqlite数据库?,java,android,sqlite,Java,Android,Sqlite,我正在稍微修改android操作系统,希望访问特定应用程序的sqlite数据库 我知道该位置存储在/data/data/your.applications.package/databases,但是,有没有办法从实际应用程序的上下文之外将数据库加载到sqliteDatabase连接器中?我认为这是不可能的。它是安全模型的基础 安卓 另一个数据库必须实现已发布的ContentProvider 让您能够访问它的数据。 那你可以试试这个 但是,有没有办法从实际应用程序的上下文外部将数据库加载到sqlit

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


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

我认为这是不可能的。它是安全模型的基础 安卓

另一个数据库必须实现已发布的ContentProvider 让您能够访问它的数据。 那你可以试试这个

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

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

因此,一个以root身份运行的应用程序可以做到这一点,但出于明显的安全原因,普通的其他应用程序不能做到

即使我试图从内核访问


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

Hmm,即使我尝试从内核访问,我也不认为这是可能的,除非其他应用程序使用了内容提供商或具有相同的签名,或已将其数据库存储在SD卡上。因为我是从操作系统访问的,所以我能够对数据库文件进行chmod,并将其加载到SQLiteDatabase中。