summaryrefslogtreecommitdiff
path: root/fastboot/usb_linux.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fastboot/usb_linux.cpp')
-rw-r--r--fastboot/usb_linux.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/fastboot/usb_linux.cpp b/fastboot/usb_linux.cpp
index 6363aa547a..964488cc87 100644
--- a/fastboot/usb_linux.cpp
+++ b/fastboot/usb_linux.cpp
@@ -43,6 +43,8 @@
#include <linux/version.h>
#include <linux/usb/ch9.h>
+#include <android-base/file.h>
+#include <android-base/stringprintf.h>
#include <chrono>
#include <memory>
#include <thread>
@@ -263,6 +265,13 @@ static int filter_usb_device(char* sysfs_name,
info.has_bulk_in = (in != -1);
info.has_bulk_out = (out != -1);
+ std::string interface;
+ auto path = android::base::StringPrintf("/sys/bus/usb/devices/%s/%s:1.%d/interface",
+ sysfs_name, sysfs_name, ifc->bInterfaceNumber);
+ if (android::base::ReadFileToString(path, &interface)) {
+ snprintf(info.interface, sizeof(info.interface), "%s", interface.c_str());
+ }
+
if(callback(&info) == 0) {
*ept_in_id = in;
*ept_out_id = out;