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

Commit c39e16ce authored by Hai Zhang's avatar Hai Zhang Committed by Anis Assi
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)
(cherry picked from commit 4bf6bc5d)
parent ffd1f9fc
Loading
Loading
Loading
Loading
+36 −8
Original line number Diff line number Diff line
@@ -3111,8 +3111,7 @@ public class PackageManagerService extends IPackageManager.Stub
            mWellbeingPackage = getWellbeingPackageName();
            mDocumenterPackage = getDocumenterPackageName();
            mConfiguratorPackage =
                    mContext.getString(R.string.config_deviceConfiguratorPackageName);
            mConfiguratorPackage = getDeviceConfiguratorPackageName();
            mAppPredictionServicePackage = getAppPredictionServicePackageName();
            mIncidentReportApproverPackage = getIncidentReportApproverPackageName();
@@ -21106,7 +21105,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
@@ -21116,7 +21116,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;
@@ -21141,9 +21141,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
@@ -21158,7 +21164,7 @@ public class PackageManagerService extends IPackageManager.Stub
        if (appPredictionServiceComponentName == null) {
            return null;
        }
        return appPredictionServiceComponentName.getPackageName();
        return ensureSystemPackageName(appPredictionServiceComponentName.getPackageName());
    }
    @Override
@@ -21175,11 +21181,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