From aaa7ecfd3b7b8d780e6a5f71dcd1dcb0783f2e49 Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Tue, 26 Mar 2019 14:58:08 +0900 Subject: [PATCH] Fix message names in dumpsys network_stack Constants were stripped out by ProGuard, so MessageUtils.findMessageNames would fail to find them. Test: flashed, dumpsys network_stack shows message names Fixes: 124619824 Change-Id: I285ce2ab52cdff48f17b422285a635bd34243498 --- packages/NetworkStack/Android.bp | 3 +++ packages/NetworkStack/proguard.flags | 9 +++++++++ .../NetworkStack/src/android/net/dhcp/DhcpClient.java | 1 + packages/NetworkStack/src/android/net/ip/IpClient.java | 1 + 4 files changed, 14 insertions(+) create mode 100644 packages/NetworkStack/proguard.flags diff --git a/packages/NetworkStack/Android.bp b/packages/NetworkStack/Android.bp index 52534a8fbae79..0bd5c5f591338 100644 --- a/packages/NetworkStack/Android.bp +++ b/packages/NetworkStack/Android.bp @@ -49,6 +49,9 @@ java_defaults { // Resources already included in NetworkStackBase resource_dirs: [], jarjar_rules: "jarjar-rules-shared.txt", + optimize: { + proguard_flags_files: ["proguard.flags"], + }, // The permission configuration *must* be included to ensure security of the device required: ["NetworkStackPermissionStub"], } diff --git a/packages/NetworkStack/proguard.flags b/packages/NetworkStack/proguard.flags new file mode 100644 index 0000000000000..c60f6c338d839 --- /dev/null +++ b/packages/NetworkStack/proguard.flags @@ -0,0 +1,9 @@ +-keepclassmembers class android.net.ip.IpClient { + static final int CMD_*; + static final int EVENT_*; +} + +-keepclassmembers class android.net.dhcp.DhcpClient { + static final int CMD_*; + static final int EVENT_*; +} diff --git a/packages/NetworkStack/src/android/net/dhcp/DhcpClient.java b/packages/NetworkStack/src/android/net/dhcp/DhcpClient.java index 0b7809e9f614f..1e724c22a7ec3 100644 --- a/packages/NetworkStack/src/android/net/dhcp/DhcpClient.java +++ b/packages/NetworkStack/src/android/net/dhcp/DhcpClient.java @@ -126,6 +126,7 @@ public class DhcpClient extends StateMachine { // DhcpClient uses IpClient's handler. private static final int PUBLIC_BASE = IpClient.DHCPCLIENT_CMD_BASE; + // Below constants are picked up by MessageUtils and exempt from ProGuard optimization. /* Commands from controller to start/stop DHCP */ public static final int CMD_START_DHCP = PUBLIC_BASE + 1; public static final int CMD_STOP_DHCP = PUBLIC_BASE + 2; diff --git a/packages/NetworkStack/src/android/net/ip/IpClient.java b/packages/NetworkStack/src/android/net/ip/IpClient.java index 346ac68407ded..7a06af41f951d 100644 --- a/packages/NetworkStack/src/android/net/ip/IpClient.java +++ b/packages/NetworkStack/src/android/net/ip/IpClient.java @@ -282,6 +282,7 @@ public class IpClient extends StateMachine { public static final String DUMP_ARG_CONFIRM = "confirm"; + // Below constants are picked up by MessageUtils and exempt from ProGuard optimization. private static final int CMD_TERMINATE_AFTER_STOP = 1; private static final int CMD_STOP = 2; private static final int CMD_START = 3;