我可以在我的PC上的shell中运行adb shell cmd package list packages
,并获取所有已安装包的列表。我想在Android手机(Nexus 6P)的终端模拟器(当前正在使用Termux)中本地运行此命令和类似的命令。
如果我使用/system/bin/sh
打开相同的shell,然后尝试运行/system/bin/cmd package list packages
,什么都没有发生(没有错误,只是输出为空并重新加载提示符)。
如果我运行/system/bin/cmd -l
,则选项列表如预期所示。在两种环境中,$PATH
和$LD_LIBRARY_PATH
是相同的主要区别是,echo $USER
从adb shell
返回“shell”,但从来自Termux启动的/system/bin/sh
返回我的本地用户名。
是否有办法在Android本地终端模拟器中复制从adb shell
运行的命令的行为?
编辑: 我的设备已获得root权限,并且我可以接受只有root权限的解决方案。
adb shell
运行的命令的行为。我的困惑在于,我正在使用相同的二进制文件和相同的shell二进制文件在同一设备上运行,并获得不同的输出(在本地运行时技术上没有输出)。 - user2571203