Loading services/core/java/com/android/server/am/ActivityManagerService.java +24 −22 Original line number Diff line number Diff line Loading @@ -1896,6 +1896,9 @@ public final class ActivityManagerService extends ActivityManagerNative final int userId = msg.arg1; mSystemServiceManager.unlockUser(userId); mRecentTasks.loadUserRecentsLocked(userId); if (userId == UserHandle.USER_SYSTEM) { startPersistentApps(PackageManager.MATCH_ENCRYPTION_UNAWARE); } installEncryptionUnawareProviders(userId); break; } Loading Loading @@ -10779,6 +10782,23 @@ public final class ActivityManagerService extends ActivityManagerNative //mUsageStatsService.monitorPackages(); } private void startPersistentApps(int matchFlags) { if (mFactoryTest == FactoryTest.FACTORY_TEST_LOW_LEVEL) return; synchronized (this) { try { final List<ApplicationInfo> apps = AppGlobals.getPackageManager() .getPersistentApplications(STOCK_PM_FLAGS | matchFlags); for (ApplicationInfo app : apps) { if (!"android".equals(app.packageName)) { addAppLocked(app, false, null /* ABI override */); } } } catch (RemoteException ex) { } } } /** * When a user is unlocked, we need to install encryption-unaware providers * belonging to any running apps. Loading @@ -10795,8 +10815,7 @@ public final class ActivityManagerService extends ActivityManagerNative // We're only interested in providers that are encryption unaware, and // we don't care about uninstalled apps, since there's no way they're // running at this point. final int matchFlags = GET_PROVIDERS | MATCH_ENCRYPTION_UNAWARE | MATCH_DEBUG_TRIAGED_MISSING; final int matchFlags = GET_PROVIDERS | MATCH_ENCRYPTION_UNAWARE; synchronized (this) { final int NP = mProcessNames.getMap().size(); Loading Loading @@ -12682,26 +12701,9 @@ public final class ActivityManagerService extends ActivityManagerNative mSystemServiceManager.startUser(currentUserId); synchronized (this) { if (mFactoryTest != FactoryTest.FACTORY_TEST_LOW_LEVEL) { try { List apps = AppGlobals.getPackageManager(). getPersistentApplications(STOCK_PM_FLAGS); if (apps != null) { int N = apps.size(); int i; for (i=0; i<N; i++) { ApplicationInfo info = (ApplicationInfo)apps.get(i); if (info != null && !info.packageName.equals("android")) { addAppLocked(info, false, null /* ABI override */); } } } } catch (RemoteException ex) { // pm is in same process, this will never happen. } } // Only start up encryption-aware persistent apps; once user is // unlocked we'll come back around and start unaware apps startPersistentApps(PackageManager.MATCH_ENCRYPTION_AWARE); // Start up initial activity. mBooting = true; services/core/java/com/android/server/pm/PackageManagerService.java +12 −3 Original line number Diff line number Diff line Loading @@ -62,7 +62,9 @@ import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATIO import static android.content.pm.PackageManager.MATCH_ALL; import static android.content.pm.PackageManager.MATCH_DEBUG_TRIAGED_MISSING; import static android.content.pm.PackageManager.MATCH_DISABLED_COMPONENTS; import static android.content.pm.PackageManager.MATCH_ENCRYPTION_AWARE; import static android.content.pm.PackageManager.MATCH_ENCRYPTION_AWARE_AND_UNAWARE; import static android.content.pm.PackageManager.MATCH_ENCRYPTION_UNAWARE; import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY; import static android.content.pm.PackageManager.MATCH_UNINSTALLED_PACKAGES; import static android.content.pm.PackageManager.MOVE_FAILED_DEVICE_ADMIN; Loading Loading @@ -6072,9 +6074,16 @@ public class PackageManagerService extends IPackageManager.Stub { final int userId = UserHandle.getCallingUserId(); while (i.hasNext()) { final PackageParser.Package p = i.next(); if (p.applicationInfo != null && (p.applicationInfo.flags&ApplicationInfo.FLAG_PERSISTENT) != 0 && (!mSafeMode || isSystemApp(p))) { if (p.applicationInfo == null) continue; final boolean matchesUnaware = ((flags & MATCH_ENCRYPTION_UNAWARE) != 0) && !p.applicationInfo.isEncryptionAware(); final boolean matchesAware = ((flags & MATCH_ENCRYPTION_AWARE) != 0) && p.applicationInfo.isEncryptionAware(); if ((p.applicationInfo.flags & ApplicationInfo.FLAG_PERSISTENT) != 0 && (!mSafeMode || isSystemApp(p)) && (matchesUnaware || matchesAware)) { PackageSetting ps = mSettings.mPackages.get(p.packageName); if (ps != null) { ApplicationInfo ai = PackageParser.generateApplicationInfo(p, flags, Loading Loading
services/core/java/com/android/server/am/ActivityManagerService.java +24 −22 Original line number Diff line number Diff line Loading @@ -1896,6 +1896,9 @@ public final class ActivityManagerService extends ActivityManagerNative final int userId = msg.arg1; mSystemServiceManager.unlockUser(userId); mRecentTasks.loadUserRecentsLocked(userId); if (userId == UserHandle.USER_SYSTEM) { startPersistentApps(PackageManager.MATCH_ENCRYPTION_UNAWARE); } installEncryptionUnawareProviders(userId); break; } Loading Loading @@ -10779,6 +10782,23 @@ public final class ActivityManagerService extends ActivityManagerNative //mUsageStatsService.monitorPackages(); } private void startPersistentApps(int matchFlags) { if (mFactoryTest == FactoryTest.FACTORY_TEST_LOW_LEVEL) return; synchronized (this) { try { final List<ApplicationInfo> apps = AppGlobals.getPackageManager() .getPersistentApplications(STOCK_PM_FLAGS | matchFlags); for (ApplicationInfo app : apps) { if (!"android".equals(app.packageName)) { addAppLocked(app, false, null /* ABI override */); } } } catch (RemoteException ex) { } } } /** * When a user is unlocked, we need to install encryption-unaware providers * belonging to any running apps. Loading @@ -10795,8 +10815,7 @@ public final class ActivityManagerService extends ActivityManagerNative // We're only interested in providers that are encryption unaware, and // we don't care about uninstalled apps, since there's no way they're // running at this point. final int matchFlags = GET_PROVIDERS | MATCH_ENCRYPTION_UNAWARE | MATCH_DEBUG_TRIAGED_MISSING; final int matchFlags = GET_PROVIDERS | MATCH_ENCRYPTION_UNAWARE; synchronized (this) { final int NP = mProcessNames.getMap().size(); Loading Loading @@ -12682,26 +12701,9 @@ public final class ActivityManagerService extends ActivityManagerNative mSystemServiceManager.startUser(currentUserId); synchronized (this) { if (mFactoryTest != FactoryTest.FACTORY_TEST_LOW_LEVEL) { try { List apps = AppGlobals.getPackageManager(). getPersistentApplications(STOCK_PM_FLAGS); if (apps != null) { int N = apps.size(); int i; for (i=0; i<N; i++) { ApplicationInfo info = (ApplicationInfo)apps.get(i); if (info != null && !info.packageName.equals("android")) { addAppLocked(info, false, null /* ABI override */); } } } } catch (RemoteException ex) { // pm is in same process, this will never happen. } } // Only start up encryption-aware persistent apps; once user is // unlocked we'll come back around and start unaware apps startPersistentApps(PackageManager.MATCH_ENCRYPTION_AWARE); // Start up initial activity. mBooting = true;
services/core/java/com/android/server/pm/PackageManagerService.java +12 −3 Original line number Diff line number Diff line Loading @@ -62,7 +62,9 @@ import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATIO import static android.content.pm.PackageManager.MATCH_ALL; import static android.content.pm.PackageManager.MATCH_DEBUG_TRIAGED_MISSING; import static android.content.pm.PackageManager.MATCH_DISABLED_COMPONENTS; import static android.content.pm.PackageManager.MATCH_ENCRYPTION_AWARE; import static android.content.pm.PackageManager.MATCH_ENCRYPTION_AWARE_AND_UNAWARE; import static android.content.pm.PackageManager.MATCH_ENCRYPTION_UNAWARE; import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY; import static android.content.pm.PackageManager.MATCH_UNINSTALLED_PACKAGES; import static android.content.pm.PackageManager.MOVE_FAILED_DEVICE_ADMIN; Loading Loading @@ -6072,9 +6074,16 @@ public class PackageManagerService extends IPackageManager.Stub { final int userId = UserHandle.getCallingUserId(); while (i.hasNext()) { final PackageParser.Package p = i.next(); if (p.applicationInfo != null && (p.applicationInfo.flags&ApplicationInfo.FLAG_PERSISTENT) != 0 && (!mSafeMode || isSystemApp(p))) { if (p.applicationInfo == null) continue; final boolean matchesUnaware = ((flags & MATCH_ENCRYPTION_UNAWARE) != 0) && !p.applicationInfo.isEncryptionAware(); final boolean matchesAware = ((flags & MATCH_ENCRYPTION_AWARE) != 0) && p.applicationInfo.isEncryptionAware(); if ((p.applicationInfo.flags & ApplicationInfo.FLAG_PERSISTENT) != 0 && (!mSafeMode || isSystemApp(p)) && (matchesUnaware || matchesAware)) { PackageSetting ps = mSettings.mPackages.get(p.packageName); if (ps != null) { ApplicationInfo ai = PackageParser.generateApplicationInfo(p, flags, Loading