apk中的libpng是不安全的,但在我的项目中无法找到对该lib的引用

时间:2016-09-08 15:49:40

标签: android android-studio libpng android-security

一切都在标题中,谷歌抱怨我的apk中包含安全风险的libpng版本。但我自己并没有包括那个图书馆。我想这是我包含的依赖项之一,但我不知道如何找到它。

以下是我的gradle模块的依赖项部分的内容:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile('com.google.http-client:google-http-client-gson:1.21.0') {
        exclude module: 'xpp3'
        exclude group: 'stax'
    }
    compile 'com.android.support:appcompat-v7:24.2.0'
    compile 'com.android.support:design:24.2.0'
    compile 'com.facebook.android:facebook-android-sdk:4.9.0'
    compile 'com.google.android.gms:play-services-auth:9.4.0'
    compile 'com.octo.android.robospice:robospice:1.4.14'
    compile 'com.octo.android.robospice:robospice-google-http-client:1.4.14'
    compile 'org.lucasr.twowayview:twowayview:0.1.4'
    compile 'com.github.neopixl:PixlUI:v1.0.6'
    compile 'com.github.bluejamesbond:textjustify-android:2.1.6'
    compile('com.crashlytics.sdk.android:crashlytics:2.6.0@aar') {
        transitive = true;
    }
    compile 'com.fernandocejas:arrow:1.0.0'
    compile 'com.flurry.android:analytics:6.4.0'
    compile project(':sdktools')
}

sdktools这里指的是Scout(Skobbler Scout,原生离线地图查看器工具)

此外,此处未列出,但我还在我的libs目录中包含通用图像加载器v1.9.5。

总而言之,我的问题是:如何找到哪些依赖项包含旧版本的libpng?或者您是否知道基于此依赖关系结构中的哪些包含它?

1 个答案:

答案 0 :(得分:1)

以下是查找apk中哪个库使用libpng的方法:

在Mac上:

  1. 将.apk文件重命名为.zip文件。
  2. 解压缩重命名的.zip文件。
  3. 在解压缩的apk的根目录中运行以下命令(请注意命令末尾的'。'或' *')例如。
  4. MyApkRootDirectory $ grep -r --text" libpng"

    OR

    MyApkRootDirectory $ grep -r --text" libpng" *

    -r:告诉grep以递归方式执行搜索

    - text:处理二进制文件,就好像它是文本一样;这相当于--binary-files = text选项。

    如果要突出显示匹配的文本以便于查看(查看libpng版本),请同时使用--color选项。

    有关grep的更多信息,请参阅此链接: http://www.computerhope.com/unix/ugrep.htm