저도 처음에 제대로 하는 방법을 알지 못해서 엄청 많은 시도를 했네요.

하지만 많은 착오로 성공을 하게되었습니다. 그래서 정보를 공유하고자 글을 씁니다.

이 설명은 OS로 윈도우7 64비트를 사용를 기준으로 설명 하였습니다.


※ 제가 이 글을 썼을때는 자바가 꼬였는지 Java 설치만으로는 Apk manger 가 되지 않아서

따로 안드로이드 SDK 까지 깔아서 따로 설정을 했는데요.

이번에 새로 포맷을 하고 나서 해보니 Java 설치 후 → Cmd 에서 Java 인식 확인하니 바로 되더군요.

즉, 안드로이드 SDK 까지 설치할 필요가 없더군요.

그러니 Java 설치 후 → Cmd 에서 Java 인식 확인이 되는지 꼭 확인하세요!!

만약 인식이 안되면 그때 안드로이드 SDK를 설치 하세요!!





[Java Platform (JDK) 7u3 다운 및 설치하기]

 

 


(↑ 클릭)


위 링크로 이동하시면 다음과 같은 화면이 나오네요.

여기서 자신의 OS에 맞는 버젼을 받으시면 됩니다.

대부분 윈도우7을 사용하고 계실테니 윈도우7의 32와 64비트만 표시 했습니다.


 



참고로 OS 버젼을 알려면

단축키 "윈도우키 + Pause Break" 키를 누르면 아래 화면이 나오는데, 여기서 확인하시면 됩니다.

 





이제 다운 받은 파일을 설치하도록 하겠습니다.

 



순서는 사진 순서대로 체크해둔 것을 알아두시고 진행 하시면 됩니다.

 

 

 


이게 완료가 되면 다음창이 뜨네요.

계속 진행 하시면 됩니다.


 

 

 



계속하기를 누르면 아래와 같은 화면이 나오는데요.

여기서 부터는 설치할 필요가 없어서 설치 취소를 하시면 됩니다.

 

 






[Java 인식이 잘 되었는지 확인하기]


실행창에서 "cmd"를 입력 후 cmd를 선택합니다.

그리고 cmd 창에서 "java" 를 입력해서 다음과 같이 나오거나


 

 



역시 cmd 에서 "java -version" 이라고 입력했을때 버젼 정보가 나오면 제대로 설정이 완료 된거네요.

 

 






[Android SDK 다운로드 및 설치]

Android SDK 설치는 위의 순서대로 진행하였는데, JAVA가 인식되지 않으면 하도록 합니다.


JAVA가 인식이 잘 되면 Apk Manager 이용해서 작업하기로 넘어가도록 하세요!


 


(↑ 클릭)


위 링크에 들어가시면 아래 같은 화면인데요.

빨간색 체크 해둔 압축파일 Ver. 으로 다운 받으세요.


 



자 다운받은 파일입니다.

 



이제 압축을 풀면

경로가 android-sdk_r17-windows → android-sdk-windows 속에

다음 파일 들이 있네요.


 



설치전에 폴더를 간소화 시킵니다.

폴더명이야 자신이 원하는 이름으로 변경합니다. (저는 android sdk 라고 만들었네요.)

그러면 android sdk 의 폴던 안에 위 사진의 파일들이 있게 됩니다.


자 이제 경로를 간소화 시킨 파일을 옮겨 두도록 하겠습니다.

그냥 옮기지 않고 해도 되는데요. 앞으로 Apk Manager를 사용할 것이니 이동해두는게 편합니다.

(아 그리고 폴더 자체를 이동하는 이유는 설치 파일이 이 폴더안에 설치 되기 때문이네요.)



저는 이 폴더를 다음 경로로 옮겨 놨네요.

"C:\Program Files\android sdk"


 





자 이제 SDK를 설치 하도록 하겠습니다.

SDK Manager를 클릭하도록 합니다.

 



그러면 아래 창과 같이 조금 로딩의 시간이 걸린 후에

 



아래 창이 뜨네요.

여기서 체크해둔 맨위에 Tools 의 2가지만 체크 후 우측하단에 Install을 눌러 줍니다.


 



그러면 아래와 같은 화면이 뜨네요.

제 기억으로는 맨처음 설치 할때는 Android SDK Tools 가 설치가 안되어 있어서 Packages에 2가지 설치 목록이 있었고

2가지 설치하기 위해서 Accept All 로 설치 한걸로 기억되네요.


 



아무튼 인스톨 후에는 다음과 같이 표시가 됩니다.

 



그리고 폴더내에서는 몇개가 추가가 되네요.

 



