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

Commit 62e09235 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Initialize PackageManagerService ApplicationInfo instances to system...

Merge "Initialize PackageManagerService ApplicationInfo instances to system user" into rvc-dev am: ab5563dd am: 78b9c0fd

Change-Id: I16e6e12841337785ba0b67a3f4bee344af53ab1b
parents b9d27bc4 78b9c0fd
Loading
Loading
Loading
Loading
+20 −3
Original line number Original line Diff line number Diff line
@@ -11780,14 +11780,22 @@ public class PackageManagerService extends IPackageManager.Stub
        final String pkgName = pkg.getPackageName();
        final String pkgName = pkg.getPackageName();
        if (mCustomResolverComponentName != null &&
        if (mCustomResolverComponentName != null &&
                mCustomResolverComponentName.getPackageName().equals(pkg.getPackageName())) {
                mCustomResolverComponentName.getPackageName().equals(pkg.getPackageName())) {
            setUpCustomResolverActivity(pkg);
            setUpCustomResolverActivity(pkg, pkgSetting);
        }
        }
        if (pkg.getPackageName().equals("android")) {
        if (pkg.getPackageName().equals("android")) {
            synchronized (mLock) {
            synchronized (mLock) {
                // Set up information for our fall-back user intent resolution activity.
                // Set up information for our fall-back user intent resolution activity.
                mPlatformPackage = pkg;
                mPlatformPackage = pkg;
                // The instance stored in PackageManagerService is special cased to be non-user
                // specific, so initialize all the needed fields here.
                mAndroidApplication = pkg.toAppInfoWithoutState();
                mAndroidApplication = pkg.toAppInfoWithoutState();
                mAndroidApplication.flags = PackageInfoUtils.appInfoFlags(pkg, pkgSetting);
                mAndroidApplication.privateFlags =
                        PackageInfoUtils.appInfoPrivateFlags(pkg, pkgSetting);
                mAndroidApplication.initForUser(UserHandle.USER_SYSTEM);
                if (!mResolverReplaced) {
                if (!mResolverReplaced) {
                    mResolveActivity.applicationInfo = mAndroidApplication;
                    mResolveActivity.applicationInfo = mAndroidApplication;
                    mResolveActivity.name = ResolverActivity.class.getName();
                    mResolveActivity.name = ResolverActivity.class.getName();
@@ -11949,11 +11957,20 @@ public class PackageManagerService extends IPackageManager.Stub
        Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
        Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
    }
    }
    private void setUpCustomResolverActivity(AndroidPackage pkg) {
    private void setUpCustomResolverActivity(AndroidPackage pkg, PackageSetting pkgSetting) {
        synchronized (mLock) {
        synchronized (mLock) {
            mResolverReplaced = true;
            mResolverReplaced = true;
            // The instance created in PackageManagerService is special cased to be non-user
            // specific, so initialize all the needed fields here.
            ApplicationInfo appInfo = pkg.toAppInfoWithoutState();
            appInfo.flags = PackageInfoUtils.appInfoFlags(pkg, pkgSetting);
            appInfo.privateFlags =
                    PackageInfoUtils.appInfoPrivateFlags(pkg, pkgSetting);
            appInfo.initForUser(UserHandle.USER_SYSTEM);
            // Set up information for custom user intent resolution activity.
            // Set up information for custom user intent resolution activity.
            mResolveActivity.applicationInfo = pkg.toAppInfoWithoutState();
            mResolveActivity.applicationInfo = appInfo;
            mResolveActivity.name = mCustomResolverComponentName.getClassName();
            mResolveActivity.name = mCustomResolverComponentName.getClassName();
            mResolveActivity.packageName = pkg.getPackageName();
            mResolveActivity.packageName = pkg.getPackageName();
            mResolveActivity.processName = pkg.getProcessName();
            mResolveActivity.processName = pkg.getProcessName();