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

Commit 546462f1 authored by Hai Zhang's avatar Hai Zhang
Browse files

Ensure package names read from config are system packages.

Fixes: 145981139
Test: presubmit
Change-Id: I1d23910cbd282f6702785c9dfb059d7be6b0e895
parent 5b0ee657
Loading
Loading
Loading
Loading
+44 −12
Original line number Diff line number Diff line
@@ -3006,8 +3006,7 @@ public class PackageManagerService extends IPackageManager.Stub
            mWellbeingPackage = getWellbeingPackageName();
            mDocumenterPackage = getDocumenterPackageName();
            mConfiguratorPackage =
                    mContext.getString(R.string.config_deviceConfiguratorPackageName);
            mConfiguratorPackage = getDeviceConfiguratorPackageName();
            mAppPredictionServicePackage = getAppPredictionServicePackageName();
            mIncidentReportApproverPackage = getIncidentReportApproverPackageName();
            mTelephonyPackages = getTelephonyPackageNames();
@@ -19682,13 +19681,14 @@ 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
    public String[] getSystemTextClassifierPackages() {
        return mContext.getResources().getStringArray(
                R.array.config_defaultTextClassifierPackages);
        return ensureSystemPackageNames(mContext.getResources().getStringArray(
                R.array.config_defaultTextClassifierPackages));
    }
    @Override
@@ -19698,7 +19698,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;
@@ -19723,9 +19723,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
@@ -19740,7 +19746,7 @@ public class PackageManagerService extends IPackageManager.Stub
        if (appPredictionServiceComponentName == null) {
            return null;
        }
        return appPredictionServiceComponentName.getPackageName();
        return ensureSystemPackageName(appPredictionServiceComponentName.getPackageName());
    }
    @Override
@@ -19757,7 +19763,7 @@ public class PackageManagerService extends IPackageManager.Stub
        if (systemCaptionsServiceComponentName == null) {
            return null;
        }
        return systemCaptionsServiceComponentName.getPackageName();
        return ensureSystemPackageName(systemCaptionsServiceComponentName.getPackageName());
    }
    @Override
@@ -19769,7 +19775,8 @@ public class PackageManagerService extends IPackageManager.Stub
    }
    public String getIncidentReportApproverPackageName() {
        return mContext.getString(R.string.config_incidentReportApproverPackage);
        return ensureSystemPackageName(mContext.getString(
                R.string.config_incidentReportApproverPackage));
    }
    @Override
@@ -19779,7 +19786,7 @@ public class PackageManagerService extends IPackageManager.Stub
        if (!TextUtils.isEmpty(names)) {
            telephonyPackageNames = names.trim().split(",");
        }
        return telephonyPackageNames;
        return ensureSystemPackageNames(telephonyPackageNames);
    }
    @Override
@@ -19796,7 +19803,32 @@ public class PackageManagerService extends IPackageManager.Stub
        if (contentCaptureServiceComponentName == null) {
            return null;
        }
        return contentCaptureServiceComponentName.getPackageName();
        return ensureSystemPackageName(contentCaptureServiceComponentName.getPackageName());
    }
    @Nullable
    private String ensureSystemPackageName(@Nullable String packageName) {
        if (packageName == null) {
            return null;
        }
        if (getPackageInfo(packageName, MATCH_SYSTEM_ONLY | MATCH_DIRECT_BOOT_AWARE
                        | MATCH_DIRECT_BOOT_UNAWARE | MATCH_DISABLED_COMPONENTS,
                UserHandle.getCallingUserId()) == null) {
            return null;
        }
        return packageName;
    }
    @Nullable
    private String[] ensureSystemPackageNames(@Nullable String[] packageNames) {
        if (packageNames == null) {
            return null;
        }
        final int packageNamesLength = packageNames.length;
        for (int i = 0; i < packageNamesLength; i++) {
            packageNames[i] = ensureSystemPackageName(packageNames[i]);
        }
        return ArrayUtils.filterNotNull(packageNames, String[]::new);
    }
    @Override