Merge "adbd: read, print, and ignore USB control transfers." into qt-dev
am: 6031286936
Change-Id: I3e1a2052406b3399f7e11176ac2aca1adcb20f52
This commit is contained in:
commit
26a6faf0ae
1 changed files with 27 additions and 0 deletions
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue