Project

General

Profile

MigrateContactsDatabase » History » Version 20

Denis 'GNUtoo' Carikli, 06/01/2021 10:27 AM
Add more context

1 1 Denis 'GNUtoo' Carikli
h1. MigrateContactsDatabase
2 2 Denis 'GNUtoo' Carikli
3
h2. Warning
4
5
* This article is a work in progress
6
* It hasn't been tested yet and might contain mistakes
7
* It needs to be more clear for less technical users
8
9
h2. Migration
10
11 4 Denis 'GNUtoo' Carikli
{{toc}}
12 1 Denis 'GNUtoo' Carikli
13 19 Denis 'GNUtoo' Carikli
h2. Overview
14 4 Denis 'GNUtoo' Carikli
15 19 Denis 'GNUtoo' Carikli
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).
16 1 Denis 'GNUtoo' Carikli
17 19 Denis 'GNUtoo' Carikli
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.
18
19
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.
20
21
When this is done you will be able to install the new Replicant image.
22
23
After that you will be able to restore your contacts database by restoring it from the file you backuped it to.
24
25
h2. Backuping your contacts in a file
26
27 7 Denis 'GNUtoo' Carikli
First, you'll need to make sure Replicant is booted on the device and open the stock contact application.
28
29 20 Denis 'GNUtoo' Carikli
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.
30 7 Denis 'GNUtoo' Carikli
31 20 Denis 'GNUtoo' Carikli
If instead it shows some contacts, you will then need to backup them to a file.
32 7 Denis 'GNUtoo' Carikli
33
To do that you will first need to go in the contact application settings. 
34
35
To do that, once you are in the contact application, you can press the settings button in the application or press the settings button (On the Galaxy SIII, it's the button on the left of the home button).
36
37
That will display a menu. You will then have to select "Import/export" and then "Export to .vcf file".
38
39
It will then display a new screen with many contacts.
40
41
You will need to again press the settings button and a new menu with only one option ("All [ ]") will appear. 
42
43
You will need to select this option to select all contacts.
44
45
Once this is done, a new Tick button will appear in the screen. You will need to press it.
46
47
Once this is done you can save your contact to a file in the device, and copy that file somewhere safe (like on your laptop). 
48
49
This way if you end up having to erase your data somehow, you will still be able to easily restore your contacts.
50 4 Denis 'GNUtoo' Carikli
51
h2. Setup ADB
52
53
Follow the instructions for [[ADB|setting up ADB on your computer]] so that you can access a root shell on your device.
54
55
*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.
56
57
*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.
58
59 12 Denis 'GNUtoo' Carikli
h2. Reboot into the recovery
60
61
To reboot in the recovery, you can follow the instructions in the [[RebootIntoTheRecovery]] wiki page.
62
63 6 Denis 'GNUtoo' Carikli
h2. Mount the data partition
64
65 14 Denis 'GNUtoo' Carikli
You then need to mount the data partition.
66 1 Denis 'GNUtoo' Carikli
67 14 Denis 'GNUtoo' Carikli
For the @Galaxy S III (GT-I9300)@, and the @Galaxy Note 8.0 (GT-N51xx)@, you can use the following command:
68 9 Denis 'GNUtoo' Carikli
<pre>
69 13 Denis 'GNUtoo' Carikli
mount /dev/block/platform/*/by-name/USERDATA /data/
70 1 Denis 'GNUtoo' Carikli
</pre>
71 9 Denis 'GNUtoo' Carikli
72 14 Denis 'GNUtoo' Carikli
For the @Galaxy Note (GT-N7000)@, you can use the following command instead:
73 11 Denis 'GNUtoo' Carikli
74
<pre>
75 1 Denis 'GNUtoo' Carikli
mount /dev/block/platform/dw_mmc/by-name/DATAFS /data/
76 11 Denis 'GNUtoo' Carikli
</pre>
77
78 14 Denis 'GNUtoo' Carikli
Other devices / TODO:
79 6 Denis 'GNUtoo' Carikli
80 4 Denis 'GNUtoo' Carikli
TODO: other devices + background text.
81
82
h2. Erase your contact database
83
84
Once in the recovery, you will then be able to erase your contact database:
85
86 2 Denis 'GNUtoo' Carikli
<pre>
87 1 Denis 'GNUtoo' Carikli
rm -rf /data/data/com.android.providers.contacts/databases/
88
</pre>
89 4 Denis 'GNUtoo' Carikli
90 15 Denis 'GNUtoo' Carikli
Once this is done you will need to umount the userdata partition. This can be done with the following command:
91
<pre>
92
umount  /data/
93
</pre>
94 10 Denis 'GNUtoo' Carikli
95 4 Denis 'GNUtoo' Carikli
h2. Install the new Replicant images
96 1 Denis 'GNUtoo' Carikli
97
Once the backup is done, you can proceed to install the Replicant images that have the contact database format to migrate to.
98 19 Denis 'GNUtoo' Carikli
99
h2. Restoring your contacts from a file
100
101
TODO
102 4 Denis 'GNUtoo' Carikli
103
h2. Revoke USB debugging permissions
104
105
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.
106
107 17 Denis 'GNUtoo' Carikli
h2. Finally
108
109 16 Denis 'GNUtoo' Carikli
That's it! Your contacts database is now backed up.
110 17 Denis 'GNUtoo' Carikli
111
h2. Extra information
112
113
The file you backuped your contact in is in the "VCard":https://en.wikipedia.org/wiki/VCard format. That format is a standard, and many other software are compatible with it.