你好,我需要以adb shell <command>
的形式运行一些操作。
当我在adb shell中测试所有内容时,它可以工作,因为我能够在.bashrc
中设置一些别名。然而,当我执行adb shell <command>
时,什么都不起作用,因为非交互模式下不使用.bashrc
。
我该如何解决这个问题?我能否将一些文件通过adb push
推送到文件系统中,以便当运行adb shell
时别名存在?
adb shell
的别名添加到 /system/etc/mkshrc
文件中。etc/mkshrc
文件。我使用了命令 mount -o remount,rw /system
在没有进入TWRP的情况下将/system
挂载为可读写模式。 - Johannes Bittnermount -o remount,ro /system
。 - R Yodamount -o,rw $(mount | grep /dev/root | awk '{print $3}'
对于任何Android版本都能完成工作。 - 5p0ng3b0b/system/etc/mkshrc
只有在获取adb shell
提示后才能生效。如果使用adb shell "<the-added-alias>"
调用别名,则不会生效。(我有一个基于Android-10的已root设备)。 - Tzunghsing David Wong一种方法是在单个ADB命令中发出多个shell命令。您可以将它们放在一个字符串中,并用分号分隔,如下所示:
adb shell“alias foo bar; export MY_VARIABLE = / path / to / somewhere; my_executable”
这里的“”
非常重要,请确保它们正确配对。你可以用这种方式运行你的.bashrc
:
adb shell“source /path/to/.bashrc; my_executable”
#!/usr/bin/bash
. $HOME/.bashrc
adb shell $@