본문 바로가기

☆ 테마제작관련 ☆/테마제작강좌

Odex & Deodex[오덱스 디오덱스] 명령어 정리



 Odex [Deodex] 강좌 #1 오덱스 & 디오덱스란?

 Odex [Deodex] 강좌 #2 [부제 : dex화일 추출]

 Odex [Deodex] 강좌 #3 [부제 : dex화일 수정 및 적용]




Odex & Deodex 명령어 정리





  강좌 #3에서 Deodex를 Odex화 하는 과정에 대한 명령어 정리자료입니다.






위에 과정에서 나오는 Cmd창에서 입력하는 명령어 입니다.



AutoDEOTool은 아래 링크에서 받아주세요


 Odex [Deodex] 강좌 #2 [부제 : dex화일 추출]





다른 버젼의 autoDEOTool은 안 됩니다.






---------------------------------------------------------------------------------------------------------------




그리고 명령어 복사 붙이기는 다 아시죠??





1) 복사해서






2) Cmd 창에 붙이기



---------------------------------------------------------------------------------------------------------------








 강좌 #3에서 사용 된 명령어 다른 오덱작업을 한다면??  






아래 명령어들 보시면 어떤부분을 바꿔야 하는지 쉽게 아실 수 있을꺼예요^^

(공통)은 전체적으로 다 들어가는 명령어입니다.










baksmali로 압축 해제 과정


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 services.jar -o services

java -jar baksmali-1.4.0.jar -x framework2.jar -o framework2

java -jar baksmali-1.4.0.jar -x framework.jar -o frameworkodex






baksmali로 압축해제된 파일을 smali로 압축


java -jar [smali파일이름] -o classes.dex [폴더 이름]




java -jar smali-1.4.0.jar -o classes.dex android.policy

java -jar smali-1.4.0.jar -o classes.dex services

java -jar smali-1.4.0.jar -o classes.dex framework2

java -jar smali-1.4.0.jar -o classes.dex frameworkodex







adb이용 스마트폰 파일 넣기 작업


adb push [넣을 파일 이름] [경로]



adb push dexopt-wrapper /system/framework   (공통)




adb push android.policy.jar /system/framework

adb push services.jar /system/framework

adb push framework.jar /system/framework

adb push framework2.jar /system/framework





 adb shell 작업이용 스마트폰 리눅스 시스템 영역 접근 


adb shell  (공통)


cd /system/framework (공통)


chmod 777 dexopt-wrapper (공통)



./dexopt-wrapper android.policy.jar a.odex $BOOTCLASSPATH

./dexopt-wrapper  services.jar a.odex $BOOTCLASSPATH

./dexopt-wrapper framework.jar a.odex $BOOTCLASSPATH

./dexopt-wrapper framework2.jar a.odex $BOOTCLASSPATH





 Busybox 명령어 실행 / 각각의 Odex파일에 상응하는 임시 Odex파일 생성 


busybox dd if=/system/framework/[odex파일 이름] of=[임시odex파일이름] bs=1 count=20 skip=52 seek=52 conv=notrunc



busybox dd if=/system/framework/android.policy.odex of=a.odex bs=1 count=20 skip=52 seek=52 conv=notrunc

busybox dd if=/system/framework/services.odex of=a.odex bs=1 count=20 skip=52 seek=52 conv=notrunc

busybox dd if=/system/framework/framework.odex of=a.odex bs=1 count=20 skip=52 seek=52 conv=notrunc

busybox dd if=/system/framework/framework2.odex of=a.odex bs=1 count=20 skip=52 seek=52 conv=notrunc





 임시 Odex파일 원래의 odex파일에 덮어쓰기 


mv [임시 odex파일] [원본의 odex 파일]



mv a.odex android.policy.odex

mv a.odex services.odex

mv a.odex framework.odex

mv a.odex framework2.odex





 퍼미션 주기 


chmod 644 android.policy.*

chmod 644 services.*

chmod 644 framework.*

chmod 644 framework2.*




 소유자 변경 

chown root.root android.policy.*

chown root.root services.*

chown root.root framework.*

chown root.root framework2.*







reboot












여끼까지 입니다.


#3에서 android.policy.jar을 기준으로 작업해서


다른 화일을 오덱작업하려면


명령어가 틀력서 막혔던 분들을 위한 자료입니다.


다음 시간에는 systemUI.odex / setting.odex 수정 강좌 올려드릴께요











<본 자료는 에테리스는 강좌를 참조하였습니다.>


Odex & Deodex[오덱스 디오덱스] 명령어 정리포스팅을 마치도록 하겠습니다.