Loading packages/SettingsLib/src/com/android/settingslib/Utils.java +30 −18 Original line number Diff line number Diff line Loading @@ -10,6 +10,8 @@ import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.Signature; import android.content.pm.UserInfo; import android.content.res.ColorStateList; import android.content.res.Resources; Loading Loading @@ -60,6 +62,7 @@ public class Utils { static final String STORAGE_MANAGER_ENABLED_PROPERTY = "ro.storage_manager.enabled"; private static Signature[] sSystemSignature; private static String sPermissionControllerPackageName; private static String sServicesSystemSharedLibPackageName; private static String sSharedSystemSharedLibPackageName; Loading Loading @@ -370,22 +373,14 @@ public class Utils { return new ColorMatrixColorFilter(getAlphaInvariantColorMatrixForColor(color)); } /** * @deprecated Use {@link #isSystemPackage(Resources, PackageManager, ApplicationInfo)} instead. */ @Deprecated public static boolean isSystemPackage(Resources resources, PackageManager pm, PackageInfo pkg) { return pkg.applicationInfo != null && isSystemPackage(resources, pm, pkg.applicationInfo); } /** * Determine whether a package is a "system package", in which case certain things (like * disabling notifications or disabling the package altogether) should be disallowed. * * Note: This function is just for UI treatment, and should not be used for security purposes. */ public static boolean isSystemPackage( Resources resources, PackageManager pm, @NonNull ApplicationInfo app) { public static boolean isSystemPackage(Resources resources, PackageManager pm, PackageInfo pkg) { if (sSystemSignature == null) { sSystemSignature = new Signature[]{getSystemSignature(pm)}; } if (sPermissionControllerPackageName == null) { sPermissionControllerPackageName = pm.getPermissionControllerPackageName(); } Loading @@ -395,12 +390,29 @@ public class Utils { if (sSharedSystemSharedLibPackageName == null) { sSharedSystemSharedLibPackageName = pm.getSharedSystemSharedLibraryPackageName(); } return app.isSignedWithPlatformKey() || app.packageName.equals(sPermissionControllerPackageName) || app.packageName.equals(sServicesSystemSharedLibPackageName) || app.packageName.equals(sSharedSystemSharedLibPackageName) || app.packageName.equals(PrintManager.PRINT_SPOOLER_PACKAGE_NAME) || isDeviceProvisioningPackage(resources, app.packageName); return (sSystemSignature[0] != null && sSystemSignature[0].equals(getFirstSignature(pkg))) || pkg.packageName.equals(sPermissionControllerPackageName) || pkg.packageName.equals(sServicesSystemSharedLibPackageName) || pkg.packageName.equals(sSharedSystemSharedLibPackageName) || pkg.packageName.equals(PrintManager.PRINT_SPOOLER_PACKAGE_NAME) || isDeviceProvisioningPackage(resources, pkg.packageName); } private static Signature getFirstSignature(PackageInfo pkg) { if (pkg != null && pkg.signatures != null && pkg.signatures.length > 0) { return pkg.signatures[0]; } return null; } private static Signature getSystemSignature(PackageManager pm) { try { final PackageInfo sys = pm.getPackageInfo("android", PackageManager.GET_SIGNATURES); return getFirstSignature(sys); } catch (NameNotFoundException e) { } return null; } /** Loading Loading
packages/SettingsLib/src/com/android/settingslib/Utils.java +30 −18 Original line number Diff line number Diff line Loading @@ -10,6 +10,8 @@ import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.Signature; import android.content.pm.UserInfo; import android.content.res.ColorStateList; import android.content.res.Resources; Loading Loading @@ -60,6 +62,7 @@ public class Utils { static final String STORAGE_MANAGER_ENABLED_PROPERTY = "ro.storage_manager.enabled"; private static Signature[] sSystemSignature; private static String sPermissionControllerPackageName; private static String sServicesSystemSharedLibPackageName; private static String sSharedSystemSharedLibPackageName; Loading Loading @@ -370,22 +373,14 @@ public class Utils { return new ColorMatrixColorFilter(getAlphaInvariantColorMatrixForColor(color)); } /** * @deprecated Use {@link #isSystemPackage(Resources, PackageManager, ApplicationInfo)} instead. */ @Deprecated public static boolean isSystemPackage(Resources resources, PackageManager pm, PackageInfo pkg) { return pkg.applicationInfo != null && isSystemPackage(resources, pm, pkg.applicationInfo); } /** * Determine whether a package is a "system package", in which case certain things (like * disabling notifications or disabling the package altogether) should be disallowed. * * Note: This function is just for UI treatment, and should not be used for security purposes. */ public static boolean isSystemPackage( Resources resources, PackageManager pm, @NonNull ApplicationInfo app) { public static boolean isSystemPackage(Resources resources, PackageManager pm, PackageInfo pkg) { if (sSystemSignature == null) { sSystemSignature = new Signature[]{getSystemSignature(pm)}; } if (sPermissionControllerPackageName == null) { sPermissionControllerPackageName = pm.getPermissionControllerPackageName(); } Loading @@ -395,12 +390,29 @@ public class Utils { if (sSharedSystemSharedLibPackageName == null) { sSharedSystemSharedLibPackageName = pm.getSharedSystemSharedLibraryPackageName(); } return app.isSignedWithPlatformKey() || app.packageName.equals(sPermissionControllerPackageName) || app.packageName.equals(sServicesSystemSharedLibPackageName) || app.packageName.equals(sSharedSystemSharedLibPackageName) || app.packageName.equals(PrintManager.PRINT_SPOOLER_PACKAGE_NAME) || isDeviceProvisioningPackage(resources, app.packageName); return (sSystemSignature[0] != null && sSystemSignature[0].equals(getFirstSignature(pkg))) || pkg.packageName.equals(sPermissionControllerPackageName) || pkg.packageName.equals(sServicesSystemSharedLibPackageName) || pkg.packageName.equals(sSharedSystemSharedLibPackageName) || pkg.packageName.equals(PrintManager.PRINT_SPOOLER_PACKAGE_NAME) || isDeviceProvisioningPackage(resources, pkg.packageName); } private static Signature getFirstSignature(PackageInfo pkg) { if (pkg != null && pkg.signatures != null && pkg.signatures.length > 0) { return pkg.signatures[0]; } return null; } private static Signature getSystemSignature(PackageManager pm) { try { final PackageInfo sys = pm.getPackageInfo("android", PackageManager.GET_SIGNATURES); return getFirstSignature(sys); } catch (NameNotFoundException e) { } return null; } /** Loading