当前位置: 首页 > 知识库问答 >
问题:

Android NDK,独立构建,错误不可执行:魔法7F45和/或不可执行:魔法4c01

阎啸
2023-03-14

我试图编译一个“su”超级用户实用程序的修改版本,所以我在git上访问了android5.0源代码,得到了“su.c”文件。

我的实际设备/硬件是一部运行以下功能的乐视x500手机:

  • Android 5.0.2,SDK 21
  • CPU架构AArch64处理器版本2
  • 指令集arm64-v8a

我是关于硬件数据,因为我已经检查了制造商的网站

使用cygwin shell:

$sh制作独立的工具链。sh--平台=android-21--安装目录=/cygdrive/c/users/anaim/ndk-standalone\u arm64--arch=arm64--工具链=aarch64 linux andr oid-4.9--ndk目录=/cygdrive/c/users/anaim/android-ndk-r10e--系统=windows-x86 \u 64

结果:

复制预构建的二进制文件...复制sysroot标头和库...复制c运行时标头和库...将文件复制到: /cygdrive/c/users/anaim/ndk-standalone_arm64清理...完成。命令:

然后我编译了修改后的su。c:

$ /cygdrive/c/Users/anaim/ndk-standalone_arm64/bin/aarch64-linux-android-gcc-c su. c-o su-我/cygDrive/c/用户/anaim/android-ndk-r10e/平台/android-21/弧h-arm/用户/包含

然后我将su二进制文件推送到设备路径 /local/data/tmp

$ /data/local/tmp/su /system/bin/sh: /data/local/tmp/su:不可执行:魔术7F45

我尝试使用另一个带有-arch-flag的工具链来设置-arch=arm,但这给了我一个稍微不同的错误/数据/本地/tmp/su:不可执行:magic 4c01。

为什么两个独立的工具链都是手臂

共有1个答案

上官淮晨
2023-03-14

gcc-c将创建一个对象文件,而不是一个可执行文件。从命令行中删除参数。

 类似资料:
  • 我在htmlunitdriver.java文件中做了一个补丁,如下文所述:使用WebDriver(HtmlUnit,Ruby绑定)时是否可能忽略JavaScript异常 我已经学习了关于selenium build wiki和自述文件中的说明,以及这里给出的技巧:构建selenium服务器项目 但是,我没有一个像selenium-server-standalone-2.25.0.jar这样的jar

  • 问题内容: 我已经编写了一个.c源代码(在Eclipse中),它使用libcap库来获取与网络流量有关的信息。现在,我已经在Eclipse中使用ndk- build创建了一个可执行二进制文件。我已将在libs / armeabi文件夹中创建的二进制文件推送到我的android的/ data / local /文件夹中(根目录为nexus 5,Lollipop),并尝试执行该二进制文件。但是andr

  • 我已经找了两天来解决这个问题,但我没有找到解决办法。首先我想构建fat-jar,然后我放弃了它看起来更复杂,所以我开始构建普通的可执行Jar。我正在用Gradle插件在NetBeans 8.2中构建一些程序(http://plugins.NetBeans.org/plugin/44510/gradle-support) 我的项目结构是这样的: 项目结构 我是一个比较新的年级,我使用它不到一个月。我

  • 我目前正在阅读Spring Boot的教程页(https://Spring.io/guides/gs/uploading-files/#initial),以便检查如何上传映像文件,但我不太理解“运行应用程序”一章的“构建可执行JAR”部分。 我通过教程页面上的链接下载了该项目,并复制和粘贴了所有文件,我在命令提示符上编写了,就像在构建页面中编写的可执行JAR部分一样,但我无法运行该程序。 为了更具

  • 问题内容: 我在中有我的php脚本文件。何时运行,它运行完美。 我想通过sh文件调用PHP文件,SH文件的位置如下 这是文件的内容是: 当我运行时,它也可以完美运行。 现在,如果我按如下所示设置crontab: 但是,此crontab无法正常工作。 有什么事吗 问题答案: 从注释中可以看出,问题在于您没有定义应使用哪个程序来执行脚本。考虑到cronjob是在很小的环境中执行的;在那里,没有什么可以

  • 我试图用Go gRPC构建一个示例应用程序,但我无法使用“protoc”生成代码 我已使用以下工具安装了所需的库和Go软件包: 去谷歌吧。戈朗。组织/grpc 我也尝试过设置路径,但没有成功。 “proto”文件示例: 错误消息: “protoc gen go:程序未找到或不可执行--go\u out:protoc gen go:插件失败,状态代码为1。”