Fix Managed Provisioning crash on OTA am: e0df0d82b3

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/ManagedProvisioning/+/16406578

Change-Id: I3bae673a2bf525c38baa9475c0fca6a9fae25f12
diff --git a/src/com/android/managedprovisioning/task/UpdateInteractAcrossProfilesAppOpTask.java b/src/com/android/managedprovisioning/task/UpdateInteractAcrossProfilesAppOpTask.java
index 25ad0b5..abb72da 100644
--- a/src/com/android/managedprovisioning/task/UpdateInteractAcrossProfilesAppOpTask.java
+++ b/src/com/android/managedprovisioning/task/UpdateInteractAcrossProfilesAppOpTask.java
@@ -48,6 +48,7 @@
     private final DevicePolicyManager mDevicePolicyManager;
     private final AppOpsManager mAppOpsManager;
     private final PackageManager mPackageManager;
+    private final UserManager mUserManager;
 
     public UpdateInteractAcrossProfilesAppOpTask(Context context,
             ProvisioningParams provisioningParams,
@@ -59,6 +60,7 @@
         mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
         mAppOpsManager = context.getSystemService(AppOpsManager.class);
         mPackageManager = context.getPackageManager();
+        mUserManager = context.getSystemService(UserManager.class);
     }
 
     @Override
@@ -133,10 +135,20 @@
 
     private Set<ApplicationInfo> getAllInstalledApps() {
         final Set<ApplicationInfo> apps = new HashSet<>();
-        List<UserHandle> profiles = mContext.getSystemService(UserManager.class).getAllProfiles();
+        List<UserHandle> profiles = mUserManager.getAllProfiles();
         for (UserHandle profile : profiles) {
-            apps.addAll(mContext.createContextAsUser(profile, /* flags= */ 0).getPackageManager()
-                    .getInstalledApplications(/* flags= */ 0));
+            if (profile.getIdentifier() != mContext.getUserId()
+                    && !mUserManager.isManagedProfile(profile.getIdentifier())) {
+                continue;
+            }
+            try {
+                apps.addAll(
+                        mContext.createPackageContextAsUser(
+                        /* packageName= */ "android", /* flags= */ 0, profile)
+                                .getPackageManager().getInstalledApplications(/* flags= */ 0));
+            } catch (PackageManager.NameNotFoundException ignored) {
+                // Should never happen.
+            }
         }
         return apps;
     }