无法进入系统的三星Android手机恢复联系人、短信数据并重置手机的过程
2014-09-24 11:54
591 查看
领导的一台双卡双待的Samsung Grand DUOS(i9082)联通合约手机前一阵子突然坏了,按开机键之后,显示Woo和三星商标,喊一句“欢迎进入Woo的世界”,就开始在Woo动画和三星动画之间循环,系统无法进入了!
手机没花钱,是充话费送的,但是里面的通讯录没有备份!将近两千个号码啊……虽然换了个小米继续顶着,但是领导一直就这个通讯录问题碎碎念……
于是昨天下定决心给她解决这个问题。
首先是确定一个原则,就是没有拿出数据之前,都不能刷机或者重置手机到初始状态,因为那都会把已有数据覆盖掉。
我先尝试用数据线连接手机和Windows,在手机启动后,Windows上安装的腾讯应用宝识别出有安卓设备连接了。这是一个好消息!但是应用宝无法完成手机型号的识别和最终的连接,也就无法导出通讯录。
因为应用宝推荐了一个刷机精灵,抱着试试看的心态,安装了它,然后它也能连接手机,但无法识别型号,在手工选择型号后,也无法导出通讯录等数据。不过这个软件自带了ADB工具(用于通过命令行操作安卓系统),它也能很方便的将手机启动到Recover模式。当然我认为自己装一个ADB应该也可以。
那么就启动ADB命令行窗口,经过一系列的google和试验,通过下面的步骤可以将通讯录、短信和通话记录导出,当然你也可以用类似的步骤导出其它你想要的文件。
1. 拷贝通讯录、短信和通话记录数据库文件到存储卡
ADB pull命令可以把安卓系统里的文件下载到本地,但是对于系统文件,直接下载会报无权限错误(Permission Denied),那么我们需要先将系统文件拷贝到sdcard上,然后再下载。但由于安卓系统里把拷贝(cp)命令阉割了,所以必须用其它办法拷贝。有人说可以通过安装busybox来获得cp命令,但是经过测试,在三星这台机上是安装不上的。以下是ADB命令行过程,我们使用cat和重定向来实现拷贝:
2. 拷贝通讯录、短信和通话记录数据库文件到本地
这样几个数据库文件就都备份出来了。可以用sqlite3命令行(请自行下载)或用Firefox的SQLite Manager来查看一下
3. 进入Recover模式并重置手机到出厂状态
可以用前面提到的刷机精灵,也可以先关机,然后同时按住音量上键、Home键和开关机键,这样都能进入Recover模式。
先后用音量键选择wipe data/factory和wipe cache,按开关机键确认,这样就擦除了所有数据并重置成出厂状态。
然后重启手机。
4. 导入备份的通讯录、短信和通话记录数据库文件到手机
将重置完成的手机开机后连上数据线到Windows,打开ADB命令行窗口,进入备份目录,然后使用ADB push命令将备份文件传送到sdcard上(此时sdcard已被重置,原来房子上面的数据都不再存在)
上面同样是用cat加重定向实现了cp功能,删除了原来的.db-shm文件和.db-wal文件,这两个文件在sqlite3访问数据库时会自动生成。
再重启一遍手机,打开通讯录,是不是都回来了?:)
手机没花钱,是充话费送的,但是里面的通讯录没有备份!将近两千个号码啊……虽然换了个小米继续顶着,但是领导一直就这个通讯录问题碎碎念……
于是昨天下定决心给她解决这个问题。
首先是确定一个原则,就是没有拿出数据之前,都不能刷机或者重置手机到初始状态,因为那都会把已有数据覆盖掉。
我先尝试用数据线连接手机和Windows,在手机启动后,Windows上安装的腾讯应用宝识别出有安卓设备连接了。这是一个好消息!但是应用宝无法完成手机型号的识别和最终的连接,也就无法导出通讯录。
因为应用宝推荐了一个刷机精灵,抱着试试看的心态,安装了它,然后它也能连接手机,但无法识别型号,在手工选择型号后,也无法导出通讯录等数据。不过这个软件自带了ADB工具(用于通过命令行操作安卓系统),它也能很方便的将手机启动到Recover模式。当然我认为自己装一个ADB应该也可以。
那么就启动ADB命令行窗口,经过一系列的google和试验,通过下面的步骤可以将通讯录、短信和通话记录导出,当然你也可以用类似的步骤导出其它你想要的文件。
1. 拷贝通讯录、短信和通话记录数据库文件到存储卡
ADB pull命令可以把安卓系统里的文件下载到本地,但是对于系统文件,直接下载会报无权限错误(Permission Denied),那么我们需要先将系统文件拷贝到sdcard上,然后再下载。但由于安卓系统里把拷贝(cp)命令阉割了,所以必须用其它办法拷贝。有人说可以通过安装busybox来获得cp命令,但是经过测试,在三星这台机上是安装不上的。以下是ADB命令行过程,我们使用cat和重定向来实现拷贝:
> adb shell shell@android:/ $ su shell@android:/ # cd /data/data/com.android.providers.telephony/databases shell@android:/data/data/com.android.providers.telephony/databases/ # cat mmssms.db > /sdcard/mmssms.db shell@android:/data/data/com.android.providers.telephony/databases/ # cat telephony.db > /sdcard/telephony.db shell@android:/data/data/com.android.providers.telephony/databases/ # cd /data/data/com.android.providers.contacts/databases shell@android:/data/data/com.android.providers.contacts/databases/ # cat contacts2.db > /sdcard/contacts2.db shell@android:/data/data/com.android.providers.contacts/databases/ # exit shell@android:/ $ exit
2. 拷贝通讯录、短信和通话记录数据库文件到本地
> adb pull /sdcard/mmssms.db 2191 KB/s (163840 bytes in 0.073s) > adb pull /sdcard/telephony.db 1798 KB/s (168930 bytes in 0.092s) > adb pull /sdcard/contacts2.db 1809 KB/s (699790 bytes in 0.377s)
这样几个数据库文件就都备份出来了。可以用sqlite3命令行(请自行下载)或用Firefox的SQLite Manager来查看一下
> sqlite3 contacts2.db SQLite version 3.7.13 2012-07-17 17:46:21 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .tables _sync_state status_updates _sync_state_metadata stream_item_photos accounts stream_items agg_exceptions v1_settings android_metadata view_contacts calls view_contacts_restricted contacts view_data data view_data_restricted data_usage_stat view_data_usage_stat default_directory view_dialer_keypad_lookup dialer_keypad_lookup view_entities directories view_entities_restricted emergency view_groups groups view_raw_contacts mimetypes view_raw_contacts_restricted name_lookup view_raw_entities nickname_lookup view_raw_entities_restricted packages view_stream_items phone_lookup view_stream_items_restricted photo_files view_v1_contact_methods properties view_v1_extensions raw_contacts view_v1_group_membership search_index view_v1_groups search_index_content view_v1_organizations search_index_docsize view_v1_people search_index_segdir view_v1_phones search_index_segments view_v1_photos search_index_stat visible_contacts settings voicemail_status speed_dial sqlite> select * from contacts; ...................(内容略去)
3. 进入Recover模式并重置手机到出厂状态
可以用前面提到的刷机精灵,也可以先关机,然后同时按住音量上键、Home键和开关机键,这样都能进入Recover模式。
先后用音量键选择wipe data/factory和wipe cache,按开关机键确认,这样就擦除了所有数据并重置成出厂状态。
然后重启手机。
4. 导入备份的通讯录、短信和通话记录数据库文件到手机
将重置完成的手机开机后连上数据线到Windows,打开ADB命令行窗口,进入备份目录,然后使用ADB push命令将备份文件传送到sdcard上(此时sdcard已被重置,原来房子上面的数据都不再存在)
> adb push mmssms.db /sdcard/ > adb push telephony.db /sdcard/ > adb push contacts2.db /sdcard/ > adb shell shell@android:/ $ su shell@android:/ # cd /data/data/com.android.providers.telephony/databases shell@android:/data/data/com.android.providers.telephony/databases/ # mv mmssms.db mmssms.db.orig shell@android:/data/data/com.android.providers.telephony/databases/ # mv telephony.db telephony.db.orig shell@android:/data/data/com.android.providers.telephony/databases/ # rm *.db-shm *.db-wal shell@android:/data/data/com.android.providers.telephony/databases/ # cat /sdcard/mmssms.db > mmssms.db shell@android:/data/data/com.android.providers.telephony/databases/ # cat /sdcard/telephony.db > telephony.db shell@android:/data/data/com.android.providers.telephony/databases/ # cd /data/data/com.android.providers.contacts/databases shell@android:/data/data/com.android.providers.contacts/databases/ # mv contacts2.db contacts2.db.orig shell@android:/data/data/com.android.providers.contacts/databases/ # rm *.db-shm *.db-wal shell@android:/data/data/com.android.providers.contacts/databases/ # cat /sdcard/contacts2.db > contacts2.db shell@android:/data/data/com.android.providers.contacts/databases/ # exit shell@android:/ $ exit
上面同样是用cat加重定向实现了cp功能,删除了原来的.db-shm文件和.db-wal文件,这两个文件在sqlite3访问数据库时会自动生成。
再重启一遍手机,打开通讯录,是不是都回来了?:)
相关文章推荐
- Android - xml动画,识别手势动作,代码抽取,获取手机SIM卡串号,获取联系人数据,开机广播,发送/解析短信,报警音乐
- Android ContentResolver读取手机系统数据<联系人>
- 三星 S4 手机误删除相片(相册)后的恢复问题,仅记录处理过程,其它Android手机同样适用
- Android 系统重要数据备份: 电话+短信+联系人
- 拯救安卓手机的数据(无法进入系统只能打开recovery)
- linux reiserfs文件系统损坏后的数据恢复过程记录
- Android手机误删文件后的数据恢复
- [Android 数据库] android手机获取系统短信sqlite数据库并查看内容
- Android手机误删SDCard文件后的数据恢复
- linux reiserfs文件系统损坏后的数据恢复过程记录
- Android系统手机重启与恢复出产设置源代码跟踪
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
- Android系统Recovery工作原理之使用update.zip升级过程分析(五)---update.zip包怎样从上层进入Recovery服务
- Android系统Recovery工作原理之使用update.zip升级过程分析(五)---update.zip包从上层进入Recovery服务
- xp恢复逻辑分区,抢救ubuntu双系统,以及ubuntu虚拟机gnome power manager 报错导致无法登陆进入系统的问题。
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
- xp和ubuntu双系统误删分区后数据恢复过程
- Android 短信数据库与联系人数据下的.db-wal文件
- Nokia S60系统问题:正常接收手机短信、但无法接收ISP短信(10086、携程、招行)
- 向Android系统自带的联系人界面添加数据