Android使用adb进行短信数据转移的方法

作者:Yongquan

 

笔者在某个应用测试中有发现特殊短信传输失败的问题,该问题涉及在地短信运营商与开发者分处不同地区无法复现。故本文介绍了一种使用eng版本模拟现场的方法。

首先,我们需要从测试样机导出短信数据库,从代码中我们可以找到,短信的数据库应该在/data/data/com.android.providers.telephony/databases

/mmssms.db。但实际上,在该路径下并没有找到该文件,原因是android N以后加入了多用户,不同用户的data目录发生改变,可以用adb在data目录下进行查找。

Android使用adb进行短信数据转移的方法_第1张图片

找到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和权限。

       cd /data/ user_de/0/com.android.providers.telephony/databases

       chown radio:radio mmssms.db

       chmod 660 mmssms.db


Android使用adb进行短信数据转移的方法_第2张图片

导入完成后,需要重启可以查看导入的数据。

用该方法也可以导入第三方应用的数据,需要注意的是,如果是第三方应用,文件的owner和appid相关,在不同样机上可能会不同,需要修改owner与appid一致,否则可能出现访问权限的问题。






你可能感兴趣的:(Android使用adb进行短信数据转移的方法)