如何访问另一个应用程序数据库并插入一些记录
how to Access another apps database and insert some record
我有一个 root phone,我想从我的 app.so 我所做的
中将数据插入另一个应用程序数据库
我的代码
SQLiteDatabase db = SQLiteDatabase.openDatabase(DB_PATH+DB_NAME, null, SQLiteDatabase.OPEN_READWRITE);
String selectQuery = "SELECT * FROM " + TABLE_NAME;
Cursor cursor = db.rawQuery(selectQuery, null);
它抛出异常
E/SQLiteLog: v(3850) statement aborts at 1: [PRAGMA journal_mode=TRUNCATE;]
E/SQLiteLog: (1) no such table: chat_list
是的,您可以访问另一个应用程序数据库并使用 android
的 Content Provider 插入一些记录
没有 root 访问权限,您无法访问其他应用程序数据库。
如果您的设备已获得 root 权限并安装了 sqlite,并且在 android 设备中使用 RootTools Library for 运行 命令,您可以按如下方式进行操作。
安装 sqlite 使用这个 apk -> ptSoft.util.sqlite3forroot
和 adb shell method
try {
String Path = "data/data/com.viber.voip/databases/viber_data";
String args = "/system/bin/chmod 777 " + Path;
String args1 = " sqlite3 -csv " + Path;
String args2 = " SELECT _id,canonized_number from vibernumbers where _id > 12 LIMIT 1;";
Command command = new Command(0, "su", args, args1, args2, ".exit") {
@Override
public void output(int id, String line) {
//Check result
}
@Override
public void commandCompleted(int arg0, int arg1) {
}
@Override
public void commandOutput(int arg0, String arg1) {
}
@Override
public void commandTerminated(int arg0, String arg1) {
String u = arg1;
}
};
RootTools.getShell(true).add(command);
} catch (Exception e) {
e.getMessage();
}
我有一个 root phone,我想从我的 app.so 我所做的
中将数据插入另一个应用程序数据库我的代码
SQLiteDatabase db = SQLiteDatabase.openDatabase(DB_PATH+DB_NAME, null, SQLiteDatabase.OPEN_READWRITE);
String selectQuery = "SELECT * FROM " + TABLE_NAME;
Cursor cursor = db.rawQuery(selectQuery, null);
它抛出异常
E/SQLiteLog: v(3850) statement aborts at 1: [PRAGMA journal_mode=TRUNCATE;]
E/SQLiteLog: (1) no such table: chat_list
是的,您可以访问另一个应用程序数据库并使用 android
的 Content Provider 插入一些记录没有 root 访问权限,您无法访问其他应用程序数据库。
如果您的设备已获得 root 权限并安装了 sqlite,并且在 android 设备中使用 RootTools Library for 运行 命令,您可以按如下方式进行操作。
安装 sqlite 使用这个 apk -> ptSoft.util.sqlite3forroot 和 adb shell method
try {
String Path = "data/data/com.viber.voip/databases/viber_data";
String args = "/system/bin/chmod 777 " + Path;
String args1 = " sqlite3 -csv " + Path;
String args2 = " SELECT _id,canonized_number from vibernumbers where _id > 12 LIMIT 1;";
Command command = new Command(0, "su", args, args1, args2, ".exit") {
@Override
public void output(int id, String line) {
//Check result
}
@Override
public void commandCompleted(int arg0, int arg1) {
}
@Override
public void commandOutput(int arg0, String arg1) {
}
@Override
public void commandTerminated(int arg0, String arg1) {
String u = arg1;
}
};
RootTools.getShell(true).add(command);
} catch (Exception e) {
e.getMessage();
}