使用adb导出android系统中的电话本短信

今天换手机,想把原来旧手机中的电话本、短信等信息导出。
本来有很多工具可以使用的,但是这些工具都没法连接手机。
另外,手机端的同步助手之类的又安装不成功,提示“应用程序未安装”的错误。
最后发现只有adb命令行工具可以连接上,于是顺便实验了下用adb导出电话本、短信等信息。

1、先确定电话本、短信的存储位置(网上搜索就能找到,不同的android版本可能略有差异,使用adb shell查看):
电话本数据库路径:
/data/data/com.android.providers.contacts/databases
详细信息 ls -l:
-rw-rw—- app_3    app_3     5293056 2014-09-02 17:15 contacts2.db
短信、运营商、网络相关的数据库路径:
/data/data/com.android.providers.telephony/databases
详细信息 ls -l:
-rw-rw—- radio    radio        4096 2014-09-02 17:15 telephony.db
-rw-rw—- radio    radio      945152 2014-09-02 10:21 mmssms.db
-rw——- radio    radio        4096 2013-05-26 20:47 optable.db

2、尝试把db文件整体导出
adb pull /data/data/com.android.providers.contacts/databases/contacts2.db .
failed to copy ‘/data/data/com.android.providers.contacts/databases/contacts2.db’ to ‘./contacts2.db’: Permission denied
由于权限是660的,直接adb pull不能导出
还好手机上安装了一个R.E.管理器,先将db文件复制到sdcard目录,再用adb pull上传到电脑上就可以了。

3、从db数据库文件中读取需要的内容并导出保存成便于查看的格式
下载数据库工具sqlite:
http://www.sqlite.org/
查看相关的帮助文档:
sqlite3.exe –help
sqlite> .help

在数据库中查看:
SQLite version 3.8.6 2014-08-15 11:46:33
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.

sqlite> .open contacts2.db
sqlite> .tables
_sync_state                       settings
_sync_state_metadata              speed_dial
accounts                          status_updates
activities                        v1_settings
agg_exceptions                    view_contacts
android_metadata                  view_contacts_restricted
calls                             view_data
contact_entities_view             view_data_restricted
contact_entities_view_restricted  view_groups
contacts                          view_raw_contacts
data                              view_raw_contacts_restricted
groups                            view_v1_contact_methods
mimetypes                         view_v1_extensions
name_lookup                       view_v1_group_membership
nickname_lookup                   view_v1_groups
packages                          view_v1_organizations
phone_lookup                      view_v1_people
properties                        view_v1_phones
raw_contacts                      view_v1_photos

sqlite> .open mmssms.db
sqlite> .tables
addr                 pdu                  words
android_metadata     pending_msgs         words_content
attachments          rate                 words_segdir
canonical_addresses  raw                  words_segments
drm                  sms                  wpm
mychannels           sr_pending
part                 threads

sqlite> .open telephony.db
sqlite> .tables
android_metadata  carriers
sqlite> select * from carriers;
1|ctwap|460|03||46003|ctwap@mycdma.cn|vnet.mobi|2|10.0.0.200|80||||*|#777|Packet data bearer|1
2|ctnet|460|03||46003|ctnet@mycdma.cn|vnet.mobi|2||||||default,supl|#777|Packet data bearer|1
sqlite> select * from android_metadata;
zh_CN

sqlite> .open optable.db
sqlite> .tables
operator
sqlite> select * from operator;
sqlite>

导出成csv格式便于查看:
sqlite3.exe –csv mmssms.db "select * from sms" > sms.csv
sqlite3.exe –csv contacts2.db "select * from view_v1_people" > view_v1_people.csv
sqlite3.exe –csv contacts2.db "select * from view_v1_phones" > view_v1_phones.csv

转载于:https://my.oschina.net/u/614290/blog/1793865

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值