관련 강좌 강좌 보러가기
[Odex Deodex 강좌 1] 오덱스 & 디오덱스란?
Odex & Deodex 강좌 #3
- dex화일 수정 및 적용 -
Odex & Deodex 강좌 #2에 이어서 진행하겠습니다.
이전 강좌 안보시고 오신분들은 이전강좌부터 봐주세요
이전 강좌에서 Dex화일 추출까지 진행 했습니다.
본 강좌에서 추출한 Dex화일을 스마트폰에서 Odex화 하여 적용하는 방법에 대해 알려드릴께요
추출한 Dex화일 baksmali로 압축 해제 하기
폴더내에 classes.dex 를 baksmali로 압축해제 해볼께요
폴더내에 commandprompt.bat 실행해 주세요
아래 스샷과 같이 cmd창 실행됩니다.
baksmali를 이용한 jar 파일 압축 해제 문장 분석
java -jar [baksmali파일] -x [압축을 풀 deodexing된 jar파일] -o [압축풀릴 폴더이름]
색상으로 구분 된 입력 구분
java -jar baksmali-1.4.0.jar -x android.policy.jar -o android.policy
사실 저도 이렇게 강좌가 되어있을 때 상당히 난감 했었습니다.
띄어쓰기라던가.. 정확히 어떤부분이 틀려서 안되는 몰라서 답답했었는데..
그냥 아래 스샷처럼 보이는 본문 내용 우클릭 해제 해서 앞뒤여백 없이 드래그해서 복사해주세요
java -jar baksmali-1.4.0.jar -x android.policy.jar -o android.policy
그리고 cmd창에서 마우스 우클릭으로 붙여넣기 해주시면 됩니다.
Ctr+C & V으로는 입력이 안됩니다.
아래 스샷 처럼 잘 들어가죠?? 그럼 Enter를 쳐 줍니다.
Enter를 친 후 아래와 같은 화면이 나오면 압축해제가 끝난겁니다. 폴더를 확인해볼까요?
java -jar [baksmali파일] -x [압축을 풀 deodexing된 jar파일] -o [압축풀릴 폴더이름]
java -jar baksmali-1.4.0.jar -x android.policy.jar -o android.policy
압축풀릴 폴더이름 = android.policy 폴더가 신규로 생성 된걸 볼 수 있습니다.
smali화일 수정하기
dex화일 압축해제 후 이젠 편집가능한 smali화일을 볼 수 가 있습니다.
smali화일이 어디있냐고요??
android.policy 폴더안에 보시면 엄청나게 많은 smali화일들이 있습니다.
그 중에 ICS 순정락을 담당하고 있는 smali 경로는
android.policy\com\android\internal\policy\impl\LockPatternKeyguardView.smali
LockPatternKeyguardView.smali 을 우클릭해 메모장 및 Notepad++로 열어주세요
Ctr+F를 이용해서 아래 구문을 찾아주세요
iput-boolean v2, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->CIRCLELOCK_MODE:Z
이제 ICS Lock 관련 구문 수정해 줍니다.
iput-boolean v2, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->CIRCLELOCK_MODE:Z [원본]
iput-boolean v1, p0, Lcom/android/internal/policy/impl/LockPatternKeyguardView;->CIRCLELOCK_MODE:Z [수정]
V2==> V1으로만 바꿔주시면 됩니다.
이제 smali화일을 저장해 주세요
smali화일 다시 압축해서 수정된 Dex화일 추출하기
smali화일 다시 압축 명령어 구문 분석
Cmd 창에 아래와 같이 입력해 주시면 됩니다.
java -jar smali-1.4.0.jar -o classes.dex android.policy
Smali.jar를 통해 압축해서 수정된 classes.dex화일이 생성 됐을 겁니다.
생성된 시간을 확인해 보세요 (방금전에 생성 된 게 맞습니다. ㅎㅎ)
수정된 dex화일 android.polacy.jar에 덮어 씌우기
처음 deodex된 android.policy.jar 에 수정 된 dex화일만 바꿔치기 해주시면 됩니다.
압축화일에서 classes.dex화일을 꺼내놓은것과 반대로 폴더에 있는 classes.dex화일을 알집안으로 넣어 주시면 됩니다.
android.policy.jar 우클릭 ==> 알집으로 열기
수정 된 classes.dex화일 android.policy.jar 안으로 drag & drop로 덮어 씌우기
현재 파일에 추가하기 선택 후 확인
덮어쓰기 확인 후 확인
우측 상단 X키 눌러서 알집 창 닫기
이로써 dex화일이 수정 된 디오덱스 android.policy.jar 이 완료되었습니다. ㅜㅜ
옆에서 보면 정말 간단한데.... 문서로 작성하려니..
100배는 시간걸리네요. ㅎㅎ
수정 완료된 디오덱스 android.policy.jar을 Odex화 시키면 끝납니다. ㅎㅎ
마지막 단계 입니다. ㅎㅎ
수정 된 deodex android.polacy.jar에서 odex추출 하기 [deodex==>odex화 하기
우선 Rootexplorer프로그램에서 System 권한을 R/W로 바꿔주세요
이해가 안되시면 아래 강좌 참조해 주세요.
루트익스플로러 사용법 / rootexplorer 사용방법 / 루트익스플로러 테마설치방법
USB 디버깅 모드를 체크해 주세요
USB로 스마트폰을 연결해 주세요
드라이버 등 설치가 이상 없이 되어 있다면 내컴퓨터 안에 자신의 기종이 잡혀있을 겁니다.
이젠 AutoDEOTool 폴더안에 있는 commandprompt.bat 를 실행시켜 주세요
commandprompt.bat 를 실행 초기화면 입니다.
adb 작업 [작업화일 넣기]
adb push dexopt-wrapper /system/framework
adb push android.policy.jar /system/framework
테그라크에서는 괜찮은데 cwm에서는 이 부분에서 폴더 퍼미션을 넣어줘야합니다.
아래와같은 퍼미션이 거부된다면
failed to copy 'dexopt-wrapper' to '/system/framework/dexopt-wrapper': permission denied
아래 링크를 참조해주세요
▷ 폴더퍼미션 강좌보러가기 ◁
<명령어 입력화면 화면>
이부분에서 다른문구가 나오시는 분은 루트익스플로러 R/W다시 한번 확인해보세요
adb shell작업 [작업영역으로 이동] 명령어
adb shell
cd /system/framework
dexopt-wrapper 퍼미션 777 변경 / a.odex 생성 명령어
chmod 777 dexopt-wrapper
./dexopt-wrapper android.policy.jar a.odex $BOOTCLASSPATH
<명령어 입력화면 화면>
Busybox 실행 명령어
conv=notrunc
busybox dd if=/system/framework/android.policy.odex of=a.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
<명령어 입력화면 화면 한줄입니다.>
임시 a.odex android.odex덮음 명령어
mv a.odex android.policy.odex
퍼미션 변경 명령어
chmod 644 android.policy.*
chown root.root android.policy.*
리부팅 명령어
<명령어 입력화면>
입력명령어 순서 정리(회색 숫자 제외)
1)adb push dexopt-wrapper /system/framework
2)adb push android.policy.jar /system/framework
3)adb shell
4)cd /system/framework
5)chmod 777 dexopt-wrapper
6)./dexopt-wrapper android.policy.jar a.odex $BOOTCLASSPATH
7)busybox dd if=/system/framework/android.policy.odex of=a.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
8)mv a.odex android.policy.odex
9)chmod 644 android.policy.*
10)chown root.root android.policy.*
11)reboot
리부팅이 되면서 아래와 같은 순정락에서 ICS 순정락을 보실 수 있습니다.^^
고생많으셨습니다.^^
Odex관련 명령어는 따로 정리해서 올려드릴께요.
이번 강좌에 모든걸 적어드리면 오히려 혼란스러울까봐서.. 생략한 부분이 있습니다.
이렇게 포스팅 내용을 보시면 정말 어렵다고 생각하실지 모르겠지만
막상 하나한 따라하시다 보면그렇게 어렵지 않은 내용입니다.
Odex명령어 중 가장 간단한 수정으로 큰 효과를 볼 수 있는 ICS 순정락 강좌였습니다.
앞으로도 Odex관련된 강좌를 실습을 통해 알려드릴께요
처음이라 자세하게 쓴다고 썼는데.. 쉽게 이해가 가셨는지 모르겠네요
아무래도 전혀모르는사람이 보면 역시 외계어겠죠ㅜㅜ
이상으로 Odex [Deodex] 강좌 #3 [부제 : dex화일 수정 및 적용] 포스팅을 마치도록 하겠습니다.
'☆ 테마제작관련 ☆ > 테마제작강좌' 카테고리의 다른 글
[Crt-off 효과] 스마트폰 TV 꺼짐 효과 (9) | 2012.12.24 |
---|---|
Odex & Deodex[오덱스 디오덱스] 명령어 정리 (7) | 2012.12.23 |
Odex [Deodex] 강좌 #2 [부제 : dex화일 추출] (40) | 2012.12.21 |
[갤럭시노트 젤리빈] 갤럭시노트1 젤리빈 업데이트 방법 (8) | 2012.12.11 |
갤럭시노트 젤리빈 퀵패널 따라하기 #3 [퀵패널 시계 / 날짜 레이아웃 바꾸기] (2) | 2012.12.08 |