Project

General

Profile

UserMaintenanceAndTroubleshouting » History » Version 1

Denis 'GNUtoo' Carikli, 12/20/2019 12:09 AM

1 1 Denis 'GNUtoo' Carikli
h1. UserMaintenanceAndTroubleshouting
2
3
h2. Restoring application data from a block device backup.
4
5
In /data/data there is the application data.
6
7
The issue is that just copying the /data/data/<application> from a block device backup will not always work. In some cases, the application will crash like that:
8
<pre>
9
01-02 06:49:06.105  5938  5951 E SQLiteLog: (14) os_unix.c:31282: (13) open(/data/user/0/org.smssecure.smssecure/databases/_jobqueue-SilenceJobs) - 
10
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: Failed to open database '/data/user/0/org.smssecure.smssecure/databases/_jobqueue-SilenceJobs'.
11
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
12
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
13
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:207)
14
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:191)
15
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
16
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
17
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
18
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:806)
19
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:791)
20
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
21
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:234)
22
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)https://redmine.replicant.us/projects/replicant/issues/new
23
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at org.whispersystems.jobqueue.persistence.PersistentStorage.getJobs(PersistentStorage.java:80)
24
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at org.whispersystems.jobqueue.persistence.PersistentStorage.getAllUnencrypted(PersistentStorage.java:71)
25
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at org.whispersystems.jobqueue.JobManager$LoadTask.run(JobManager.java:153)
26
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
27
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
28
01-02 06:49:06.110  5938  5951 E SQLiteDatabase: 	at java.lang.Thread.run(Thread.java:818)
29
01-02 06:49:06.110  5938  5951 E AndroidRuntime: FATAL EXCEPTION: pool-1-thread-1
30
01-02 06:49:06.110  5938  5951 E AndroidRuntime: Process: org.smssecure.smssecure, PID: 5938
31
01-02 06:49:06.110  5938  5951 E AndroidRuntime: Theme: themes:{}
32
</pre>
33
34
The above crash occured while switching between Replicant 6.0 minor revisions (6.0 0003 -> 6.0-dev -> 6.0 0003).
35
36
Several systems permission systems are in use:
37
* Unix permissions (also known as DAC or Discretionary access control)
38
* Selinux permissions (also known as MAC or Mandatory Access Control)
39
40
Also note that:
41
* su -l <the application username> will not give you the same selinux context as what the application is running so that doesn't help for debugging.