티스토리 뷰

설명할 필요가 있을까 싶지만 놓치기 쉬운 기능도 몇 있으니 따라하기 식으로 정리를 했습니다~

이 설명은 디컴과 디오덱스에 대해 전혀 모르는 사람들을 대상으로 작성한 것이니 아시는 분들은 그냥 프로그램 쓰셔도 돼요 ㅇㅅㅇ 딱 보면 알 수 있을테니.

초보자 분들은 간단모드나 튜토리얼모드가 괜찮고요, 숙련자 분들은 수동모드를 쓰면 되겠습니다.

간단모드는 최대한 자동화에 중점을 맞췄고, 이 글에선 이걸 기준으로 설명할게요.

튜토리얼 모드는 어떤 기능이 무슨 역할을 하는지 배우기 좋고요, 수동모드는 다른 모드엔 없는 기능들도 약간 있답니다. (예를 들면 자바소스 보기같은 기능이라든가요)


서론은 끝났고, 이제 시작해 볼까요.


갤투 SystemUI.apk 만지작거리기


일단 SystemUI.apk파일이 필요하겠군요. 없다고요? 괜찮아요. 갤투만 있으면 됩니다.

갤투가 아니라고요? 뭐 비슷비슷하겠죠. 이건 이제 구닥다리고 다른 기종들은 더 자료가 많을테니 더 편할 수도 있겠네요.

준비물은 Apkzipper v2.3.4 실행파일 하나만 있으면 됩니다. 심플의 극치 ㅋㅋ


장황한 설명이 싫으신 분들은 맨 아래쪽에 요약을 해 둘 테니까 그거 보시면 됩니다.


처음 실행하면 튜토리얼 모드로 보입니다. 간단모드로 가죠. 편하게..



간단모드로 들어가면... 정말 간단하게 보이지 않아요?



1. 수정할 앱을 준비합시다.

SystemUI.apk가 있으면 넘어가고, 없다면 폰 드라이버를 설치, 개발자 옵션도 켜고 컴하고 휴대폰을 USB로 연결해줍시다.

근데 USB케이블도 없다면... 그래도 불가능하진 않습니다. 무선연결이 있거든요. 다만 루팅과 Busybox, Wifi ADB같은 앱들이 설치되어 있어야 합니다.

무선연결 안 하시거나 USB로 연결하신 분은 휙휙~~ 넘어가시면 되겠습니다아~~



루팅하는 방법은 범위를 벗어나므로 여기서 설명하지 않겠습니다. 다른데서 배워오든지 USB로 연결하든지 어떻게든 SystemUI.apk파일과 여타 필요한 파일을 준비만 할 수 있으면 됩니다.



마켓에서 쉽게 Wifi ADB를 찾아 설치할 수 있습니다. 설치하고 위젯을 만들어서 켜면 위 사진처럼 주소가 나옵니다.

같은 와이파이에 접속한 폰에 무선연결 할 수 있게 해주는 앱이라고 보시면 됩니다.




정상적으로 연결되면 위 사진처럼 뜹니다. 연결이 안 된다면... 3G는 안 되고 컴퓨터하고 폰이 같은 와이파이에 연결되어 있어야 합니다.


USB로 연결하신 분은 여기서부터 따라와주시면 됩니다. 이제 SystemUI.apk를 가져올 건데요.

아래 사진에 '폰에서 가져오기' 버튼이 떡하니 있네요. 그걸로 가져오면 돼요 ㅇㅅㅇ



 /system/app/SystemUI.apk를 치면 됩니다. 그 경로에 파일이 있거든요.

(대소문자를 구분해주세요)

근데 

remote object '/system/app/SystemUI.apk' not a file or directory

가 뜰 수 있습니다. 젤리빈 업글하면서 위치를 옮기고 링크를 시킨 것 같더라고요. 하튼 이러면

/preload/symlink/system/app/SystemUI.apk   를 치면 될 겁니다.




오홋~~ 성공 ㅋ

이제 버튼 3개가 보이네요. 사진파일만 바꿀꺼면 압축풀기만 하는게 정신건강에 이로울 겁니다.

정신건강에 해로운 디컴파일 & 디오덱스 과정을 밟으시는 분들은 계속 읽어주세요 ㅇㅅㅇ



네. 그냥은 디컴이 안 되는 것 같네요. 프레임워크 파일을 가져오지 않아서 발생하는 문제입니다.

뭐 가져오면 되죠




이 참에 디오덱스도 할 겸 오덱스 파일도 가져올까요.

(앗, 실수. /system/app/SystemUI.odex였네요 ㄱ- 아래에 나옵니다)



어쨌든 전부 잘 가져온 것 같으면 이상한 파일이 선택되었을 수 있으니까 맨 처음 앱 선택하기에서 다시 SystemUI.apk를 골라주세요.



