【问题标题】:Difference between adb shell commandadb shell 命令的区别
【发布时间】:2019-04-15 03:22:05
【问题描述】:

windows 7. 当我在 cmd 中进入 adb shell 并在 shell 中输入 iwpriv wlan0 driver "efuse read 0x3D" 时。它可以很好地运行。 但是当我直接输入: adb shell iwpriv wlan0 driver "efuse read 0x3D", 无法读取手机中的值并显示帮助菜单。


正确的代码:

adb shell

iwpriv wlan0 driver "efuse read 0x3D" 

错误代码:

adb shell iwpriv wlan0 driver "efuse read 0x3D" 

正确代码的输出:

wlan0        driver:Read success  0x3D = 0x01

错误代码的输出:

wlan0        driver:

Help Menu:

 Read:

 write:

 Free blocks:

我不知道为什么使用“adb shell + command”(错误代码)和在cmd中进入adb shell后输入命令(正确的命令)之间存在这种差异。
我尝试过使用“adb shell + command”的其他命令,效果很好。如何使用 adb shell iwpriv wlan0 driver "efuse read 0x3D" 使 iwpriv wlan0 driver "efuse read 0x3D" 成功运行?

【问题讨论】:

  • 您提到使用python执行命令。你能告诉我们python代码吗?如果您使用某种形式的进程打开,您可以尝试以下格式:executable name = adb, args = [shell, "iwpriv wlan0...."]

标签: android


【解决方案1】:

很简单,

当你输入时,

adb shell iwpriv wlan0 driver "efuse read 0x3D" 

您正在向 shell 不理解的 shell 提供 iwpriv wlan0 driver "efuse read 0x3D"as 和参数。

当你输入时,adb shell

输入iwpriv wlan0 driver "efuse read 0x3D"后会进入shell

shell 将其视为命令并执行。

如果你想从 python 执行 adb shell 命令,请使用通信,

procId = subprocess.Popen('adb shell', stdin = subprocess.PIPE)
out, err=procId.communicate('command1\ncommand2\nexit\n')

out-输出 err - 错误

【讨论】:

  • 但是如何让shell理解adb shell iwpriv wlan0 driver "efuse read 0x3D"中的命令呢?我使用 python 来自动运行代码,所以我只能使用 adb shell + 命令。
  • 成功了,但是在 output = procId.communicate('command1\ncommand2\nexit\n') 中没有得到任何输出,输出为 none。
猜你喜欢
  • 2021-11-06
  • 1970-01-01
  • 2015-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-09
  • 2013-08-11
  • 1970-01-01
相关资源
最近更新 更多