From 22a931eaab49b865f8c0ed8763d8930679f52544 Mon Sep 17 00:00:00 2001 From: Makoto Onuki Date: Wed, 12 Jan 2022 16:03:50 -0800 Subject: [PATCH] AAPT2: Emit @keep for sub-process app classes Test: atest aapt2_tests Bug: 197264681 Change-Id: I1f6cabfd0f3ce4c3c661d9dc132629d8c83048d9 --- tools/aapt2/java/ProguardRules.cpp | 2 +- tools/aapt2/java/ProguardRules_test.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/aapt2/java/ProguardRules.cpp b/tools/aapt2/java/ProguardRules.cpp index b939f354e89f2..4a2d0aea82d51 100644 --- a/tools/aapt2/java/ProguardRules.cpp +++ b/tools/aapt2/java/ProguardRules.cpp @@ -311,7 +311,7 @@ class ManifestVisitor : public BaseVisitor { component_process ? component_process->value : default_process_; get_name = !process.empty() && process[0] != ':'; } - } else if (node->name == "instrumentation") { + } else if (node->name == "instrumentation" || node->name == "process") { get_name = true; } diff --git a/tools/aapt2/java/ProguardRules_test.cpp b/tools/aapt2/java/ProguardRules_test.cpp index e1040666e4104..466b7d97da007 100644 --- a/tools/aapt2/java/ProguardRules_test.cpp +++ b/tools/aapt2/java/ProguardRules_test.cpp @@ -44,6 +44,9 @@ TEST(ProguardRulesTest, ManifestRuleDefaultConstructorOnly) { android:name="com.foo.BarApplication" android:zygotePreloadName="com.foo.BarZygotePreload" > + + + @@ -59,6 +62,7 @@ TEST(ProguardRulesTest, ManifestRuleDefaultConstructorOnly) { EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarAppComponentFactory { (); }")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarBackupAgent { (); }")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarApplication { (); }")); + EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BazApplication { (); }")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarActivity { (); }")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarService { (); }")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarReceiver { (); }"));