Respect package source from adb install

The package source is set to PACKAGE_SOURCE_OTHER in PackageManager-
ShellCommand by default. However, the source would be overrided to
PACKAGE_SOURCE_UNSPECIFIED if installerPackageName is null in the
InstallSource#createInternal. We should respect the package source
if it's set.

Bug: 240114543
Test: atest CtsPackageInstallTestCases:InstallSourceInfoTest
Test: manually install an app via adb install, and check the source
Change-Id: Ide5851d17d82bb3f20693b62348e303226f97a48
diff --git a/services/core/java/com/android/server/pm/InstallSource.java b/services/core/java/com/android/server/pm/InstallSource.java
index 404285c..e5f7f71 100644
--- a/services/core/java/com/android/server/pm/InstallSource.java
+++ b/services/core/java/com/android/server/pm/InstallSource.java
@@ -131,7 +131,8 @@
             @Nullable PackageSignatures initiatingPackageSignatures) {
         if (initiatingPackageName == null && originatingPackageName == null
                 && installerPackageName == null && initiatingPackageSignatures == null
-                && !isInitiatingPackageUninstalled) {
+                && !isInitiatingPackageUninstalled
+                && packageSource == PackageInstaller.PACKAGE_SOURCE_UNSPECIFIED) {
             return isOrphaned ? EMPTY_ORPHANED : EMPTY;
         }
         return new InstallSource(initiatingPackageName, originatingPackageName,