2011-09-21 4 views
4

최근에 하드 드라이브를 지웠고 몇 주간의 작업이 손실되었습니다. 빈번히 커밋 했음에도 불구하고 잠시 동안 내 변경 사항을 업스트림에 넣지 않았습니다.APK 코드 복구

내 휴대 전화에서 내 앱의 APK를 추출했으며 코드를 복구하려고했습니다. 나는 그것이 테스트 빌드 였기 때문에 가능하다고 가정하고있다. (따라서, 난독 화나 그와 같은 것).

내가 달성 할 수 있었다 가장 좋은 결과는 dex2jar를 사용했지만, 난 여전히 같은 코드를 많이 가지고

int i = context.getResources().getDimensionPixelSize(2131165184); 
int j = context.getResources().getDimensionPixelSize(2131165184); 
screenNameParams.addRule(10); 
screenNameParams.addRule(1, 2131034138); 
screenNameParams.setMargins(paramInt, 0, 0, 0); 

심지어 : android-apktool 나의 경험도했다

long l1 = paramLong1; 
long l2 = paramLong2; 
long l3 = paramLong3; 
int i = paramInt; 
List localList = localClient.getBetween(l1, l2, l3, i); 

을 더 나쁜 것은, 자바 코드를 얻을 수조차 못했기 때문입니다 ... 그것은 smali 디버깅과 작동하기 때문에 예상됩니다.

저는 여기에 관련된 모든 질문을 읽었습니다. "개발자가 아니라면 apk의 실제 소스 코드를 얻는 것은 어렵습니다."라고 말하는 사람들을 보았습니다. 개발자.

마지막으로, 내 질문은 : 그것은 이클립스에서 테스트 빌드는 고려 완전히 APK의 원본 코드를 복구 할 수 있습니까?

답변

3

간단히 말해서, 아니요. 귀하의 코드가 ProGuard를 통해 실행되었고 난독 화 (정상적으로) 된 것처럼 보이므로 원본 코드를 가져올 수 없습니다. 개발자가되는 것에 대한 귀하의 견적에서, 그 사람들은 기본적으로 "개발자가 아니기 때문에 이미 APK가 없으면 APK에 대한 소스를 얻는 것이 어렵습니다"라고 말하고 있습니다.하지만이 경우 개발자가 되더라도 근원을 잃어 버렸다. 난 당신이 시도 할 수있는 것을 생각할 수

유일한 마지막 옵션은 하드 드라이브 복구 프로그램을 찾아 당신의 소스를 복구 할 수 있다면 가능한 한 빨리 사용하고 보는 것입니다. 어쩌면 그 분야를 아직 덮어 쓰지 않은 것일 수도 있습니다.

+0

입력 해 주셔서 감사합니다. ProGuard는 ADT와 번들로 제공됩니까? 나는 그것을 설치하거나 구성하지 않았다. – goncalossilva

+1

네,이 안드로이드 빌드 시스템의 일부로 포함 된 것 : http://developer.android.com/guide/developing/tools/proguard.html – kabuko

+0

http://stackoverflow.com/a/14286540/867591 – Ahmed