【发布时间】:2016-04-08 04:18:36
【问题描述】:
我一直在尝试在我的 Android 手机中运行已编译的二进制文件,但它总是告诉我“没有这样的文件或目录”。
具体来说,我编译了wificurse,正如描述中提到的arm命令,很明显可以为arm架构编译源代码,而无需对makefile进行任何更改。所以我做了以下事情:
export CROSS_COMPILE=arm-linux-gnueabi-
make CROSS_COMPILE=arm-linux-gnueabi-
然后使用生成的二进制文件 (wificurse) 我做了以下操作:
adb push wificurse /data
在根 adb shell 中我做了:
root@android:/data # chmod 0777 wificurse
什么都不返回;有效。
root@android:/data # chmod u+x wificurse
返回“坏模式”。
root@android:/data # busybox chmod 077 wificurse
什么都不返回;有效。
root@android:/data # busybox chmod u+x wificurse
什么都不返回;有效。
但是当我尝试使用
运行二进制文件时 root@android:/data # ./wificurse
它返回“/system/bin/sh: ./wificurse: No such file or directory”。 在文件夹中做了一个 ls 并且二进制文件确实在那里。
已经尝试将二进制文件复制到内部 sdcard,然后移动到 /data(甚至尝试过 /system/bin 和 /system/xbin)并返回“拒绝访问”,但如果我对二进制文件进行 chmod,它将返回相同错误(没有这样的文件或目录)。有人可以帮我吗?我已经使用 linux shell 2 年多了,尽管在编程方面我完全是个菜鸟。我想我缺少类似工具链的东西,我不知道。
我正在运行 Ubuntu 15.10 x64。
【问题讨论】:
标签: android linux shell gcc cross-platform