Thứ Sáu, 24 tháng 10, 2014

Pangu8 Bootloop Fix: do not open Cydia until you have done this!

Screen Shot 2014-10-22 at 2.56.10 PM

Over on Reddit at /r/jailbreak, it is a great place. It is where the jailbreak community thrives in helping one another with issues, where one can propose an idea for a tweak and be made a reality and where one can get the latest scoop on all thing jailbreaking.

I would like to credit the people who have helped out on this post here, including the original poster, Noeliel, ReddestDream for his diagnosis and clayfreeman for his fixes.

Pangu8 was released in the past few days for developers to update their tweaks and of course, many users under excitement have decided to jailbreak their iOS 8 devices. For those who’ve gone ahead and done so, you’ve probably also installed Cydia. Cydia Substrate was also released.

If you are up to this step and have or plan to:

  • Use a passcode of any type
  • Use Touch ID
  • Use Find My iPhone

Do not open Cydia until you have performed the fix below to prevent your jailbroken iOS 8 device from entering a boot loop. If you have already opened Cydia and it has already ‘prepared’ your filesystem, scroll down for an alternate fix.

Due to Apple’s new security with the iOS 8 filesystem, the process of Cydia ‘preparing’ your filesystem will cause a bootloop when you attempt to reboot your device. Take the time to read this comment posted by ReddestDream on this post on /r/jailbreak, detailing why this is happening with Pangu8. Here’s a short snippet on the highly informative comment.

Historically, Cydia has solved this problem by relocating large files on the System Partition, such as Stock Wallpaper, Stock Ringtones, System Applications, and Winterboard themes, to the User Partition and then connecting them back to the System Partition through a system of Symbolic Links (Unix Shortcuts).

This process doesn’t work so well in iOS 8, which added a security feature that encrypts the User Partition when the device is protected by a Passcode, TouchID, or Find my iPhone.

This why the Bootlooping is occurring with PanGu8 on iOS 8 devices after Cydia rearranges the filesystem to make more room on the System Partition. iOS cannot access the system files necessary for booting that have been stashed to the User Partition until the user decrypts them by entering the Passcode, and the user cannot enter the Passcode until iOS boots.

Until a permanent fix comes out, here is how to avoid your device being sent into a bootloop if you have installed Cydia but have not yet opened the application and allowed it to prepare your filesystem. These instructions are snippets from user comments of clayfreeman on the same Reddit post as above. Here’s a link to the original comment for your reference. If you are uncomfortable with taking the risk, either do not enable Touch ID, passcode and Find My iPhone until a fix is made or restore to stock iOS until a proper fix is deployed.

  1. Make a full backup of your iOS device on iTunes before attempting any of these steps. They are to be performed at your own risk. 
  2. Download the patched move.sh and replace the existing one with it in /usr/libexec/cydia on your device (use an SFTP client as detailed in our installation of Cydia tutorial)
  3. Whilst you are connected to your device, ensure you do not have a  /User/Library/Caches/<something>.csstore file at that respective location. If so, delete it before proceeding.
  4. Reboot your device. Do not open Cydia yet!
  5. After the reboot, now allow Cydia to open and prepare your device’s filesystem. It should respring after completion.
  6. Now, you may enable Touch ID and Find My iPhone, to additionally use a passcode lock on your device.

Here is how to avoid your device being sent into a bootloop if you have installed Cydia and have opened the application and allowed it to prepare your filesystem. (this may or may not work if you are already in a bootloop and are SSHing into your device over USB). These instructions are snippets from user comments of clayfreeman on the same Reddit post as above. Here’s a link to the original comment for your reference.

  1. Make a full backup of your iOS device on iTunes (if possible) before attempting any of these steps. They are to be performed at your own risk.
  2. Create a stash on the system partition by typing mkdir -p /stash
  3. Move each stash on the user partition to the system partition by typing mv /var/stash/* /stash
  4. Type the following commands to redirect symlinks put in place by Cydia:

rm /Applications; ln -s /stash/*/*/Applications /Applications

rm /Library/Ringtones; ln -s /stash/*/*/Ringtones /Library/Ringtones

rm /Library/Wallpaper; ln -s /stash/*/*/Wallpaper /Library/Wallpaper

rm /usr/include; ln -s /stash/*/*/include /usr/include

rm /usr/lib/pam; ln -s /stash/*/*/pam /usr/lib/pam

rm /usr/share; ln -s /stash/*/*/share /usr/share

Whilst you are connected to your device, ensure you do not have a  /User/Library/Caches/<something>.csstore file at that respective location. If so, delete it before proceeding. If you aren’t already in a bootloop,  test that SpringBoard will restart by typing killall -9 SpringBoard (case sensitive). If you are able to respring, reboot your phone by typing reboot.

If you wish to revert the fix, run these commands as of below when connected to your device via SSH. This must be done when an official update is released to combat this issue!

rm /Applications /Library/Ringtones /Library/Wallpaper /usr/lib/pam /usr/include /usr/share

mv /stash/*/*/Applications /

mv /stash/*/*/Ringtones /Library

mv /stash/*/*/Wallpaper /Library

mv /stash/*/*/pam /usr/lib

mv /stash/*/*/include /usr

mv /stash/*/*/share /usr

 

Let us know if you face any issues so we can follow up. If worse comes to worse, if you are already in a bootloop, try downloading your device’s iOS 8.1 IPSW from a legal source and selecting the IPSW in iTunes to ‘update’ to (using command click or shift click) even if you are already on iOS 8.1. This should allow your device to boot up again, without a jailbreak.

If this doesn’t work, attempt to make a backup of your device and restore to the latest firmware (or maybe head onto the Reddit post and check for progress)

Source : jailbreaknation[dot]com

Không có nhận xét nào:

Đăng nhận xét