아까 가져온 SystemUI.apk와 framework. odex파일도 있지만 확장자땜시 안 보일 뿐이랍니다.



오.. 이제 잘 디컴파일 되네요. 작업폴더 열기를 하면 디컴파일한 폴더, 사진들이랑 xml, 일부 smali코드들이 있는 폴더를 열어주고요,

오덱스 폴더를 열면 말 그대로 디오덱스한 폴더를 열어줍니다. 소스코드 폴더라고 보면 되겠네요.





앱파일 만들기를 누르면 뭐... 잘 됩니다. resource.arsc는 알아서 보존해주니까 신경쓰지 마세요.

다만 간단 모드를 벗어나면... 시스템컴파일을 일부러 선택해서 신경써야 할 거예염.



만들어진 앱 파일을 열어본 화면입니다. classes.dex파일이 있는 걸로 보아 디오덱스와 포함 과정이 성공적으로 된 것 같네요.

이전 사진이지만 '설치하기'와 '폰으로 내보내기' 버튼이 있었습니다.

이건 시스템 앱이라 설치해봤자 안 될테고, 그냥 있는 경로에다가 덮어 씌워야 하는데 문제는 시스템 경로는 기본적으로

'읽기 전용'이라는 거죠 ... ㅠㅠ (아니 좀 당연한 거지만)

이 읽기 전용을 해제할 건데, 쉽게쉽게 따라해보자고요 ㅇㅅㅇ



이 과정은 루팅과 개발자 옵션 - USB디버깅이 이미 켜져 있다고 가정하고 한 겁니다.

루팅 안 하고 SystemUI.apk를 덮어씌우는 방법은 아마 없지 않을까요? (있어도 어려울 것 같습니다만)



#이면 루트권한이라는 뜻이예염. 아니면 $이 뜬답니다. 일단 mount를 쳐 보세요.



그럼 뭐가 쏼라쏼라 뜰 텐데 (이거 busybox필요한 건지 잘 모르겠네;;) 경로명이 /preload인걸 하나 찾고,

저 노란 부분을 드래그해서 마우스 우클릭하면 드래그한 부분이 복사됩니다.

그럼 mount -o rw,remount 까지만 치고 다시 우클릭을 하면 저 노란 사각형 만큼이 붙여넣기 될 겁니다.



네 끝났습니다. 저 까만 화면 이제 안 봐도 돼요. 이제 넣어주자고요.



솔직히 아까 mount어쩌고가 위 경로보다 더 짧잖아요. 쉽지.



네 끝났습니다~~ 어차피 수정한 거 없으니까 폰 사진은 안 올릴게요.

실패하면 벽돌은 안 되어봤고 끽해봐야 상단바 사라짐쯤 될 거예요.

원래 파일로 돌리고 싶을 땐 처음에 가져온 SystemUI.apk를 덮어 씌우면 돼요. 이 프로그램은 원본 apk는 절대 안 건드리거든요. (삭제기능 예외)

돌리고 싶으면 위쪽 메뉴의 기타 - 폴더 정리 - 현재 결과물 삭제하고

(간단모드 말고 다른 모드로 전환한 다음) 폰으로 내보내기를 고르면 됩니다.

그럼 원본 apk가 전송 될 거예요. (남은 게 그거밖에 없으니까 ㅇㅇ)


요약을 빼먹을 뻔 했네요. 좀 지나치게 요약이다 싶은 부분만 되돌아가서 보세요.


1. 간단모드로 들어간다

2. 휴대폰을 연결한다. (USB로 연결하면 간단하겠죠?)

3. 압축풀기 할 사람은 그냥 압축푼다.

4. 디컴, 디오덱스를 할 사람은 framework폴더와 odex파일을 같이 준비하고 디컴, 디오덱스를 한다.

5. 맘껏 수정한다.

6. 앱파일 만들기 클릭

7. SDK기능 - ADB Shell - mount명령어 입력

8. 읽기 전용 해제할 파티션을 드래그, 우클릭해서 복사한 다음 mount -o rw,remount 까지 치고 우클릭해서 붙여넣기

9. 잘 읽기 전용이 해제되었으면 앱 파일 전송하기

10. 리붓


와 끝났다~~!!

'자작 프로그램 > ApkZipper' 카테고리의 다른 글

Apkzipper v2.3 beta  (8) 2013.06.28
Apkzipper v2.2 beta  (4) 2013.06.08
ApkZipper v2.0이 나왔습니다 ㅋㅋ  (2) 2013.06.01
GUI버전은 좀 미뤄질 것 같습니다  (0) 2013.03.30
ApkZipper v1.2.2  (6) 2012.11.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함