Saturday, March 29, 2008

How to fix the bug which prevents the iPhone from maintaining cookies/sessions (firmware 1.1.4)

When I started using Safari on my iPhone, I realised something was strange: I couldn't maintain a session on gmail or Facebook for more than a few seconds. I actually only could red 1 message and then the site would ask for my login and password again. I suspected something was wrong with the cookies management, but I didn't find anything in the settings menu to help me.

A Google search helped me to solve the problem. It seems like on some iPhone shipped with firmware 1.1.4 there is an issue with the permissions on some folders, including the one containing the cookies. These folders belong to the root user whereas when you use the iPhone you are actually logged in as a user called mobile.

To fix this, you can just open the terminal on you iPhone (it has to be jailbroken and with the Terminal application installed) and type:

chown -R mobile /var/mobile/

This will fix the permissions and cookies should work properly.

Wednesday, March 26, 2008

How to setup an iPhone for Vodafone Live (Ireland)

Note: this tutorial is based on Mac OS X, but if you understand it you will be able to apply it to a Windows/Linux computer using your own SCP/SFTP client to access the iPhone's filesystem (or use iphonebrowser as an easier way to transfer the files). Moreover, if you know the EDGE setting and the WAP proxy for a different mobile operator, you might also find it usefull as long as you make the appropriate changes during Step 1 (use the right APN) and Step 2 (edit the proxy.pac file to include the IP addres of your operator's proxy server).

This tutorial has been tested with an iPhone version 1.1.4, assumes you have created a folder called "iphone" on your Mac OS desktop and that the IP address of the iPhone is Check the IP address of the iPhone (settings / wifi / arrow going right next to your network name) and replace by that address in the command lines given in the tutorial. The iPhone must also have OpenSSH installed and be connected to the same Wi-Fi network as your computer. Finally, the default root password on firmware 1.1.4 is "alpine". You will be requested to type it every time you are copying files to or from the iPhone.

Step 1: On the iPhone go to settings / general / network / EDGE and set the following parameters

login: dublin
password: dublin

Step 2: download the file proxy.pac into the "iphone" folder on your Desktop

Click here to download proxy.pac

Step 3: upload the file proxy.pac to the iPhone

Open a terminal window and type (one single line - you can copy and paste the whole text in italic):

scp ~/Desktop/iphone/proxy.pac root@

Step 4: retrieve the file preferences.plist from the iPhone

In the terminal window, type (one single line - you can copy and paste the whole text in italic):

scp root@ ~/Desktop/iphone/

Step 5: edit the preferences.plist file in the iphone folder

Open the file with Text Editor and add the text in red (the text in blue is already present and helps you find where to add the new parameters, moreover the ip1 in bold is the important bit to locate the right location in the original file):

<key>Interface</key> <dict> <key>DeviceName</key> <string>ip1</string> <key>Hardware</key> <string></string> <key>Type</key> <string></string> </dict>
<key>Proxies</key> <dict> <key>ProxyAutoConfigEnable</key> <integer>1</integer> <key>ProxyAutoConfigURLString</key> <string>file:///var/mobile/proxy.pac</string> </dict>
<key></key> <dict> <key>AllowNetworkAccess</key> <integer>1</integer> <key>Available</key> <integer>1</integer> <key>Setup</key> <dict> <key>apn</key> <string></string> <key>password</key> <string>dublin</string> <key>username</key> <string>dublin</string> </dict> <key>Version</key>

Once the changes have been made, save the file.

Step 6: send the modified file back to the iPhone

In the terminal window, type (one single line - you can copy and paste the whole text in italic):

scp ~/Desktop/iphone/preferences.plist root@

Step 7: restart the iPhone

Hold the power button for a few seconds and confirm you want to shut down the phone. Then turn it back on.

Final step: that's it, you can now make sure Safari works even with the Wi-Fi connection disabled