对于一些特殊的定制需求会要求内置的一些APK不能升级到发布的最新版本,只能用当前预制的版本,这时候就在代码上做个判断就好啦
--- a//frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b//frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -15454,6 +15454,14 @@ public class PackageManagerService extends PackageManagerServiceExAbs
} else {
pkgLite = mContainerService.getMinimalPackageInfo(origin.resolvedPath, installFlags,
packageAbiOverride);
+
+ if (pkgLite.packageName.equals("com.wy.learningmaster")) {
+ ret = PackageManager.INSTALL_SUCCEEDED;
+ } else{
+ ret = PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION;
+ }
+
+
if (DEBUG_INSTANT && ephemeral) {
Slog.v(TAG, "pkgLite for install: " + pkgLite);
将对应的APK的包名替换一下就可以了