評価のために、DexGuard を使用して APK ファイル内のすべての文字列を暗号化したいのですが、難読化、圧縮、または最適化のオプションは使用しません。
これは可能ですか、それとも APK を難読化して暗号化する必要がありますか?
次のコマンド ラインを使用して、すべてのクラスを暗号化します。
java -jar dexguard.jar @conf.pro -dontwarn -dontobfuscate -dontshrink -dontoptimize -injar in.jar -libraryjars android.jar -outjars out.apk
conf.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 による難読化によってのみ可能であるということです。
難読化なしで DexGuard を使用して暗号化する唯一の変更点は、難読化を使用して暗号化し、マッピング ファイルを使用して名前を復元することです。
しかし、私はそれを試していません。