【问题标题】:Android libpng security vulnerabilityAndroid libpng 安全漏洞
【发布时间】:2025-05-04 20:55:01
【问题描述】:

我已向 Google Play 控制台提交了我的发布 apk,但由于 libpng 安全漏洞而被拒绝。我在我的应用程序中使用了几个库。我怎么知道其中哪些使用 libpng?

我正在使用 Android 工作室。

我没有将 OpenCV 用作库!

这些是我在 build.gradle 文件中的依赖项:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:support-v4:23.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.android.support:cardview-v7:23.4.0'
    compile 'com.android.support:recyclerview-v7:23.4.0'
    compile files('libs/sdk-v1.0.0.jar')
    compile(name: 'pen-v4.1.0_full', ext: 'aar')
    compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
    compile 'com.google.zxing:core:3.2.1'
    compile files('libs/gson-2.3.jar')
    compile files('libs/httpclient-4.4.jar')
    compile files('libs/httpcore-4.4.jar')
    compile files('libs/httpmime-4.3.6.jar')
} 

让我再问一遍:

我如何知道这些库中的哪些使用了 libpng?

【问题讨论】:

  • 这个问题已经有人回答了...*.com/questions/37875685/…
  • 偶尔用谷歌搜索一下,还有很多人有同样的问题
  • @Arun 嗯,不。不幸的是,它没有得到答复。您链接的问题是指类似的问题,但不是我遇到的问题。感谢投反对票的家伙!愿意解释原因吗?
  • @TimCastelijns 是的,我已经用谷歌搜索了这个问题。似乎没有人有合适的解决方案来查找哪个库具有特定的依赖关系。
  • 您为解决此问题所做的工作。我有同样的问题,但我不知道如何解决。

标签: android libpng


【解决方案1】:

使用strings <youlibrary>.so | grep png。如果您看到输出充满了png_set_*png_write_*png_image_* - 该库使用 libpng。

【讨论】:

  • 感谢您真正回答我的问题!我会尝试您的建议并提供反馈。
  • 感谢您的回答。我在 libs 文件夹中的所有库上都使用了该命令。其中一个库是 aar 文件。它有很多 png 输出。我认为这可能是问题所在。尽管我仍然遇到问题,但您的回答帮助我朝着正确的方向前进。谢谢!
  • 按照这个方法,我发现Spen .aar库有很多png方法,所以我下载了最新版本的Spen sdk,并在我的gradle构建文件中替换了它。新版本实际上是几周前的,只改变了 1。例如old.d 版本是 1.0 ,新版本是 1.1 。但是,它为我解决了问题!感谢您的帮助。
  • 我写这个命令的地方 -- 字符串 .so | grep png
  • 在 Linux、macOS 或其他 UNIX 上的 shell/terminal 中。例如,在 Windows 上,您可以将 strings 命令与 cygwin 一起安装,或者使用其他程序。这个想法是在库中搜索字符串 png_set_、png_write_ 和 png_image_。