【问题标题】:Android: run a script on non-rooted deviceAndroid:在非 root 设备上运行脚本
【发布时间】:2016-03-18 07:56:52
【问题描述】:

我可以在非根设备上运行我的二进制可执行文件或脚本 bash 文件吗? 我有一个像这样的小脚本:

#helloworld.sh
echo "hello world"

我将它保存在/sdcard 并尝试运行,但我得到了“权限被拒绝”。我研究了一下,原因是SDCard的执行权限被屏蔽了。

可以跑吗?如果没有SU 命令,我该怎么做?如果能以某种方式执行任何脚本文件,我认为非常有帮助。

【问题讨论】:

  • 如果您没有执行权限,您可以尝试打开一个shell (adb shell) 并尝试chmod 777 /path/to/helloworld.sh。我不确定您是否可以在非 root 设备上执行此操作

标签: android shell adb


【解决方案1】:

在非 root 设备上,您可以使用 sh 命令在 SDcard 上运行脚本:

    adb shell sh path_to_script_on_sdcard/script.sh

【讨论】:

    【解决方案2】:

    哦,我可以在没有 SU 权限的情况下运行我的脚本,只需使用 sh 命令:

    $ cd /sdcard
    $ sh helloworld.sh
    hello world
    

    我认为我们不能对二进制可执行文件做同样的事情。

    【讨论】:

    【解决方案3】:

    对于 shell 脚本,您可以在手机中设置 TermuxTerminal Emulator,为其启用存储权限,启动它,然后像这样运行脚本:

    sh PATH_TO_FILE
    

    将 PATH 替换为 /sdcard 下的文件路径。它应该工作。

    要运行兼容的二进制文件,请将文件从 sdcard 移动到 Termux 的主目录,使用:

    mv PATH_TO_FILE $HOME
    

    然后验证并启用,如有必要,使用chmod +x $HOME/FILENAME,对该移动文件的可执行权限并运行它。

    【讨论】:

      猜你喜欢
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多