# 난독화를 진행할 입력 파일명 -injars myjar.jar # 난독화를 거친 출력 파일명 -outjars out_myjar.jar # 입력파일이 참조하는 라이브러리들... # 안드로이드용 jar라면 android.jar를 반드시 포함해야 할것이다. # 그 외에 혹시 추가로 참조하는 라이브러리가 있다면 추가해 주어야 한다. -libraryjars /Users/yosamlee/Desktop/android-sdk-mac_x86/platforms/android-7/android.jar -libraryjars /Users/yosamlee/_TOOL/workspace/MyJar/lib/referencelib.jar # 각종 옵션들 : 설명은 생략~~ proguard site의 설명을 참조하시길... -dontskipnonpubliclibraryclassmembers -optimizationpasses 5 -dontusemixedcaseclassnames -dontpreverify -verbose # keep option들.. # keep옵션이란 난독화시 난독화를 하지 않아야 하는 코드들을 미리 지정하는 것으로 # 안드로이드 jar파일이나 프로젝트의 경우 아래의 keep옵션들이 필요할 것입니다. -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 com.android.vending.licensing.ILicensingService -keepclasseswithmembers,allowshrinking class * { public (android.content.Context,android.util.AttributeSet); } -keepclasseswithmembers,allowshrinking class * { public (android.content.Context,android.util.AttributeSet,int); } # Also keep - Enumerations. Keep the special static methods that are required in # enumeration classes. -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } # Keep names - Native method names. Keep all native class/method names. -keepclasseswithmembers,allowshrinking class * { native ; }