code: def streaming_command(self, service, command='', timeout_ms=None):
      
      timeout = timeouts.PolledTimeout.from_millis(timeout_ms)
      stream = self.open_stream('%s:%s' % (service, command), timeout)
      if not stream:
        raise usb_exceptions.AdbStreamUnavailableError(
            '%s does not support service: %s', self, service)
      for data in stream.read_until_close(timeout):
        yield data
docs: One complete set of packets for a single command.
  
      Helper function to call open_stream and yield the output.  Sends
      service:command in a new connection, reading the data for the response. All
      the data is held in memory, large responses will be slow and can fill up
      memory.
  
      Args:
        service: The service on the device to talk to.
        command: The command to send to the service.
        timeout_ms: Timeout for the entire command, in milliseconds (or as a
          PolledTimeout object).
  
      Yields:
        The data contained in the responses from the service.