Ich komprimierte meine Android APP libs mit UPX. Bei der Ausführung auf Android N Priview5-Geräten tritt ein Fehler auf: "dlopen failed: xxx.so hat keine Abschnittsüberschriften".Android N Preview dlopen() "hat keine Abschnittskopfzeilen" Fehler
finde ich einen Changelog von Android Linkers: http://android-developers.blogspot.com/2016/06/android-changes-for-ndk-developers.html
Er sagt: „Jede ELF-Datei hat enthalten zusätzliche Informationen im Abschnitt Header Diese Header jetzt vorhanden sein müssen, weil der dynamische Linker sie für verwendet geistige Gesundheit zu überprüfen.. "
Aber nach komprimiert mit UPX, die ELF-Abschnitt Header fehlt, wie kann ich dieses Problem lösen.
ELF Rubrik:
Magic: 7F 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Klasse: ELF32
Daten: 2-Komplement, little endian
Version: 1 (Strom)
OS/ABI: UNIX - System V
ABI Version: 0
Typ: DYN (Shared Object-Datei)
Maschine: ARM
Version: 0x1
Einstiegspunkt Adresse: 0x0
Programmstart Header: 52 (Bytes in Datei)
Start der Abschnittsüberschriften: 0 (Bytes in Datei)
Flags: 0x5000000, Version5 EABI
Größe dieses Header: 52 (Byte)
Größe der Programm-Header: 32 (Byte)
Anzahl der Programmüberschriften: 7
Größe der Abschnittsüberschriften: 0 (Byte)
Anzahl der Abschnittsüberschriften: 0
Section-Header-String Tabellenindex: 0
Der Mann-Seite für upx sagt _ "Seit der Version 0.82 der Abschnitt Header werden aus dem UPX-Stub entfernt "_, und ich sehe keine Option, um dies zu deaktivieren, so dass ich nicht sicher bin, ob es für Sie möglich sein wird, UPX zu verwenden.Vielleicht gibt es andere Packer, die mit der neuesten Android N-Vorschau kompatibel sind. – Michael
Vielen Dank für Ihre Antwort. Ich habe auch diese Info gefunden, aber 0.82 ist eine sehr alte Version, ich kann den Quellcode nicht finden und sehe, dass es sich ändert. Google sagt: "Das hilft nicht wirklich, weil es möglich ist, die entfernten Informationen mit weit verbreiteten Werkzeugen zu rekonstruieren." . Kennst du die "weit verbreiteten Werkzeuge", die sie meint? – dream