Özel bir Android resminde bir ön kurulum ikili yüklemeye çalışıyorum. Ben make system_image binary_name
çalıştırırsanız Yani, ikili dosya sistemi görüntüde /bin/
kopyalanırAndroid'de önceden oluşturulmuş bir binary kurulumu: "bulunamadı"
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := binary_name
LOCAL_MODULE := binary_name
LOCAL_MODULE_CLASS := EXECUTABLES
include $(BUILD_PREBUILT)
: Bunun için ben buna benzer bir Android.mk
dosya ile prebuilt/android-arm/
yeni dizine kopyaladıktan. Ve eğer öykünücüyü çalıştırırsam, ikili dosyayı /system/bin
'da görebilirim. İzinler, diğer çalıştırılabilirler (-rwxr-xr-x
) ile aynıdır ve file
'a göre, bu bir ARM ikilidir (ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped
). Ben emülatörü üzerinde çalıştırdığınızda
Ama, diyor: Ben straced ve bu görebildiğim budur
# binary_name
binary_name: not found
:
# 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>
Ama dosya var ve strace onu bulabilir.
Neler olabileceği hakkında bir fikrin var mı?
GÜNCELLEME: Kristof söylediği gibi bu dinamik bağlama bir sorun muhtemelen, ama Android ARM için ldd yok ... Belki gerekli dinamik kütüphaneleri bazı bulunamaz
Teşekkürler, muhtemelen doğru yoldaysınız, Android görüntüsünde ldd'ye nasıl sahip olabilirim biliyor musunuz? –
Çapraz derleyici araç zincirinizin bir tane olabilir. Gcc'inizin 'arm-android-gcc' olduğu varsayılarak, ana sisteminizde 'arm-android-ldd' seçeneğini deneyin. Ayrıca, ana sisteminizde 'readelf -d binary_name' deneyebilirsiniz. Her ikisi de size gerekli dinamik kütüphanelerin bir listesini vermelidir, ancak listeyi manuel olarak doğrulamanız gerekir. –
Onaylandı, paylaşılan kütüphanelerle ilgili bir şey, bunlardan biri yerleşik görüntüde yer almıyor. Kendimi bilmiyordum, bu harika :) Teşekkürler! –