Pushing contacts to a Motorola Razr flip-phone

After a series of no-one-cares circumstances, I found myself pulling out my boss’ old Motorola Razr flip-phone and activating it with a prepaid phone service.  That was all fine and dandy, but I had a huge list of contacts in my old phone that I really didn’t want to either type into the new phone or send one-by-one over bluetooth.  For those of you who may be wondering, my phones are CDMA, not  GSM, and therefore don’t have a SIM card to store those contacts on.

My wife had the same concern regarding her phone (which was also switched) so I did some research to see what Linux tools were available.  Both of our old phones were LG Env3’s, and it turns out they work quite nicely with a program called BitPim (it’s in the Ubuntu repos).  In no time at all I had my wife’s contact info siphoned off the phone and into a vCard file, which very easily imported into her new Android phone’s contact list right from a MicroSD card.  The Razr was going to be a different story.

BitPim (and it appears other phone tools as well) interact with the phone using specialized AT commands through its modem interface.  Unfortunately, Linux doesn’t even detect my Razr as a modem.  This is pretty easy to fix with a simple modprobe configuration file like the one below.  Don’t forget to modify the Product ID as needed so that it matches your phone (just reference the output of `lsusb` to find it out) and be sure to keep the correct case in each section as it is case sensitive  according to what I’ve read.  Note that while the sites I read named this file “motorola_razr.options”, LinuxMint (and therefore probably Ubuntu and Debian) would only load it if the extension was “.conf”.  So here’s the file:

# /etc/modprobe.d/motorola_razr.conf
alias usb:v22B8p2B44* usbserial
options usbserial vendor=0x22b8 product=0x2b44

After that, just reboot and plug the phone in; this should yield two devices: /dev/ttyUSB0 and /dev/ttyUSB1.  No one could explain why there are two, they just said use the first one (ttyUSB0).  That was the hard part.  Now we just need to get the contacts out of BitPim into the phone.

I already had my contacts from my old phone in BitPim’s phonebook, so if you haven’t done that you’ll need to do that first.  Once that’s done, we need to manually tell BitPim what phone we have as it can’t properly detect the Razr.  Here’s how it goes:

  1. In BitPim, go to Edit->Settings
  2. Set the com port to /dev/ttyUSB0
  3. I set the phone type to “V3m” (there is a V3c and a V3m – I just guessed at which I had since the battery is hard to remove)
  4. Click OK
  5. You should now be able to click the “Send Phone Data” button in the toolbar, and select the PhoneBook

For me, all the contacts went successfully and BitPim then immediately crashed.  😉  I don’t mind much since it worked anyway.  BitPim even gracefully handled the exception and allowed the program to continue after giving me the chance to view the stack trace, which is a nice touch.