Merge "adbd: read, print, and ignore USB control transfers." into qt-dev

am: 6031286936

Change-Id: I3e1a2052406b3399f7e11176ac2aca1adcb20f52
This commit is contained in:
Josh Gao 2019-05-20 17:17:31 -07:00 committed by android-build-merger
commit 26a6faf0ae

View file

@ -370,6 +370,33 @@ struct UsbFfsConnection : public Connection {
bound = false;
running = false;
break;
case FUNCTIONFS_SETUP: {
LOG(INFO) << "received FUNCTIONFS_SETUP control transfer: bRequestType = "
<< static_cast<int>(event.u.setup.bRequestType)
<< ", bRequest = " << static_cast<int>(event.u.setup.bRequest)
<< ", wValue = " << static_cast<int>(event.u.setup.wValue)
<< ", wIndex = " << static_cast<int>(event.u.setup.wIndex)
<< ", wLength = " << static_cast<int>(event.u.setup.wLength);
if ((event.u.setup.bRequestType & USB_DIR_IN)) {
LOG(WARNING) << "received a device-to-host control transfer, ignoring";
} else {
std::string buf;
buf.resize(event.u.setup.wLength + 1);
ssize_t rc = adb_read(control_fd_.get(), buf.data(), buf.size());
if (rc != event.u.setup.wLength) {
LOG(ERROR)
<< "read " << rc
<< " bytes when trying to read control request, expected "
<< event.u.setup.wLength;
}
LOG(INFO) << "control request contents: " << buf;
break;
}
}
}
}