PhoneUtil: Backup your Sony Ericsson phonebook



Copyright C.Bingel 2008

Another of my older projects, but that still are patched from time to time...

Manipulate your phones address book from the command line of you Linux box.


  1. Download sources:
  2. Build it:
bash$ make


[bingel@ister phoneutil]$ ./pu
pu: usage: pu <operation> [<parameters>]
pu: Operations
pu: -e Export entries
pu: -i Import entries, updating existing
pu: -ii Import entries, inserting in available places
pu: -id Import entries, updating existing and clearing other
pu: -d Defrag phonebook
pu: -rm Delete phonebook entries
pu: -cc Convert case on names (like 'KALLE BINGEL' -> 'Kalle Bingel')
pu: Parameters
pu: -v Verbose
pu: -vv Verbose deluxe
pu: -vvv Verbose deluxe++
pu: -l <tty> Specify serial device
pu: -s <storage> Select phone storage, ME=Internal SM=Sim
pu: -p <pin> Optionally check and enter PIN to unlock SIM
pu: -r <range> Specify phonebook entry range, format <begin>-<end>. Begin or end can be omitted.
pu: -w Wait a short period between sending commands (for old phones)
pu: -q Don't stop reading phonebook (during export) after 15 number of consecutive empty entries
pu: -b Don't probe serial lines for phone


Usage examples

Using default settings, export whole phonebook. (That is use Phone Internal Memory (ME), probe for serial port, whole range of available phone memory).

bash$ pu -e > my_phonebook.txt

Exports your phones internal addressbook, entries 1-100 (not the one on the SIM) to a textfile:

bash$ pu -v -l /dev/ttyS0 -s ME -e -r 1-100 > my_phonebook_backup.txt

Import textfile into phonebook (entries 1-100):

bash$ pu -v -l /dev/ttyS0 -s ME -i -r 1-100 < my_updated_phonebook.txt




It is also possible to use bluetooth for communicating with the phone. This i have tested with Fedora Core 3 and a BT dongle from D-Link (DBT-122). It worked out of the box when i figured out how to controll the BT stack. Notes on this may be found in the PhoneUtil BluetoothNotes.



  1. I haven't been able to figure out how you know how many entries are in use in the phone. On some phones, instead of reporting empty, the phone hangs for a while before it's possible to get the next entry.
  2. Does not handle UNICODE well (UTF-8). Better run program in a shell where there is not any UTF-8