Добавление поддержки OpenSSL для Android
Пакет Qt поставки включает поддержку OpenSSL, но библиотеки OpenSSL не входят в пакет из-за юридических ограничений в некоторых странах. Если ваше приложение зависит от OpenSSL, рассмотрите возможность добавления библиотек SSL в ваш пакет приложения (APK), так как целевое устройство может их иметь, а может и нет. Вы можете использовать статический метод QSslSocket::supportsSsl() для проверки поддержки SSL на целевом устройстве.
Следующие инструкции помогут вам скомпилировать и добавить библиотеки OpenSSL в APK:
- Загрузите исходные коды последней версии OpenSSL 1.1.x с http://www.openssl.org/source.
- Распакуйте исходные коды в папку и перейдите в эту папку с помощью консоли.
Примечание: Если ваша платформа разработки — Windows, вам нужен
msysсperlv5.14 или новее для компиляции OpenSSL. - Добавьте android llvm toolchain в вашу переменную PATH:
export PATH="<android_ndk_path>/toolchains/llvm/prebuilt/<host>/bin":$PATH
- Настройте исходные коды OpenSSL для компиляции под Android с помощью следующей команды:
./Configure shared android-<arch> -D__ANDROID_API__=21
Примечание: Необходимо учитывать включение/отключение функций SSL в зависимости от юридических ограничений в регионе, где доступно ваше приложение. Подробности о настраиваемых функциях см. в параметрах конфигурации SSL.
- Запустите
make SHLIB_VERSION_NUMBER= SHLIB_EXT=_1_1.so build_libsдля компиляцииlibcryptoиlibsslобщих библиотек, которые не имеют версионирования, но имеют суффикс _1_1. Если вы хотите использовать другой суффикс, необходимо установить переменную средыANDROID_OPENSSL_SUFFIXперед доступом к API Qt Network. Без суффикса Android 5 (API 21) загрузит системные библиотеки libcrypto.so и libssl.so, которые относятся к OpenSSL 1.0, а не к вашим библиотекам.Примечание: Android не загружает версиированные библиотеки.
- Откройте свой проект Qt с помощью Qt Creator и обновите настройки "Сборка APK для Android", чтобы добавить libcrypto и libssl в качестве дополнительных библиотек для вашего проекта.
- Запустите ваше приложение, чтобы увидеть его работу на устройстве.
Примечание: Здесь https://github.com/KDAB/android_openssl вы найдете скрипт, который может использоваться для компиляции openssl для всех android abis и также последние предварительно скомпилированные библиотеки.
Qt Creator собирает ваше приложение и создает пакет приложения (APK) с интегрированными в него библиотеками OpenSSL. После готовности APK используется adb для развертывания APK на выбранном целевом устройстве и запуска приложения.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/android-openssl-support.html