JailBreaking is easy, but you can face many issues before and after the process. Let’s see how to fix some of them…
It was friday night, I was playing with my old iOS 5.0.1 JailBroken 3GS device, and did something nasty installing bad Cydia packages. My iPhone never booted up again after this. It was completely down, frozen and stuck on the Apple boot logo. Backups were too old, this time I knew I had to make a fresh new install of my iOS device.
This article will not describe how to jailbreak your iPhone. iClarified has very nice and easy tutorials for beginners to JailBreak your iOS devices. This article can help you to fix the following issues:
- Restoration fails on iTunes before starting anything on your iOS device.
- Restoration hangs on iTunes at 99% of the restoration process.
- Activating iOS location service causes dropped signal and WiFi loss.
- No Push notifications.
- Downgrade BaseBand 06.15.00 to 05.13.04.
So, let me present your here some big issues I faced during the iOS 5.0.1 JailBreak process using redsn0w on MacOS 10.7.2 for my iPhone 3GS (iPad baseband 06.15.00). Most of them were easy to solve, but good solutions are hard to find on the Web. I found some using my brain and others after seeking for a while on various JailBreak forums.
Issue #1 (Before JailBreak, solved): Restoration fails on iTunes before starting anything on your iOS device.
This issue is most of the cases related to your network configuration. Apple needs to check before any restoration process if the firmware (.ipsw) you use is valid. If your firewall blocks these requests, the restoration process cannot begin.
The easiest solution is to temporarily deactivate your firewalls and rename your hosts file.
sudo mv /etc/hosts /etc/hosts.jailbreak.bak
After the JailBreak, do not forget to reactivate your firewalls and move back your backed up hosts file.
sudo mv /etc/hosts.jailbreak.bak /etc/hosts
If you wish to leave your firewall and hosts file in place, simply make sure that “gs.apple.com” is not blocked.
Issue #2 (Before JailBreak, solved): Restoration hangs on iTunes at 99% of the restoration process.
This is due to a USB communication issue. iTunes is waiting for your iOS device to be plugged in your Mac. However, this never happens because your iOS device is already plugged in and awaits for iTunes' next instructions.
There are many solutions to fix this. The easiest and fastest I’ve found is to launch DiskAid. This software will catch your iOS device's USB communication, and provide it back to iTunes quickly. So iTunes will display a “Connection Failed” error but will immediately retry and submit the final instructions to your iOS device.
Watch this video if you are unsure about what to do: https://www.youtube.com/watch?v=MscLL_tkSww
Note that you cannot simply unplug and plug again your iOS device. Which will cause your iPhone to be stuck and you will need to restore it once again.
Issue #3 (After JailBreak, solved): Activating iOS location service causes dropped signal and WiFi loss.
This issue is due to a bad hacktivation. You will need to deactivate and re-activate your iOS device using SAM.
- First turn off location service.
- Use Cydia to install SAM even if you have activated with official SIM card. SAM is available on the Cydia repository http://repo.bingner.com.
- De-activate your iOS device with SAM.
- Re-run redsn0w with nothing checked (meaning uncheck Cydia installation checkbox). redsn0w will hacktivate and apply the fix during hacktivation.
- Go back to SAM after your iOS device booted up. Press “Revert Lockdownd to Stock”.
- Re-activate your iOS device with iTunes and official SIM or reactivate with SAM.
- Turn on location service, and check if the issue is gone (i.e. use the Map application for at least 30 seconds with location activated).
If this fails, do not hesitate to reboot your iOS device and repeat these steps until your iOS device is correctly activated. It took me maybe 3 or 4 activations via iTunes to finally have my iPhone activated and working correctly with the location service.
Issue #4 (After JailBreak, solved): No Push notifications.
To fix push notifications, you can find some packages on Cydia. This issue is also related to bad certificates received during the activation process.
If you want to know if Push is working, there is a simple free application on the App Store called iPusher.
You can either fix the Push notifications using the correct Cydia Packages (type “fix push” in Cydia). Or use SAM once more (better solution).
- Use Cydia to install SAM even if you have activated your device using an official SIM card. SAM is available on the Cydia repository http://repo.bingner.com.
- Open SAM. Press “Revert Lockdownd to Stock”.
- Press the “De-activate (clear Push)” button with SAM.
- Re-activate your iOS device with iTunes and official SIM or reactivate with SAM.
Note: There is a very great and illustrated tutorial to fix this issue using SAM on addictivetips.
You may also need to remove then reinstall all your applications that use Push notifications.
Issue #5 (After JailBreak, solved): Twitter Notifications not working.
FaceBook notifications are working great after applying “Issue #4” fix. But Twitter is completely quiet. I’m still investigating this issue… but it's maybe due to the low activity of my Twitter account.
Edit: Twitter Push notifications are working when someone mentions you in a tweet.
Issue #6 (iOS 5.0.1 only, solved): PAC proxy ignored by Safari.
Under iOS 5.0.1, Safari ignores locally stored .pac proxy configuration.
This is a new restriction also impacting Safari 5.1 under MacOS.
Two solutions:
- You can either, run a local server on your iOS device, so you can access your proxy configuration via http://localhost:7276/myproxy.pac (127.0.0.1 will not work, prefer using localhost hostname). Configure your network to use this URL instead of the local file:///private/var/mobile/pacdir/myproxy.pac address you used to have into the “Auto Configuration” field of your network proxy settings.
- Or you can host your file on an Internet-accessible server. If some people are in need, I can host .pac files here. Just ask.
I don’t know yet which one of these two solutions is best. But, I think it is better to keep everything on the device.
Here is a quick Perl http proxy script (based on sburke black hole http server) that will let you access your local myproxy.pac via http://localhost:7276/*:
#!/usr/bin/perl
# Time-stamp: "2005-08-19 01:17:45 ADT"
#
# desc{ pac http proxy server } sburke@cpan.org
#
use strict;
use IO::Socket qw(:DEFAULT :crlf);
use constant MY_PORT => 7276;
use constant DEBUG => 1;
my $pac_file_type = 'application/x-ns-proxy-autoconfig';
my $pac_file = "myproxy.pac";
my $no_bytes = (stat ($pac_file))[7];
print $pac_file;
{
if(open(IN, "<$pac_file")) {
local $/;
$pac_file = join '',
"HTTP/1.1 200 OK", CRLF, "Content-Length: ", $no_bytes, CRLF,
"Content-Type: ", $pac_file_type, CRLF, CRLF,
<IN>;
close(IN);
}
}
#-----------------------------------------------------------------------------
my $quit = 0;
$SIG{'INT'} = sub {$quit = 1};
my $sock = IO::Socket::INET->new(
Listen => 20, LocalPort => shift(@ARGV)|| MY_PORT,
Timeout => 60 * 60, Reuse => 1,
) or die "Can't create listening socket: $!\n";
DEBUG and warn "Waiting for connections...\n";
my($session, $peer, $port);
while(!$quit) {
next unless my $session = $sock->accept;
if(DEBUG) {
$peer = gethostbyaddr($session->peeraddr, AF_INET) || $session->peerhost;
$port = $session->peerport;
warn "Connection from [$peer\n,$port] at ", scalar(localtime), "\n";
}
#select($session);
#++$|;
#select(STDOUT);
print $session $pac_file;
close($session);
DEBUG and print " (Closed)\n";
}
DEBUG and print STDERR "Byebye\n";
close($sock);
exit 0;
You might also be insterested by the following thread: How To Get Socks Proxy + SSH Tunneling To Work On A Jailbroken iPhone/iPod Touch/iPad. I’ll pack everything and try to make things easier to use and configure.
Issue #7 (BB 06.15.00 only, solved): GPS Fix, Signal Issues Fix.
This solution is for iPhone 3 and 3GS owners who upgraded their baseband to the iPad BaseBand 06.15.00 (in order to unlock their iPhone with ultrasn0w). Unfortunately, upgrading to the 06.15.00 breaks the iPhone’s GPS feature and is the source of many signal issues.
Fortunately MuscleNerd released a solution which is now integrated with redsn0w. iPhone users can downgrade from 06.15 to 05.13.04. The 05.13.04 BaseBand version is unlockable with ultrasn0w.
https://twitter.com/MuscleNerd/status/214626056211140609
The full tutorial to downgrade from 06.15 is available on iClarified.
Final thoughts…
Thanks to anyone who worked hard on these fixes. A big thank to the Dev-Team for their tools and efforts with the JailBreak.
My JailBroken and unlocked iPhone 3GS is now fully functional. I hope I helped some of you.
Don't hesitate to post comments for any questions or suggestions.