diff --git a/app/shared/src/main/java/com/topjohnwu/magisk/ProviderInstaller.java b/app/shared/src/main/java/com/topjohnwu/magisk/ProviderInstaller.java index 56ed00232d0b..bb1b5ca93258 100644 --- a/app/shared/src/main/java/com/topjohnwu/magisk/ProviderInstaller.java +++ b/app/shared/src/main/java/com/topjohnwu/magisk/ProviderInstaller.java @@ -1,13 +1,22 @@ package com.topjohnwu.magisk; import android.content.Context; +import android.content.pm.ApplicationInfo; public class ProviderInstaller { + private static final String GMS_PACKAGE_NAME = "com.google.android.gms"; + public static boolean install(Context context) { try { + // Check if gms is a system app + ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(GMS_PACKAGE_NAME, 0); + if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) { + return false; + } + // Try installing new SSL provider from Google Play Service - Context gms = context.createPackageContext("com.google.android.gms", + Context gms = context.createPackageContext(GMS_PACKAGE_NAME, Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY); gms.getClassLoader() .loadClass("com.google.android.gms.common.security.ProviderInstallerImpl")