경고!!!
스크린락 변경작업은 초보자가 하기에는 무리가 있습니다.
무턱대로 따라하다 벽돌되는건 본인 책임입니다.
이 과정은 adb를 자유롭게 사용하시는 분에게 권합니다.
필수파일 : adb, java, busybox, 루팅
참조
1. http://code.google.com/p/smali/
2. http://forum.xda-developers.com/showthread.php?p=4350083
색상 및 한글바꾸는건 matcl.com 이 최초입니다.
어디서 퍼가시더라도 출처 꼭 남기세요.
누구같은짓 하지마시길...
글씨크기, 삭제 등등 다 되지만 더 이상 공개안하겠습니다.
이젠 테마스토어에서만 적용됩니다.
이 작업의 흐름은 다음과 같습니다.
1. odex을 deodex로 변경
2. 변경된 deodex파일에서 파일 추출.
3. 추출된 파일에서 필요한 부분 수정
4. 추출된 파일을 deodex로 변경
5. deodex파일을 odex로 변경
이러한 과정을 거쳐서 폰에 적용이 됩니다.
아래부턴 각 단계별로 설명해드리겠습니다.
1. odex를 deodex로 변경
1. 컴퓨터에 아무런 폴더를 생성합니다.
2. 첨부된 파일(file.zip)을 다운받아 생성된폴더에 압축을 풉니다.
3. 마켓에서 busybox를 설치합니다.
4. root, system폴더를 rw로 권한을 변경합니다. (busybox mount -o remount,rw /system | busybox mount -o remount,rw /)
5. cmd창에서 생성된 폴더로 이동합니다.
6. CMD 명령어 : adb pull system system
7. 복사된 system폴더에서 android.policy.odex와 android.policy.jar 파일을 생성된폴더에 저장합니다.
8. java -jar baksmali.jar -d system/framework -x android.policy.odex
9. java -jar smali.jar -o classes1.dex out
2. 변경된 deodex파일에서 변경될 파일 추출
1. java -jar baksmali.jar -o classes classes1.dex
3. 추출된 파일에서 스크린락 글씨 수정하기
1. classes라는 폴더가 생성되어 있습니다.
2. classescomandroidinternalpolicyimplGlassLockScreen.smali 파일을 여세요.
3. [ .line 765 ] 를 검색하세요.
4. .line 765와 .line 767 사이를 아래와같이 수정하세요.
5. 아래 빨간부분에 원하는 문장을 넣으시면 됩니다. ^^
6. 수정후 저장하세요.
.line 765
:cond_4f
iget-object v2, p0, Lcom/android/internal/policy/impl/GlassLockScreen;->mCarrier:Landroid/widget/TextView;
iget-object v3, p0, Lcom/android/internal/policy/impl/GlassLockScreen;->mUpdateMonitor:Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;
invoke-virtual {v3}, Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;->getTelephonyPlmn()Ljava/lang/CharSequence;
move-result-object v3
invoke-virtual {v2, v3}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
▼
.line 765
:cond_4f
iget-object v2, p0, Lcom/android/internal/policy/impl/GlassLockScreen;->mCarrier:Landroid/widget/TextView;
iget-object v3, p0, Lcom/android/internal/policy/impl/GlassLockScreen;->mUpdateMonitor:Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;
invoke-virtual {v3}, Lcom/android/internal/policy/impl/KeyguardUpdateMonitor;->getTelephonyPlmn()Ljava/lang/CharSequence;
const-string v3, "ThemeStore"
invoke-virtual {v2, v3}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
---- 색상코드 추가하기 (빨간 부분은 아래의 설명 참조) ------
---- 문장 입력한 라인 밑에 입력하면 됩니다.
const v3, -16777216
invoke-virtual {v2, v3}, Landroid/widget/TextView;->setTextColor(I)V
4. 추출된 파일을 deodex로 변경
1. java -jar smali.jar classes -o classes.dex
5. deodex파일을 odex로 변경
1. classes.dex 파일을 알집을 이용하여 android.policy.jar 파일에 추가시킵니다. ( 아래그림 참조 )
2. CMD명령어 입력 : adb push android.policy.jar /system/framework/
3. CMD명령어 입력 : adb push dexopt-wrapper /system/framework/
4. adb shell에서 아래 명령어를 입력하세요.
5. 만약 a.odex파일이 있으면 삭제한후에 진행하세요.
cd /system/framework/
chmod 777 dexopt-wrapper
파란, 녹색글씨는 각각 한줄 명령어입니다.
아래 글씨를 여기다 쓰면 아래 같이 한줄로 길게쓰면 이렇게 뒤를 알수없게 되서 두줄로 나눈겁니다.
./dexoptwrapperandroid.policy.jar .odex /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar
그래서 제가 한줄명령어라고 쓴것이구요.
./dexopt-wrapper android.policy.jar a.odex /system/framework/core.jar:/system/framework/e
xt.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
reboot
모두 정상적으로 입력이 되었다면 재부팅후 적용이된 화면을 보실수 있을겁니다. ^^
모든명령어가 정상적으로 입력이 되었다면 아무런 메시지가 나오지 않고 진행이 됩니다.
오류메시지 한개라도 나오면 정상적으로 진행이 안된 상황입니다.
한글 입력방법
1. 아래의 StringToUniCode.class 파일을 다운받습니다.(StringToUniCode.class)
2. CMD 창에서 다운받은 폴더로 이동합니다.
3. CMD명령어 : java StringToUniCode "입력하고싶은 문장 작성" 하신후 엔터를 치면 변환된 코드가 나옵니다.
4. 그 코드를 복사, 붙여넣기형식으로 위 ThemeStore라고 써진부분에 작성해주시면 됩니다.
색상 적용방법
1. 아래의 ColorCode.class 파일을 다운받습니다.(ColorCode.class)
2. CMD 창에서 다운받은 폴더로 이동합니다.
3. CMD명령어 : java ColorCode "색상코드입력(FFFFFF)" 하신후 엔터를 치면 변환된 코드가 나옵니다.
4. 그 코드를 복사, 붙여넣기형식으로 위 -16777216라고 써진부분에 작성해주시면 됩니다.