동작하지 않는 테마

이전 글에서 몇번 이야기했듯이 테마는 성능에 도움을 주는 기능은 아니다. 그러나 많은 사람들이 테마를 사용한다. 탈옥을 하는 이유 중 하나가 테마다. 그런데 iOS가 4.2.1로 판올림되며 이전에 사용하던 테마가 동작하지 않았다. 원인은 간단했다. 테마에 사용되는 일부 파일이 바뀌었기 때문에 발생한 일이었다. 따라서 이 글에서는 동작하지 않는 테마 문제를 해결하는 방법을 제시하겠다.

목차

변경된 테마

아이폰, 순정이 좋은 이유라는 글에서 설명한 것처럼 순정폰은 순정폰 나름의 장점이 있고 탈옥폰은 탈옥폰 나름의 장점이 있다. 그러나 역시 탈옥폰을 사용하던 사람은 순정폰을 사용하기는 힘들다. 이유는 여러 가지가 있으며 사람에 따라 조금씩 다르다. 내가 탈옥하는 가장 큰 이유는 (WinterBoard)와 SB셋팅(SBSettins)때문이다. 특히 SB셋팅(SBSettings)에 익숙해 지면 순정폰에서 설정 바꾸기가 상당히 귀찮아 진다. 따라서 내가 곧잘 하는 이야기는 "SB셋팅과 테마만 지원해도 탈옥하지 않을 사람들이 많다"[1]는 것이다.

계속 늦어지는 아이폰 완탈, 대안은?라는 글에서 설명한 것처럼 작년 말까지는 4.1 탈옥폰을 사용하다 크리스마스 부터 iOS 4.2.1을 사용해 왔다. 완탈을 기다린 것이다. 그러나 완탈이 금방 나올 것 같지는 않아 결국 얼마 전부터 준완탈을 해서 사용하고 있다. 일단 4.1에서 4.2로 넘어 오니 탈옥폰 설정도 바뀐 것이 많았다. 먼저 눈에 띄는 것은 테마(Theme)였다. 4.1까지는 잘 동작하던 테마였는데 4.2.1로 판올림하자 일부 테마가 먹지 않았다. 처음에는 에서 테마를 적용하는 순서의 문제인 것으로 생각했다. 그러나 테마 파일의 이름이 바뀌어야 발생한 문제였다.

테마 파일

위의 그림을 보면 알 수 있지만 일단 잠금화면의 키패드가 바뀌지 않았다. 그림을 보면 알 수 있지만 테마의 키패드가 아니라 아이폰의 기본 키패드가 나타난다. 또 다른 아이콘은 모두 정상 표시되지만 지도(Maps)와 폴더(Folder)는 기본 아이콘인 것을 알 수 있다. 결국 "목마름 놈이 우물 판다"고 판올림한 김에 문제의 원인을 찾아 봤다. 대부분 테마 파일의 이름이 4.2.1에서 바뀌었기 때문에 발생한 문제였다. 따라서 이 문제는 테마 파일의 이름에 ~iphone을 덧 붙임으로서 해결할 수 있었다.

  • 카메라 아이콘
    내가 사용하는 테마는 카메라 아이콘에는 문제가 없었다. 따라서 이 부분은 4.2.1에서 바뀐 부분이라기 보다는 4.1에서 부터 바뀐 것이 아닌가 하는 생각이 든다. 이름을 바꿔야 할 파일은 다음과 같다. @2x아이폰 4(iPhone 4)용 아이콘이다. 따라서 아이폰 4를 가지고 있다면 @2x가 붙은 아이콘만 바꿔도 된다.

    변경전 변경후
    폴더 com.apple.mobileslideshow
    Icon-Camera.png Icon.png
    [email protected] [email protected]

  • UI 아이콘
    폴더 아이콘에 테마가 적용되지 않는 것도 비슷했다. 기존의 FolderIconBG.png라는 파일이 FolderIconBG~iphone.png로 바뀌었기 때문에 발생한 현상이다. 따라서 다음과 같은 파일에 ~iphone을 더 붙여 주면 UI 아이콘도 정상 동작한다.

    변경전 변경후
    폴더 com.apple.springboard
    FolderIconBG.png FolderIconBG~iphone.png
    [email protected] FolderIconBG@2x~iphone.png
    FolderSwitcherBG.png FolderSwitcherBG~iphone.png
    [email protected] FolderSwitcherBG@2x~iphone.png
    RotationLockButton.png RotationLockButton~iphone.png
    [email protected] RotationLockButton@2x~iphone.png
    RotationUnlockButton.png RotationUnlockButton~iphone.png
    [email protected] RotationUnlockButton@2x~iphone.png
    SwitcherIconShadow.png SwitcherIconShadow~iphone.png
    [email protected] SwitcherIconShadow@2x~iphone.png
    WallpaperIconDockShadow.png WallpaperIconDockShadow~iphone.png
    [email protected] WallpaperIconDockShadow@2x~iphone.png

  • 지도 아이콘
    인터넷에서 찾아 보면 icon.png 형태의 파일 이름에 ~iphone을 붙이면 정상 동작하는 것으로 되어 있다. 그러나 이 방법으로 해도 지도 아이콘은 바뀌지 않았다. 지도 아이콘이 바뀌지 않는 것은 ~iphone이 아니라 대소문자문제였다. 다만 이 부분은 '된다'는 사람도 있고 '안된다'는 사람도 있는 것으로 봐서 아이폰 3GS(iPhone 3GS)와 아이폰 4(iPhone 4)가 서로 다른 것이 아닌가 싶다.

    변경전 변경후
    폴더 com.apple.Maps
    icon.png icon~iphone.png
    [email protected] [email protected]

  • 잠금화면 키패드
    잠금화면의 키패드는 UI 아이콘에 해당된다. 따라서 UI 아이콘에서 설명해야 한다. 그러나 따로 설명하지 않으면 질문하는 사람이 꼭 있기 때문에 따로 설명한다. 다음 두개의 파일에 ~iphone을 붙여주면 정상 동작한다.

    변경전 변경후
    폴더 com.apple.springboard
    [email protected] DeviceLockKeypad@2x~iphone.png
    [email protected] DeviceLockEntryFieldBackground@2x~iphone.png

  • 폴더 벽지
    폴더에서 벽지를 사용하기 위해서는 /var/mobile/Library/caches 폴더에서 다음 4개의 파일을 삭제하면 된다.

