android - 我可以在非 root 设备上使用 sqlite 3

标签 android sqlite root-access

大家好,我知道如何在模拟器上使用sqlite3来监控应用程序的数据。可以在真机上使用吗?
我的设备是 Nexus S,当我尝试使用我的设备时,它说未找到 sqlite3。 sqlite 3设备是否必须是root设备?我的设备不是 root 设备。

我知道其他查找数据的机制,例如将数据库文件转储到 SD 卡中,然后使用第三方 SQL 浏览器来查看数据。

最佳答案

你不能使用 Sqlite3,但你可以这样做。 以下解决方案仅适用于可调试的应用程序。它可能无法在所有设备上正常工作,因为 run-as 命令在某些设备上不起作用,尤其是 Jelly Bean。

  1. ​创建*.bat或*.sh文件并复制以下脚本​​

    adb shell run-as [package] chmod 777/data/data/[package]/databases/

    adb shell run-as [package] chmod 777 data/data/[package]/databases/[db_file_name]

    adb shell cp/data/data/[package]/databases/[db_file_name]/sdcard/

    adb pull/sdcard/[db_file_name]

  2. ​将[包]更改为所需的应用程序包

  3. 将 [db_file_name] 更改为所需的数据库名称 运行 bat 文件并 您应该在与 bat 相同的文件夹中看到复制的数据库 文件

关于android - 我可以在非 root 设备上使用 sqlite 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23011231/

相关文章:

android - Android Studio 和 Gradle 未知类 'Object' 的 Proguard 说明

android - 在Android Market中托管GPL代码(dcm4che库)

android - Firestore : Error: Program type already present: com. google.android.gms.internal.measurement.zzeb

SQlite 从表中为每个项目选择前 N 行

Android 过滤 ListView 用户输入

android - Laravel 和 Android 与 MySQL 数据库

c++ - 如何为所有表单声明公共(public)数据库

linux - 在 Linux 中以编程方式请求提升权限

c - 使用C代码查找文件的 inode 号