In my previous article, I described how to restore contacts from a backup to an iPhone. The infuriating thing about restoring AddressBook.sqlitedb to an iPhone is that one can’t just drop in a replacement file, because after you reboot, the new file gets overwritten with an empty one. I traced the overwriting of the addressbook to a process called dataaccessd. This process can’t be killed easily, because launchd will automatically restart it if it dies. After some testing, I have now devised a procedure which is simpler than the one described in my previous article:
This procedure assumes that you have already obtained a copy of AddressBook.sqlitedb which contains the contacts you want to restore.
1. Using iFunBox, navigate to Raw File System/Library/LaunchDaemons and copy com.apple.AddressBook.plist and com.apple.dataaccess.dataaccessd.plist to your computer.
2. Using iFunBox, delete com.apple.AddressBook.plist and com.apple.dataaccess.dataaccessd.plist from your iPhone.
3. Power off and restart your iPhone
4. Using iFunBox, copy your AddressBook.sqlitedb into the iPhone at Raw File System/var/mobile/Library/AddressBook
5. Using iFunBox, copy the com.apple.AddressBook.plist and com.apple.dataaccess.dataaccessd.plist from your computer back to the Raw File System/Library/LaunchDaemons folder in your iPhone.
6. Power off and restart the iPhone, and enjoy your restored contacts.