查看/转储加密Android SMS数据库

时间:2012-04-03 10:10:16

标签: android sqlite adb

我想为项目调试一些SMS问题,并希望在手机中查看SMS数据。首先,我拿出了数据。

adb pull /data/data/com.android.providers.telephony/databases/mmssms.db ~/Downloads/mmssms.db

所以我尝试使用Mac上的SQLite Database Browser 20.b1(OS X 10.6.8),但是当我打开文件时,我看到了nada。然后我尝试了sqlite3,我仍然只看到一点,但是我想知道我是多么白痴。

mbp62:~ sillyusernamehere$ sqlite3 ~/Downloads/mmssms.db 
SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
Error: file is encrypted or is not a database
sqlite> 

那么可以解密数据库吗? Google-fu并未向我提供有关该机制或如何通过电话完成此操作的详细信息。

2 个答案:

答案 0 :(得分:3)

数据库未加密。您正在使用SQLite数据库浏览器20.b1程序不支持的数据库版本。

简易解决方案:

  1. http://www.sqlite.org/sqlite.html

  2. 下载SQLite dll文件
  3. http://sqliteadmin.orbmu2k.de/

  4. 下载SQLite管理员
  5. 提取SQLite管理员并将捆绑的sqlite3.dll替换为从sqlite.org下载的最新版本

  6. 运行SQLite Administrator程序。

  7. 打开您的Android数据库。

  8. 完成。

  9. ---更多信息 -

    android数据库可以使用sqlite windows binary打开,这是一个shell程序。

    来自windows cmd提示的示例命令:

        c:> c:\sqlite3.exe c:\mmssms.db
        sqlite> .tables
    

    表格列出

        sqlite> .mode column
        sqlite> select * from sms
    

    sms表在列视图中列出

        ctrl-c
    

    程序退出

    请参阅sqlite文档以获取数据转储。

答案 1 :(得分:0)

我写了一篇关于如何在android中为wifi网络更改主机名的教程。在本教程中,我解释了如何使用sqlite3。

我不相信你的" mmssms.db"应加密。我也查看了我的Android手机上的其他数据库,但他们没有加密。

查看此处:

http://blog.burrowsapps.com/2011/09/android-change-hostname.html?q=hostname

file settings.db
sqlite3 settings.db
sqlite> .databases
sqlite> .tables
sqlite> .schema secure
sqlite> select * from secure where _id = "24";
sqlite> select * from secure where name = "android_id";
sqlite> select * from secure where value = "";
sqlite> update secure set value = 0 where _id = 24;
sqlite> .exit

如何查看(更多示例):

http://forum.xda-developers.com/archive/index.php/t-448361.html

http://forum.xda-developers.com/archive/index.php/t-1453840.html

如果有帮助,请告诉我!另外,你能告诉我你的手机和其他信息,以帮助产生更强大的答案。

你有可能损坏文件吗?