我需要向adb shell
发送命令以自动执行某些调试,但问题是我还需要通过su
提供的提升权限。我的第一个想法是使用简单的文件重定向:
commands.txt中
ls -l > /sdcard/dirListing.txt
exit
>> adb shell < commands.txt
这种方法效果很好,但我们仅受限于shell可用的权限,并且没有将自己提升为root。所以,我认为这就像添加一条额外的行来提供这些特权一样简单。
commands.txt中
su
ls -l > /sdcard/dirListing.txt
exit
>> adb shell < commands.txt
su
ls -l > /sdcard/dirListing.txt
exit
exit
注意:添加了第二个退出,因为在使用su
提升自己之后,第一次调用exit
会使您恢复原来的权限,而不是终止会话。
然而,结果远非正确。我想,几乎有效。 dirListing.txt
文件已正确生成,但正如您所看到的,我们留下了一个无法与之交互的shell提示符。我只能假设这是因为我们已将输入重定向到文本文件,尽管adb可能无法正确处理此高程并且shell已挂起。
此输出也很难遵循。
su
ls -l > /sdcard/dirListing.txt
exit
exit
shell@klte:/ $ su
ls -l > /sdcard/dirListing.txt
exit
exit
ls -l > /sdcard/dirListing.txt
exit
exit
root@klte:/ # ls -l > /sdcard/dirListing.txt
root@klte:/ # exit
shell@klte:/ $
有关如何使其正常工作的任何想法?