如何从apk

时间:2018-11-27 19:04:36

标签: android qt openssl

所以我尝试将openSSL内置到我的qt android应用程序中。从使用预编译的二进制文件到安装ubuntu 18到我仍然无法解决的一切努力。

我已从此线程中阅读:

QT + OpenSSL + Android

我可以从任何现有的apk中获取它们,那么如何从apk中提取它呢?因为我在android ndk和sdk中找不到它。如果仅选择了apk,我应该使用indor哪个程序查看它。

我在Windows上使用Qt 5.11,但是如果需要的话我也有Linux OS :)谢谢!

2 个答案:

答案 0 :(得分:1)

几个月前,我已经为Android构建了OpenSSL,零问题。只需遵循适用于Linux的指南即可:

export ANDROID_NDK_ROOT="/home/dev/android-ndk-r12b"
SR="$ANDROID_NDK_ROOT/platforms/android-16/arch-arm"
BR="$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-"


RANLIB="$BR"ranlib CC="$BR"gcc ./Configure android-armeabi --prefix=$SR/usr --sysroot=$SR
ANDROID_DEV=$SR/usr make
make install

显然,您必须根据安装的位置和NDK版本来用自己的路径替换这些路径,并且您已经下载并提取了OpenSSL源代码。另外,请记住,Qt似乎不适用于最新和“最出色”的android工具链。实际上,android已经切换到llvm,但是对于Qt,您将需要使用较旧的gcc工具链。

您可以使用this script来构建libcrypto。

有许多可以在线构建的预编译二进制文件,而无需在apk文件中随意查找,例如this repo具有适用于包括Android在内的许多平台的openssl libcrypto。

不知道从哪里可以从任何 apk文件中获取库,显然,它必须是来自应用程序的程序包,其中包含了用于动态链接的那些库。 / p>

最后但并非最不重要的一点是,如果您仍然打算获取预编译的二进制文件,请记住,必须使用与您的编译器兼容的版本来构建它们。这就是为什么最好使用与您的应用程序相同的工具链自己构建库。还有从未知来源获取“坏”库的危险,它们可能已过时或被篡改。

答案 1 :(得分:0)

您可以通过简单地将其扩展名更改为“ .zip”来打开它们:)如果我能找到具有这些文件的应用程序,则会更新。

PS:并非所有apk都具有libcrypto.so和libssl.so。