我正在尝试在自定义Android映像中安装预构建的二进制文件.为此,我将其复制到一个新目录,prebuilt/android-arm/其中包含Android.mk与此类似的文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := binary_name
LOCAL_MODULE := binary_name
LOCAL_MODULE_CLASS := EXECUTABLES
include $(BUILD_PREBUILT)
Run Code Online (Sandbox Code Playgroud)
因此,如果我运行make system_image binary_name,二进制文件将被复制到/bin/系统映像中.如果我运行模拟器,我可以看到二进制文件/system/bin.权限与其他可执行文件(-rwxr-xr-x)相同,并且根据file这是一个ARM二进制文件(ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped).
但是当我在模拟器上运行它时,它说:
# binary_name
binary_name: not found
Run Code Online (Sandbox Code Playgroud)
我已经把它拉了过来,这就是我能看到的:
# strace binary_name
execve("/system/bin/binary_name", ["binary_name"], [/* 9 vars */]) = -1 ENOENT (No such file or directory)
write(2, "strace: exec", 12strace: exec) = …Run Code Online (Sandbox Code Playgroud)