我想为项目调试一些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并未向我提供有关该机制或如何通过电话完成此操作的详细信息。
答案 0 :(得分:3)
数据库未加密。您正在使用SQLite数据库浏览器20.b1程序不支持的数据库版本。
简易解决方案:
提取SQLite管理员并将捆绑的sqlite3.dll替换为从sqlite.org下载的最新版本
运行SQLite Administrator程序。
打开您的Android数据库。
完成。
---更多信息 -
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
如果有帮助,请告诉我!另外,你能告诉我你的手机和其他信息,以帮助产生更强大的答案。
你有可能损坏文件吗?