안녕하세요. 랄라입니다.
제가 이렇게 긴 강좌를 쓰게 될줄은 생각도 못했네요...
근 3개월 가까이 끙끙대며 이 프로젝트에 매달렸었는데, xda에서 화룡점정을 찍어줘서
드디어 프로젝트를 마무리 할수 있게 되었네요.
마침 학교1년 선배이신 연아찡 경기도 기다릴 겸
강좌를 쓰게 되었네요.
쉽게 파일만 교체하는 방식으로 가능하면 아주 편리하겠지만,,,
smali 작업을 필요로하는지라 하나하나 차근차근 알려드리겠습니다.
먼저, 필수항목들입니다.
1. 노트3 + 킷캣 + 루팅
2. AndroidMultitool (첨부파일)
- Winows OS XP / 7 / 8
- Installed Java on Windows
- Installed Microsoft Powerpacks(첨부파일)
- Installed .NET framework
3. MyDeodexer_1.0 (첨부파일) thanks to 짱구삼촌님
4. 자신이 바꾸고자 하는 1002x954 해상도의 그림파일
5. Notepad++
6. 7zip
자 이제 그럼 시작해보겠습니다.
AndroidMultitool과 MyDeodexer은 미리 압축을 풀어 각각 폴더를 만들어줍니다.
먼저 위대하신 짱구삼촌님께서 앱자료실에 올려주신 MyDeodexer를 이용합니다.
먼저 노트3와 컴퓨터를 연결시키고 usb디버깅 권한을 얻어줍니다.
그리고 압축을 푸신 후 Start.bat를 실행시킵니다.
그런다음 1번 Pull system을 선택하여 폰에서 컴으로 다이렉트로 system폴더를 뽑아옵니다.
(저는 백업도 할겸 1번을 했습니다.)
그후 다시 초기화면이 나오면 3번 Deodex a stock ROM을 선택하여
모든 파일들을 디오덱싱 해줍니다.(시간이 꽤 걸립니다. 필요하지 않은 파일들을 제외시켜주시면 시간을 절약하실수 있습니다)
그런후 완료되면 7번 Make CWM flashable Zip을 선택하여 실행해줍니다.
완료되면 폴더안에 Deodexed_CWM.zip라는 파일이 생깁니다.
이 zip 파일을 AndroidMultitool폴더에 복사해줍니다.
이때 미리 준비해둔 그림파일도 같은위치에 복사해줍니다.
다음으로 7zip으로 Deodexed_CWM.zip를 열어서 system/app폴더 안에 "SViewCoverService.apk"파일을 클릭해서 들어가줍니다.
res/drawable-sw360dp-xxhdpi에 보면 "mainbg_pattern_mainarea.png"파일이 있습니다.
이 파일을 뒤에 .bak을 붙인다던지 이름을 바꾸셔서 백업해 줍니다.
그런 다음 미리 준비해놨던 그림파일 이름을 mainbg_pattern_mainarea.png로 바꿔준뒤
거기다가 붙여넣어줍니다.
이제 뒤로가기 3번을 누르시면 framework 경로가 나옵니다.
여기서 "SViewCoverService.apk", "framework-res.apk", "twframework-res.apk"
이 세 파일들을 Ctrl누른상태에서 선택하여 우클릭하여 복사를 누르고 바로 확인을 누릅니다.
그런다음 닫아줍니다.
다음으로 AndroidMultitool폴더에 복사된
"SViewCoverService.apk", "framework-res.apk", "twframework-res.apk"
이 세파일들을 Files 폴더에 복사해줍니다.
그리고 AndroidMultitool을 실행해 줍니다.
왼쪽의 Installing Framework 항목에서 점3개 버튼을 눌러 "framework-res.apk"을 선택
install을 눌러서 설치합니다.
이번엔 점3개 버튼을 눌러 "twframework-res.apk"을 선택 후
install을 눌러서 설치합니다.
다음은 Decompiling 항목에서 점3개 버튼을 눌러 "SViewCoverService.apk"을 선택 후
decompile을 눌러 디컴해줍니다.(이때 체크박스는 해제상태입니다.)
이제 "Decompiled_apk"폴더 안에서 smali를 수정해 주겠습니다.
SViewCoverService/smali/com/sec/android/sviewcover 경로로 가줍니다.
SViewCoverView.smali를 Notepad++로 열어줍니다.
위의 도구단추 중 망원경버튼을 누르고 alpha라고 치고 "다음찾기"를 눌러줍니다.
invoke-virtual {v0, v1}, Landroid/widget/ImageView;->setImageAlpha(I)V 라는
구문이 찾아질텐데 이 바로 위에 보시면
const/16 v1, 0x1a 라는 구문이 보입니다.
1a를 ff로 바꿔줍니다.
이 작업을 총 4번 해주시면 됩니다. 1a가 2번 10이 2번 있을껍니다.
그런후 저장하고 종료하시면 됩니다.
다시 AndroidMultitool 프로그램에서
Compiling 항목에서 점3개를 누른후
Decompiled_apk 폴더안의 SViewCoverService를 선택합니다.
compile을 눌러 컴파일 해줍니다.
프로그램을 종료합니다.
거의 다왔습니다!
이제 Files 폴더안의 "SViewCoverService.apk"을 7zip으로 열어줍니다.
거기서 "META-INF"폴더와 "AndroidManifest.xml"를 선택 후 우클릭 복사 선택 후
Compiled_apk/SViewCoverSerivce에 풀어줍니다.
7zip에서 나옵니다.
이제 Compiled_apk/SViewCoverSerivce 폴더로 가서 "SViewCoverService.apk"을
열어줍니다.
그리고 같은 폴더에 아까 복사해준 "META-INF"폴더와 "AndroidManifest.xml"를
드래그해서 넣어줍니다.
다되었습니다!
이 "SViewCoverService.apk"를 644권한으로 system/app에 투척하시면 됩니다!
(이때 중요한 점은 기존파일은 백업필수구요,, odex파일도 삭제하거나 이름을 바꿔줘야합니다.)
그런다음 재부팅하시면 준비한 배경을 만나보실수 있답니다.
미진한 글솜씨에도 읽어주셔서 감사합니다.
+) 제가 중요한 부분 한가지 빼먹은게 있네요...
AndroidMultitool을 실행하기 위해서는 몇가지 조건이 필요합니다.
위에 필요조건부분에 설명 추가했습니다~