Loading src/com/android/packageinstaller/permission/service/LocationAccessCheck.java +3 −2 Original line number Diff line number Diff line Loading @@ -46,7 +46,6 @@ import static com.android.packageinstaller.Constants.LOCATION_ACCESS_CHECK_NOTIF import static com.android.packageinstaller.Constants.PERIODIC_LOCATION_ACCESS_CHECK_JOB_ID; import static com.android.packageinstaller.Constants.PERMISSION_REMINDER_CHANNEL_ID; import static com.android.packageinstaller.Constants.PREFERENCES_FILE; import static com.android.packageinstaller.permission.utils.LocationUtils.isNetworkLocationProvider; import static com.android.packageinstaller.permission.utils.Utils.OS_PKG; import static com.android.packageinstaller.permission.utils.Utils.getGroupOfPlatformPermission; import static com.android.packageinstaller.permission.utils.Utils.getParcelableExtraSafe; Loading Loading @@ -454,6 +453,8 @@ public class LocationAccessCheck { List<UserPackage> pkgsWithLocationAccess = new ArrayList<>(); List<UserHandle> profiles = mUserManager.getUserProfiles(); LocationManager lm = mContext.getSystemService(LocationManager.class); int numUid = allOps.getUidCount(); for (int uidNum = 0; uidNum < numUid; uidNum++) { AppOpsManager.HistoricalUidOps uidOps = allOps.getUidOpsAt(uidNum); Loading @@ -463,7 +464,7 @@ public class LocationAccessCheck { HistoricalPackageOps ops = uidOps.getPackageOpsAt(pkgNum); String pkg = ops.getPackageName(); if (pkg.equals(OS_PKG) || isNetworkLocationProvider(mContext, pkg)) { if (pkg.equals(OS_PKG) || lm.isProviderPackage(pkg)) { continue; } Loading src/com/android/packageinstaller/permission/utils/LocationUtils.java +3 −22 Original line number Diff line number Diff line Loading @@ -65,18 +65,17 @@ public class LocationUtils { + "android.settings.LOCATION_CONTROLLER_EXTRA_PACKAGE_SETTINGS"); } } public static boolean isLocationEnabled(Context context) { return Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF) != Settings.Secure.LOCATION_MODE_OFF; return context.getSystemService(LocationManager.class).isLocationEnabled(); } public static boolean isLocationGroupAndProvider(Context context, String groupName, String packageName) { return LOCATION_PERMISSION.equals(groupName) && isNetworkLocationProvider(context, packageName); && context.getSystemService(LocationManager.class).isProviderPackage(packageName); } /** Returns whether the given package name is a location history provider. */ public static boolean isLocationGroupAndControllerExtraPackage(@NonNull Context context, @NonNull String groupName, @NonNull String packageName) { return LOCATION_PERMISSION.equals(groupName) Loading @@ -84,24 +83,6 @@ public class LocationUtils { .getLocationControllerExtraPackage()); } /** * Check if a package is the location provider. * * @param context used to resolve managers * @param packageName the potential location provider * * @return {@code true} iff the package is the location provider */ public static boolean isNetworkLocationProvider(Context context, String packageName) { try { return packageName.equals(context.getSystemService(LocationManager.class) .getNetworkProviderPackage()); } catch (Exception e) { return false; } } /** Returns whether the location controller extra package is enabled. */ public static boolean isLocationControllerExtraPackageEnabled(Context context) { try { return context.getSystemService(LocationManager.class) Loading Loading
src/com/android/packageinstaller/permission/service/LocationAccessCheck.java +3 −2 Original line number Diff line number Diff line Loading @@ -46,7 +46,6 @@ import static com.android.packageinstaller.Constants.LOCATION_ACCESS_CHECK_NOTIF import static com.android.packageinstaller.Constants.PERIODIC_LOCATION_ACCESS_CHECK_JOB_ID; import static com.android.packageinstaller.Constants.PERMISSION_REMINDER_CHANNEL_ID; import static com.android.packageinstaller.Constants.PREFERENCES_FILE; import static com.android.packageinstaller.permission.utils.LocationUtils.isNetworkLocationProvider; import static com.android.packageinstaller.permission.utils.Utils.OS_PKG; import static com.android.packageinstaller.permission.utils.Utils.getGroupOfPlatformPermission; import static com.android.packageinstaller.permission.utils.Utils.getParcelableExtraSafe; Loading Loading @@ -454,6 +453,8 @@ public class LocationAccessCheck { List<UserPackage> pkgsWithLocationAccess = new ArrayList<>(); List<UserHandle> profiles = mUserManager.getUserProfiles(); LocationManager lm = mContext.getSystemService(LocationManager.class); int numUid = allOps.getUidCount(); for (int uidNum = 0; uidNum < numUid; uidNum++) { AppOpsManager.HistoricalUidOps uidOps = allOps.getUidOpsAt(uidNum); Loading @@ -463,7 +464,7 @@ public class LocationAccessCheck { HistoricalPackageOps ops = uidOps.getPackageOpsAt(pkgNum); String pkg = ops.getPackageName(); if (pkg.equals(OS_PKG) || isNetworkLocationProvider(mContext, pkg)) { if (pkg.equals(OS_PKG) || lm.isProviderPackage(pkg)) { continue; } Loading
src/com/android/packageinstaller/permission/utils/LocationUtils.java +3 −22 Original line number Diff line number Diff line Loading @@ -65,18 +65,17 @@ public class LocationUtils { + "android.settings.LOCATION_CONTROLLER_EXTRA_PACKAGE_SETTINGS"); } } public static boolean isLocationEnabled(Context context) { return Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF) != Settings.Secure.LOCATION_MODE_OFF; return context.getSystemService(LocationManager.class).isLocationEnabled(); } public static boolean isLocationGroupAndProvider(Context context, String groupName, String packageName) { return LOCATION_PERMISSION.equals(groupName) && isNetworkLocationProvider(context, packageName); && context.getSystemService(LocationManager.class).isProviderPackage(packageName); } /** Returns whether the given package name is a location history provider. */ public static boolean isLocationGroupAndControllerExtraPackage(@NonNull Context context, @NonNull String groupName, @NonNull String packageName) { return LOCATION_PERMISSION.equals(groupName) Loading @@ -84,24 +83,6 @@ public class LocationUtils { .getLocationControllerExtraPackage()); } /** * Check if a package is the location provider. * * @param context used to resolve managers * @param packageName the potential location provider * * @return {@code true} iff the package is the location provider */ public static boolean isNetworkLocationProvider(Context context, String packageName) { try { return packageName.equals(context.getSystemService(LocationManager.class) .getNetworkProviderPackage()); } catch (Exception e) { return false; } } /** Returns whether the location controller extra package is enabled. */ public static boolean isLocationControllerExtraPackageEnabled(Context context) { try { return context.getSystemService(LocationManager.class) Loading