MigrateContactsDatabase » History » Revision 33

Revision 32 (Denis 'GNUtoo' Carikli, 06/02/2022 02:32 PM) → Revision 33/43 (Denis 'GNUtoo' Carikli, 06/02/2022 02:46 PM)

h1. MigrateContactsDatabase 


 h2. Warnings 

 Improvements to this article are welcome: 
 * This article is a work in progress 
 * It hasn't been tested yet and might contain mistakes 
 * It needs to be more clear for less technical users 

 h2. Migration overview 

 Starting with @Replicant 6.0 0004 RC5@, the internal contact database format has changed due to the removal of some nonfree code (the Ambient SDK). 

 So when upgrading from a Replicant 6.0 image before @Replicant 6.0 0004 RC5@, you will need to follow the migration procedure that is in this wiki page. 

 If you follow it, you will have to backup your contact database to a file, then you will erase the internal contact database from within the Replicant recovery. 

 When this is done you will be able to install the new Replicant image. 

 After that you will be able to restore your contacts database by restoring it from the file you backuped it to. 

 h2. Backuping your contacts in a file 

 First, you'll need to make sure Replicant is booted on the device and open the stock contact application. Here's how it looks like after the first start of Replicant 6.0 0003: 


 Then if it shows a screen with "No contacts." in it, you won't need to backup the contacts to a file since you have no contacts, so you can skip this section (Backuping your contacts in a file), but you will still need to follow the rest of the tutorial in order to erase the internal contact database, otherwise your device may continuously crash after installing a new Replicant version with a different contact database format. 

 If instead it shows some contacts, like in the following image you will then need to backup them to a file: 
 !02_contacts.png! file. 

 To do that you will first need to go in the contact application settings. For that click on  

 To do that, once you are in the menu contact application, you can press the settings button (it's in the application or press the settings button (On the Galaxy SIII, it's the button on the top right and it consists left of 3 vertical dots): 
 !02_contacts.png! the home button). 

 That will display a menu. You will then have to select "Import/export" and then "Export to .vcf file": 
 !03_menu.png! file". 

 It will then display a new screen with many contacts. 

 You will need to click a menu button again (it's on press the top right settings button and it consists of 3 vertical dots): 


 Then    a new menu with only one option ("All [ ]") will appear: 


 You will need to select this option to select all contacts. This will bring to 

 Once this is done, a new screen with all Tick button will appear in the contacts being checked. screen. You will then need to press the right tick (it looks like a V) that is between the search button and the menu button on the top-right of the screen. it. 


 Once this is done, it typically brings done you to the download application that let you can save your contact to a file in the device. As there are no other options you need to select "Download" on the left to save it to the download folder: 

 It's then strongly advised to device, and copy the resulting that file outside of the phone for instance: 
 * To copy it on a microSD and keep the microSD in a somewhere safe place where you won't loose it 
 * To copy it (like on an USB key with the help of a special usb cable 
 * To copy it on your computer with the help of adb laptop).  

 This way if you end up having to erase your data somehow, you will still be able to easily restore your contacts. 

 h2. Setup ADB 

 Follow the instructions for [[ADB|setting up ADB on your computer]] so that you can access a root shell on your device. 

 *NOTE*: when prompted on your Replicant device, make sure that you check the box that says *Always allow from this computer* when you grant your computer USB debugging permissions. Otherwise, you will be unable to obtain root shell access on your Replicant device when you reboot it into the recovery OS to actually perform the backup. 

 *NOTE*: for security reasons, you may want to [[ADB#Revoking-all-computers-USB-debugging-permissions|revoke these non-expiring permissions]] once the backup is complete. 

 h2. Reboot into the recovery 

 To reboot in the recovery, you can follow the instructions in the [[RebootIntoTheRecovery]] wiki page. 

 h2. Mount the data partition 

 You then need to mount the data partition. 

 For the @Galaxy S III (GT-I9300)@, the @Galaxy Note II (GT-N7100)@ and the @Galaxy Note 8.0 (GT-N51xx)@, you can use the following command: 
 mount /dev/block/platform/*/by-name/USERDATA /data/ 

 And for the @Galaxy Nexus (GT-I9250)@, you can use the following command: 
 mount /dev/block/platform/*/*/by-name/userdata /data/ 

 For the @Galaxy S II (GT-I9100)@ and the @Galaxy Note (GT-N7000)@, you can use the following command instead: 

 mount /dev/block/platform/*/by-name/DATAFS /data/ 

 And for the @Galaxy Tab 2 (GT-P31xx, GT-P51xx)@: 
 mount /dev/block/platform/*/*/by-name/DATAFS /data/ 

 h2. Erase your contact database 

 Once in the recovery, you will then be able to erase your contact database: 

 rm -rf /data/data/ 
 rm -rf /data/data/ 

 Once this is done you will need to umount the userdata partition. This can be done with the following command: 
 umount /data/ 

 h2. Install the new Replicant images 

 Once the backup is done, you can proceed to install the Replicant images that have the contact database format to migrate to. 

 h2. Restoring your contacts from a file 


 h2. Revoke USB debugging permissions 

 If you don't need @USB debugging permissions@ anymore, it might be a good idea to remove them. The [[ADB#Revoking-all-computers-USB-debugging-permissions|Revoking all computer's USB debugging permissions]] section in the ADB wiki page explains how to do that. 

 h2. Finally 

 That's it! Your contacts database is now backed up. 

 h2. Extra information 

 The file you backuped your contact in is in the "VCard": format. That format is a standard, and many other software are compatible with it.