'Executes a program on the device.
Returns:
A :class:`pwnlib.tubes.tube.tube` which is connected to the process.
Examples:
>>> pwnlib.protocols.adb.AdbClient().execute([\'echo\',\'hello\']).recvall()
\'hello\n\''

@_autoclose
@_with_transport
def execute(self, argv):

    self.transport(context.device)
    if isinstance(argv, str):
        argv = [argv]
    argv = list(map(sh_string, argv))
    cmd = ('exec:%s' % '    '.join(argv))
    if (OKAY == self.send(cmd)):
        rv = self._c
        self._c = None
        return rv
