diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java
index be7631d..19ac1ec 100644
--- a/services/core/java/com/android/server/pm/ComputerEngine.java
+++ b/services/core/java/com/android/server/pm/ComputerEngine.java
@@ -5145,28 +5145,10 @@
         }
 
         updateOwnerPackageName = installSource.mUpdateOwnerPackageName;
-
-        if (DEBUG_INSTALL) {
-            Log.d(TAG, "ComputerEngine getInstallSourceInfo updateOwnerPackageName = "
-                    + updateOwnerPackageName + ", callingUid = " + callingUid + ", packageName = "
-                    + packageName + ", userId = " + userId);
-        }
-
         if (updateOwnerPackageName != null) {
             final PackageStateInternal ps = mSettings.getPackage(updateOwnerPackageName);
             final boolean isCallerSystemOrUpdateOwner = callingUid == Process.SYSTEM_UID
                             || isCallerSameApp(updateOwnerPackageName, callingUid);
-
-            if (DEBUG_INSTALL) {
-                Log.d(TAG, "ComputerEngine getInstallSourceInfo ps = "
-                        + ps + ", isCallerSystemOrUpdateOwner =" + isCallerSystemOrUpdateOwner
-                        + ", isCallerSameApp = "
-                        + isCallerSameApp(updateOwnerPackageName, callingUid) + ", filter = "
-                        + shouldFilterApplicationIncludingUninstalled(ps, callingUid, userId)
-                        + ", FromManagedUserOrProfile = "
-                        + isCallerFromManagedUserOrProfile(userId));
-            }
-
             // Except for package visibility filtering, we also hide update owner if the installer
             // is in the managed user or profile. As we don't enforce the update ownership for the
             // managed user and profile, knowing there's an update owner is meaningless in that
@@ -5178,11 +5160,6 @@
             }
         }
 
-        if (DEBUG_INSTALL) {
-            Log.d(TAG, "ComputerEngine getInstallSourceInfo updateOwnerPackageName = "
-                    + updateOwnerPackageName);
-        }
-
         if (installSource.mIsInitiatingPackageUninstalled) {
             // We can't check visibility in the usual way, since the initiating package is no
             // longer present. So we apply simpler rules to whether to expose the info:
