HTC Dream(aka T-Mobile G1, Android Dev Phone 1)のcontactsが同期しなくなったので直してみる
ファーム書き換え後のデータが空の状態でgoogleサーバと同期したらサーバ側のデータが消えてしまった。
MyBackupで取ってあったバックアップを戻しても一向にsyncしない。Dreamにはデータがあるのにサーバに転送されない。
いろいろやってもだめだったので、最終的に以下の手順で復旧させた。PC側から操作したが、よく考えるとDream単独でもできる(Terminal Emulatorを入れておこう)。
contactsのsync情報を削除する
以下のSQL文を発行してsync関係のフィールドを全て空にする。
adb shell $ su # sqlite3 /data/data/com.android.providers.contacts/databases/contacts.db sqlite> update people set _sync_account=null, _sync_id=null, _sync_version=null, _sync_local_id=null, _sync_mark=null; sqlite> .exit # reboot
これでsyncするようになった。google側にデータを送ろう。
google側に全てのデータが転送されたのを確認したら、念のためexportしてバックアップ(contacts.csv)を作っておく。
googleをベースに再同期
Dream側のcontactsのデータを全て消す。
adb shell $ su # rm /data/data/com.android.providers.contacts/databases/* # reboot
これでsyncすると万全。