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,