werde ich einige Tipps beschreiben über OpenSSL mit Android mit:
Es ist notwendig, OpenSSL-Bibliotheken Tools NDK zu bauen, sonst werden sie mit NDK unvereinbar. Compiling the latest OpenSSL for Android
CC=~/android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc
./Configure android-armv7
export ANDROID_DEV=~/android-ndk-r9//platforms/android-8/arch-arm/usr
make build_libs
Es wird angenommen, dass dies im Quellverzeichnis von OpenSSL ausgeführt werden Befehle.
Um diese Bibliotheken (ssl und crypto) mit Ihrer eigenen Bibliothek von ndk zu verwenden, müssen Sie zusätzliche * .mk-Dateien im jni-Ordner erstellen. Zum Beispiel:
include $(CLEAR_VARS)
LOCAL_MODULE := ssl-crypto
LOCAL_SRC_FILES := openssl-crypto/libcrypto.so
include $(PREBUILT_SHARED_LIBRARY)
und schließen sie in den Haupt Android.mk:
include $(LOCAL_PATH)/openssl-ssl/Android.mk
und wahrscheinlich
include $(CLEAR_VARS)
nachdem sie hinzufügen, um Fehler zu vermeiden. Bibliotheken werden in libs/armabi
und .apk
platziert.
Wenn Sie mit Fehler could not load library ... needed by ...
auftreten, bedeutet es wahrscheinlich, dass Ihre Bibliothek Soname mit einer Versionsnummer hat. AFAIK ndk kann derzeit nicht mit solchen Bibliotheken arbeiten. Es gibt eine Problemumgehung (Dalvik is looking for .so file with '.0' extension - why?):
rpl -R -e library.so.1.1 "library.so\x00\x00\x00\x00" libs obj
wo rpl
ist ein Linux-String-Ersatz-Tool. Führen Sie dieses Skript nach dem Erstellen und vor dem Ausführen Ihrer Anwendung aus, damit die Versionsnummer aus den Projektdateien entfernt wird. Folgen Sie dem Link, um mehr Informationen zu sehen.
Wenn Sie einen C++ - Compiler verwenden, können in Ihren C-Funktionen Fehler "undefinierte Referenzen" auftreten. Verwenden Sie extern "C" {}
um dies zu vermeiden (siehe "C++ Name Mangling" für weitere Informationen).
Schließlich vergessen Sie nicht, die Erlaubnis für die Verwendung von Netzwerk in das Manifest aufzunehmen.
wir tatsächlich unsere eigene Version davon nun halten: https://github.com/guardianproject/android-ffmpeg –
Wir verwenden die openssl Build im guardianproject zur Verfügung gestellt .. Ich versuche jetzt zu aktualisieren Die OpenSSL-Version aufgrund eines neuen Android-Playstore-Sicherheitsalarms. Ich befolgte die Schritte in der Readme-Datei, bin aber bei fest: 5) Bereinigung vor dem Erstellen mit: m -j16 sauber-libcrypto clean-libssl sauber-openssl clean-ssltest. meines Wissens m und mm sind verfügbar, wenn Sie für Android Androiden aus Quelle einrichten, so bekomme ich m: Befehl nicht gefunden und im nächsten Schritt für mm. Jede Hilfe wird sehr geschätzt! – Nonos
@Nonos Haben Sie eine Lösung zur Aktualisierung der OpenSSL-Version erhalten? Ich bin auch in Schritt 5 stecken. Herte ist meine [Frage] (http://stackoverflow.com/questions/36493508/how-to-update-openssl-version-in-csipsimple) wenn Sie mir helfen könnten. –