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. |