summaryrefslogtreecommitdiffstats
path: root/doc/src/platforms/android/android-openssl-support.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/platforms/android/android-openssl-support.qdoc')
-rw-r--r--doc/src/platforms/android/android-openssl-support.qdoc92
1 files changed, 92 insertions, 0 deletions
diff --git a/doc/src/platforms/android/android-openssl-support.qdoc b/doc/src/platforms/android/android-openssl-support.qdoc
new file mode 100644
index 000000000..249c04f6f
--- /dev/null
+++ b/doc/src/platforms/android/android-openssl-support.qdoc
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\page android-openssl-support.html
+\title Adding OpenSSL Support for Android
+\brief Provides instructions to package OpenSSL libraries with your Qt application for Android.
+
+The Qt installation package comes with OpenSSL support but the OpenSSL libraries
+are not part of the package due to legal restrictions in some countries. If your
+application depends on OpenSSL, consider packaging the SSL libraries with your
+Application Package (APK) as the target device may or may not have them. You
+can use the \l{QSslSocket::supportsSsl()} static function to check for SSL
+support on the target.
+
+The following instructions guide you to build and add the OpenSSL libraries to
+the APK:
+\list 1
+ \li Download the latest OpenSSL 1.1.x sources from \l{http://www.openssl.org/source}.
+
+ \li Extract the sources to a folder and navigate to that folder using
+ the CLI.
+ \note If your development platform is Windows, you need \c msys with
+ \c perl v5.14 or later to build OpenSSL.
+
+ \li Add android llvm toolchain to your path:
+ \badcode
+ export PATH="<android_ndk_path>/toolchains/llvm/prebuilt/<host>/bin":$PATH
+ \endcode
+
+ \li Configure the OpenSSL sources to build for Android using
+ the following command:
+
+ \badcode
+ ./Configure shared android-<arch> -D__ANDROID_API__=21
+ \endcode
+
+ \note You must consider enabling/disabling the SSL features based on the
+ legal restrictions in the region where your application is available.
+ See the \l{OpenSSL Configure Options}{SSL configure options} for details about
+ the configurable features.
+
+ \li Run \c{make SHLIB_VERSION_NUMBER= SHLIB_EXT=_1_1.so build_libs} to
+ build \c libcrypto and \c libssl shared libraries that are not versioned,
+ but with a \e _1_1 suffix. If you want to use a different suffix, then you must
+ set the \c ANDROID_OPENSSL_SUFFIX environment variable before you access the
+ Qt Network API. Without a suffix, Android 5 (API 21) will load the system
+ libraries \e libcrypto.so and \e libssl.so, which are OpenSSL 1.0, rather than
+ your libraries.
+
+ \note Android does not load versioned libraries.
+
+ \li Open your Qt project using Qt Creator and update the "Build Android APK"
+ settings to add \e libcrypto and \e libssl as additional libraries for
+ your project.
+
+ \li Run your application to see it running on the device.
+\endlist
+
+\note here \l{https://github.com/KDAB/android_openssl} you can find a script which
+can be used to compile openssl for all android abis and also latest prebuilt libs.
+
+Qt Creator builds your application and creates an application package (APK)
+with the OpenSSL libraries bundled in it. Once the APK is ready, it uses \c adb
+to deploy the APK on the target you chose and launch the application.
+
+*/
+