Prince Blub's Island

iOS 4.3.3 이 릴리즈되었다. 필자는 오늘 업그레이드를 해 보았는데 4.3.1에서 4.3.2로 업그레이드하지 않았었기 때문에 인덱싱 버그 등의 문제는 경험하지 못해서 그런지 큰 변화는 느끼지 못했다.

주위에 보면 많은 분들이 신버전이 나오자마자 업데이트를 하는데 경험상 그다지 좋은 방법은 아니라고 생각한다. 일단 이번 경우(4.3.2 버전 iOS)와 같이 버그가 있을 확률도 있고 이런 경우에는 앞서서 업그레이드한 경우 애플에서 대책을 내놓을 때까지 기다리는 수밖에 없기 때문이다. 따라서 몇일~일주일 정도 지켜보고 나서 업데이트하는 방법이 더 현명하다고 생각한다.

굳이 업데이트를 빨리 하고 싶은 분들이라면 TinyUmbrella 라는 소프트웨어를 알아둘 필요가 있다. 이 포스팅의 핵심 내용도 이 소프트웨어에 관한 것이다.

업데이트를 했는데 버그가 있을 경우 다운그레이드가 가능하면 위에서처럼 문제점이 드러날 때까지 기다렸다가 업데이트를 할 필요가 없다. 그러나 애플은 기본적으로 다운그레이드를 차단하고 있기 때문에 DFU 초기화를 통해 구버전의 펌웨어를 덮어씌우는 방법도 불가능하다. 최대한 이해하기 쉽게 설명하자면 이는 앱스토어 애플리케이션들이 각각 기기에 대해 인증되어서 파일을 복제하는 것이 불가능한 것처럼, 펌웨어만으로 다운그레이드하는것도 불가능한 구조로 되어 있기 때문이다. 이를 가능케 하려면 해당 버전의 펌웨어에 대한 본인의 기기의 정보가 백업되어 있어야 한다. 이 역할을 해주는 것이 TinyUmbrella 이다. 이 소프트웨어는 아이폰의 shsh 정보를 백업하여 파일로 만들어 주므로 백업한 버전에 대해서는 다운그레이드가 가능하다.

Tinyumbrella 실행화면


방법은 간단하다. 컴퓨터에 TinyUmbrella 최신 버전을 설치 [링크: http://thefirmwareumbrella.blogspot.com/]하고 기기를 연결한 다음 Save SHSH를 통해 SHSH 파일을 만들면 된다. 이렇게 저장된 파일은 로컬에도 저장되지만 시디아 서버에도 보관된다.

만약 다운그레이드할 경우에는 이 파일을 이용하던가 시디아 서버에 보관된 파일을 이용하면 된다.

다운그레이드의 원리는 이 Tinyumbrella가 가상의 서버역할을 함으로써 가능해진다. 기본적으로 펌웨어 파일을 덮어써서 해당 펌웨어 버전으로 다운그레이드나 업그레이드를 하게 되는데, 다운그레이드의 경우는 애플 서버에서 차단되어 있다(서버에서 SHSH를 제공하지 않기 때문에). 그래서 애플서버를 차단하고 아이튠즈가 애플서버에 접속하는 것을 본인의 컴퓨터(127.0.0.1)로 연결하여 Tinyumbrella가 애플 서버를 흉내냄으로써 다운그레이드가 가능해지는 것이다. Tinyumbrella의 Start TSS Server버튼은 바로 이때 사용하는 것이다.

원리는 길지만 사용법은 간단하다. DFU복원을 하는 방법으로 똑같이 원하는 버전(물론 해당하는 버전에 대한 SHSH 백업이 되어 있어야 한다)의 펌웨어 파일을 구한 뒤 아이튠즈에서 복원해주는데, 이 전에 Tinyumbrella에서 TSS 서버를 시작해 놓으면 된다.