对于计算,我希望使用DexGuard加密我的APK文件中的所有字符串,但不使用混淆、收缩或优化选项。
,这有可能吗,还是我不得不混淆APK来加密它?
我使用以下命令行加密所有类:
java -jar dexguard.jar @conf.pro -dontwarn -dontobfuscate -dontshrink -dontoptimize -injar in.jar -libraryjars android.jar -outjars out.apkconf.pro看起来如下所示:
-dontpreverify
-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
#...
-encryptstrings class uk.co.senab.actionbarpulltorefresh.library.BuildConfig
-encryptstrings class uk.co.senab.actionbarpulltorefresh.library.PullToRefreshAttacher$ViewDelegate
-encryptstrings class uk.co.senab.actionbarpulltorefresh.library.PullToRefreshAttacher$Options
#...我使用了工具jar tf ...获取所有类名,然后在过滤后添加了所有-encryptstrings class ...类,就像在conf.pro文件中一样。
我的问题是,out.apk中没有加密的东西。
我的设置有什么问题?
提前感谢您的帮助。
更新:
我尝试过各种组合来加密APK而不混淆,但这是不可能的。因此,我的简历是,只有在与.混淆的情况下才有可能加密。
我看到用DexGuard加密而没有混淆的唯一更改是用混淆加密和使用映射文件来恢复名称。
但我还没试过。
发布于 2016-06-03 20:33:36
这是正确的,要使字符串加密工作,您需要启用混淆。
为了防止类/方法/字段的混淆,可以添加以下配置:
-keep class * { *; }https://stackoverflow.com/questions/35984701
复制相似问题