一个自带root权限的adb shell 命令

开始是这样计划的:

当输入时

adb shell service call SurfaceFlinger 1013;

输出 类时这种结果

Result: Parcel(00007ac3    '.z..')

现实是这样的:

于是你觉得可以这样:

一个自带root权限的adb shell 命令_第1张图片

然后你觉得可以了~~

于是python脚本这样写

self._adb.RunShellCommandWithSU('su',0)

results =run_command.RunCommand("service call SurfaceFlinger 1013" )

你以为它会输出 类时这种结果

Result: Parcel(00007ac3    '.z..')

它实际的输出是


一个自带root权限的adb shell 命令_第2张图片

于是你不明白了,你想明明我执行了self._adb.RunShellCommandWithSU('su',0)为什么不继续执行呢?

折腾了一会,你终于想明白了

因为每次执行Comman的时候,都会还原到最初的环境,也就是说第一次执行self._adb.RunShellCommandWithSU('su',0)并不会影响第二次执行results = run_command.RunCommand("service call SurfaceFlinger 1013" ),所以上面两个命令不是顺序执行的,而是同一层级的。

这时候你蒙比了,冷静了一会,你希望找到”adb shell自带root权限执行Command“的办法,因为这样你就可以只执行一句话了。

折腾了几小时,在要快放弃的时候,你终于在一个犄角旮旯找到了:

一个自带root权限的adb shell 命令_第3张图片

于是你觉得一定可以了

于是你就开始在终端尝试一下:

果然一句话真的可以搞定,于是你异常兴奋。终于这锅可以搞定了。

这时候你觉得引号多了可以去掉 然后你运行了一下发现,这次又蒙比了


一个自带root权限的adb shell 命令_第4张图片

此时你开始庆幸,还好多加一个引号是好的。

于是你就开始修改python脚本,最后你发现了两种方式可以做到,好了该休息了.............

results = self._adb.RunShellCommandWithSU (' " service call SurfaceFlinger 1013;" ')

results = self._adb.RunShellCommand (' su -c " service call SurfaceFlinger 1013;" ' )

你可能感兴趣的:(一个自带root权限的adb shell 命令)