【问题标题】:Running executable from Android shell [duplicate]从Android shell运行可执行文件[重复]
【发布时间】:2017-12-06 12:39:26
【问题描述】:

我使用

将我的可执行文件复制到 Android '/data/local/tmp' 目录
adb push /home/build/bin/myexec /data/local/tmp

然后我更改了可执行文件的权限

chmod 755 myexec

当我尝试./myexec

我收到了这个/system/bin/sh: myexec: not found

我了解它无法正常工作,因为它不在系统的bin 文件夹中。是否可以通过 Android 的 shell 或通过 Android 应用程序运行可执行文件?

【问题讨论】:

  • 不需要chmod/data/local/tmp下的可执行文件。目录下的文件是全局可执行的。如果您使用了文件的完整路径,即/data/local/tmp/myexec,但它不起作用,则问题可能出在可执行文件本身。在这种情况下,您会收到什么错误消息?是你编译了可执行文件吗?如果不是,它可能不适合您设备的 CPU。如果是这样,Building executables for Android shell 可能会有所帮助。

标签: android shell executable


【解决方案1】:

如果运行带有完整路径的可执行文件不起作用,则问题可能出在可执行文件本身,这意味着它要么

  • 未成功编译,或
  • 是为另一个 CPU 编译的,而不是您设备上的那个。

在这种情况下,您的选项如下:

  • 如果您有权访问源代码,compile 将它用于您设备的 ABI,
  • 如果它是第 3 方可执行文件,请索要为您设备的 ABI 编译的可执行文件(或者,如果可能,请自行查找)。

【讨论】:

  • 使用命令adb shell getprop | grep abi检查设备ABI。不确定检查可执行架构:file <filename-to-check>.
【解决方案2】:

使用完整的可执行路径

/data/local/tmp/myexec

或者先换目录:

cd /data/local/tmp/
./myexec

【讨论】:

  • 两个都试了还是不行
猜你喜欢
  • 1970-01-01
  • 2013-08-06
  • 2012-09-25
  • 2013-05-08
  • 2013-05-11
  • 1970-01-01
  • 2014-02-09
  • 1970-01-01
  • 2015-06-11
相关资源
最近更新 更多