Installer: Fallback to DefaultInstaller on API >= 24 for uninstall,
... when PackageInstaller is the installer (privext). * In the case where the Privileged Extension is installed, but the installation happens through DefaultInstaller still due to something like a permission mismatch, that is set as the installer package name. * We cannot install packages installed by that via the system methods, so fallback to DefualtInstaller for uninstalling as well when the app is installed by PackageInstaller
This commit is contained in:
parent
204ac3cca9
commit
c095a85c3d
@ -24,6 +24,7 @@ import android.app.PendingIntent;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.PatternMatcher;
|
import android.os.PatternMatcher;
|
||||||
@ -32,7 +33,6 @@ import android.text.TextUtils;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import org.fdroid.fdroid.Utils;
|
import org.fdroid.fdroid.Utils;
|
||||||
import org.fdroid.fdroid.compat.PackageManagerCompat;
|
|
||||||
import org.fdroid.fdroid.data.Apk;
|
import org.fdroid.fdroid.data.Apk;
|
||||||
import org.fdroid.fdroid.data.ApkProvider;
|
import org.fdroid.fdroid.data.ApkProvider;
|
||||||
import org.fdroid.fdroid.privileged.views.AppDiff;
|
import org.fdroid.fdroid.privileged.views.AppDiff;
|
||||||
@ -141,9 +141,10 @@ public abstract class Installer {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
PackageManager pm = context.getPackageManager();
|
||||||
PackageManagerCompat.setInstaller(context, context.getPackageManager(), apk.packageName);
|
if (Build.VERSION.SDK_INT >= 24 && (
|
||||||
} catch (SecurityException e) {
|
pm.getInstallerPackageName(apk.packageName).equals("com.android.packageinstaller")
|
||||||
|
|| pm.getInstallerPackageName(apk.packageName).equals("com.google.android.packageinstaller"))) {
|
||||||
Utils.debugLog(TAG, "Falling back to default installer for uninstall");
|
Utils.debugLog(TAG, "Falling back to default installer for uninstall");
|
||||||
Intent intent = new Intent(context, DefaultInstallerActivity.class);
|
Intent intent = new Intent(context, DefaultInstallerActivity.class);
|
||||||
intent.setAction(DefaultInstallerActivity.ACTION_UNINSTALL_PACKAGE);
|
intent.setAction(DefaultInstallerActivity.ACTION_UNINSTALL_PACKAGE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user