使用adb導出android系統中的電話本短信

今天換手機,想把原來舊手機中的電話本、短信等信息導出。
原本有不少工具能夠使用的,可是這些工具都無法鏈接手機。
另外,手機端的同步助手之類的又安裝不成功,提示「應用程序未安裝」的錯誤。
最後發現只有adb命令行工具能夠鏈接上,因而順便實驗了下用adb導出電話本、短信等信息。android

一、先肯定電話本、短信的存儲位置(網上搜索就能找到,不一樣的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.dbsql

二、嘗試把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上傳到電腦上就能夠了。shell

三、從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_photosapp

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                 threadside

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.csvrest

相關文章
相關標籤/搜索