【问题标题】:Determine what version of NDK was used to build library?确定使用哪个版本的 NDK 构建库?
【发布时间】:2017-06-16 21:21:57
【问题描述】:

有什么方法可以确定使用哪个版本的 NDK 来编译“aar”库?无论是反编译,还是通过代码都可以,只需要知道。

我正在尝试确定我的第三方库之一是使用哪个版本的 ndk 构建的。

【问题讨论】:

    标签: android android-ndk decompiling


    【解决方案1】:

    “aar”文件不是用 NDK 编译的,您可能是指该文件中的一个 c++ 库。没有简单的办法,但是可以根据出库日期排除新的ndk版本。

    此外,您也许可以通过获取编译器版本来找出答案 - 看看这样的事情是否有帮助:How to retrieve the GCC version used to compile a given ELF executable

    【讨论】:

    • 抱歉,你是对的,我假设在这种情况下我要查看 aar 中的 so 文件?
    • 正确,so文件是你需要检查的c++库。
    • 我可以通过使用“strings -a ”以及 GCC 版本 4.9.x 20150123 和 Android clank 版本 3.8.256229 看到很多关于 ndk 的提及,但至少在我的理解中,这与特定的 NDK 版本无关。有什么具体的内容可能会导致知道它是 r12、r13 还是其他版本?
    • 所以这可能是 r11 - 看这里:developer.android.com/ndk/downloads/revision_history.html#
    • 正确,clang 在 r13 中没有更新。在 r13 中更新的最重要的东西是 libc++,但我认为它不会有任何好的指纹来检测(而且他们不一定使用 libc++)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2012-10-11
    相关资源
    最近更新 更多