antとproguardを使用して私のアプリケーションのリリースバージョンを構築しています。私のアプリのリリース版は正常にビルドされていますが、難読化されるコードの唯一の部分はローカル変数です。メソッドとクラス変数はすべて正確な名前を保持しています。私の混乱に加えて、mapping.txtファイルはビルドするたびに生成され、メソッドとクラス変数が別のものにマップされているのが分かります。しかし、私が.apkファイルを分解するためにDex2Jarを使用すると、マッピングが表示されません。ProguardがAndroid Appで特定のコードを難読化していないのはなぜですか?
最近ADBをr16にアップグレードしました。このアップデートの前に、私はADBのバージョン14以前を使用していました。 ADBのr14より前のバージョンを使用して、私は約1年間私のアプリを難読化していました。私はこれらのpre-r14 .apksが完全に難読化されていることを検証することもできました。
誰かが、メソッド名とクラス変数が難読化されていない理由を教えてもらえますか?ビルドファイルを下に含めました。いくつかのビルドファイルの構造はr16にアップグレードした後に少し違っていますが、私は基本的に前r14 ADBを使用したときと同じ手順を踏襲しています。動作。
proguard.cfg:
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-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
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public interface com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
のbuild.xml:私はあなたのbuild.xmlの参照番号で混乱していた
最初
['-whyareyoukeeping classSpec'](http://proguard.sourceforge.net/manual/usage.html#whyareyoukeeping)オプションも参照してください。 – TWiStErRob
apkをデコンパイルするには、私にはちょうど1ステップ。そして、すべての変数はそこでは価値のある平文です。それはプロガードが役に立たないようです。私が考えているのは、AESでAPKファイル全体を暗号化することです。まだ研究を行っている... – fordiy