Syncing Keyboard Shortcuts from one iOS to another using ssh (needs jailbreak)

!!DISCLAIMER!! This process could potentially brick your phone if done improperly. Follow these steps at your own risk.

I have created many keyboard shortcuts on my iPhone 4S after learning about the new feature for iOS 5. They make filling out forms and logging into sites so much easier when you can type eml instead of your full email address. You can check out how to setup keyboard shortcuts in iOS at lifehacker or by seaching google for iOS keyboard shortcuts. Many good resources are out there. However the problem that I found myself with was also using my iPad for signing in and other tasks that required filling in forms. I googled around and could not find any methods of copying shortcuts from my iPhone to my iPad other than to restore the iPad from the iPhones backup. Less than an ideal solution. So I have come up with a way that depends on both devices being jailbroken. Since iOS 5.0.1 has recently been jailbroken I downloaded and applied Absinthe on my 4S and redsn0w on my original iPad. I installed openssh on both devices and copied my Keyboard info from one device to the other (remember to change the root and mobile user passwords if you install openssh!)

Here are the full steps I took for getting all my shortcuts assuming both devices are jailbroken:

  • Make an iTunes backup of each device in case something goes wrong!
  • Install openssh on both iOS devices using Cydia (check out the “OpenSSH Access How-To” on the ront page of the Cydia app)
  • ssh in to each device and change the password of root and mobile
  • ssh copy to the device that has all your keyboard shortcuts and copy the contents of /User/Library/Keyboard to your PC or Mac (ie ssh mobile@ ~/Desktop/keyboardshortcuts/)
  • ssh the contents of the /User/Library/Keyboard directory from your Mac or PC to the device you want the keyboard shortcuts copied to (ie ssh ~/Desktop/keyboardshortcuts/* mobile@ the dynamic-text.dat is optional
  • Reboot the device you just copied the Keyboard contents to.
  • Enjoy your awesome keyboard shortcuts!

If you know ssh well you could technically copy from one device to another directly, but I liked the idea of having a backup of all my shortcuts on my Mac.

This is the way I came up with. I would love for Apple to support this feature with iCloud or some other method of keeping them in sync. For now this will do even though it involves jailbreaking. Anyone else have an idea of how to do this differently?

Nerd info:
– I checked the contents of dynamic-text.dat and it doesn’t need to be copied
– The contents of UserDictionary.sqlite is what creates UserDictionaryWordKeyPairs.plist as just copying over UserDictionaryWordKeyPairs.plist does not do the job. I checked with sqlite command line the UserDictionary.sqlite file and it looks to only contain the keyboard shortcut data. Thus I feel this is a safe hack and shouldn’t mess up anything.
– I used mobile user above since the original files were owned by mobile and copied via root could mess up permissions.