2016-10-18 5 views
0

Когда я пытаюсь опубликовать свое приложение в консоли разработчика Google Play, я получаю сообщение об ошибке уязвимой версии libpng.Google Play Store отклоняет apk из-за уязвимой версии libpng

уязвимости были зафиксированы в Libpng v1.0.66, v.1.2.56, v.1.4.19, v1.5.26 или выше. Более подробную информацию о том, как решить проблему в этом Справочном центре Google, можно найти в статье https://support.google.com/faqs/answer/7011127.

Однако мне вообще не нужен libpng, поэтому я не хочу обновлять, а вместо этого удалять его. В моем приложении используются OpenCV 2.4.11 и Tesseract (который снова поставляется с leptonica). Я перекомпилировал OpenCV и Tesseract после установки флага HAVE_LIBPNG в значение false, используя ndk-build.

При проверке моего файла apk в папке библиотек отсутствует libpng.

Почему Google продолжает отклонять приложение? Что еще я могу сделать, чтобы принять приложение?

Любые идеи приветствуются.

Редактировать: Я читал Android: Removing OpenCV older version will resolve Libpng Vulnerability warning?. Я не хочу обновляться до OpenCV 3.1, но просто удаляю libpng из своего приложения. Я не использую его, поэтому меньший apk также будет полезен при простом удалении.

+1

Прочтите эту статью: http: // stackoverflow.com/questions/37875685/android-remove-opencv-old-version-will-resolve-libpng-warning-warning/37882986 # 37882986 – Stanojkovic

+0

Спасибо @ Станойкович. Однако, прочитав это, я не хочу обновлять OpenCV. Я не использую libpng, поэтому обновление не требуется. – Heribert

+1

Разве вы не должны быть _undefining_ 'HAVE_PNG', а не определяете его значение 0/false? (для OpenCV. Tessercat может ожидать, что вы определите 'HAVE_LIBPNG' как 0). – Michael

ответ

1

Итак, вот что я сделал:

  • Обновлен OpenCV 2.4.13.1, который можно загрузить here.

  • Обновлен Tesseract (и Leptonica, который также поставляется с проектом tess-two) до последней версии.

  • Перед созданием Тессеракта:

    • множество HAVE_LIBPNG 0 в Tess-два/JNI/com_googlecode_leptonica_android/config_auto.h
    • переименован Android.mk Тесс-два/JNI/Libpng таким образом, что это не строить по включают $ (назовем все-подкаталог-MAKEFILES)
    • удалены LIBPNG_PATH из LOCAL_C_INCLUDES в Tess-два/JNI/com_googlecode_leptonica_android/Android.mk
    • удалены libpngt из LOCAL_SHARED_LIBRARIES в Tess-два/JNI/com_googlecode_leptonica_android/Andro id.mk
    • удалены LIBPNG_PATH от Tess-два/JNI/Android.mk
  • Удалены все System.loadLibrary ("pngt") требует от Java Тессеракта в файлы

Итак, подведем итог: мой устаревшая версия OpenCV была одной из проблем, но Tesseract также использовал уязвимую версию libpng. Даже новая версия tesseract, которую я использую сейчас, использует эту уязвимую версию libpng, поэтому мне пришлось вручную исключить ее.

Если кто-то знает лучшее решение, чем все вышеприведенные пункты, мне все еще интересно.