Sunday, April 6, 2008

Activate all the international keyboards/dictionaries on an iPhone version 1.1.4

As opposed to the iPod Touch which comes with a wide-enough selection of on-screen keyboards and dictionaries, the iPhone (1.1.4) is limited to the ones for the countries in which the phone was officially available at the time of the firmware's release (English/UK, English/US, French/France, German/Germany). So thanks to Apple, if you want to input text in another language, you will have to jailbreak your iPhone and tweak it a bit.

Here is how to do it:

A. Activate the international keyboards

To activate all the international keyboards, follow these steps:
  1. Download the UIKit.zip file from here.
  2. Drop the UIKit file found inside UIKit.zip into /System/Library/Frameworks/UIKit.framework on your iPhone (you can use SCP or SFTP - i.e. your iPhone must be jailbroken with the SSH server installed and running). Maybe it is a good idea to backup the old file beforehand.
  3. Set the right permissions for hte file (chmod 755) if your SCP/SFTP client doesn't do it automatically.
  4. Restart the iPhone.

B. Copy dictionaries to have spell check with the newly activated keyboards

Then, you can copy dictionaries if needed. For example, I want to use the French-Canadian keyboard to have a qwerty layout instead of the French azerty one. I am able to do that once step A is completed, however as it is hidden by default Apple didn't include the dictionary files for it, as a consequence there is no spell check when you use it. To solve this, I copied the French dictionary for the French-France keyboard to the French-Canadian keyboard. To do that, you can connect to the iPhone via ssh and type:

# cd /System/Library/KeyboardDictionaries
# cp ./fr_CA-one-letter-words.dat ./fr_CA-one-letter-words.dat.bak

# cp ./fr_CA-two-letter-words.dat ./fr_CA-two-letter-words.dat.bak
# cp ./fr_FR-one-letter-words.dat ./fr_CA-one-letter-words.dat
# cp ./fr_FR-two-letter-words.dat ./fr_CA-two-letter-words.dat
# cp ./fr_FR-stems.dat ./fr_CA-stems.dat
# cp ./fr_FR-unigrams.idx ./fr_CA-unigrams.idx
# cp ./fr_FR-unigrams.dat ./fr_CA-unigrams.dat

References

http://www.hackint0sh.org/forum/showthread.php?t=31937&highlight=keyboard+1.1.4

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 191.168.1.11. Check the IP address of the iPhone (settings / wifi / arrow going right next to your network name) and replace 192.168.1.11 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

APN: live.vodafone.com
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@192.168.1.11:/private/var/mobile/

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@192.168.1.11:/var/preferences/SystemConfiguration/preferences.plist ~/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>com.apple.CommCenter</string> <key>Type</key> <string>com.apple.CommCenter</string> </dict>
<key>Proxies</key> <dict> <key>ProxyAutoConfigEnable</key> <integer>1</integer> <key>ProxyAutoConfigURLString</key> <string>file:///var/mobile/proxy.pac</string> </dict>
<key>com.apple.CommCenter</key> <dict> <key>AllowNetworkAccess</key> <integer>1</integer> <key>Available</key> <integer>1</integer> <key>Setup</key> <dict> <key>apn</key> <string>live.vodafone.com</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@192.168.1.11:/var/preferences/SystemConfiguration/

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

References

http://ww.boards.ie/vbulletin/showthread.php?t=2055239822

http://arashpayan.com/blog/index.php/2008/03/02/t-zones-on-114/