diff options
author | 2022-01-12 16:03:50 -0800 | |
---|---|---|
committer | 2022-01-12 16:03:50 -0800 | |
commit | 22a931eaab49b865f8c0ed8763d8930679f52544 (patch) | |
tree | a33ee64a97e890491e39a65230ba64ca792a0d88 | |
parent | 306e4e79a357dbde74944b24928d44b8208a740e (diff) |
AAPT2: Emit @keep for sub-process app classes
Test: atest aapt2_tests
Bug: 197264681
Change-Id: I1f6cabfd0f3ce4c3c661d9dc132629d8c83048d9
-rw-r--r-- | tools/aapt2/java/ProguardRules.cpp | 2 | ||||
-rw-r--r-- | tools/aapt2/java/ProguardRules_test.cpp | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/tools/aapt2/java/ProguardRules.cpp b/tools/aapt2/java/ProguardRules.cpp index b939f354e89f..4a2d0aea82d5 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 e1040666e410..466b7d97da00 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" > + <processes> + <process android:process=":sub" android:name="com.foo.BazApplication" /> + </processes> <activity android:name="com.foo.BarActivity"/> <service android:name="com.foo.BarService"/> <receiver android:name="com.foo.BarReceiver"/> @@ -59,6 +62,7 @@ TEST(ProguardRulesTest, ManifestRuleDefaultConstructorOnly) { EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarAppComponentFactory { <init>(); }")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarBackupAgent { <init>(); }")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarApplication { <init>(); }")); + EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BazApplication { <init>(); }")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarActivity { <init>(); }")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarService { <init>(); }")); EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarReceiver { <init>(); }")); |