对于一些特殊的定制需求会要求内置的一些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的包名替换一下就可以了

在一些特殊定制需求中,要求内置APK不能升级到最新版本,只能使用预制版本。此时可在代码上做判断,替换对应APK的包名即可实现该限制。
9157

被折叠的 条评论
为什么被折叠?