여기까지만 설치하고도 Apk manager 로 Apk 디컴파일과 컴파일 하기가 잘 되는 분들도 있는거 같은데요.

저는 안 되었네요,,,지독하게 안 되었어요,,,,그래서 다음으로 환경변수 추가하기로 넘어갑니다.





[환경 변수 설정 추가 하기]


환경 변수를 추가하는 이유는 Java를 설치를 했음에도 불구하고

윈도우에서 인식을 하지 못하여 그것을 인식하기 위해서 해주는 작업이네요.



일단 단축키 "윈도우키 + Pause Break" 누르거나

내컴퓨터 - 마우스 오른쪽 클릭 - 속성을 들어가시면

 



다음과 같은 화면이 나오게 됩니다.

여기서 왼쪽 상단에 "고급 시스템 설정" 을 클릭합니다.

 



그러면 다음 화면이 나오고 여기서 "환경 변수"로 들어갑니다.

 



자 이제 아래 화면이 나옵니다.

 



여기서 시스템 변수에서 새로 만들기를 누르도록 합니다.

 



그 후 다음과 같이 입력 후 하는데요.

변수값은 Java가 설치된 경로를 입력하시면 됩니다.

제가 Java Platform (JDK) 설치 할때 경로를 알아두라고 했는데요. 바로 그 경로네요.

하지만 꼭 위에서 알아두지 않아도

기본으로 경로가 C:\Program Files\Java 이고 여기서

버젼에 때라 \jdk(버전명) 이 되네요.


↓ 다운받아 쓰세요.

JAVA_HOME.txt


 

 



자 다음으로는 역시 시스템 변수에서 하는데요.

항목을 쪽 내리다가 보면 "PATH" 라는게 있습니다.

이미 "PATH" 에는 기존에 설정되어 있는 변수가 있네요.

여기서는 PATH를 선택후 "편집" 을 선택합니다.

 



그러면 변수를 편집하는 창이 뜨네요.


↓ 다운받아 쓰세요.

PATH.txt


 

 


일단 알아 둘것은 기존의 입렵된 [A] 라고 해둡니다.

그리고 여기서 추가로 입력해야 될 것들이 있습니다.

바로 아래의 것들입니다.

%JAVA_HOME%\bin;C:\Program Files\android sdk\platform-tools;

위 변수 값은 크게 2가지 정보가 있는데요.

하나는 %JAVA_HOME%\bin 변수값과

다른 하나는 C:\Program Files\android sdk\platform-tools 변수값이네요.

C:\Program Files\android sdk\platform-tools

위 변수값은 바로 Android SDK 를 옮겨둔 경로와 함께

Android SDK 를 설치하면서 생긴 platform-tools 까지의 경로의 변수 값 입니다.


또 알아 두어야 할 것은 각각의 변수 값이나 함께 인식되기 위해서 변수값의 경계에 (;) 표시가 있네요.


아무튼 기존의 입련된 변수값 [A] 앞에 이걸 추가합니다.

그러면 %JAVA_HOME%\bin;C:\Program Files\android sdk\platform-tools;[A]

이렇게 되네요.

 



자 저는 여기까지만 입력을 하고 성공을 했습니다.




만약 여기까지 해도 안되는 분들은 추가적으로

시스템 변수에서 새로만들기를 통해서 다음과 같이 입력하세요.

 



그런데 저처럼 이미 "CLASSPATH" 에 이미 변수값이 존재 할 경우도 있네요.

 


이 경우 새로 만들기를 한다고 해도 새로운 "CLASSPATH" 가 생기는게 아니라

기존의 "CLASSPATH" 에 변수가 ".;" 가 덮어쓰기로 된다는 것을 유의하세요.






[Apk Manager 이용해서 작업하기]


자 이제 드디어 Apk Manager 를 통한 작업을 합니다.

먼저 Apk Manager 를 다운 받으세요.


↓↓↓ 다운받기 ↓↓↓

Apk_Manager_5.0.2.egg

 



이제 실행을 하는데요.

만약 아래와 같은 화면이 나오면 안됩니다.

 


 




◆ Apk Manager 에 대한 기본 알기


Apk Manager 에 들어가면 여러 폴더들이 있는데요.


 


위 체크 해둔 "place-apk-here-for-modding" 에 수정할 Apk 파일을 넣어 두도록 합니다.

(이때 Apk 파일이름이 한글이거나 띄어쓰기가 있으면 안됩니다.)

그리고 하단에 "Script" 을 실행합니다.


실행을 하면 다음과 같은 화면이 뜨네요.

