Installation einer vorgefertigten Binärdatei unter Android: "nicht gefunden"

Ich versuche, eine vorgefertigte Binärdatei in einem benutzerdefinierten Android-Image zu installieren. Dafür habe ich es in ein neues Verzeichnis kopiertprebuilt/android-arm/ mit einemAndroid.mk Datei ähnlich dieser:

<code>LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := binary_name
LOCAL_MODULE := binary_name
LOCAL_MODULE_CLASS := EXECUTABLES
include $(BUILD_PREBUILT)
</code>

Also wenn ich rennemake system_image binary_namewird die Binärdatei nach kopiert/bin/ im System-Image. Und wenn ich den Emulator starte, kann ich die Binärdatei in sehen/system/bin. Die Berechtigungen sind die gleichen wie bei den anderen ausführbaren Dateien (-rwxr-xr-x) und nachfile, dies ist eine ARM-Binärdatei (ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped).

Aber wenn ich es auf dem Emulator ausführe, heißt es:

<code># binary_name
binary_name: not found
</code>

Ich habe es gestrafft und das ist was ich sehen kann:

<code># 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)            = 12
write(2, ": ", 2: )                       = 2
write(2, "No such file or directory", 25No such file or directory) = 25
write(2, "\n", 1
)                       = 1
io_submit(1, -1344063348, {...} <unfinished ... exit status 1>
</code>

Aber die Datei ist da und Strace kann sie finden.

Hast du eine Vorstellung davon, was passieren kann?

AKTUALISIEREN: Wie Kristof sagt, ist dies wahrscheinlich ein Problem der dynamischen Verknüpfung, aber ich habe kein ldd für Android ARM ...

Antworten auf die Frage(1)

Ihre Antwort auf die Frage