I have a Moto G 4th Edition (harpia) running LineageOS 14.1 nightly. I was trying to debug some issues with its MMS and I used Titanium Backup to take a backup of the APN settings because I was about to follow some tutorials and I wanted to know I could certainly undo them if I needed to. I wasn't able to fix the problem, so I tried to restore using Titanium Backup. When I was restoring the settings, it asked me if I wanted to restore App, Data, or App+Data. Without thinking too much about it, I clicked "App+Data". Then, I went back to the APN settings page to see if the APN settings I had were restored. When I clicked on an APN, it crashed. I think the exception in question is:
06-27 18:44:22.454 2067 3374 E DatabaseUtils: java.lang.SecurityException: Permission Denial: reading com.android.providers.telephony.TelephonyProvider uri content://telephony/carriers/1265 from pid=4901, uid=1000 requires the provider be exported, or grantUriPermission()
06-27 18:44:22.454 2067 3374 E DatabaseUtils:
at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:608)
06-27 18:44:22.454 2067 3374 E DatabaseUtils:
at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:483)
06-27 18:44:22.454 2067 3374 E DatabaseUtils:
at android.content.ContentProvider$Transport.query(ContentProvider.java:212)
06-27 18:44:22.454 2067 3374 E DatabaseUtils:
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
06-27 18:44:22.454 2067 3374 E DatabaseUtils:
at android.os.Binder.execTransact(Binder.java:565)
(But another suspicious-looking message I see is 06-27 18:44:20.760 2067 5631 W ContextImpl: Failed to ensure /data/user_de/0/com.android.settings/databases: mkdir failed: EACCES (Permission denied)
.) I reached out to Titanium Track via their "Contact Us" page but haven't gotten a response so far (it's only been about 36 hours). In the meantime, I noticed that I also can't even use the Messaging app on my phone. When I try to enter an SMS conversation, it crashes. I think the exception for that is:
06-27 18:43:54.101 1141 2774 W ActivityManager: Permission Denial: opening provider com.android.providers.telephony.SmsProvider from ProcessRecord{
890eeb3 3530:com.android.messaging/u0a73
}
(pid=3530, uid=10073) that is not exported from uid 1001
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel: wtf
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel: SyncMessagesAction: unexpected failure in scan
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.telephony.SmsProvider from ProcessRecord{
890eeb3 3530:com.android.messaging/u0a73
}
(pid=3530, uid=10073) that is not exported from uid 1001
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at android.os.Parcel.readException(Parcel.java:1684)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at android.os.Parcel.readException(Parcel.java:1637)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:4199)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at android.app.ActivityThread.acquireProvider(ActivityThread.java:5534)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2239)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1520)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at android.content.ContentResolver.query(ContentResolver.java:518)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at android.content.ContentResolver.query(ContentResolver.java:475)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at com.android.messaging.mmslib.a.VL(SourceFile:40)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at com.android.messaging.sms.i.ahs(SourceFile:1498)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at com.android.messaging.sms.DatabaseMessages$SmsMessage.getProjection(SourceFile:120)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at com.android.messaging.datamodel.action.q.<init>(SourceFile:450)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at com.android.messaging.datamodel.action.m.Lg(SourceFile:131)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at com.android.messaging.datamodel.action.SyncMessagesAction.Jf(SourceFile:293)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at com.android.messaging.datamodel.action.SyncMessagesAction.IU(SourceFile:244)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at com.android.messaging.datamodel.action.BackgroundWorkerService.Kk(SourceFile:146)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at com.android.messaging.datamodel.action.BackgroundWorkerService.onHandleIntent(SourceFile:123)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:68)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at android.os.Handler.dispatchMessage(Handler.java:102)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at android.os.Looper.loop(Looper.java:154)
06-27 18:43:54.103 3530 3843 F MessagingAppDataModel:
at android.os.HandlerThread.run(HandlerThread.java:61)
06-27 18:43:54.103 3530 3843 E MessagingAppDataModel: SyncMessagesAction: unexpected failure in scan
Based on these two exceptions, I'm guessing that I shouldn't have restored the app but just the data, and some important metadata of the app got lost or wasn't restored correctly. However I'm not sure where I would find that metadata or what it should be.
- I tried TWRP "Restore Contexts".
- Someone on the
/r/Android
Discourse suggested I dirty load the same ROM. Unfortunately support for LineageOS on my handset is discontinued and there's no images to download. I tried re-using the latest update from/data/lineageos_updates
, but that didn't fix my problem. - I took a backup of my phone in its current (semi-working) state and I've tried wiping data for the messaging app, the telephony provider, the settings app, but I still have the same crashes.
Has anyone seen these exceptions before? What are these providers? Where are they kept on a normal Android system? What creates them, and is there a way to manually cause them to be created?