作者:Yongquan
笔者在某个应用测试中有发现特殊短信传输失败的问题,该问题涉及在地短信运营商与开发者分处不同地区无法复现。故本文介绍了一种使用eng版本模拟现场的方法。
首先,我们需要从测试样机导出短信数据库,从代码中我们可以找到,短信的数据库应该在/data/data/com.android.providers.telephony/databases
/mmssms.db。但实际上,在该路径下并没有找到该文件,原因是android N以后加入了多用户,不同用户的data目录发生改变,可以用adb在data目录下进行查找。

找到db文件后,就可以用adb导出该文件。在该目录下有一个mmssms.db-journal数据文件,这个是sqlite的临时日志文件,正常情况下可以忽略。
Adb pull /data/ user_de/0/com.android.providers.telephony/databases
/mmssms.db ./
接下来就可以导入到调试样机,此时需要注意该文件的owner和权限。
Adb push mmssms.db /data/ user_de/0/com.android.providers.telephony/
databases/
导入后使用adb查看,发现文件的owner是root,需要改成和上图一样的owner和权限。
&n

本文介绍了如何通过adb工具在Android设备间转移短信数据。针对Android N及以上版本因多用户导致的数据路径变化,详细阐述了查找mmssms.db数据库文件的过程,并提供了adb命令来拉取、推送数据库文件,同时强调了调整文件owner和权限的重要性,以确保数据能被正确访问。
最低0.47元/天 解锁文章
2208





