Allow passing in a category override to aapt2

Bug: 240322840
Test: unit test
Change-Id: Ia605ad8ad0267b02d67da15cf65775f69aef59e5
diff --git a/tools/aapt2/link/ManifestFixer.cpp b/tools/aapt2/link/ManifestFixer.cpp
index 035f911..5cee17e 100644
--- a/tools/aapt2/link/ManifestFixer.cpp
+++ b/tools/aapt2/link/ManifestFixer.cpp
@@ -444,13 +444,18 @@
   manifest_action["attribution"]["inherit-from"];
   manifest_action["original-package"];
   manifest_action["overlay"].Action([&](xml::Element* el) -> bool {
-    if (!options_.rename_overlay_target_package) {
-      return true;
+    if (options_.rename_overlay_target_package) {
+      if (xml::Attribute* attr = el->FindAttribute(xml::kSchemaAndroid, "targetPackage")) {
+        attr->value = options_.rename_overlay_target_package.value();
+      }
     }
-
-    if (xml::Attribute* attr =
-            el->FindAttribute(xml::kSchemaAndroid, "targetPackage")) {
-      attr->value = options_.rename_overlay_target_package.value();
+    if (options_.rename_overlay_category) {
+      if (xml::Attribute* attr = el->FindAttribute(xml::kSchemaAndroid, "category")) {
+        attr->value = options_.rename_overlay_category.value();
+      } else {
+        el->attributes.push_back(xml::Attribute{xml::kSchemaAndroid, "category",
+                                                options_.rename_overlay_category.value()});
+      }
     }
     return true;
   });