Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42d5979f authored by ykhung's avatar ykhung Committed by YK Hung
Browse files

[Security] Verify the permission first before querying installed apps

Verify the target app "REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" permission first before querying installed apps information to avoid the exposed the installed apps information and improve the performance by applying the early return flow.

Bug: 227753723
Test: make RunSettingsRoboTests
Change-Id: Ib5826b8082f4bf14f93d5ff4d2d332dc395bf9a8
parent 8bd66478
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -69,15 +69,6 @@ public class RequestIgnoreBatteryOptimizations extends AlertActivity implements
            return;
        }

        ApplicationInfo ai;
        try {
            ai = getPackageManager().getApplicationInfo(mPackageName, 0);
        } catch (PackageManager.NameNotFoundException e) {
            debugLog("Requested package doesn't exist: " + mPackageName);
            finish();
            return;
        }

        if (getPackageManager().checkPermission(
                Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, mPackageName)
                != PackageManager.PERMISSION_GRANTED) {
@@ -87,6 +78,15 @@ public class RequestIgnoreBatteryOptimizations extends AlertActivity implements
            return;
        }

        ApplicationInfo ai;
        try {
            ai = getPackageManager().getApplicationInfo(mPackageName, 0);
        } catch (PackageManager.NameNotFoundException e) {
            debugLog("Requested package doesn't exist: " + mPackageName);
            finish();
            return;
        }

        final AlertController.AlertParams p = mAlertParams;
        final CharSequence appLabel = ai.loadSafeLabel(getPackageManager(),
                PackageItemInfo.DEFAULT_MAX_LABEL_SIZE_PX, PackageItemInfo.SAFE_LABEL_FLAG_TRIM