Issue #2257
openDialer crashing because of (contact?) database format
0%
Updated by Denis 'GNUtoo' Carikli over 3 years ago
I both the Galaxy Note II (GT-N7100) and the Galaxy Note 8.0 (GT-N5100) I installed Replicant 6.0 0003 and then did the migration procedure.
And in Replicant 6.0 0004 RC5, when running the dialer, the screen "No one is on your speed dial" appears fine.
Then pressing the big O button with the 6 dots inside results in the following crash:
06-01 17:08:40.475 3360 3360 D DialpadFragment: Displaying normal Dialer UI. 06-01 17:08:40.475 3360 3360 D DialpadFragment: Displaying normal Dialer UI. 06-01 17:08:40.500 3360 3551 E AndroidRuntime: FATAL EXCEPTION: AsyncTask #3 06-01 17:08:40.500 3360 3551 E AndroidRuntime: Process: com.android.dialer, PID: 3360 06-01 17:08:40.500 3360 3551 E AndroidRuntime: Theme: themes:{} 06-01 17:08:40.500 3360 3551 E AndroidRuntime: java.lang.RuntimeException: An error occurred while executing doInBackground() 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at android.os.AsyncTask$3.done(AsyncTask.java:309) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at java.util.concurrent.FutureTask.setException(FutureTask.java:223) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:242) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at java.lang.Thread.run(Thread.java:818) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.CallLogProvider uri content://call_log/calls from pid=3360, uid=10021 requires android.permission.READ_CALL_LOG, or grantUriPermission() 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1628) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at android.content.ContentProviderProxy.query(ContentProviderNative.java:421) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at android.content.ContentResolver.query(ContentResolver.java:493) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at android.content.ContentResolver.query(ContentResolver.java:435) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at android.provider.CallLog$Calls.getLastOutgoingCall(CallLog.java:659) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at com.android.phone.common.CallLogAsync$GetLastOutgoingCallTask.doInBackground(CallLogAsync.java:97) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at com.android.phone.common.CallLogAsync$GetLastOutgoingCallTask.doInBackground(CallLogAsync.java:92) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at android.os.AsyncTask$2.call(AsyncTask.java:295) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:237) 06-01 17:08:40.500 3360 3551 E AndroidRuntime: ... 4 more
I can manage to call through some other ways (like adding a contact and calling the contact).
With the Galaxy Note 8.0 (GT-N5100), I had the issue and somehow managed to make it disappear in MigrateContactsDatabase with the following command in the recovery (with /data/ mounted):
rm -rf /data/data/com.android.dialer/
However that doesn't seem to work with my GT-N7100.
All my other devices were converted fine.
So maybe someone needs to have a prior contact database for the migration to work.
Denis.