diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index e9d5426..b7b3326 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -6546,7 +6546,7 @@
                         if (dependentState == null) {
                             continue;
                         }
-                        if (!Objects.equals(dependentState.getUserStateOrDefault(userId)
+                        if (canSetOverlayPaths(dependentState.getUserStateOrDefault(userId)
                                 .getSharedLibraryOverlayPaths()
                                 .get(libName), newOverlayPaths)) {
                             String dependentPackageName = dependent.getPackageName();
@@ -6562,7 +6562,10 @@
                 }
             }
 
-            outUpdatedPackageNames.add(targetPackageName);
+            if (canSetOverlayPaths(packageState.getUserStateOrDefault(userId).getOverlayPaths(),
+                    newOverlayPaths)) {
+                outUpdatedPackageNames.add(targetPackageName);
+            }
 
             commitPackageStateMutation(null, mutator -> {
                 mutator.forPackage(targetPackageName)
@@ -6593,6 +6596,17 @@
         return true;
     }
 
+    private boolean canSetOverlayPaths(OverlayPaths origPaths, OverlayPaths newPaths) {
+        if (Objects.equals(origPaths, newPaths)) {
+            return false;
+        }
+        if ((origPaths == null && newPaths.isEmpty())
+                || (newPaths == null && origPaths.isEmpty())) {
+            return false;
+        }
+        return true;
+    }
+
     private void maybeUpdateSystemOverlays(String targetPackageName, OverlayPaths newOverlayPaths) {
         if (!mResolverReplaced) {
             if (targetPackageName.equals("android")) {
