Add preinstalled partition to seinfo
Bug: 280547417 Test: boot pixel and cuttlefish Test: atest SELinuxMMACTest Change-Id: I0b407ad8b95278453d5b917e0da7024b245062b9 Merged-In: I0b407ad8b95278453d5b917e0da7024b245062b9
This commit is contained in:
@@ -80,6 +80,8 @@ public final class SELinuxMMAC {
|
||||
// Append targetSdkVersion=n to existing seinfo label where n is the app's targetSdkVersion
|
||||
private static final String TARGETSDKVERSION_STR = ":targetSdkVersion=";
|
||||
|
||||
private static final String PARTITION_STR = ":partition=";
|
||||
|
||||
/**
|
||||
* Allows opt-in to the latest targetSdkVersion enforced changes without changing target SDK.
|
||||
* Turning this change on for an app targeting the latest SDK or higher is a no-op.
|
||||
@@ -370,6 +372,23 @@ public final class SELinuxMMAC {
|
||||
return pkg.getTargetSdkVersion();
|
||||
}
|
||||
|
||||
private static String getPartition(AndroidPackage pkg) {
|
||||
if (pkg.isSystemExt()) {
|
||||
return "system_ext";
|
||||
} else if (pkg.isProduct()) {
|
||||
return "product";
|
||||
} else if (pkg.isVendor()) {
|
||||
return "vendor";
|
||||
} else if (pkg.isOem()) {
|
||||
return "oem";
|
||||
} else if (pkg.isOdm()) {
|
||||
return "odm";
|
||||
} else if (pkg.isSystem()) {
|
||||
return "system";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Selects a security label to a package based on input parameters and the seinfo tag taken
|
||||
* from a matched policy. All signature based policy stanzas are consulted and, if no match
|
||||
@@ -433,6 +452,11 @@ public final class SELinuxMMAC {
|
||||
|
||||
seInfo += TARGETSDKVERSION_STR + targetSdkVersion;
|
||||
|
||||
String partition = getPartition(pkg);
|
||||
if (!partition.isEmpty()) {
|
||||
seInfo += PARTITION_STR + partition;
|
||||
}
|
||||
|
||||
if (DEBUG_POLICY_INSTALL) {
|
||||
Slog.i(TAG, "package (" + pkg.getPackageName() + ") labeled with "
|
||||
+ "seinfo=" + seInfo);
|
||||
|
||||
Reference in New Issue
Block a user