Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit af086e9a authored by Josh Gao's avatar Josh Gao
Browse files

adbd: respond to device-to-host control transfers.

Failing to write to the endpoint results in subsequent reads on ep0 to
fail with EL2HLT, so do an empty write to fulfill the transfer.

Bug: http://b/131867920
Test: manually tested with modified auto client
Change-Id: If2eec162ca4b31a9974c7bd5802be51cee9e2708
parent 7eeed228
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -380,7 +380,12 @@ struct UsbFfsConnection : public Connection {
                                  << ", 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";
                            LOG(INFO) << "acking device-to-host control transfer";
                            ssize_t rc = adb_write(control_fd_.get(), "", 0);
                            if (rc != 0) {
                                PLOG(ERROR) << "failed to write empty packet to host";
                                break;
                            }
                        } else {
                            std::string buf;
                            buf.resize(event.u.setup.wLength + 1);