펌 :
- 적용 환경
- Eclipse Indigo Service Release 2
- Proguard v4.7
- ADT Tools 21.0.0.v201210310015-519525
- Proguard 적용방법
- Eclipse 메뉴/ Window/ Android SDK Manager 를 실행하여 최신으로 업데이트.
- Eclipse 메뉴/ Help/ Check for Updates 를 실행하여 ADT Tools 를 최신으로 업데이트
- Proguard v4.8을 사이트에서 다운받아 ${sdk.dir}\tools\proguard에 설치함.(사이트에서 다운이 불가하여 적용안함. )
- Project의 project.properties 에 다음 추가
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
-
Project에 proguard-project.txt 를 추가 하고 다음 내용을 추가
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-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 class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
} - Eclipse 메뉴/ File/ Export / Android/ Export Android Application 을 선택 후 Next
- 프로젝트 선택
- Keystore 선택 후 비밀번호 입력
- Key Alias 선택 후 비밀번호 입력
- APK 파일 선택 후 Finish
- project에 proguard 폴더가 생기고 dump.txt, mapping.txt, seeds.txt, usage.txt가 생기면 완료
- 기타
- proguard-project.txt 에 난독화 적용 제외 방법
-keepclasseswithmembers class javazoom.jl.decoder.**
- 난독화 후 디버깅에 대한 방법 연구 필요
- 스택트레이스를 mapping.txt와 비교하여 오류 위치 확인만 했음.
- 참고
- 안드로이드 이클립스에서 Proguard(프로가드) 사용하기
blog.naver.com_PostPrint.nhn_blogId=huewu&logNo=11009914.pdf
- Invalid proguard configuration file path Android Eclipse Error
android.okhelp.cz_invalid-proguard-configuration-file-pa.pdf
- APK 디컴파일 및 ProGuard 사용하기
lsit81.tistory.com_entry_APK-디컴파.pdf
- adb shell 에서 dumpstate
taehyo.egloos.com_4209035.pdf