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

Commit 4658f49c authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Make sure known packages are preinstalled"

parents 8443c5e9 9de58d22
Loading
Loading
Loading
Loading
+54 −14
Original line number Original line Diff line number Diff line
@@ -22870,40 +22870,80 @@ public class PackageManagerService extends IPackageManager.Stub
            return pkg == null ? null : pkg.packageName;
            return pkg == null ? null : pkg.packageName;
        }
        }
        /**
         * Only keep package names that refer to {@link PackageParser.Package#isSystem system}
         * packages.
         *
         * @param pkgNames The packages to filter
         *
         * @return The filtered packages
         */
        private @NonNull String[] filterOnlySystemPackages(@Nullable String... pkgNames) {
            if (pkgNames == null) {
                return ArrayUtils.emptyArray(String.class);
            }
            ArrayList<String> systemPackageNames = new ArrayList<>(pkgNames.length);
            for (String pkgName: pkgNames) {
                synchronized (mPackages) {
                    if (pkgName == null) {
                        continue;
                    }
                    PackageParser.Package pkg = getPackage(pkgName);
                    if (pkg == null) {
                        Log.w(TAG, "Could not find package " + pkgName);
                        continue;
                    }
                    if (!pkg.isSystem()) {
                        Log.w(TAG, pkgName + " is not system");
                        continue;
                    }
                    systemPackageNames.add(pkgName);
                }
            }
            return systemPackageNames.toArray(new String[]{});
        }
        @Override
        @Override
        public @NonNull String[] getKnownPackageNames(int knownPackage, int userId) {
        public @NonNull String[] getKnownPackageNames(int knownPackage, int userId) {
            switch (knownPackage) {
            switch (knownPackage) {
                case PackageManagerInternal.PACKAGE_BROWSER:
                case PackageManagerInternal.PACKAGE_BROWSER:
                    return new String[]{mPermissionManager.getDefaultBrowser(userId)};
                    return new String[]{mPermissionManager.getDefaultBrowser(userId)};
                case PackageManagerInternal.PACKAGE_INSTALLER:
                case PackageManagerInternal.PACKAGE_INSTALLER:
                    return new String[]{mRequiredInstallerPackage};
                    return filterOnlySystemPackages(mRequiredInstallerPackage);
                case PackageManagerInternal.PACKAGE_SETUP_WIZARD:
                case PackageManagerInternal.PACKAGE_SETUP_WIZARD:
                    return new String[]{mSetupWizardPackage};
                    return filterOnlySystemPackages(mSetupWizardPackage);
                case PackageManagerInternal.PACKAGE_SYSTEM:
                case PackageManagerInternal.PACKAGE_SYSTEM:
                    return new String[]{"android"};
                    return new String[]{"android"};
                case PackageManagerInternal.PACKAGE_VERIFIER:
                case PackageManagerInternal.PACKAGE_VERIFIER:
                    return new String[]{mRequiredVerifierPackage};
                    return filterOnlySystemPackages(mRequiredVerifierPackage);
                case PackageManagerInternal.PACKAGE_SYSTEM_TEXT_CLASSIFIER:
                case PackageManagerInternal.PACKAGE_SYSTEM_TEXT_CLASSIFIER:
                    return new String[]{mSystemTextClassifierPackage};
                    return filterOnlySystemPackages(mSystemTextClassifierPackage);
                case PackageManagerInternal.PACKAGE_PERMISSION_CONTROLLER:
                case PackageManagerInternal.PACKAGE_PERMISSION_CONTROLLER:
                    return new String[]{mRequiredPermissionControllerPackage};
                    return filterOnlySystemPackages(mRequiredPermissionControllerPackage);
                case PackageManagerInternal.PACKAGE_WELLBEING:
                case PackageManagerInternal.PACKAGE_WELLBEING:
                    return new String[]{mWellbeingPackage};
                    return filterOnlySystemPackages(mWellbeingPackage);
                case PackageManagerInternal.PACKAGE_DOCUMENTER:
                case PackageManagerInternal.PACKAGE_DOCUMENTER:
                    return new String[]{mDocumenterPackage};
                    return filterOnlySystemPackages(mDocumenterPackage);
                case PackageManagerInternal.PACKAGE_CONFIGURATOR:
                case PackageManagerInternal.PACKAGE_CONFIGURATOR:
                    return new String[]{mConfiguratorPackage};
                    return filterOnlySystemPackages(mConfiguratorPackage);
                case PackageManagerInternal.PACKAGE_INCIDENT_REPORT_APPROVER:
                case PackageManagerInternal.PACKAGE_INCIDENT_REPORT_APPROVER:
                    return new String[]{mIncidentReportApproverPackage};
                    return filterOnlySystemPackages(mIncidentReportApproverPackage);
                case PackageManagerInternal.PACKAGE_APP_PREDICTOR:
                case PackageManagerInternal.PACKAGE_APP_PREDICTOR:
                    return new String[]{mAppPredictionServicePackage};
                    return filterOnlySystemPackages(mAppPredictionServicePackage);
                case PackageManagerInternal.PACKAGE_TELEPHONY:
                case PackageManagerInternal.PACKAGE_TELEPHONY:
                    return mTelephonyPackages;
                    return filterOnlySystemPackages(mTelephonyPackages);
                case PackageManagerInternal.PACKAGE_WIFI:
                case PackageManagerInternal.PACKAGE_WIFI:
                    return new String[]{mWifiPackage};
                    return filterOnlySystemPackages(mWifiPackage);
            }
                default:
                    return ArrayUtils.emptyArray(String.class);
                    return ArrayUtils.emptyArray(String.class);
            }
            }
        }
        @Override
        @Override
        public boolean isResolveActivityComponent(ComponentInfo component) {
        public boolean isResolveActivityComponent(ComponentInfo component) {