SecurityException when starting TestDataActivity with multiple Briar versions installed
- Android version: 7.1.2
- Phone model: Motorola Moto G4 (lineage_athene)
- Briar version: 1.1.3 (93090f0f, a debug build for testing the remote contact UX)
- Package name: org.briarproject.briar.android.debug.qr
Stack trace:
java.lang.SecurityException: Permission Denial: starting Intent { cmp=org.briarproject.briar.android.debug/org.briarproject.briar.android.test.TestDataActivity } from ProcessRecord{81ac00c 16789:org.briarproject.briar.android.debug.qr/u0a88} (pid=16789, uid=10088) not exported from uid 10087
at android.os.Parcel.readException(Parcel.java:1684)
at android.os.Parcel.readException(Parcel.java:1637)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:3101)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1520)
at android.app.Activity.startActivityForResult(Activity.java:4229)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
at android.app.Activity.startActivityForResult(Activity.java:4187)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)
at android.app.Activity.startActivity(Activity.java:4526)
at android.app.Activity.startActivity(Activity.java:4494)
at android.content.ContextWrapper.startActivity(ContextWrapper.java:356)
at android.support.v7.preference.Preference.performClick(Preference.java:1180)
at android.support.v7.preference.Preference.performClick(Preference.java:1148)
at android.support.v7.preference.Preference$1.onClick(Preference.java:172)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22433)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
It looks like the intent is trying to open an activity that belongs to another version of Briar with a different package name (org.briarproject.briar.android.debug rather than org.briarproject.briar.android.debug.qr).
Although this was a debug build, I'm opening a ticket because it suggests something unexpected is happening in the way intents are handled - shouldn't they always be routed to the same app by default if a component is specified?