Some lessons learnt the hard way while interacting with a Samsung SGH-L700 mobile phone.

Connect to PC using Samsung's proprietary software

Get "Samsung PC Studio" (SPS) from e.g. Samsung's Swedish info page for SGH-L700. It says it only supports "Win 98/2K/XP/Vista", and it isn't kidding. Windows 7 does not work.

My way of solving this was to

  1. install VirtualBox with "VirtualBox 4.1.8 Oracle VM VirtualBox Extension Pack" (both available at the VirtualBox download page),
  2. setup a Windows XP machine,
  3. activate USB support,
  4. install the Samsung software and
  5. plug in the phone with the bundled USB data cable.

This enabled SPS to talk to the phone (the phone must be in "PC Studio" communication mode, but that is the default. If it isn't the case, you have changed it yourself in SettingsPhone settingsUSB settings).

SPS is awful software. Just wanted to say it. But perhaps it will enable you to do what you want.

Read and backup SMS messages

This is primarily why I wanted to connect my phone to a PC: to backup my SMS messages. The phone has an annoying storage limit of ~400 total text messages (with inidividual restrictions for "Inbox"/"Sent" folders, 200 each I believe), even though it has large internal storage and a 4GB memory card inserted. Programmers. I wanted to store my SMS communication on my computer and clear the phone memory.

First try: Gammu 1.31.0 (through it's GUI Wammu). Connection was possible through the USB data cable. Sadly, only information regarding phone model, HW/SW versions, etc., could be fetched; no messages/contacts/etc.

Second try: SPS. It can read the messages. But wait, why does it say "This is an EMS message! Please view in your phone." on a hefty portion of messages? EMS, "Enhanced Messaging Service" is a not-quite-compatible-with-SMS message format that is used for e.g. multi-messages used to circumvent the message length limit in the SMS standard. Why can't SPS read them? Probably because some lazy SPS programmer left early from work. Or perhaps the messages are stored in a non-accessible way internally.

I would like to export all SMS messages in a text friendly format. SPS seems to say no. It seems possible to do it message by message, but doing it with 400 messages gets quite tedious. Enter: MOBILedit, a third-party software that reads info off of many phone models. SPS needs to be installed prior to MOBILedit though, since SPS provides the drivers used to communicate with the phone.

MOBILedit is non-free commercial software, but its free demo version suffices to copy text messages. It also can't read the EMS messages, but at least it gives you the possibility to export all other SMS messages in text format. It also exports the dates and numbers for EMS messages, just not the text, which is a friendly way to do it. That MOBILedit also can't read EMS from the phone makes me think that the internal storage format for EMS messages is weird.

It is not obvious to get the messages out of MOBILedit, though. Here is how I did it:

  1. Connect successfully.
  2. Backup phone. Only check "Messages", otherwise it will crash. Don't check "SIM card", otherwise it will crash.
  3. Explore "Backups" and view the backup you just made; in particular its message section.
  4. Mark all messages and copy them.
  5. Paste into Notepad and save.

This produces a list of all text messages with time stamps (note: in UTC), but unsorted. A funny one-liner I can think of to fix the formatting is:

vi -c ':%s/\n\([^+0\t]\)/ \\\\ \1/g' -c ':%s/^\t.*\n//' -c ':wq! sms_sorted' sms.txt && sort -k 2 sms_sorted

This should print a date sorted list on STDOUT, where line breaks in SMS messages have been replaced with \\ and draft messages have been discarded. This was what I wanted, at least. Modify after your own taste.

If you really need to backup all messages, including EMS messages, sadly the simplest way seems to be to manually transcribe them from the phone. This takes a while, but it can be done. I've done it, and more or less kept my sanity.

Another solution would in theory be to communicate with the phone using AT commands. By reading the messages in binary format, this should enable concatenation and presentation of EMS messages (and perhaps MMS messages, with some coding). See section AT commands for trials and errors.

Install Java applications from a local source

The phone does not trivially allow installation of Java programs from local sources, only through internet downloads (you can set up a personal web server and pay for the data transfer, which I did before I found the method described below). By tricking and resetting parts of the phone, installation can be done through the phone memory, though.

I believe I followed the following instructions when I did it. They are copy+pasted below if the original source goes offline.

How to install Java games on the Samsung L700 without any software or drivers: show

In the phone Menu select 'Settings'

Then select 'Phone settings'

Then 'USB settings'

And choose 'Ask on connection'

Plug the Phone in to the PC with the USB cable

On the phone select 'Media player'

On the PC wait until it detects the phone and select 'Open the device to view files'

Open the folder 'Phone'

You should see the folders: Images, Other files, Sounds, Videos

Create a new folder and name it 'Games'

Put any game you want to install in that 'Games' folder

Two things need to made sure of when copying over the games. Firstly make sure you have the *.jar and *.jad files for each game, if you don't have the *.jad file, you can download a jad creator pretty easily, just type it in Google. Secondly each game has to be in it's own folder, if you just dump all the *.jar and *.jad files directly into the 'Games' folder only the first game installed will work (Poorly too).

Unplug the phone

Now on the phone dial the code:

*#6984125*#

Select 'Internals' (Number 4) It will ask for a master key it is:

*#9072641*#

Select 'Storage settings' (Number 7)

Update Java DB (Number 2)

Now on the phone enter the code:

*#6984125*#

Select 'Internals' (Number 4) It will ask for a master key it is:

*#9072641*#

Select 'Storage settings' (Number 7)

Update Java DB (Number 2)

Turn the phone off

Turn it back on

Now on the phone enter the code:

*#6984125*#

Select 'Internals' (Number 4) It will ask for a master key it is:

*#9072641*#

Select 'Storage settings' (Number 7)

Update Java DB (Number 2)

The games should now be installed with no problems, I know it's bit repetitive but this has worked the best for me.

(Note: if you delete a game on your phone and then want to reinstall it later you will have to give that game a different folder name before you put it in the created Games folder. It won't allow that folder name again even though you've deleted it)

The observant reader noticed how the text repeated a section after the first Update Java DB mention. I don't remember if it was needed to do this twice, or if the step is just accidentally repeated in the post. It won't hurt to do it twice, I guess. hide

Battery meter quirks

The function for displaying remaining battery capacity has always been way off for me. It goes to 1/5 after less than a day after full charge, but then it remains there for several days before even warning about low battery.

Annoying T9 misbehaviours

For some reason that one can speculate in, several Samsung phones seem to suddenly replace the most obvious T9 hit with the number combination representing the buttons instead. E.g., trying to write jag will give 524 as the primary hit and such. Annoying.

The only way that seems to remedy this situation is to fill an SMS with the word in question, correcting it every time. In the jag case, this meant opening a new message and pressing 5240# ~35 times. When jag becomes the first hit, just discard the message and T9 will have been disciplined for a while.

AT commands

Most (all?) phones with modem functionality support a set of AT commands. One can connect a terminal to the phone and send such commands to do modem related tasks, but also manage phone settings, read phonebook/messages/etc. Samsung SGH-L700 supports this (somewhat, see later notes) through e.g. a USB data cable.

In Debian, one can connect through e.g. Minicom, Picocom, GTKTerm, GNU Screen, PySerial or other terminals. The phone should be in "PC Studio" connection mode. Connecting the phone to a USB port should register /dev/ttyACM0 or similar (check dmesg to see the name of the connection). Gammu used 19200 baud as default connection speed, but I haven't seen any problems increasing this value.

Some things work:

at
OK
ati0
SAMSUNG SGH-L700

OK

AT+CPBR to list phonebook entries also works, sometimes. Sometimes it doesn't work. Sometimes the phone returns an error message a couple of times, but then suddenly it starts working.

AT+CMGL lists messages. It does not work satisfyingly. I've only managed to get it to list messages stored on phone, and only the ones in the "REC UNSENT" register. I've tried for some time to get to the core of the problem, but I can't get any clarity in the issue. The phone is inconsistent in its answers. Sometimes it just stalls on message listings. Sometimes a disconnect/connect solves this, sometimes not. Sometimes a phone restart solves it, sometimes not.

Commands in sequence:

at+cpms=?
+CPMS: ("SM""ME"),("SM""ME"),("SM""ME")

OK

The phone says it supports reading messages from either the SIM card ("SM") or phone memory ("ME").

at+cpms?
+CPMS: "ME",2,500,"ME",2,500,"ME",2,500

OK

The phone is in phone memory reading mode. The 2 denotes how many messages it sees currently on the phone. 500 is the phone maximum.

at+cmgl
+CMGL: 1,"STO UNSENT","0708771481","",129,146
"En skolskog {r ett avgr{nsat omrde som disponeras av skolan f|r lektioner och .

+CMGL: 2,"STO UNSENT","","",128,47
Trdkorg: max 56cm djup. Svr att ta p buss?

OK
at+cmgl=?
+CMGL: ("REC UNREAD","REC READ","STO UNSENT","STO SENT","ALL")

OK

at+cmgl="REC READ"
+CMGL: 1,"STO UNSENT","0708771481","",129,146
"En skolskog {r ett avgr{nsat omrde som disponeras av skolan f|r lektioner och .

+CMGL: 2,"STO UNSENT","","",128,47
Trdkorg: max 56cm djup. Svr att ta p buss?

OK

Why does it only return on-phone messages in the "Drafts" folder? It seems it only recognizes messages with the "STO UNSENT" status. Bug? But why and how then can SPS and MOBILedit read the messages?

It ignores MMS messages (which is OK in text presentation mode), and seems to halt presentation when it encounters the first EMS message. This does not explain why it ignores the "Inbox" and "Sent" folders. There should be a message stored on phone in the "Inbox" at the time of the commands above.

at+cpms="SM"
+CPMS: 15,20,15,20,15,20

OK

Switch reading mode to SIM card. 20 is probably the maximum amount of SMS messages storable on the SIM card. 15 should as per before be the number of viewable messages, but:

at+cmgl
OK

No messages are returned. Sigh.

A phone restart seems to be necessary to update information regarding available messages.

I tried to switch to binary presentation mode ("Protocol Decription Unit" (PDU) format) with:

at+cmgf=0
OK

and listing messages with:

at+cmgl

...and that only gives a carriage return before the terminal stops responding. Cycling the phone connection sometimes returns control. Sometimes it is needed to hang up and reconnect.