여기서 우리가 할 작업들을 표시해 두었습니다.


 



아 그리고 디컴파일링+컴파일링+사인 작업시 실행한 "Script" 종료하지 않은 상태에서 하시기 바랍니다.

이유는 컴파일링 할때 알려드리겠습니다.





◆ Apk 디컴파일링 하기


다음 화면에서 "22" 를 입력 후 엔터를 누릅니다.

 


그 후 다음 화면이 나오는데요.

상단에 - 1 - test.apk 라고 나옵니다.


만약 "place-apk-here-for-modding" 에 수정할 Apk 를 여러가 넣어 두었다면

숫자가 1, 2, 3, 순으로 나오네요.


일단 전 1개 밖에 없으니 "1" 을 선택합니다.

 


그러면 초기 화면으로 돌아오는데요

여기서 "9" 를 입력하여 디컴파일링을 시작합니다.

 

 


완료 후에는 역시 초기 화면으로 돌아가네요.

("Script" 실행창은 종료 하지 마시고 그대로 둡니다)


자 이제 Apk Manager 폴더로 돌아와서

"projects" 폴더를 들어가면 Apk 가 다음과 같이 디컴파일링 되어 있습니다.

 

 


그리고 원하는 곳을 수정을 하도록 합니다.





◆ Apk 컴파일링 하기


Apk 수정이 완료가 되었다면 이제 다시 "Script" 실행창으로 옵니다.

컴파일링을 하기전에 "20" 을 입력하여 메모리 값을 설정해 줍니다.

저는 메모리 값을 "512" 라고 해주네요.

(위에서 "Script" 실행창을 계속 켜두라는 이유는 Script를 종료하면

설정한 메모리 값을 또 다시 설정해줘야 되기 때문이네요...결론은 귀찮음을 덜기 위함입니다....) 


 


그리고는 뜨는 문구에서 "512" 를 입력해줍니다.

 



그 후 다시 초기 화면으로 돌아오네요.

이제 컴파일링을 위해서 "11" 을 입력합니다.

 

 


조금 있으면 시스템 Apk 냐고 물어봅니다.

여기서 'N" 을 써주도록 합니다.

(시스템 Apk 일 경우는 "Y"선택해야 합니다.)

 



이제 Apk Manager 폴더로 돌아와서

"place-apk-here-for-modding" 폴더를 보면

기존 Apk 파일 이름 앞에 "unsigned" 이 붙은 파일이 생겨 있습니다.

 

 



여기까지 컴파일링을 마쳤습니다.

하지만 끝이 아니니 "Script" 실행창을 종료 하지 마세요.





◆ Apk 사인 하기


Apk 를 수정후 컴파일링을 했다고 끝이 아니네요.

사인을 해야지만 어플이 폰에서 제대로 설치가 됩니다.

일단 컴파일링과 이어지는 작업이지만 설명상 분리해 놨습니다.


컴파일링이 완료되면 역시 초기 화면으로 이동합니다.

여기서 "12" 를 입력합니다.


 

 


사인 작업이 끝나고

마지막으로 Apk Manager 폴더로 돌아와서

"place-apk-here-for-modding" 폴더를 보면

컴파일링 작업으로 "unsigned" 이 붙은 파일이 "signed" 으로 바뀌어 있습니다.


이제 이 어플을 폰에 넣고 설치 하면 끝이네요.




이상으로 제가 성공한 방법입니다.

만약 이대로 했는데 안된다고 하시면...

어떻게 더이상 제가 도움을 주지 못할꺼 같습니다.

저도 해박한 지식을 가지고 한 작업이 아니기 때문이네요...

Posted by 마징가_Z

댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. 어얼 2013.08.17 15:17 신고 Address Modify/Delete Reply

    소스코드를 수정해서 크랙버전을 만들어서 실행햇는데 앱이 업뎃이 되면 순정으로 돌아오나요?

    • Favicon of http://ruiners.tistory.com BlogIcon 마징가_Z 2013.08.20 20:06 신고 Address Modify/Delete

      제가 알기로는 크랙 된 버젼에서 오리지널 업데이트를 하게 되면 다시 오리지널로 되는 것으로 알고 있습니다.

  3. Favicon of http://ㅜㅁㅍㄷㄱ.채ㅡ BlogIcon 이건 2014.04.13 21:15 신고 Address Modify/Delete Reply

    님자바링크가안타져요ㅠㅠ

  4. 협보왕자 2014.06.28 12:06 신고 Address Modify/Delete Reply

    감사합니다 자료가 도움이 되었습니다

  5. hsj1093@naver.com 2014.07.10 17:15 신고 Address Modify/Delete Reply

    아직도 에러가 나네요
    이메일로 도움 주실수 있나요??

    • Favicon of http://ruiners.tistory.com BlogIcon 마징가_Z 2014.07.10 20:52 신고 Address Modify/Delete

      이메일로 내용을 전달하기는 어려울것 같습니다.
      제가 컴퓨터를 직접 보지 않는 이상,,,

      그런데 제가 설명한 것처럼 그대로 따라하면 잘 되는데,,다시한번 해보시길,,

  6. 1212 2014.07.12 01:10 신고 Address Modify/Delete Reply

    님 사랑해요

  7. 사랑합니다 2014.07.14 23:35 신고 Address Modify/Delete Reply

    혹시 자바소스코드는 어디서 수정하나요? xml로 된 레이아웃만 눈에 보여서요 ㅠㅠ

    • Favicon of http://ruiners.tistory.com BlogIcon 마징가_Z 2014.07.27 20:42 신고 Address Modify/Delete

      xml 을 풀어주는 프로그램을 써서 하셔야하는데, 그건 구하시기 어려울꺼네요. 특정 카페에서 스탭에게만 공유되고 있을테니깐요.

  8. BlogIcon 와 세시간만에;; 2014.08.08 02:26 신고 Address Modify/Delete Reply

    와 ㅠㅠ 진짜감사드려요

  9. 수정 2014.08.19 21:00 신고 Address Modify/Delete Reply

    덕분에 이해하기쉬웠어요 감사하구요
    apk안의 파일중 dll파일인데 그거 내용수정하고싶은데 멀루하면되나요?
    assembly csharp 요부분인데요
    꼭좀 답변주세요~~~~

  10. BlogIcon 마마마마마 2014.08.28 09:24 신고 Address Modify/Delete Reply

    자바가 설치는 확인되는데 인식이 안될경우는 어떡하죠?

  11. 사랑합니다;; 2014.08.30 21:16 신고 Address Modify/Delete Reply

    괜히 apk manager 5.7버전으로 쇼하다가.. 5.1 버전 받아서 하니까 잘 되네요 ㅎㅎㅎㅎㅎ

    정말 감사합니다 복받으실 거여요
    전 만남출판국하러 가겠습니다

  12. Favicon of http://jhrang.tistory.com BlogIcon 체브 2015.01.08 23:46 신고 Address Modify/Delete Reply

    ..와.. 진짜...대박이세요....ㅠㅠㅠㅠㅠ아 ㅠㅠㅠㅠㅠㅠ진짜ㅠㅠㅠㅠㅠ어ㅠㅠㅠㅠㅠㅠ사랑합니다ㅠㅠㅠ엉어ㅠ유ㅠㅠㅠㅠㅠ한글이다ㅠㅠㅠㅠㅠ

  13. BlogIcon ㅇㅂㅇ? 2015.01.12 09:11 신고 Address Modify/Delete Reply

    근데메모리가512라고설정되있다고그렇게나와있는데,그값은처음에어디서확인하나요

    • Favicon of http://ruiners.tistory.com BlogIcon 마징가_Z 2015.01.22 20:37 신고 Address Modify/Delete

      한글화 하도 안해서,,,
      정확하게 까먹었는데,,,잘 모르겠다 싶으시면 메모리 설정 다시하면 되십니다.

      참고로 1024mb로 설정해도 무관합니다.

  14. 프로젝트 2015.06.21 19:53 신고 Address Modify/Delete Reply

    혼또니 아리가또고자이마스!
    정말 감사합니다!ㅠ

  15. Favicon of http://naver.com BlogIcon 크리퍼 2016.01.11 19:14 신고 Address Modify/Delete Reply

    디컴 한 다음에 게임 돈 값 수정하는 방법좀 알려주세요 ㅠㅠ 정말 결크 만들고싶은데...

  16. Favicon of http://ㅁㄴㅇㄻㄴㅇㄹ BlogIcon 김성현 2016.04.24 19:52 신고 Address Modify/Delete Reply

    디컴파일해서 수정하고 컴파일 했는데 unsign apk 파일이 안 생성 되네요 ㅠ

  17. 메카닉 2016.05.22 20:53 신고 Address Modify/Delete Reply

    apk 매니저 사용해서 디컴파일 눌렀는데
    'java'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
    배치 파일이 아닙니다. 라고 계속 나오네요 ㅠㅠ 도와주세요 ㅠ

    • Favicon of http://ruiners.tistory.com BlogIcon 마징가_Z 2016.05.29 00:47 신고 Address Modify/Delete

      흠,,,일단 apk 매니져 최신 버젼으로 설치 해주시구요.
      자바도 처음부터 다시 해보세요.
      이게 직접 해지는 않는 이상,,,저도 정확하게 이유는 모르겠어서,,,

  18. BlogIcon 채를 2016.06.21 00:59 신고 Address Modify/Delete Reply

    APK 매니저 6.7 로 변경 후, 디컴파일링 하려면 실패합니다. An Error Occured, Please Check The Log option 21
    이라 뜨는데 21번 눌러서 보면 뭔가 막 ~ 나옵니다만. 결론은 디파일링 안됩니다. ㅠ

  19. 우훗 2016.06.22 15:21 신고 Address Modify/Delete Reply

    채를님 그럼 로그오류난설 올려보세요
    제가 한번 봐 드리줘

    • BlogIcon 채를 2016.07.15 11:05 신고 Address Modify/Delete

      이제야 답글 드리네요..
      --------------------------------------------------------------------------
      |2016-07-15 -- 11:00:18.96|
      --------------------------------------------------------------------------
      java version "1.8.0_91"
      Java(TM) SE Runtime Environment (build 1.8.0_91-b15)
      Java HotSpot(TM) Client VM (build 25.91-b15, mixed mode, sharing)
      D:\Apk Manager 5.1 fix softdx\place-apk-here-for-modding\../place-apk-here-for-m
      odding/signedGrand_Prix_Story.apk을(를) 찾을 수 없습니다.
      D:\Apk Manager 5.1 fix softdx\place-apk-here-for-modding\../place-apk-here-for-m
      odding/unsignedGrand_Prix_Story.apk을(를) 찾을 수 없습니다.
      I: Baksmaling...
      I: Loading resource table...
      Exception in thread "main" brut.androlib.AndrolibException: Could not decode ars
      c file
      at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:56)
      at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibRes
      ources.java:491)
      at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.jav
      a:74)
      at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.jav
      a:66)
      at brut.androlib.Androlib.getResTable(Androlib.java:50)
      at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:189)
      at brut.androlib.ApkDecoder.decode(ApkDecoder.java:114)
      at brut.apktool.Main.cmdDecode(Main.java:146)
      at brut.apktool.Main.main(Main.java:77)
      Caused by: java.io.IOException: Expected: 0x001c0001, got: 0x00000000
      at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)
      at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:44)
      at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:10
      2)
      at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:83)
      at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49)
      ... 8 more
      --------------------------------------------------------------------------
      |2016-07-15 -- 11:03:16.34|
      --------------------------------------------------------------------------
      java version "1.8.0_91"
      Java(TM) SE Runtime Environment (build 1.8.0_91-b15)
      Java HotSpot(TM) Client VM (build 25.91-b15, mixed mode, sharing)
      D:\Apk Manager 5.1 fix softdx\place-apk-here-for-modding\../place-apk-here-for-m
      odding/signedGrand_Prix_Story.apk을(를) 찾을 수 없습니다.
      D:\Apk Manager 5.1 fix softdx\place-apk-here-for-modding\../place-apk-here-for-m
      odding/unsignedGrand_Prix_Story.apk을(를) 찾을 수 없습니다.
      I: Baksmaling...
      I: Loading resource table...
      Exception in thread "main" brut.androlib.AndrolibException: Could not decode ars
      c file
      at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:56)
      at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibRes
      ources.java:491)
      at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.jav
      a:74)
      at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.jav
      a:66)
      at brut.androlib.Androlib.getResTable(Androlib.java:50)
      at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:189)
      at brut.androlib.ApkDecoder.decode(ApkDecoder.java:114)
      at brut.apktool.Main.cmdDecode(Main.java:146)
      at brut.apktool.Main.main(Main.java:77)
      Caused by: java.io.IOException: Expected: 0x001c0001, got: 0x00000000
      at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)
      at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:44)
      at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:10
      2)
      at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:83)
      at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49)
      ... 8 more

    • Favicon of http://ruiners.tistory.com BlogIcon 마징가_Z 2016.08.15 15:28 신고 Address Modify/Delete

      제가 잘 모르는 부분에 대해서 채를 님이 아주 잘 설명해주셨네요!!

  20. 후우우우니 2016.08.13 18:25 신고 Address Modify/Delete Reply

    대박이십니다.

    정말로 1도 모르는 저로써, 이 동작을 수행했다는 게 신기합니다.

    감사합니다. 정말 감사합니다.

  21. Favicon of http://www.joyalba.com BlogIcon 알바 . 2017.12.01 18:47 신고 Address Modify/Delete Reply

    잘보고갑니다!!