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

Commit 4bf6bc5d authored by Hai Zhang's avatar Hai Zhang
Browse files

DO NOT MERGE Ensure package names read from config are system packages.

Bug: 145981139
Test: manually tested ensureSystemPackageName() returns null for non-system app
Change-Id: I1d23910cbd282f6702785c9dfb059d7be6b0e895
Merged-In: I1d23910cbd282f6702785c9dfb059d7be6b0e895
Merged-In: I86c6bfc0a6e28e634e0fd201e424b7ee6882ba2c
Merged-In: I5883e296a0d753e43075cbf0abc5dc4da91e2fca
(cherry picked from commit 6a562472)
parent 01f94b7c
Loading
Loading
Loading
Loading
+36 −8
Original line number Diff line number Diff line
@@ -3114,8 +3114,7 @@ public class PackageManagerService extends IPackageManager.Stub
            mWellbeingPackage = getWellbeingPackageName();
            mDocumenterPackage = getDocumenterPackageName();
            mConfiguratorPackage =
                    mContext.getString(R.string.config_deviceConfiguratorPackageName);
            mConfiguratorPackage = getDeviceConfiguratorPackageName();
            mAppPredictionServicePackage = getAppPredictionServicePackageName();
            mIncidentReportApproverPackage = getIncidentReportApproverPackageName();
@@ -21109,7 +21108,8 @@ public class PackageManagerService extends IPackageManager.Stub
    @Override
    public String getSystemTextClassifierPackageName() {
        return mContext.getString(R.string.config_defaultTextClassifierPackage);
        return ensureSystemPackageName(mContext.getString(
                R.string.config_defaultTextClassifierPackage));
    }
    @Override
@@ -21119,7 +21119,7 @@ public class PackageManagerService extends IPackageManager.Stub
        if (flattenedComponentName != null) {
            ComponentName componentName = ComponentName.unflattenFromString(flattenedComponentName);
            if (componentName != null && componentName.getPackageName() != null) {
                return componentName.getPackageName();
                return ensureSystemPackageName(componentName.getPackageName());
            }
        }
        return null;
@@ -21144,9 +21144,15 @@ public class PackageManagerService extends IPackageManager.Stub
        }
    }
    @Nullable
    private String getDeviceConfiguratorPackageName() {
        return ensureSystemPackageName(mContext.getString(
                R.string.config_deviceConfiguratorPackageName));
    }
    @Override
    public String getWellbeingPackageName() {
        return mContext.getString(R.string.config_defaultWellbeingPackage);
        return ensureSystemPackageName(mContext.getString(R.string.config_defaultWellbeingPackage));
    }
    @Override
@@ -21161,7 +21167,7 @@ public class PackageManagerService extends IPackageManager.Stub
        if (appPredictionServiceComponentName == null) {
            return null;
        }
        return appPredictionServiceComponentName.getPackageName();
        return ensureSystemPackageName(appPredictionServiceComponentName.getPackageName());
    }
    @Override
@@ -21178,11 +21184,33 @@ public class PackageManagerService extends IPackageManager.Stub
        if (systemCaptionsServiceComponentName == null) {
            return null;
        }
        return systemCaptionsServiceComponentName.getPackageName();
        return ensureSystemPackageName(systemCaptionsServiceComponentName.getPackageName());
    }
    public String getIncidentReportApproverPackageName() {
        return mContext.getString(R.string.config_incidentReportApproverPackage);
        return ensureSystemPackageName(mContext.getString(
                R.string.config_incidentReportApproverPackage));
    }
    @Nullable
    private String ensureSystemPackageName(@Nullable String packageName) {
        if (packageName == null) {
            return null;
        }
        long token = Binder.clearCallingIdentity();
        try {
            if (getPackageInfo(packageName, MATCH_FACTORY_ONLY, UserHandle.USER_SYSTEM) == null) {
                PackageInfo packageInfo = getPackageInfo(packageName, 0, UserHandle.USER_SYSTEM);
                if (packageInfo != null) {
                    EventLog.writeEvent(0x534e4554, "145981139", packageInfo.applicationInfo.uid,
                            "");
                }
                return null;
            }
        } finally {
            Binder.restoreCallingIdentity(token);
        }
        return packageName;
    }
    @Override