Merge "Remove Java class name restriction on uses-library" into main
diff --git a/core/java/android/content/res/Element.java b/core/java/android/content/res/Element.java
index 518744e..eb928fd 100644
--- a/core/java/android/content/res/Element.java
+++ b/core/java/android/content/res/Element.java
@@ -746,7 +746,6 @@
case TAG_PROVIDER:
case TAG_RECEIVER:
case TAG_SERVICE:
- case TAG_USES_LIBRARY:
switch (name) {
case TAG_ATTR_NAME:
return true;
diff --git a/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingValidationTest.kt b/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingValidationTest.kt
index 9f855c5..f834cb2 100644
--- a/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingValidationTest.kt
+++ b/services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingValidationTest.kt
@@ -99,23 +99,45 @@
@Test
fun parseApplicationTag() {
val tag = "application"
- validateTagAttr(tag, "backupAgent",
- R.styleable.AndroidManifestApplication_backupAgent, 1024)
- validateTagAttrComponentName(tag, "backupAgent",
- R.styleable.AndroidManifestApplication_backupAgent)
- validateTagAttr(tag, "manageSpaceActivity",
- R.styleable.AndroidManifestApplication_manageSpaceActivity, 1024)
+ validateTagAttr(
+ tag,
+ "backupAgent",
+ R.styleable.AndroidManifestApplication_backupAgent,
+ 1024
+ )
+ validateTagAttrComponentName(
+ tag,
+ "backupAgent",
+ R.styleable.AndroidManifestApplication_backupAgent
+ )
+ validateTagAttr(
+ tag,
+ "manageSpaceActivity",
+ R.styleable.AndroidManifestApplication_manageSpaceActivity,
+ 1024
+ )
validateTagAttr(tag, "name", R.styleable.AndroidManifestApplication_name, 1024)
- validateTagAttrComponentName(tag, "name",
- R.styleable.AndroidManifestApplication_name)
+ validateTagAttrComponentName(tag, "name", R.styleable.AndroidManifestApplication_name)
validateTagAttr(tag, "permission", R.styleable.AndroidManifestApplication_permission, 1024)
validateTagAttr(tag, "process", R.styleable.AndroidManifestApplication_process, 1024)
- validateTagAttr(tag, "requiredAccountType",
- R.styleable.AndroidManifestApplication_requiredAccountType, 1024)
- validateTagAttr(tag, "restrictedAccountType",
- R.styleable.AndroidManifestApplication_restrictedAccountType, 1024)
- validateTagAttr(tag, "taskAffinity",
- R.styleable.AndroidManifestApplication_taskAffinity, 1024)
+ validateTagAttr(
+ tag,
+ "requiredAccountType",
+ R.styleable.AndroidManifestApplication_requiredAccountType,
+ 1024
+ )
+ validateTagAttr(
+ tag,
+ "restrictedAccountType",
+ R.styleable.AndroidManifestApplication_restrictedAccountType,
+ 1024
+ )
+ validateTagAttr(
+ tag,
+ "taskAffinity",
+ R.styleable.AndroidManifestApplication_taskAffinity,
+ 1024
+ )
validateTagCount("profileable", 100, tag)
validateTagCount("uses-native-library", 100, tag)
validateTagCount("receiver", 1000, tag)
@@ -159,12 +181,23 @@
fun parseActivityAliasTag() {
val tag = "activity-alias"
validateTagAttr(tag, "name", R.styleable.AndroidManifestActivityAlias_name, 1024)
- validateTagAttr(tag, "permission",
- R.styleable.AndroidManifestActivityAlias_permission, 1024)
- validateTagAttr(tag, "targetActivity",
- R.styleable.AndroidManifestActivityAlias_targetActivity, 1024)
- validateTagAttrComponentName(tag, "targetActivity",
- R.styleable.AndroidManifestActivityAlias_targetActivity)
+ validateTagAttr(
+ tag,
+ "permission",
+ R.styleable.AndroidManifestActivityAlias_permission,
+ 1024
+ )
+ validateTagAttr(
+ tag,
+ "targetActivity",
+ R.styleable.AndroidManifestActivityAlias_targetActivity,
+ 1024
+ )
+ validateTagAttrComponentName(
+ tag,
+ "targetActivity",
+ R.styleable.AndroidManifestActivityAlias_targetActivity
+ )
validateTagCount("meta-data", 1000, tag)
validateTagCount("intent-filter", 20000, tag)
}
@@ -173,7 +206,6 @@
fun parseUsesLibraryTag() {
val tag = "uses-library"
validateTagAttr(tag, "name", R.styleable.AndroidManifestUsesLibrary_name, 1024)
- validateTagAttrComponentName(tag, "name", R.styleable.AndroidManifestUsesLibrary_name)
}
@Test
@@ -181,10 +213,17 @@
val tag = "activity"
validateTagAttr(tag, "name", R.styleable.AndroidManifestActivity_name, 1024)
validateTagAttrComponentName(tag, "name", R.styleable.AndroidManifestActivity_name)
- validateTagAttr(tag, "parentActivityName",
- R.styleable.AndroidManifestActivity_parentActivityName, 1024)
- validateTagAttrComponentName(tag, "parentActivityName",
- R.styleable.AndroidManifestActivity_parentActivityName)
+ validateTagAttr(
+ tag,
+ "parentActivityName",
+ R.styleable.AndroidManifestActivity_parentActivityName,
+ 1024
+ )
+ validateTagAttrComponentName(
+ tag,
+ "parentActivityName",
+ R.styleable.AndroidManifestActivity_parentActivityName
+ )
validateTagAttr(tag, "permission", R.styleable.AndroidManifestActivity_permission, 1024)
validateTagAttr(tag, "process", R.styleable.AndroidManifestActivity_process, 1024)
validateTagAttr(tag, "taskAffinity", R.styleable.AndroidManifestActivity_taskAffinity, 1024)
@@ -197,26 +236,49 @@
fun parseOverlayTag() {
val tag = "overlay"
validateTagAttr(tag, "category", R.styleable.AndroidManifestResourceOverlay_category, 1024)
- validateTagAttr(tag, "requiredSystemPropertyName",
- R.styleable.AndroidManifestResourceOverlay_requiredSystemPropertyName, 1024)
- validateTagAttr(tag, "requiredSystemPropertyValue",
- R.styleable.AndroidManifestResourceOverlay_requiredSystemPropertyValue, PROP_VALUE_MAX)
- validateTagAttr(tag, "targetPackage",
- R.styleable.AndroidManifestResourceOverlay_targetPackage, 256)
- validateTagAttr(tag, "targetName",
- R.styleable.AndroidManifestResourceOverlay_targetName, 1024)
+ validateTagAttr(
+ tag,
+ "requiredSystemPropertyName",
+ R.styleable.AndroidManifestResourceOverlay_requiredSystemPropertyName,
+ 1024
+ )
+ validateTagAttr(
+ tag,
+ "requiredSystemPropertyValue",
+ R.styleable.AndroidManifestResourceOverlay_requiredSystemPropertyValue,
+ PROP_VALUE_MAX
+ )
+ validateTagAttr(
+ tag,
+ "targetPackage",
+ R.styleable.AndroidManifestResourceOverlay_targetPackage,
+ 256
+ )
+ validateTagAttr(
+ tag,
+ "targetName",
+ R.styleable.AndroidManifestResourceOverlay_targetName,
+ 1024
+ )
}
@Test
fun parseInstrumentationTag() {
val tag = "instrumentation"
validateTagAttr(tag, "name", R.styleable.AndroidManifestInstrumentation_name, 1024)
- validateTagAttrComponentName(tag, "name",
- R.styleable.AndroidManifestInstrumentation_name)
- validateTagAttr(tag, "targetPackage",
- R.styleable.AndroidManifestInstrumentation_targetPackage, 256)
- validateTagAttr(tag, "targetProcesses",
- R.styleable.AndroidManifestInstrumentation_targetProcesses, 1024)
+ validateTagAttrComponentName(tag, "name", R.styleable.AndroidManifestInstrumentation_name)
+ validateTagAttr(
+ tag,
+ "targetPackage",
+ R.styleable.AndroidManifestInstrumentation_targetPackage,
+ 256
+ )
+ validateTagAttr(
+ tag,
+ "targetProcesses",
+ R.styleable.AndroidManifestInstrumentation_targetProcesses,
+ 1024
+ )
}
@Test
@@ -278,10 +340,18 @@
validateTagAttrComponentName(tag, "name", R.styleable.AndroidManifestProvider_name)
validateTagAttr(tag, "permission", R.styleable.AndroidManifestProvider_permission, 1024)
validateTagAttr(tag, "process", R.styleable.AndroidManifestProvider_process, 1024)
- validateTagAttr(tag, "readPermission",
- R.styleable.AndroidManifestProvider_readPermission, 1024)
- validateTagAttr(tag, "writePermission",
- R.styleable.AndroidManifestProvider_writePermission, 1024)
+ validateTagAttr(
+ tag,
+ "readPermission",
+ R.styleable.AndroidManifestProvider_readPermission,
+ 1024
+ )
+ validateTagAttr(
+ tag,
+ "writePermission",
+ R.styleable.AndroidManifestProvider_writePermission,
+ 1024
+ )
validateTagCount("grant-uri-permission", 100, tag)
validateTagCount("path-permission", 100, tag)
validateTagCount("meta-data", 1000, tag)
@@ -292,26 +362,54 @@
fun parseGrantUriPermissionTag() {
val tag = "grant-uri-permission"
validateTagAttr(tag, "path", R.styleable.AndroidManifestGrantUriPermission_path, 4000)
- validateTagAttr(tag, "pathPrefix",
- R.styleable.AndroidManifestGrantUriPermission_pathPrefix, 4000)
- validateTagAttr(tag, "pathPattern",
- R.styleable.AndroidManifestGrantUriPermission_pathPattern, 4000)
+ validateTagAttr(
+ tag,
+ "pathPrefix",
+ R.styleable.AndroidManifestGrantUriPermission_pathPrefix,
+ 4000
+ )
+ validateTagAttr(
+ tag,
+ "pathPattern",
+ R.styleable.AndroidManifestGrantUriPermission_pathPattern,
+ 4000
+ )
}
@Test
fun parsePathPermissionTag() {
val tag = "path-permission"
validateTagAttr(tag, "path", R.styleable.AndroidManifestPathPermission_path, 4000)
- validateTagAttr(tag, "pathPrefix",
- R.styleable.AndroidManifestPathPermission_pathPrefix, 4000)
- validateTagAttr(tag, "pathPattern",
- R.styleable.AndroidManifestPathPermission_pathPattern, 4000)
- validateTagAttr(tag, "permission",
- R.styleable.AndroidManifestPathPermission_permission, 1024)
- validateTagAttr(tag, "readPermission",
- R.styleable.AndroidManifestPathPermission_readPermission, 1024)
- validateTagAttr(tag, "writePermission",
- R.styleable.AndroidManifestPathPermission_writePermission, 1024)
+ validateTagAttr(
+ tag,
+ "pathPrefix",
+ R.styleable.AndroidManifestPathPermission_pathPrefix,
+ 4000
+ )
+ validateTagAttr(
+ tag,
+ "pathPattern",
+ R.styleable.AndroidManifestPathPermission_pathPattern,
+ 4000
+ )
+ validateTagAttr(
+ tag,
+ "permission",
+ R.styleable.AndroidManifestPathPermission_permission,
+ 1024
+ )
+ validateTagAttr(
+ tag,
+ "readPermission",
+ R.styleable.AndroidManifestPathPermission_readPermission,
+ 1024
+ )
+ validateTagAttr(
+ tag,
+ "writePermission",
+ R.styleable.AndroidManifestPathPermission_writePermission,
+ 1024
+ )
}
@Test
@@ -350,8 +448,12 @@
validateTagAttr(tag, "pathPattern", R.styleable.AndroidManifestData_pathPattern, 4000)
validateTagAttr(tag, "pathPrefix", R.styleable.AndroidManifestData_pathPrefix, 4000)
validateTagAttr(tag, "pathSuffix", R.styleable.AndroidManifestData_pathSuffix, 4000)
- validateTagAttr(tag, "pathAdvancedPattern",
- R.styleable.AndroidManifestData_pathAdvancedPattern, 4000)
+ validateTagAttr(
+ tag,
+ "pathAdvancedPattern",
+ R.styleable.AndroidManifestData_pathAdvancedPattern,
+ 4000
+ )
validateTagAttr(tag, "mimeType", R.styleable.AndroidManifestData_mimeType, 512)
}
@@ -365,8 +467,12 @@
fun parsePermissionTag() {
val tag = "permission"
validateTagAttr(tag, "name", R.styleable.AndroidManifestPermission_name, 1024)
- validateTagAttr(tag, "permissionGroup",
- R.styleable.AndroidManifestPermission_permissionGroup, 256)
+ validateTagAttr(
+ tag,
+ "permissionGroup",
+ R.styleable.AndroidManifestPermission_permissionGroup,
+ 256
+ )
}
@Test
@@ -386,14 +492,18 @@
try {
validator.validateStrAttr(pullParser, attr, name)
} catch (e: SecurityException) {
- fail("Failed to parse attribute $attr in <$tag> as valid Java class name:" +
- " ${e.message}")
+ fail(
+ "Failed to parse attribute $attr in <$tag> as valid Java class name:" +
+ " ${e.message}"
+ )
}
try {
validator.validateResStrAttr(pullParser, index, name)
} catch (e: SecurityException) {
- fail("Failed to parse attribute $attr in <$tag> as valid Java class name:" +
- " ${e.message}")
+ fail(
+ "Failed to parse attribute $attr in <$tag> as valid Java class name:" +
+ " ${e.message}"
+ )
}
}
@@ -404,13 +514,17 @@
val validator = Validator()
pullParser.nextTag()
validator.validate(pullParser)
- val e1 = assertThrows("$name is not valid Java class name",
- SecurityException::class.java) {
+ val e1 = assertThrows(
+ "$name is not valid Java class name",
+ SecurityException::class.java
+ ) {
validator.validateStrAttr(pullParser, attr, name)
}
assertEquals(expectedAttrComponentNameErrorMsg(name), e1.message)
- val e2 = assertThrows("$name is not valid Java class name",
- SecurityException::class.java) {
+ val e2 = assertThrows(
+ "$name is not valid Java class name",
+ SecurityException::class.java
+ ) {
validator.validateResStrAttr(pullParser, index, name)
}
assertEquals(expectedAttrComponentNameErrorMsg(name), e2.message)
@@ -437,15 +551,19 @@
try {
validator.validateStrAttr(pullParser, name, value)
} catch (e: SecurityException) {
- fail("Failed to parse valid <$tag> attribute $name with max length of $maxLen:" +
- " ${e.message}")
+ fail(
+ "Failed to parse valid <$tag> attribute $name with max length of $maxLen:" +
+ " ${e.message}"
+ )
}
if (index != null) {
try {
validator.validateResStrAttr(pullParser, index, value)
} catch (e: SecurityException) {
- fail("Failed to parse valid <$tag> resource string attribute $name with max" +
- " length of $maxLen: ${e.message}")
+ fail(
+ "Failed to parse valid <$tag> resource string attribute $name with max" +
+ " length of $maxLen: ${e.message}"
+ )
}
}
}
@@ -485,8 +603,10 @@
try {
parseXmlStr(xml)
} catch (e: SecurityException) {
- fail("Failed to parse <$tag> with max count limit of $maxNum under" +
- " <$parentTag>: ${e.message}")
+ fail(
+ "Failed to parse <$tag> with max count limit of $maxNum under" +
+ " <$parentTag>: ${e.message}"
+ )
}
}