2010-06-15 10 views

Antwort

3

Haben Sie versucht, diese, es ist ein Standalone-Build des openSSL, die in Android eingeschlossen ist: https://github.com/fries/android-external-openssl/blob/master/README.android

+0

wir tatsächlich unsere eigene Version davon nun halten: https://github.com/guardianproject/android-ffmpeg –

+0

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

+0

@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. –

2

werde ich einige Tipps beschreiben über OpenSSL mit Android mit:

  1. 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.

  2. 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.

  3. 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).

  4. Schließlich vergessen Sie nicht, die Erlaubnis für die Verwendung von Netzwerk in das Manifest aufzunehmen.

Verwandte Themen