RestoreApplicationInternalData » History » Version 3
Denis 'GNUtoo' Carikli, 10/28/2020 11:32 PM
Add draft
1 | 1 | Denis 'GNUtoo' Carikli | h1. RestoreApplicationInternalData |
---|---|---|---|
2 | |||
3 | {{toc}} |
||
4 | |||
5 | h2. /!\ Warning: Draft |
||
6 | |||
7 | This article is in draft form and is being written: |
||
8 | * Everybody is welcome to contribute |
||
9 | * Some things might not be accurate yet, so beware before using the information contained in it. |
||
10 | 2 | Denis 'GNUtoo' Carikli | |
11 | h2. Introduction |
||
12 | |||
13 | In some case, it is useful to be able to restore internal applications data: |
||
14 | * You may want to move the data of an application from a device to another |
||
15 | * If some files like /data/system/packages.xml or /data/system/appops.xml get corrupted, applications can loose access to their data. This can make the launcher and other applications crash. |
||
16 | 3 | Denis 'GNUtoo' Carikli | |
17 | h2. Howto |
||
18 | |||
19 | TODO: |
||
20 | * Explain how to mount a full backup, and why not to restore full backup completely |
||
21 | * Explain how and why create a tarball of the application data |
||
22 | |||
23 | <pre> |
||
24 | $ adb shell "mount /dev/block/platform/dw_mmc/by-name/USERDATA /data" |
||
25 | </pre> |
||
26 | |||
27 | <pre> |
||
28 | $ adb shell |
||
29 | </pre> |
||
30 | |||
31 | <pre> |
||
32 | root@m0:/ # cd /data/data/ |
||
33 | root@m0:/data/data # |
||
34 | </pre> |
||
35 | |||
36 | <pre> |
||
37 | root@m0:/data/data # ls -lad org.smssecure.smssecure |
||
38 | __bionic_open_tzdata: couldn't find any tzdata when looking for localtime! |
||
39 | __bionic_open_tzdata: couldn't find any tzdata when looking for GMT! |
||
40 | __bionic_open_tzdata: couldn't find any tzdata when looking for posixrules! |
||
41 | drwxr-x--x 2 u0_a61 u0_a61 4096 2012-01-01 00:01 org.smssecure.smssecure |
||
42 | </pre> |
||
43 | |||
44 | Here the users and groups are @u0_a61@. |
||
45 | |||
46 | <pre> |
||
47 | root@m0:/data/data # mv org.smssecure.smssecure org.smssecure.smssecure.delme |
||
48 | </pre> |
||
49 | |||
50 | <pre> |
||
51 | root@m0:/data/data # tar tf /org.smssecure.smssecure.tar |
||
52 | ./org.smssecure.smssecure/ |
||
53 | ./org.smssecure.smssecure/lib -> /data/app/org.smssecure.smssecure-1/lib/arm |
||
54 | [...] |
||
55 | </pre> |
||
56 | |||
57 | <pre> |
||
58 | root@m0:/data/data # tar xpf /org.smssecure.smssecure.tar --numeric-owner |
||
59 | </pre> |
||
60 | |||
61 | <pre> |
||
62 | root@m0:/data/data # ls -ld org.smssecure.smssecure |
||
63 | __bionic_open_tzdata: couldn't find any tzdata when looking for localtime! |
||
64 | __bionic_open_tzdata: couldn't find any tzdata when looking for GMT! |
||
65 | __bionic_open_tzdata: couldn't find any tzdata when looking for posixrules! |
||
66 | drwxr-x--x 9 u0_a63 u0_a63 4096 2012-01-01 00:21 org.smssecure.smssecure |
||
67 | </pre> |
||
68 | |||
69 | <pre> |
||
70 | root@m0:/data/data # chown u0_a61:u0_a61 -R org.smssecure.smssecure |
||
71 | root@m0:/data/data # |
||
72 | </pre> |
||
73 | |||
74 | <pre> |
||
75 | root@m0:/data/data # rm -rf org.smssecure.smssecure.delme |
||
76 | root@m0:/data/data # |
||
77 | </pre> |
||
78 | |||
79 | <pre> |
||
80 | root@m0:/data/data # restorecon |
||
81 | usage: restorecon [-D] [-F] [-R] [-n] [-v] FILE... |
||
82 | |||
83 | Restores the default security contexts for the given files. |
||
84 | |||
85 | -D apply to /data/data too |
||
86 | -F force reset |
||
87 | -R recurse into directories |
||
88 | -n don't make any changes; useful with -v to see what would change |
||
89 | -v verbose: show any changes |
||
90 | |||
91 | restorecon: Needs 1 argument |
||
92 | </pre> |
||
93 | |||
94 | <pre> |
||
95 | root@m0:/data/data # restorecon -D -F -R -v /data/ |
||
96 | SELinux: Loaded file_contexts contexts from /file_contexts. |
||
97 | [...] |
||
98 | SELinux: Relabeling /data/data/org.smssecure.smssecure from u:object_r:system_data_file:s0 to u:object_r:app_data_file:s0:c512,c768. |
||
99 | SELinux: Relabeling /data/data/org.smssecure.smssecure/lib from u:object_r:system_data_file:s0 to u:object_r:app_data_file:s0:c512,c768. |
||
100 | [...] |
||
101 | </pre> |
||
102 | |||
103 | <pre> |
||
104 | root@m0:/data/data # cd |
||
105 | root@m0:/ # umount /data/ |
||
106 | root@m0:/ # |
||
107 | </pre> |
||
108 | |||
109 | <pre> |
||
110 | root@m0:/ # sync |
||
111 | root@m0:/ # reboot |
||
112 | </pre> |