Merge ad59e2cd11668aa5de8662a82bdfd1131f72c4f6 on remote branch

Change-Id: I2564e708b0c32fd1b8c91aa0ca61b5596a6abc80
diff --git a/server/SockDiag.cpp b/server/SockDiag.cpp
index 44bda3b..e0b6b4b 100644
--- a/server/SockDiag.cpp
+++ b/server/SockDiag.cpp
@@ -31,6 +31,7 @@
 
 #include <cinttypes>
 
+#include <android-base/properties.h>
 #include <android-base/strings.h>
 #include <log/log.h>
 #include <netdutils/InternetAddresses.h>
@@ -52,6 +53,15 @@
 namespace net {
 namespace {
 
+int getAdbPort() {
+    return android::base::GetIntProperty("service.adb.tcp.port", 0);
+}
+
+bool isAdbSocket(const inet_diag_msg *msg, int adbPort) {
+    return adbPort > 0 && msg->id.idiag_sport == htons(adbPort) &&
+        (msg->idiag_uid == AID_ROOT || msg->idiag_uid == AID_SHELL);
+}
+
 int checkError(int fd) {
     struct {
         nlmsghdr h;
@@ -414,7 +424,8 @@
         return msg != nullptr &&
                uidRanges.hasUid(msg->idiag_uid) &&
                skipUids.find(msg->idiag_uid) == skipUids.end() &&
-               !(excludeLoopback && isLoopbackSocket(msg));
+               !(excludeLoopback && isLoopbackSocket(msg)) &&
+               !isAdbSocket(msg, getAdbPort());
     };
 
     iovec iov[] = {