탈옥강좌/탈옥

iOS7 시디아 트윅 호환성 해결 방법

T.B 2013. 12. 27. 08:49


JB 뉴비들께 가장 많이 받은 질문으로 '왜 시디아 트윅이 정상적으로 작동 안하죠?' 와 '왜 iOS7 호환 리스트 목록에 있는 트윅을 설치했는데 무한사과(벽돌)죠?' 라는 질문이다. 우선 가장 일반적인 이유는 도둑질(piracy)이다.


도둑질을 하려거든 제대로나 하던가 어디서 이상한 글 보고 듣도 보도 못한 소스를 덕지덕지 추가해놓고 누가 어떻게 코딩한 줄도 모르는 트윅으로 남의 지적재산권 도둑질하는 과정에서 최소한 '버전' 확인도 안하고 설치를 하니 crash가 날 수 밖에 없지 않나? 남의 지적재산권 도둑질해가면서 꽁짜앱이나 쓰려고 탈옥을 했다면 우선 내가 돈 주고 구매한 기기에 대한 사용 권리는 나에게 있음에도 불구하고 애플이 제한해 둔 틀(Jail)을 깨부수는 행위(Break)인 탈옥에 관한 개념부터 필요하겠다.


. iOS7 완전탈옥 Cydia 트윅 호환리스트(참고)

. iOS7 완전탈옥 최적화 및 안정화와 오류에 관하여(참고)


두번째로는 대부분의 트윅들이 아이폰4 반탈옥(tethered jailbreak)에서 호환 업데이트가 있었기 때문에 아직 A4 이상 A5+ 기기와 iOS7 호환 업데이트가 제대로 되지 않은 경우다. 세번째로는 다들 잘 아시다시피 대부분의 트윅들이 Mobile Substrate에 의존하는데 A7 프로세서(ARM64 Architecture, 64bit-AP, 아이폰5S, 아이패드에어, 아이패드미니2) 호환 업데이트가 아직 되지 않았기 때문이다.


왜 이런 현상이 발생했을까? 현재 Jailbreak comminity는 chaotic time이라는 표현이 자주 등장할 정도로 말 그대로 '난리'도 아니다. Cydia의 창시자이자 오너인 saurik은 iOS 해커 출신으로 iOS6 완전탈옥에서도 결정적인 역할을 했으며 이 Saurik이 개발한 유명 트윅이 Winterboard와 함께 Mobile Substrate다. iOS7 완전탈옥툴인 evasi0n7을 배포한 evad3rs의 pod2g와 saurik 사이에 중국 360그룹의 Taig가 끼어들면서 pod2g는 saurik과 합의 없이 단독으로 탈옥툴을 배포했다.


iOS7 완전탈옥 오류 evasi0n7, Taig와의 관계(참고)

iOS7 완전탈옥 evasi0n7 v1.0.1 업데이트와 Geohot의 복귀(참고)


evasi0n7 배포일을 기점으로 BigBoss에서는 Mobile Substrate와 Preference Loader의 호환성을 근거로 약 2주는 탈옥을 홀드할 것을 권장했다. 그러나, 탈옥툴 뜬 마당에 언제까지 마냥 기다릴 수만도 없고 root access를 획득하면 꼭 트윅 외에도 할 수 있는 것들이 꽤 있기에 미리 약간의 팁(Mobile Substrate, Preference Loader 제거 및 트윅 설치시 패키지로 재설치)을 제공했는데 ARM64에서는 호환되는 것도 적기는 하지만 매번 트윅을 설치하거나 리부팅 혹은 리스프링 할 때 마다 이 번거로움을 겪어야 한다.



따라서 이런 번거로움을 겪고 있는 분들을 위해서 Mobile Substrate 와 Preference Loader 의 호환성에 관한 패치를 소개할까 한다.


Warned. ARM64 Architecture인 A7 Chip은 해당사항이 없다. 더불어 만약 Mobile Substrate와 Preference Loader가 업데이트 된다면 반드시 Bootstrap을 삭제한 후 업데이트 해야만 한다.


1. Cydia → Manage → Source 에서 http://cydia.myrepospace.com/iPWNDApple 추가

2. PWN24K repo의 the BootStrap package를 설치한 후 리부팅한다.


이제 iOS7과 호환되는 시디아 트윅들이 crash 없이 정상 구동될 것이다.


