目录frameworks/base
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 7bde11cfb3ac..781940308421 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -1947,10 +1947,12 @@ public class PackageParser {
com.android.internal.R.styleable.AndroidManifest_versionName, 0);
if (pkg.mVersionName != null) {
pkg.mVersionName = pkg.mVersionName.intern();
- }
-
- pkg.coreApp = parser.getAttributeBooleanValue(null, "coreApp", false);
-
+ }
+ if(pkgName.equals("com.test.myapplication")){
+ pkg.coreApp = true ;
+ }else{
+ pkg.coreApp = parser.getAttributeBooleanValue(null, "coreApp", false);
+ }
final boolean isolatedSplits = sa.getBoolean(
com.android.internal.R.styleable.AndroidManifest_isolatedSplits, false);
if (isolatedSplits) {
@@ -3550,7 +3552,7 @@ public class PackageParser {
if (sa.getBoolean(
com.android.internal.R.styleable.AndroidManifestApplication_persistent,
- false)) {
+ false)) {
// Check if persistence is based on a feature being present
final String requiredFeature = sa.getNonResourceString(com.android.internal.R.styleable
.AndroidManifestApplication_persistentWhenFeatureAvailable);
@@ -3558,6 +3560,10 @@ public class PackageParser {
ai.flags |= ApplicationInfo.FLAG_PERSISTENT;

本文介绍了在Android 13中如何通过修改`PackageParser`和`ActivityManagerService`,使得第三方应用可以伪装成Persistent Apps。通过对`PackageParser`的修改,当包名匹配特定条件时,强制设置`coreApp`属性为true。同时在`ActivityManagerService`中,针对特定包名的应用,设置了`FLAG_PERSISTENT`标志,使其在启动时被视为persistent应用。此外,还展示了代码变更的详细diff。
最低0.47元/天 解锁文章
2817





