federicoiosue / Omni-Notes

Open source note-taking application for Android
https://omninotes.app
GNU General Public License v3.0
2.69k stars 1.1k forks source link

Scoped storage folder selection error #904

Closed federicoiosue closed 1 year ago

federicoiosue commented 1 year ago
java.lang.SecurityException: Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{2bcdc44 8219:it.feio.android.omninotes/u0a346} (pid=8219, uid=10346) requires that you obtain access using ACTION_OPEN_DOCUMENT or related APIs
    at android.os.Parcel.createExceptionOrNull(Parcel.java:2426)
    at android.os.Parcel.createException(Parcel.java:2410)
    at android.os.Parcel.readException(Parcel.java:2393)
    at android.os.Parcel.readException(Parcel.java:2335)
    at android.app.IActivityManager$Stub$Proxy.getContentProvider(IActivityManager.java:6376)
    at android.app.ActivityThread.acquireProvider(ActivityThread.java:7193)
    at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:3489)
    at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:2526)
    at android.content.ContentResolver.query(ContentResolver.java:1203)
    at android.content.ContentResolver.query(ContentResolver.java:1151)
    at android.content.ContentResolver.query(ContentResolver.java:1107)
    at com.lazygeniouz.dfc.resolver.ResolverCompat.getCursor(ResolverCompat.kt:139)
    at com.lazygeniouz.dfc.resolver.ResolverCompat.runInitialQuery(ResolverCompat.kt:156)
    at com.lazygeniouz.dfc.resolver.ResolverCompat.getInitialFileCompat$dfc_release(ResolverCompat.kt:117)
    at com.lazygeniouz.dfc.file.DocumentFileCompat$Companion.fromTreeUri(DocumentFileCompat.kt:182)
    at it.feio.android.omninotes.SettingsFragment.scopedStorageFolderChoosen(SettingsFragment.java:570)
       ...

Reported here

federicoiosue commented 1 year ago

Got the same with FOSS version.

Reproducible (finally) by installing a previous version (ex. 6.1.0), updating to latest 6.2.2 (or any recent version targeting SDK>= 30, trying to restore a backup.

java.lang.SecurityException: Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{21e5d82 950:it.feio.android.omninotes.foss/u0a509} (pid=950, uid=10509) requires that you obtain access using ACTION_OPEN_DOCUMENT or related APIs
    at android.os.Parcel.createExceptionOrNull(Parcel.java:3011)
    at android.os.Parcel.createException(Parcel.java:2995)
    at android.os.Parcel.readException(Parcel.java:2978)
    at android.os.Parcel.readException(Parcel.java:2920)
    at android.app.IActivityManager$Stub$Proxy.getContentProvider(IActivityManager.java:5961)
    at android.app.ActivityThread.acquireProvider(ActivityThread.java:7266)
    at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:3463)
    at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:2526)
    at android.content.ContentResolver.query(ContentResolver.java:1203)
    at android.content.ContentResolver.query(ContentResolver.java:1151)
    at android.content.ContentResolver.query(ContentResolver.java:1107)
    at com.lazygeniouz.dfc.resolver.ResolverCompat.getCursor(ResolverCompat.kt:139)
    at com.lazygeniouz.dfc.resolver.ResolverCompat.runInitialQuery(ResolverCompat.kt:156)
    at com.lazygeniouz.dfc.resolver.ResolverCompat.getInitialFileCompat$dfc_release(ResolverCompat.kt:117)
    at com.lazygeniouz.dfc.file.DocumentFileCompat$Companion.fromTreeUri(DocumentFileCompat.kt:182)
    at it.feio.android.omninotes.SettingsFragment.scopedStorageFolderChoosen(SettingsFragment.java:569)
    at it.feio.android.omninotes.SettingsFragment.lambda$onResume$0(SettingsFragment.java:156)
    at it.feio.android.omninotes.SettingsFragment.$r8$lambda$9hweMZ_S7KhSf98L2ME0b37wxa0(SettingsFragment.java:0)
    at it.feio.android.omninotes.SettingsFragment$$ExternalSyntheticLambda0.onPreferenceClick(R8$$SyntheticClass:0)
    at androidx.preference.Preference.performClick(Preference.java:1184)
    at androidx.preference.Preference.performClick(Preference.java:1166)
    at androidx.preference.Preference$1.onClick(Preference.java:181)
    at android.view.View.performClick(View.java:7560)
    at android.view.View.performClickInternal(View.java:7533)
    at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
    at android.view.View$PerformClick.run(View.java:29754)
    at android.os.Handler.handleCallback(Handler.java:942)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loopOnce(Looper.java:211)
    at android.os.Looper.loop(Looper.java:300)
    at android.app.ActivityThread.main(ActivityThread.java:8152)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
Caused by: android.os.RemoteException: Remote stack trace:
    at com.android.server.am.ContentProviderHelper.checkAssociationAndPermissionLocked(ContentProviderHelper.java:730)
    at com.android.server.am.ContentProviderHelper.getContentProviderImpl(ContentProviderHelper.java:363)
    at com.android.server.am.ContentProviderHelper.getContentProvider(ContentProviderHelper.java:140)
    at com.android.server.am.ActivityManagerService.getContentProvider(ActivityManagerService.java:6794)
    at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2759)
federicoiosue commented 1 year ago

Previous settings set (for unkown reasons) may affect behavior: backup_folder=content://com.android.externalstorage.documents/tree/primary%3ADocuments%2FOmni%20Notes/document/primary%3ADocuments%2FOmni%20Notes%2FOmni%20Notes