(source: http://www.myrepospace.com/profile/PWN24K)


tb'comments 주요 시디아 트윅들이 빠르게 iOS7 호환 업데이트가 되는 중입니다. 통신사 캐리어 로고를 바꿀 수 있는 Zepplin(Beta), BiteSMS(Beta), ScreenRecorder for iOS7(RecordMyScreen), HiddenSettings7 등이 있는데 차츰 기회가 되면 블로그를 통해서 소개해드리기로 하고(제가 전업 블로거라면 당연히 하루에라도 한 20개씩 포스팅을 뿜어내겠습니다만, 요즘 특히 더 바쁜..)


A7 64-bit 사용자분들을 위해서 HiddenSettings7 활성화 방법을 소개해드립니다.


(source: http://www.reddit.com/r/jailbreak/comments/1tnyv3/how_to_hidden_ios_7_settings_prototype_for_a7/)


Hi /r/jailbreak!

I’m a 5S owner here, and I really wanted to have the iOS7 hidden settings menu, and just couldn’t wait for the update to MobileSubstrate to come out, so I did it myself. I can’t take all the credit, the procedure was adapted mostly from http://pastie.org/8067977 and one tiny dylib I put together. it is a manual process, and it is not easy, but it works.

Proof: Touch ID and Orange Control Center highlight on the same screen

Caveats:

  • The dylib is arm64 compiled and convinces your phone that it is an Apple-internal build. This may have unintended consequences.

  • Volume button functionality triggers the prototype settings menu. This is how it’s done within Apple, and the first option on the screen is to adjust the volume. Not a deal-breaker, but it’s mildly annoying.

  • Settings changed in this menu do not persist on reboots. (Also how it is for Apple, this is just a testing tool).

NOTE: This is a bad idea. It’s a hack. It could brick leave your device in an unusable state (requiring an iTunes Restore). It will be fixed, obsolete, and stupid once the MobileSubstrate update is out. If you’re not a developer, or know what you’re doing, I would STRONGLY suggest against this.

NOTE 2: I'm not responsible if you damage your device by attempting to do this. I was able to do it myself, but I'm a software engineer, and I'm pretty used to tooling around in the filesystem for iOS devices. If you have questions, ask, and I'll do my best to help answer them.

NOTE 3: If you still want to do this, congrats, you’re brave. Read on below to find out how.

  1. Install afc2add, iFile (I find it easiest to edit the .plist’s in place but you can transfer back to the computer, edit and replace on the device if you’d like) and OpenSSH (OpenSSH is there so you can get in to your phone if you massively screw up).
  2. Download PrototypeTools from here Link Removed for copyright reasons. PrototypeTools.framework exists on the internet, but I can't distribute it. If you're an iOS developer, you already have it on your computer.
  3. Install iFunBox and browse to your device.
  4. Go to the Raw File System, browse to /System/Library/PrivateFrameworks. Create a new folder called "PrototypeTools.framework" and in that folder, place the PrototypeTools file downloaded from the previous step.
  5. If the path /Library/MobileSubstrate/DynamicLibraries/ doesn’t exist, create it.
  6. Download iOS7AppleInternal.dylib from here and place it in /Library/MobileSubstrate/DynamicLibraries
  7. Open iFile and browse to /var/mobile/Library/Preferences/ and open com.apple.springboard.plist in the plist viewer.
  8. Add the following key to the plist and set its value to YES/TRUE/ON

    SBPrototypeSettingsEnabled

    Type: BOOLEAN

  9. Browse to /System/Library/LaunchDaemons/ and edit com.apple.SpringBoard.plist in the plist viewer

  10. Add the following key to the plist:

    EnvironmentVariables

    Type: Dictionary

  11. To the EnvironmentVariables dictionary created above, add the following key and value (this tells springboard to load the Apple Internal dylib before running (essentially what MobileSubstrate does, but I do it less elegantly)):

    DYLD_INSERT_LIBRARIES

    /Library/MobileSubstrate/DynamicLibraries/iOS7AppleInternal.dylib

  12. Reboot or respring!

  13. Press the volume up button to activate the prototype settings menu and begin tweaking!


 T.B의 SNS 이야기 블로그의 모든 글은 저작권법의 보호를 받습니다. 어떠한 상업적인 이용도 허가하지 않으며, 이용(불펌)허락을 하지 않습니다.

▲ 사전협의 없이 본 콘텐츠(기사, 이미지)의 무단 도용, 전재 및 복제, 배포를 금합니다. 이를 어길 시 민, 형사상 책임을 질 수 있습니다.

▲ 비영리 SNS(트위터, 페이스북 등), 온라인 커뮤니티, 카페 게시판에서는 자유롭게 공유 가능합니다.


T.B의 SNS이야기 소식은 T.B를 팔로윙(@ph_TB) 하시면 실시간으로 트위터를 통해서 제공 받을 수 있습니다.

728x90
반응형