diff options
| author | David Brazdil <dbrazdil@google.com> | 2018-09-07 03:12:59 -0700 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2018-09-07 03:12:59 -0700 |
| commit | de5cc1ff5b27aef9f5de2789d09fbd883c742099 (patch) | |
| tree | 85b384d3a3861281024ea8d8b1f4e24b48917a22 /core/java/android | |
| parent | 5c776dea7ebc68e31b16019093a191ef015ada97 (diff) | |
| parent | fdd378c594c68f2bd2226315dc2838b58ed2131f (diff) | |
Merge "Move ApplicationInfo.usesNonSdkApi to private flags"
am: fdd378c594
Change-Id: I43fe6b903eb4cd900da9ebc2b10893213329c691
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/content/pm/ApplicationInfo.java | 24 | ||||
| -rw-r--r-- | core/java/android/content/pm/PackageParser.java | 6 |
2 files changed, 20 insertions, 10 deletions
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java index 76d06c089a70..d818228cb2b6 100644 --- a/core/java/android/content/pm/ApplicationInfo.java +++ b/core/java/android/content/pm/ApplicationInfo.java @@ -621,6 +621,13 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { */ public static final int PRIVATE_FLAG_SIGNED_WITH_PLATFORM_KEY = 1 << 20; + /** + * Indicates whether this package requires access to non-SDK APIs. + * Only system apps and tests are allowed to use this property. + * @hide + */ + public static final int PRIVATE_FLAG_USES_NON_SDK_API = 1 << 22; + /** @hide */ @IntDef(flag = true, prefix = { "PRIVATE_FLAG_" }, value = { PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE, @@ -1001,13 +1008,6 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { public String appComponentFactory; /** - * Indicates whether this package requires access to non-SDK APIs. Only system apps - * and tests are allowed to use this property. - * @hide - */ - public boolean usesNonSdkApi; - - /** * The category of this app. Categories are used to cluster multiple apps * together into meaningful groups, such as when summarizing battery, * network, or disk usage. Apps should only define this value when they fit @@ -1286,6 +1286,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { pw.println(prefix + "category=" + category); } pw.println(prefix + "HiddenApiEnforcementPolicy=" + getHiddenApiEnforcementPolicy()); + pw.println(prefix + "usesNonSdkApi=" + usesNonSdkApi()); } super.dumpBack(pw, prefix); } @@ -1710,11 +1711,18 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { return SystemConfig.getInstance().getHiddenApiWhitelistedApps().contains(packageName); } + /** + * @hide + */ + public boolean usesNonSdkApi() { + return (privateFlags & PRIVATE_FLAG_USES_NON_SDK_API) != 0; + } + private boolean isAllowedToUseHiddenApis() { if (isSignedWithPlatformKey()) { return true; } else if (isSystemApp() || isUpdatedSystemApp()) { - return usesNonSdkApi || isPackageWhitelistedForHiddenApis(); + return usesNonSdkApi() || isPackageWhitelistedForHiddenApis(); } else { return false; } diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 54cfc8044e91..2921e297e160 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -3588,8 +3588,10 @@ public class PackageParser { ai.appComponentFactory = buildClassName(ai.packageName, factory, outError); } - ai.usesNonSdkApi = sa.getBoolean( - com.android.internal.R.styleable.AndroidManifestApplication_usesNonSdkApi, false); + if (sa.getBoolean( + com.android.internal.R.styleable.AndroidManifestApplication_usesNonSdkApi, false)) { + ai.privateFlags |= ApplicationInfo.PRIVATE_FLAG_USES_NON_SDK_API; + } if (outError[0] == null) { CharSequence pname; |
