OSDN Git Service

Check processName when starting providers.
authorJeff Sharkey <jsharkey@android.com>
Sat, 14 May 2016 20:47:44 +0000 (14:47 -0600)
committerJeff Sharkey <jsharkey@android.com>
Sat, 14 May 2016 20:47:44 +0000 (14:47 -0600)
Bug: 28708253
Change-Id: I346441021295273c356619c60caa6086ef165363

services/core/java/com/android/server/am/ActivityManagerService.java

index ded6556..6e9e520 100644 (file)
@@ -239,6 +239,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
@@ -11088,8 +11089,12 @@ public final class ActivityManagerService extends ActivityManagerNative
                                     .getPackageInfo(pkgName, matchFlags, userId);
                             if (pkgInfo != null && !ArrayUtils.isEmpty(pkgInfo.providers)) {
                                 for (ProviderInfo provInfo : pkgInfo.providers) {
                                     .getPackageInfo(pkgName, matchFlags, userId);
                             if (pkgInfo != null && !ArrayUtils.isEmpty(pkgInfo.providers)) {
                                 for (ProviderInfo provInfo : pkgInfo.providers) {
-                                    Log.v(TAG, "Installing " + provInfo);
-                                    app.thread.scheduleInstallProvider(provInfo);
+                                    if (Objects.equals(provInfo.processName, app.processName)) {
+                                        Log.v(TAG, "Installing " + provInfo);
+                                        app.thread.scheduleInstallProvider(provInfo);
+                                    } else {
+                                        Log.v(TAG, "Skipping " + provInfo);
+                                    }
                                 }
                             }
                         } catch (RemoteException ignored) {
                                 }
                             }
                         } catch (RemoteException ignored) {