com.apple.SpringBoard.folderSwitcherLinen.0
com.apple.SpringBoard.folderSwitcherLinen.1
com.apple.SpringBoard.folderSwitcherLinen.2
com.apple.SpringBoard.folderSwitcherLinen.3

글꼴 파일

꽤 오래 전에 블로그에 아이폰의 글꼴을 바꾸는 방법을 올렸다. 그런데 이 부분도 상당히 많이 바뀌었다. 먼저 블로그에 아이폰용으로 올린 글꼴은 동작하지 않는다. 글꼴을 정의하는 부분이 바뀌었는지 모르겠지만 iOS 4 부터 동작하지 않았다. 이 부분은 조금 복잡하기 때문에 윈도 글꼴을 맥용 글꼴로 바꾸는 방법을 따로 올릴 생각이다[2]. 따라서 아이폰의 글꼴을 다른 글꼴로 바꾸기 위해서는 아이폰용 글꼴을 따로 구해야 한다.

를 설명하면서 글꼴을 추가하는 방법을 설명했다. 이 방법을 사용한 이유는 고어를 지원하는 글꼴이 별로 예쁘지 않기 때문이다. 즉, 시스템 글꼴은 마음에 드는 글꼴을 사용하고 사전에서만 고어를 표시하기 위한 꼼수였다. 이렇게 하기 위해서는 새굴림과 같은 고어 지원 글꼴을 글꼴 파일에 추가해야 한다. 추가하는 방법은 사전 만들기 5. 옛글 보기를 참조하기 바란다. 다만 여기서 제공한 글꼴도 동작하지 않으므로 유의하기 바란다.

마지막으로 글꼴 파일이 CGFontCache.plist라는 하나의 파일에서 CGFontCache_H_.plist, CGFontCache_UH_.plist를 비롯 총 13개의 파일로 바뀌었다. 글꼴의 이름을 보면 상황(스프링보드, 어플등)에 따라 서로 다른 글꼴을 사용하도록 바뀐 것으로 보인다. 따라서 예전처럼 CGFontCache.plist 파일만 수정해서는 글꼴이 바뀌지 않는다. 사용하려는 상황에 따라 해당 글꼴 파일을 바꿔야 한다. 어떤 파일인지 모른다면 모든 파일을 똑 같이 수정해야 글꼴을 바꿀 수 있다.

CGFontCache.plist
CGFontCache_H_.plist
CGFontCache_UH_.plist
CGFontCacheK48.plist
CGFontCacheK66.plist
CGFontCacheN18.plist
CGFontCacheN72.plist
CGFontCacheN81.plist
CGFontCacheN82.plist
CGFontCacheN88.plist
CGFontCacheN90.plist
CGFontCacheReduced_H_.plist
CGFontCacheReduced_UH_.plist

참고로 일부 파일은 시스템 속성이기 때문에 바로 복사할 수 없다. 이런 상황이라면 모바일 터미널에서 먼저 파일의 이름을 바꾼 뒤 복사하거나 iFile에서 바꿔야 한다.

iNitsua Z 테마

현재 사용하고 있는 테마는 iNitsua Z Twilight HD라는 테마다. 상당히 다양한 애드온과 날씨 위젯, 잠금화면을 제공하는 테마다. 이 테마는 위에 설명한 것과 같은 문제가 있었지만 그외에는 아무런 문제없이 동작했다. 글을 올리면 글과는 관련없는 테마에 대해 질문하는 사람들 때문에 테마의 이름과 잡은 화면을 올린다[3].


관련 글타래


  1. 탈옥하는 이유 중 하나를 크랙 어플로 보는 사람도 있다. 어차피 사람은 자신을 기준으로 생각하기 때문에 뭐라고 할 부분은 아니다. 그러나 개인적으로 아이폰 확산이 가져온 긍정적 효과 중 하나는 정품 사용이라고 생각하기 때문에 동의하지 않는 부분이기도 하다. 
  2. 이 부분은 질문해도 답변하지 않겠다. 
  3. 화면처럼 설정하는 방법에 대한 질문은 받지 않는다. 시간이 되면 따로 글로 올릴 생각이다.