Sha*_*boz 3 python android python-3.x
我遇到一种情况,我需要运行命令来adb shell获取设备的根访问权限。
然后,我使用以下命令在我的设备上运行交互式控制台应用程序:/oem/console --no-logging。
该命令返回以下输出:
之后,我需要按 ENTER 以便控制台接受事件(箭头光标已准备好接受调用事件)。这个控制台应用程序接受某些事件,我可以模拟我的设备的行为。例如:
invoke put.device.into.charge 1invoke call.cell.hangup 1invoke xyz所以我的问题是,如何将这些命令逐一输入到此控制台应用程序中,并在每个命令后等待几秒钟?
这是我到目前为止的代码:
def run_adb_shell_command(command, return_process=False):
"""Run an ADB shell command."""
cmd = command.split()
process = Popen(cmd, stdin=subprocess.PIPE)
if return_process:
return process
def send_command_to_console_app(command, process):
"""SEND Commands to Console App."""
new_line = '\n'.encode()
# encoded_command = str(command).encode()
s0 = command
s1 = 'event 1'
s2 = 'event 2'
s3 = 'event 3'
concat_query = "{}\n".format(s0)
process.communicate(input=concat_query.encode('utf-8'))[0]
process.kill()
Run Code Online (Sandbox Code Playgroud)
问题是,当communicate()为其中一个事件调用函数时,它只是挂起并且永远不会完成,以便我可以运行下一个事件。
对此最好的方法是什么?
| 归档时间: |
|
| 查看次数: |
255 次 |
| 最近记录: |