diff --git a/services/core/java/com/android/server/om/OverlayManagerSettings.java b/services/core/java/com/android/server/om/OverlayManagerSettings.java index 863045c2aee74..e176351fcb765 100644 --- a/services/core/java/com/android/server/om/OverlayManagerSettings.java +++ b/services/core/java/com/android/server/om/OverlayManagerSettings.java @@ -179,15 +179,19 @@ final class OverlayManagerSettings { List getOverlaysForTarget(@NonNull final String targetPackageName, final int userId) { + // Static RROs targeting "android" are loaded from AssetManager, and so they should be + // ignored in OverlayManagerService. return selectWhereTarget(targetPackageName, userId) - .filter((i) -> !i.isStatic()) + .filter((i) -> !(i.isStatic() && "android".equals(i.getTargetPackageName()))) .map(SettingsItem::getOverlayInfo) .collect(Collectors.toList()); } ArrayMap> getOverlaysForUser(final int userId) { + // Static RROs targeting "android" are loaded from AssetManager, and so they should be + // ignored in OverlayManagerService. return selectWhereUser(userId) - .filter((i) -> !i.isStatic()) + .filter((i) -> !(i.isStatic() && "android".equals(i.getTargetPackageName()))) .map(SettingsItem::getOverlayInfo) .collect(Collectors.groupingBy(info -> info.targetPackageName, ArrayMap::new, Collectors.toList()));