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[] = {