갤파런처부터는 테마기능이 생겼지만 정작 갤파는 순정에서 테마를 못씁니다;;
그래서 제가 갤파 순정롬에서 테마기능을 추가하는 강좌를 해보려고 합니다.
물론 완전순정은 불가능하고, 루팅하고 시스템 조금 건드려 볼겁니다 ㅋㅅㅋ
필요한 파일은
SecSettings.apk
TouchWizHome.apk
이 두 파일입니다.
우선, 설정앱에 진입메뉴 추가부터 해보죠.
이방식은 저번에 세나님이 올려주신 강좌글(http://www.matcl.com/?m=bbs&bid=usermoim&cat=%EA%B0%95%EC%A2%8C&uid=232637)을 기반으로 한 겁니다. 세나님께 다시 한 번 감사드립니다.
1. SecSettings.apk를 디컴파일합니다.
2. res/xml/grid_settings_headers.xml로 갑니다.
3.
<header android:icon="@drawable/ic_setting_grid_homesetting_att" android:title="@string/sectheme" android:summary="@string/sectheme_desc">
<intent android:targetPackage="com.sec.android.app.themechooser" android:action="android.intent.action.MAIN" android:targetClass="com.sec.android.app.themechooser.ThemeListActivity" />
</header>
위 구문을 복사해서 원하는 곳에 붙여넣기 합니다.
저의 경우는
<header android:icon="@drawable/ic_setting_grid_wifi" android:id="@id/wifi_settings" android:title="@string/wifi_settings_title" android:fragment="com.android.settings.wifi.WifiSettings" />
이줄 바로 밑에 넣었습니다.
4. 이제 res/values/strings.xml를 엽시다.
5.
<string name="sectheme">Themes</string>
<string name="sectheme_desc">Change Touchwiz Launcher Theme.</string>
위 구문을 복사해서 맨 밑의 바로 위에 붙여넣기 합니다.
6. res/values-ko/strings.xml로 엽니다.
7.
<string name="sectheme">테마</string>
<string name="sectheme_desc">터치위즈 런처 테마를 변경할 수 있습니다.</string>
이 구문도 위 구문과 같은 방식으로 복붙해줍니다.
8. 이제 SecSettings.apk를 컴파일하고 시스템에 투척합니다.
9. 첨부된 SecThemeChooser_preload.apk를 system/app에 퍼미션 644 투척합니다.
자, 이제 설정상에는 '테마'항목이 생겼을거고 다운받은 테마들을 적용할 수 있는 메뉴가 나올겁니다.
하지만 s5 순정런처는 테마기능을 막아놔서 이렇게만 해놓으면 배경만 바뀌고 아이콘은 안바뀝니다. ㅡ.ㅡ;;
그래서 터치위즈홈도 수정을 해주어야 하는겁니다. 스말리작업이지만 쉬우니 겁먹지 말고 해보세요.
10. TouchWizHome.apk를 디컴파일합니다.
11. smali/com/android/launcher2/Launcher.smali를 열어줍시다.
12.
.method static constructor ()V
이 구문을 찾습니다.
13. 조금 더 내리면 이런 것들이 나올겁니다. (이부분은 기기마다 다를 수 있습니다)
const/4 v1, -0x1
const/4 v3, 0x1
const/4 v2, 0x0
위에서 0x1 값을 가지는 const 값을 메모해 둡니다. 여기서는 v3가 되겠군요.
14. CSCFEATURE_LAUNCHER_THEME_ENABLE 을 검색합니다.
sput-boolean v2, Lcom/android/launcher2/Launcher;->CSCFEATURE_LAUNCHER_THEME_ENABLE:Z
그리고 이렇게 생긴 구문을 찾습니다.
15. 위의 v2 부분 있죠? 저 값을 아까 메모해 둔 0x1을 가지는 값으로 바꿔줍니다.
sput-boolean v3, Lcom/android/launcher2/Launcher;->CSCFEATURE_LAUNCHER_THEME_ENABLE:Z
여기서는 이렇게 바뀌겠군요.
16. TouchWizHome.apk를 컴파일하고 시스템에 투척합니다.
자, 이제 테마 기능이 완벽하게 이식되었습니다. 이제 마음에 드는 테마들을 다운받아 쓰시면 되겠습니다.
참고로 터치위즈홈 수정작업은 노트3 런처에서도 같은방법으로 수정하시면 되므로 설정앱만 좀 만질줄 아시면 노트3에도 이식이 가능하겠군요.
------보너스 강좌----------
레드아이롬 터치위즈를 보면 하단에 저렇게 펜모양 아이콘이 떠있는걸 보셨을 겁니다.
저건 편집모드 아이콘인데, 위와 같은 원리로 활성화가 가능합니다.
위 강좌의 15번에서 시작합니다.
수정한 테마구문에서 조금 위로 올려보면
sput-boolean v2, Lcom/android/launcher2/Launcher;->CSCFEATURE_LAUNCHER_HOMESCREENEDITMODE:Z
이렇게 생겨먹은 구문이 나올겁니다. 이것도 테마활성화와 같은방식으로 const값을 변경해주면 됩니다.
sput-boolean v3, Lcom/android/launcher2/Launcher;->CSCFEATURE_LAUNCHER_HOMESCREENEDITMODE:Z
여기서는 수정 후에 이렇게 바뀌겠군요.
이제 TouchWizHome.apk를 컴파일하고 시스템에 투척하면 저 아이콘이 생겼을 겁니다.