setInstallerPackageName fails with SecurityException on API 30
- Device OS and version: AOSP 11
- F-Droid version (in the About screen): 1.9
- F-Droid privileged extension version (if installed): not installed
What did you do? (clear steps if possible)
install an app
What did you expect to see?
the installer package name set to org.fdroid.fdroid
What did you see instead?
initiatingPackageName
and installingPackageName
is set to com.android.packageinstaller
.
Only originatingPackageName
is org.fdroid.fdroid
.
Setting the installer package name fails with:
org.fdroid.fdroid E/PackageManagerCompat: Could not set installer package name for de.mwvb.blockpuzzle
java.lang.SecurityException: Caller does not have same cert as old installer package com.android.packageinstaller
at android.os.Parcel.createExceptionOrNull(Parcel.java:2373)
at android.os.Parcel.createException(Parcel.java:2357)
at android.os.Parcel.readException(Parcel.java:2340)
at android.os.Parcel.readException(Parcel.java:2282)
at android.content.pm.IPackageManager$Stub$Proxy.setInstallerPackageName(IPackageManager.java:5874)
at android.app.ApplicationPackageManager.setInstallerPackageName(ApplicationPackageManager.java:2181)
at org.fdroid.fdroid.compat.PackageManagerCompat.setInstaller(PackageManagerCompat.java:35)
at org.fdroid.fdroid.installer.InstallManagerService$3.onReceive(InstallManagerService.java:420)
at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:311)
at android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:47)
at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:120)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.pm.PackageManagerService.setInstallerPackageName(PackageManagerService.java:14279)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:2647)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:4306)
at android.os.Binder.execTransactInternal(Binder.java:1154)
at android.os.Binder.execTransact(Binder.java:1123)
Curiously, uninstalling apps with F-Droid still works.
Related to #1836 (closed)