기다리는 완탈
iOS는 판올림을 거듭하며 탈옥앱의 기능을 수용하고 있다. 이 덕에 순정폰 역시 점점 탈옥폰을 닮아가고 있다. 또 4.2.1 완탈이 나오자 다시 4.3이 나오는 등 창과 방패의 싸움도 점점 더 격화되고 있다. 방패가 언제 뚫릴지 몰라 일단 반탈을 시도하기로 했다. 반탈에 사용한 도구는 sn0wbreeze이다. 반탈하는 방법 자체는 그리 어렵지 않다. 그러나 초보자는 시도하지 않는 것이 좋고 경험이 있는 사람이라도 글을 잘 읽고 백업한 뒤 따라하기 바란다.
아이폰 탈옥
iOS 4.2가 등장한 것은 작년 말이다. 그리고 작년 크리스마스 정도에 4.2.1 완탈이 나올 것이라는 이야기가 돌았다. 그러나 실제 완탈(Untethered Jailbreak)은 올 2월 중순에 등장했다. 4.2는 건너뛰고 4.2.1 완탈이 바로 나왔다. 그리고 4.2.1 완탈이 나온지 채 한달이 지나지 않아 다시 4.3이 등장했다. iOS 4.3에 대한 특징은 점점 탈옥폰을 닮아가는 iOS 4.3과 새로운 기능들이라는 글에서 한번 설명했으므로 따로 다루지는 않겠다. 아무튼 iOS 4.3이 등장한 뒤 여기 저기 긍정적인 소식이 많이 들렸다. iOS 4.3이 나오고 하루만에 탈옥이 나왔다는 소식도 있고 또 인터넷을 찾아 보면 완탈 동영상도 보인다.
여기에 4.0.x에서 아주 편리한 완탈을 제공했던 코멕스(@comex)가 Jailbreakme와 같은 방식의 4.3 완탈을 곧 발표할 것이라는 트윗까지 올렸다. 따라서 분위기 상 4.3 완탈은 금방 등장할 것같았다. 그런데 iOS 4.3도 4.2와 마찬가지로 곧 나올 것이라는 소식만 있을 뿐 완탈은 점점 늦어지고 있다. 일부 트윗을 보면 완탈에 성공했다는 이야기가 여기 저기 들리지만 실체는 보이지 않는다. 따라서 4.2에서 처럼 계속 완탈을 기다리는 것 보다는 일단 반탈을 한 뒤 완탈이 나오면 다시 완탈을 하기로 하고 일단 반탈을 시도했다.
iOS 4.3 반탈 및 배터리 문제
반탈한 아이폰 특징과 4.3 판올림시 발생하는 배터리 소모를 해결하는 방법이 담겨있다. 동영상에서 사용한 테마는 MP2 테마 디자이너가 만든 'Prestige HD'라는 유료 테마(3불)다. 상당히 깔끔하며 중독성이 있다. 또 잠금화면에는 3차원 상자로 사진을 출력할 수 있기 때문에 이 부분도 괜찮다.
반탈에 사용한 도구는 sn0wbreeze이다. 또 반탈로 표현했지만 이전 글에서 설명한 것과 같은 '준완탈'이다. 즉, 스프링보드 확장을 설치하지 않았다면 재부팅 해도 정상 부팅된다. 또 내가 사용하고 있는 스프링보드 확장 중 4.3에서 동작하지 않는 확장은 호환성 문제로 설치하지 못한 Action Menu가 유일했다. 테마에 사용되는 윈터보드(WinterBoard)를 활성화하면 아이폰(iPhone)이 안전 모드에 빠지는 문제가 있었다. 그러나 이 부분은 MobileSubstrate를 판올림함으로서 해결할 수 있다. 따라서 오늘은 iOS 4.3을 준완탈(Semijailbreak)하는 방법을 설명할까 한다. 탈옥을 시도하기 전에 주의할 점은 다음과 같다.
- 초보자는 시도하지 말 것
아이폰이 벽돌이 되는 상황에도 아이폰을 복구할 수 있는 능력이 있는 사람만 시도하기 바란다. 원래 탈옥하는 과정은 복잡하지 않다. 따라서 초보자도 따라할 수 있다. 그러나 초보자는 문제가 발생했을 때 해결할 능력이 없다. 따라서 운이 좋아 성공하면 모르겠지만 실패하면 아이폰(iPhone)이 벽돌[1]이 되기 때문이다. - 탈옥하기 전에 백업할 것
블로그에 올리는 글 중 아이폰 강좌와 아이폰 팁이 있다. '강좌'로 표시된 것은 주로 탈옥에 관련된 것으로 초보자는 따라하지 않는 것이 좋다. 또 어느 정도 익숙하다고 해도 '강좌'를 따라하기 전에는 아이튠즈로 먼저 백업하고, T-Pot이나 iFunBox[2]등을 이용해서 중요한 파일을 수동 백업하는 것이 좋다. 운영체제 전문사이트인 운영체제의 모든 것을 16년째 운영하고 있으며 운영체제를 비롯 각종 IT 기기에 대한 탈옥/해킹 강좌를 올리는 나도 이런 작업을 하기 전에는 항상 백업한다. - SHSH를 백업할 것
iOS 4.3으로 일단 판올림하면 애플 정책상 이전 펌웨어로 내리는 것을 허용하지 않는다. 따라서 4.3으로 판올림 한 뒤 마음에 들지 않아 이전 펌웨어로 판내림해야 할 때를 대비해서 TinyUmbrella와 같은 도구를 이용해서 SHSH를 일단 백업하는 것이 좋다. 이렇게 SHSH를 일단 백업해 두면 언제든지 백업된 펌웨어로 판내림하는 것[3]이 가능하기 때문이다.
탈옥 FAQ에서도 설명했지만 탈옥은 '성능'을 높이기 위한 것이 아니다. 아이폰(iPhone)은 하드웨어와 소프트웨어를 같은 회사에서 만든다. 따라서 아이폰 만큼 하드웨어에 맞게 소프트웨어가 최적화되어 있는 스마트폰은 드물다. 얼마 전 발표된 아이패드 2는 모토롤라 줌에 비해 하드웨어는 조금 떨어진다. 그러나 성능은 모토롤라 줌에 비해 낫다고 한다. 하드웨어와 소프트웨어를 잘알고 최적화를 잘했기 때문이다. 이 부분은 애플의 강점이기도 한다.
'탈옥은 모두 기능 때문에 한다'. 한 예로 KuaiDial을 보자. 이 어플을 설치하면 우리나라 피처폰에서 볼 수 있는 상당수 기능을 아이폰(iPhone)에서도 사용할 수 있다. 전화 어플의 키패드에서도 초성 검색이 가능하고 전화를 받을 때 전화 번호외에 추가 정보도 표시할 수 있다. 스팸 번호를 차단할 수도 있다. 즉, 현재 사용하고 있는 '아이폰 기능에 불만이 없다면 굳이 탈옥하지 않아도 된다'는 점이다.
내려받기
이번에 사용한 탈옥 도구는 sn0wbreeze이다. 예전에 사용했던 Limera1n, GreenPois0n등과는 조금 다른 탈옥도구다. Limera1n, GreenPois0n은 일단 펌웨어를 판올림한 뒤 부트 코드를 변경해서 탈옥을 시도한다. 반면에 'sn0wbreeze'는 일단 탈옥된 사용자 펌웨어(Firmware)를 만든다. 이 과정에서 탈옥한 뒤 사용할 시디어 소스, 시디어 어플등도 넣을 수 있다. 이렇게 일단 탈옥된 펌웨어를 만든 뒤 아이튠즈로 탈옥된 펌웨어를 판올림하는 툴이다. PwnageTool[4]라는 도구의 윈도판으로 보면 된다.
'sn0wbreeze'를 사용하기 위해서는 일단 다음 주소에서 압축 파일을 내려받아야 한다. 이 글에서 사용한 판은 베타 2이었는데 그 사이 베타 4까지 판올림됐다. 베타 2에서 MobileSubstrate 문제가 고쳐진 것으로 되어 있고 베타 4에서 ultrasn0w가 동작하는 것으로 되어 있다. 그러나 실제 확인은 베타 2에서 한 것이므로 베타 2를 기준으로 설명하겠다. 일단 다음 링크에서 파일을 내려받은 뒤 임의 폴더에 압축을 풀어 두면 된다.
탈옥하기
탈옥하는 방법은 그리 복잡하지 않다. 일단 'sn0wbreeze'를 실행하고, 펌웨어를 지정한 뒤 탈옥 펌웨어를 만든다. 그리고 아이튠즈로 판올림하고, 부팅하기 위해 'iBooty'를 한번 돌려주면 된다. 다만 탈옥을 하기 위해서는 DFU 모드(Firmware Update Mode)로 부팅하는 방법을 꼭 알아야 한다. 탈옥하는 과정 중 DFU 모드로 부팅하는 방법에 대한 설명이 나온다. 그러나 이 설명에 따라 진행하는 것 보다는 아예 아이폰을 DFU 모드로 부팅한 뒤 진행하는 것이 더 편하다.
- 'sn0wbreeze'를 실행한 뒤 'OK/Close Credits'를 차례로 누르고 오른쪽 아래 파란색 화살표를 클릭한다.
- 'Browse' 단추를 클릭하고 'iOS 4.3' 펌웨어를 지정한다. 지원하는 펌웨어라면 그림처럼 'Verified!' 메시지가 나타난다. 이때 오른쪽 아래 파란색 화살표를 클릭한다.
- 'Expert Mode'를 클릭하고 오른쪽 아래 파란색 화살표를 클릭한다.
- 'General'를 클릭하고 오른쪽 아래 파란색 화살표를 클릭한다. 다른 옵션도 있지만 General에서 모두 바꿀 수 있기 때문에 굳이 다른 옵션을 선택할 필요는 없다.
- 'Activate The iPhone'의 체크를 지우고 파란색 화살표를 클릭한다. 베타 2에서는 이 옵션을 지우지 않으면 통신사를 잡지 못하는 문제가 있었다. 베타 4에서 ultrasn0w를 지원한다고 하니 시험해 볼 사람은 직접 시험해 봐도 된다.
- 'Custom Apps'에서 다시 파란색 화살표를 클릭한다. 이 부분은 사용자가 원하는 소스를 추가하고 시디어 어플을 미리 추가해서 펌웨어를 만들 수 있는 부분이다. 이렇게 펌웨어를 만들어 두면 문제가 생길 때 복구하는 것 만으로 시디어 어플이 설치된 탈옥폰을 만들 수 있다. 그러나 어차피 완탈이 아니고 어플 역시 계속해서 판올림되기 때문에 따로 설명하지 않겠다.
- 이번에는 'Build IPSW'를 클릭하고 오른쪽 아래 파란색 화살표를 클릭한다.
- 그림처럼 펌웨어를 만드는 과정이 진행된다. 만들어진 펌웨어는 '바탕화면'에 생성된다. 또 바탕화면에는 펌웨어 외에 'iBooty' 폴더로 함께 만들어 진다.
- 설치가 완료되면 다음과 같은 화면이 나온다. 여기서 'OK'를 누르고 이어 'Start'를 누르면 아이폰을 DFU 모드로 부팅하는 방법이 나온다.
- 'DFU 모드'로 부팅한 상태라면 다음 그림처럼 'iREB'가 실행되며 아이폰을 탈옥 가능한 상태로 만들어 준다. 즉, 'PWNED DFU' 상태에서 사용자 펌웨어 판올림을 시도해야 한다.
- 만약 이 과정을 거치지 않고 탈옥을 시도하면하면 다음 그림처럼 1600 오류가 발생할 수 있다. 'iREB'는 'sn0wbreeze'를 통해 실행해도 되고 sn0wbreeze 개발자의 홈페이지에서 'iREB'를 따로 받아 실행해도 된다.
일단 사용자 펌웨어를 만들었다면 아이튠즈 복구 기능을 이용해서 사용자 펌웨어로 판올림하면 된다. DFU 모드로 부팅하면 다음 그림처럼 아이폰이 복구 모드에 있다는 메시지가 뜬다. 이때 시프트 키를 누른 상태에서 복구 단추를 클릭해서 전단계에서 만든 펌웨어를 지정하면 복구가 진행된다. 다만 한가지 주의할 것이 있다. SHSH를 백업하기 위해 TinyUmbrella를 돌렸다면 hosts
파일에서 74.208.10.249 gs.apple.com
와 같은 행을 주석처리한 뒤 아이튠즈를 실행, 복구해야 한다.
탈옥모드
탈옥한 펌웨어로 판올림하고 부팅하면 스프링보드(SpringBoard) 두번째 페이지에 시디어(Cydia)가 추가된다. 그러나 이전 글에서 설명한 것처럼 sn0wbreeze를 이용한 탈옥은 준완탈(Semitethered)이다. 따라서 부팅은 되도 시디어 어플은 실행되지 않는다. 탈옥폰에서 시디어 어플을 사용하기 위해서는 바탕화면의 iBooty로 탈옥폰을 탈옥상태로 만들어 주어야 한다. 절차는 간단하다. 일단 아이폰을 DFU 모드로 부팅한다. 그리고 'iBooty'를 실행한 뒤 'Select your iDevice'에서 자기 장치를 선택하고 'Start' 단추를 클릭하면 된다. 이때 주의할 것은 DFU 모드로 부팅된 뒤 실행된 아이튠즈는 끝내고 진행하는 것이 좋다.
윈터보드
일단 탈옥은 잘 진행됐다. 앱스토어 어플(App Store)은 아이튠즈를 통해 복원하면 된다. 그러나 문제는 시디어 어플 복원이었다. 시디어 어플 설정 값도 아이튠즈가 복원한다. 그러나 프로그램을 설치하는 것은 따로 해야 한다. 이때 유용하게 사용할 수 있는 시디어 어플이 AptBackup[5]이다. 일단 백업을 실행하고 나중에 복원을 실행하면 시디어 어플과 소스까지 알아서 복원해 준다. 문제는 '펌웨어가 다르다'는 점이다. 펌웨어가 다르면 시디어 어플은 동작하지 않을 수 있기 때문이다.
그래도 하나씩 설치하는게 귀찮아 AptBackup으로 백업한 데이타를 복원했다. 생각했던 대로 안전 모드(Safe Mode)로 부팅했다. 결국 어떤 어플이 문제가 되는지 알기 위해 사용하고 있는 스프링보드 확장 20여개를 하나씩 죽이며 문제가 되는 어플을 찾아 봤다. 확인해 보니 윈터보드 확장 문제였다. 윈터보드 확장을 죽이자 정상 부팅됐다. 그러나 아무래도 탈옥한 뒤 테마를 쓰지 못하는 것이 아쉬웠다. 결국 이 문제는 다음 'Mobile Substrate'를 수동으로 설치함으로서 해결했다.
sn0wbreeze 베타 2를 사용해서 탈옥했다면 이 같은 문제는 발생하지 않을 것이라고 생각한다. 그러나 혹시 위에서 처럼 윈터보드 문제가 발생한다면 위 파일을 내려받아 iFile로 설치하기 바란다. 윈터보드 문제로 생각했는데 의외로 Mobile Substrate 문제였기 때문이다. 마지막으로 Action Menu는 호환성 문제로 아예 설치되지 않았다. 아이폰에서 복사할 때 조금 불편하기는 하지만 복사/붙이기를 자주하는 편은 아니기 때문에 큰 문제는 없었다.
그림을 보면 알 수 있지만 윈터보드가 동작하지 않아 아이폰 기본 테마로 동작한다. 그러나 5x3으로 되어 있는 것에서 알 수 있듯이 아이카너클라즘(Iconoclasm)은 정상 동작한다.
테마문제
동영상에도 있지만 요즘 사용하고 있는 테마는 MP2 개발자가 만든 Prestige HD이다. 테마 자체가 상당히 깔끔하며 고급스럽다. 또 상당히 많은 아이콘을 포함하고 있기 때문에 테마 파일의 크기만 100M가 넘는다. 특히 잠금 화면의 3차원 사진 상자는 의외로 중독성이 있다. 그런데 iOS 4.3으로 판올림하자 문제가 하나 발생했다. 원래는 가장 왼쪽 그림처럼 슬라이드 위에 검은색 막대가 떠야 한다. 그런데 가운데 그림처럼 아이폰 기본 테마의 슬라이드 배경이 나타났다.
iOS 4.3에서도 테마에 약간의 변화가 있는 듯 했다. 결국 이 부분은 완전하지 않지만 다른 파일을 복사해서 해결했다. 해결하는 방법은 간단하다. com.apple.TelephonyUI
폴더에 적당한 WellLock.png
파일(아이폰 3GS)나 [email protected] 파일(아이폰 4)을 넣어주면 된다. 위에서는 com.apple.TelephonyUI
폴더에 있는 [email protected]
파일을 [email protected]
로 이름을 바꿔 복사해 넣어 해결했다. com.apple.TelephonyUI
는 다음 폴더에 위치한다.
/Library/Themes/Prestige-HD.theme/Bundles/com.apple.TelephonyUI
또다른팁
오늘 시디어 어플을 뒤지다 보니 재미있는 어플이 하나 눈에 띈다. 바로 드림보드(DreamBoard)라는 어플이다. 일단 설치하고 드림보드를 실행하면 그림처럼 아이폰(iPhone)의 스프링보드(SpringBoard)와 드림보드(DreamBoard)를 번갈아 사용할 수 있다. 안드로이드폰처럼 화면에 많은 아이콘을 두지 않고 위젯을 원하는 사람에게는 꽤 유용할 듯하다. 또 가장 왼쪽의 둥근 아이콘을 누르면 안드로이드폰처럼 설치된 모든 프로그램을 확인할 수 있다. 다만 프로그램에 버그가 있는 듯 아이폰이 자주 리스프링되는 문제가 있었다. 드림보드는 나중에 시간이 되면 따로 글을 올리도록 하겠다.
드림보드
- 하드웨어 고장이 아니라면 아이폰은 어떤 상황이라도 복구할 수 있는 방법을 제공한다. ↩
- 주로 사용하는 프로그램은 Total Commander 확장인 T-Pot이고 가끔 사용하는 프로그램은 iSprit이다. iFunBox만 아는 사람이 많아 iFunbox를 이야기한 것이다. ↩
- 이런 간단한 것은 질문해도 답하지 않는다. ↩
- PwnageTool도 윈도판이 있다. 그러나 항상 맥용이 먼저 나온다. 나서기를 위해 추가한다. ↩
- 조금 더 나은 기능을 제공하는 어플도 있다. 그러나 자주 사용하는 어플이 아니기 때문에 굳이 유료 어플을 사용할 필요는 없었다. ↩