Обфускация Dexguard приводит к странному поведению на некоторых устройствах Android - PullRequest
0 голосов
/ 18 марта 2019

Я использую dexguard 6.0.26, чтобы запутать библиотеку Android.В конфигурационном файле у меня есть следующие опции

-android
-zipalign 4
-include E:\\DexGuard6.0.26\\lib\\dexguard-assumptions.pro
-dontoptimize
-dontshrink
-dontusemixedcaseclassnames
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable
-dontskipnonpubliclibraryclasses

Наряду с обычными keep опциями для моих классов.Сборка библиотеки и мое приложение, которое использует библиотеку, прекрасно работает на многих устройствах, но на некоторых устройствах (например, asus zenpad 3s 10 z500kl, android 7.0) происходит странное поведение

  • Код библиотеки используетАлгоритм хеширования MD5 и на неисправных устройствах я получаю сообщение об ошибке java.security.NoSuchAlgorithmException: MD5 MessageDigest недоступно , в строке MessageDigest.getInstance ("MD5 "); , но на других устройствах приложение работает нормально.
  • Некоторые блоки кода, например if..else , полностью пропускаются / игнорируются даже после декомпиляцииобфусцированный jar Я вижу блок кода в файле класса !!

Просто чтобы убедиться, добавлю ли опцию dexguard -dontobfuscate и повторно-создай мой фляга, приложение теперь отлично работает на всех устройствах, включая планшет asus, так что я точно знаю, что запутывание делает здесь что-то сумасшедшее.

Кто-нибудь когда-либо сталкивался с этой проблемой и сумел решить ее?Любая помощь / советы будут оценены.

...