AAPT2: Allow <meta-data> in <manifest>

Bug:32171613
Test: libaapt2_tests
Change-Id: I30fdd9475ff7dff6ceb0ff46a4a00991b72db68b
diff --git a/tools/aapt2/link/ManifestFixer.cpp b/tools/aapt2/link/ManifestFixer.cpp
index 36a3494..4185937e6 100644
--- a/tools/aapt2/link/ManifestFixer.cpp
+++ b/tools/aapt2/link/ManifestFixer.cpp
@@ -216,6 +216,8 @@
 
   manifest_action["supports-gl-texture"];
 
+  manifest_action["meta-data"] = meta_data_action;
+
   // Application actions.
   xml::XmlNodeAction& application_action = manifest_action["application"];
   application_action.Action(OptionalNameIsJavaClassName);
diff --git a/tools/aapt2/link/ManifestFixer_test.cpp b/tools/aapt2/link/ManifestFixer_test.cpp
index e9bc64a..fc6970c 100644
--- a/tools/aapt2/link/ManifestFixer_test.cpp
+++ b/tools/aapt2/link/ManifestFixer_test.cpp
@@ -87,6 +87,23 @@
   EXPECT_EQ(nullptr, Verify("<manifest package=\"@string/str\" />"));
 }
 
+TEST_F(ManifestFixerTest, AllowMetaData) {
+    auto doc = Verify(R"EOF(
+        <manifest xmlns:android="http://schemas.android.com/apk/res/android"
+                  package="android">
+          <meta-data />
+          <application>
+            <meta-data />
+            <activity android:name=".Hi"><meta-data /></activity>
+            <activity-alias android:name=".Ho"><meta-data /></activity-alias>
+            <receiver android:name=".OffToWork"><meta-data /></receiver>
+            <provider android:name=".We"><meta-data /></provider>
+            <service android:name=".Go"><meta-data /></service>
+          </application>
+        </manifest>)EOF");
+    ASSERT_NE(nullptr, doc);
+}
+
 TEST_F(ManifestFixerTest, UseDefaultSdkVersionsIfNonePresent) {
   ManifestFixerOptions options = {std::string("8"), std::string("22")};