Support profileable application action
Fixes: 129358330
Test: make -j16 aapt2_run_host_unit_tests && cat out/target/product/walleye/obj/PACKAGING/aapt2_run_host_unit_tests_intermediates/result.xml | grep "failure message"
Change-Id: Id9ec59447a99a5f6e0bfe47c0b8ce3553bf751c7
diff --git a/tools/aapt2/link/ManifestFixer.cpp b/tools/aapt2/link/ManifestFixer.cpp
index b0a2055..49909f6 100644
--- a/tools/aapt2/link/ManifestFixer.cpp
+++ b/tools/aapt2/link/ManifestFixer.cpp
@@ -367,6 +367,7 @@
application_action["uses-library"].Action(RequiredNameIsNotEmpty);
application_action["library"].Action(RequiredNameIsNotEmpty);
+ application_action["profileable"];
xml::XmlNodeAction& static_library_action = application_action["static-library"];
static_library_action.Action(RequiredNameIsJavaPackage);
diff --git a/tools/aapt2/link/ManifestFixer_test.cpp b/tools/aapt2/link/ManifestFixer_test.cpp
index 4842f62..3f1ee36 100644
--- a/tools/aapt2/link/ManifestFixer_test.cpp
+++ b/tools/aapt2/link/ManifestFixer_test.cpp
@@ -671,6 +671,24 @@
{}, "application", xml::kSchemaAndroid, "debuggable", "true"), NotNull());
}
+TEST_F(ManifestFixerTest, ApplicationProfileable) {
+ std::string shell = R"(
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="android">
+ <application>
+ <profileable android:shell="true"/>
+ </application>
+ </manifest>)";
+ EXPECT_THAT(Verify(shell), NotNull());
+ std::string noshell = R"(
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="android">
+ <application>
+ <profileable/>
+ </application>
+ </manifest>)";
+ EXPECT_THAT(Verify(noshell), NotNull());
+}
TEST_F(ManifestFixerTest, IgnoreNamespacedElements) {
std::string input = R"EOF(