code: def ReadUntil(self, *expected_cmds):
          
          cmd, remote_id, local_id, data = AdbMessage.Read(
              self.usb, expected_cmds, self.timeout_ms)
          if local_id != 0 and self.local_id != local_id:
              raise InterleavedDataError("We don't support multiple streams...")
          if remote_id != 0 and self.remote_id != remote_id:
              raise InvalidResponseError(
                  'Incorrect remote id, expected %s got %s' % (
                      self.remote_id, remote_id))
          # Ack write packets.
          if cmd == b'WRTE':
              self.Okay()
          return cmd, data
docs: Read a packet, Ack any write packets.