summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorJohn Wu <topjohnwu@google.com>2021-08-19 16:05:34 -0700
committerJohn Wu <topjohnwu@google.com>2021-08-19 16:05:34 -0700
commit5c65211ec0dd1c7c876603637bce8ca4314cfd07 (patch)
tree73958e5ac2ec68b00edef7362c3058a357197a74 /core/java/android
parentbbca23fee6da75f6337a174ebfd430704a89d7df (diff)
Introduce the sharedUserMaxSdkVersion attribute
We need a mechanism to allow developers to opt-out of shared UID without removing the android:sharedUserId attribute to maintain compatibility with older Android versions. The developer can set the highest API level at which the sharedUserId attribute will be recognized, analogous to using maxSdkVersion in <uses-permission>. Bug: 196261070 Test: build + flash + TH Change-Id: I12d2bc0997d1291991b1289a7b0dda0d954f2bd2
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/content/pm/parsing/ParsingPackageUtils.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/java/android/content/pm/parsing/ParsingPackageUtils.java b/core/java/android/content/pm/parsing/ParsingPackageUtils.java
index 809a544039f9..80befcdf02de 100644
--- a/core/java/android/content/pm/parsing/ParsingPackageUtils.java
+++ b/core/java/android/content/pm/parsing/ParsingPackageUtils.java
@@ -996,6 +996,11 @@ public class ParsingPackageUtils {
private static ParseResult<ParsingPackage> parseSharedUser(ParseInput input,
ParsingPackage pkg, TypedArray sa) {
+ int maxSdkVersion = anInteger(0, R.styleable.AndroidManifest_sharedUserMaxSdkVersion, sa);
+ if ((maxSdkVersion != 0) && maxSdkVersion < Build.VERSION.RESOURCES_SDK_INT) {
+ return input.success(pkg);
+ }
+
String str = nonConfigString(0, R.styleable.AndroidManifest_sharedUserId, sa);
if (TextUtils.isEmpty(str)) {
return input.success(pkg);