떡님의 방법 (http://matcl.com/s/?mid=pxeboard9&document_srl=945818)을 기반으로
가감하여 정리했습니다.
폰에서 다운로드 받는 시간이나
윈도우 cmd 창, 폰쉘(adb shell) 창 을 하나씩 띄우고 작업하시는 것이 편할 겁니다.
참조
http://matcl.com/s/?mid=freeboard&category=9003&document_srl=969422
http://matcl.com/s/?mid=freeboard&category=9003&document_srl=1033317
0. 준비단계
0. PC에 adb, busybox, java 설치 확인. 루팅 확인.
1. 컴퓨터에 작업 폴더를 생성합니다.
2. 첨부된 파일(file.zip)을 다운받아 생성된폴더에 압축을 풉니다.
1. odex에서 변경할 파일 추출
1. system 폴더를 rw로 권한을 변경합니다. : 폰쉘 명령어 : busybox mount -o remount,rw /system
1. root 폴더를 rw로 권한을 변경합니다. : 폰쉘 명령어 : busybox mount -o remount,rw /
2. cmd창에서 생성된 폴더로 이동합니다.
3. 폰에서 파일 받아오기 : CMD 명령어 : adb pull /system/framework framework
4. 수정할 odex파일 복사 : CMD 명령어 : copy frameworkandroid.policy.* .
5. 수정할 파일들 추출 : CMD 명령어 : java -jar baksmali.jar -d framework -x android.policy.odex
2. 추출된 파일에서 스크린락 글씨 수정하기
1. out 이라는 폴더가 생성되어 있습니다.
2. outcomandroidinternalpolicyimpl 폴더에서 파일 편집
GlassLockScreen.smali 의 getTelephonyPlmn 를 검색 및 수정
PuzzleLockScreen.smali 의 getTelephonyPlmn 를 검색 및 수정
PatternUnlockScreen.smali 의 getTelephonyPlmn 를 검색 및 수정
* 수정 요령 : getTelephonyPlmn 다음 줄의
move-result-object v3
를
const-string v3, "원하는이름"
로 변경
* 혹은 참조 게시물의 내용과 같이 위치 찾기
4. 추출된 파일을 deodex로 변경
1. CMD 명령어 : java -jar smali.jar out -o classes.dex
5. deodex파일을 odex로 변경
1. classes.dex 파일을 android.policy.jar 파일에 추가 (7zip, 알집 등의 압축 프로그램 이용)
2. 수정한 파일을 폰으로 전송 : CMD명령어 : adb push android.policy.jar /system/framework/
3. 필요한 파일 복사 : CMD명령어 : adb push dexopt-wrapper /system/framework/
4. 폰쉘 명령어 : cd /system/framework
4. 실행권한 부여 : 폰쉘 명령어 : chmod 777 dexopt-wrapper
5. a.odex파일이 있으면 삭제 : 폰쉘 명령어 : rm a.odex (No such file 에러나도 무시)
6. 폰쉘 명령어 : (3줄을 3번에 걸쳐서 입력)
./dexopt-wrapper android.policy.jar a.odex /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar
busybox dd if=/system/framework/android.policy.odex of=a.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
mv a.odex android.policy.odex
6. 정리 및 재부팅
1. 폰쉘 명령어 : rm dexopt-wrapper
2. 폰쉘 명령어 : reboot