Linux and the BenQ/Siemens S81 phone


I didn’t find much about using the S81 in Linux, so I decided to test it myself, so far it works quite well.

About the Phone

The S81 is a rather cheap phone, I got one for Fr 100 (~60 €), paid another Fr 30 (~20 €) for a 2-GB micro-sd card. It works as a phone, and one can receive and send sms with it. It also works as mp3-player, camera (produces rather low-quality pictures, no comparison to my rather outdated Olympus UZ-700 digicam or even my Logitech Quickcam Fusion) and camcorder(really low resolution and not the best quality alltogether), emergency light, usb storage(only with micro-sd-card inserted, and only with cable always carried along, of course) and hopefully umts modem. One can greatly increase its usability by installing java programs, the most useful addition seemed to be a mobile bookreader, see below. The display is quite nice and well to read, but touch it and you’ll leave traces. So it’s perfect to take one’s fingerprints, but hard to keep it clean and shiny.

In Windows

First I tried to connect it in Windows. The original software is a bad joke, can’t backup all sms, for example. One can use Brew mobile commander (can connect at higher speeds than 115kbps) or Bitpim to read out the directories and transfer files, but both cannot sync your contacts or do more than read the file system.

Firmware update

Note that all firmware updates carry an inherent risk of destroying your phone or even your Pc or marriage, especially if the instructions are written in a language you don’t understand, don’t blame me if it just goes horribly wrong.

With the firmware it came with, the 2GB micro-sd-card caused trouble. I don’t know if it would work with smaller sizes, one could save stuff to it and read it then in a pc, but the phone didn’t work as usb mass storage in windows or Linux, and it didn’t correctly report card memory. For reasons maybe related to the unfriendly stuff that happened to the siemens mobile branch, one cannot get an updated firmware form the german or swiss pages of benq. There is an updated version on the russian and taiwanese sites of benq, i took the latter. Go to Benq Taiwan, babelfish might help you, and click yourself to the phone. I got the file named mobile_phone%2Fsoftware%2Fs81%2Fs81_svn1.31_retial.exe, executed it in windows(not sure if it also works somehow in Linux; remove sim card, make sure battery is full, power off phone, start program), at my first attempt i got pretty scared by a failure at 98 %, second run went well, and had a new firmware. Now USB mass storage works, so one can much faster load music, books and stuff onto the phone. A downside is that the phone now only supports English and two weird-character languages, therefore also iTap only works for those languages. Guess some people are going to wonder why i send them sms in english, but most people understand english quite well, so what.


I searched for Linux software to access the phone and ended up with bitpim, just install it using your package manager. I would have preferred a kde program, but I didn’t find one that can access it. To connect the phone with bitpim, attach it with the usb cable, then set the permissions, or have that done automatically. I followed the bitpim doc by adding a file named 60-cell.rules to /etc/udev/rules.d/.

# s81
BUS=="usb", SYSFS{idVendor}=="04a5", SYSFS{idProduct}=="4027", MODE="0660", GROUP="cdrom", SYMLINK+="s81"

This surely isn’t the right(abusing cdrom group, but seemed reasonable to me, who may use a cdrom may use an attached cellphone) and secure way to do it, but I’m a bit clueless when it comes to system configuration, and it works. Then, start bitpim, ignore if it complains about not being able to detect a phone. Go to edit–settings, choose »Other CDMA phone« as phone type (doesn’t really matter what you choose here), click on »browse« next to »comm port«, You should see something like:

===== Available ports =====
USB Device - Vendor Acer Peripherals Inc. (now BenQ Corp.), Product #4027, (Interface #00)
USB Device - Vendor Acer Peripherals Inc. (now BenQ Corp.), Product #4027, (Interface #01)

Click on the second one ( Interface #01), click OK twice, then goto filesystem. By expanding the root directory there, you should now see your phone’s directory tree. Now you can start using bitpim to load Java applications and backup your sms.

Loading Java applications

You might want to enhance your phone by some Java software. To install them, place .jar and .jad file in /brew/shared/. You can get Jars For example at GetJar. For example, a bookreader is really nice while waiting for the bus or riding a bus; a nice bookreader is TequilaCat’s one, or Readmaniac, unfortunately its last update was quite a while ago. Other nice and handy stuff you can add are for example a dictionary, a tetris game, a real calculator(one that can actually do stuff like exp, log and other hard-to-do-in-the-head-stuff), a periodic system of elements or whatever you need.

Books for the bookreader

You’ll find a lot of books on Project Gutenberg, for example the stories about Sherlock Holmes and the beautiful books by Oscar Wilde. Readmaniac can read the .zip files directly, so you can save some storage. Gutenberg books are named quite unreadable, for example To name them, I downloaded the Gutenberg index, and wrote a short script:

if [ "$1" = "" ]; then
	echo "usage: getname [filename]"
	exit 1
number=$(echo $1 | sed 's/[\.-].*$//')
ending=$(echo $1 | sed 's/^.*[\.-]//')

cp $1 "$(sed -n -e "/${number}\r$/s/[ \t]*${number}\r$//p" GUTINDEX.ALL).${ending}"

execute it with ./getname, and it gets copied to »My Friend The Murderer, by A. Conan«.

Backing up your sms

My old phone could only store 50 SMS, and I always found it sad if i had to delete nice words sent by a friend or loved one. In fact, that was one of the reasons why i bought a new phone. But then I found out the official software couln’t actually back them up, quite bad. But with bitpim it’s easy: All sms are stored in /nvm/ as files named sms_gw_000XX. You can back them up to your harddisk, right-click on the nvm folder, select backup directory, wait, and you’ll be prompted to store a zip file to your harddisk.

Reading your sms on your PC

Unfortunately, bitpim, as of now, cannot really do more with the s81 than just accessing the directory structure. So you cannot read the sms you stored. I tried adding s81 support for bitpim, but I hardly speak python and it has no similar phones by benq. So i wrote a small c++-program to convert the sms to plain text:

filetype sms.tar.bz2 (2.08 kiB, 2008-03-05)

goelzera@prometheus:~/Documents/Programme/cpp/sms$ ./readsms sms_gw_00054
Msg No.   : 54
 Size     : 128
 AP or so : +4179499900
 Sender   : +41XXXXXXXX
 Content  : Noch teistweise eine sms mit 128 Zeichen. bla bla, bar bar, baz baz, foo foo. Hm, ganz schoen viel, hoert das nie auf? oh, doch.

Message format

The files contain a header of various length (0x21 for inbox files, 0x1d for sent files, 0x17 for draft files). The message itself is encoded in a 7-bit charset, directly concatenated, 7 bytes(octets) contain 8 characters. The charset seems to be the standard gsm charset, date, time and phone numbers are encoded in bcd where the higher nibble contains the second digit. Unfortunately, there seems to be no date/time in messages sent. Apart from the number of the other communicating party a number of probably the network you are connected to is stored, even in drafts. The length of the message is stored in the last byte before the message starts, the folder it belongs to(and therefore the length of the header) is stored in byte 0x6, it is 0x5 for sent messages, 0x1 for messages in inbox, 0x3 for new messages in inbox, and 0x7 for drafts. Multipart messages get no special treatment, the information is contained in the message body(I’m wondering, for say 20 multipart messages it is quite likely that two will have the same 8-bit-id). For further details see the source or contact me.

USB mass storage

The phone has a usb port, but unfortunately uses a special cable to connect to the pc(that way, it is possible to use the analogue headphone shipped with the phone with the same connector). As mentioned above, the phone directory can be accessed by a usb-serial interface in the phone, but that is really slow if you want to transfer some mp3s.


Load the mp3s to the /MP3/ folder on your card. The phone does not look in subfolders, and it has issues with long filenames, so managing a big collection might get difficult. You can use amarok to transcode your .ogg collection automatically on transfering, a quite handy feature.


You can easily record videos and transfer them to the pc, but hearing sound is a bit difficult in Linux. I had to go fetch the amr libraries, install them and then compile ffmpeg (with options –enable-libamr-nb and –enable-libamr-wb) and mplayer to get ffplay and mplayer to play the videos’ sounds. It is also possiple to convert Videos in order to watch them on the phone, i wrote a script, but you can of course also call ffmpeg directly:

ffmpeg -i ${1} -ar 8000 -r 15 -b 48k -ac 1 -ab 12.2k -s 176,144 ${1}.3gp 

To test it, I converted the HD version of Elephants Dream to the tiny stamp format of the phone. Watching videos however isn’t much fun because of the small size ( can’t even use the whole screen) and because the format is restricted to a 8000 Hz sample rate, so watching operas on the phone is a lot less fun.



The phone seems to have some issues with filenames, it doesn’t like them to be long or contain funny chars, so I had to rename some mp3 files and some jars to see them in the phone menus.

To be done

Test modem, find out where contacts are stored, get a phone contracts that allows data transfer.

This entry was posted in Computers and tagged , . Bookmark the permalink.

One Response to Linux and the BenQ/Siemens S81 phone

  1. That is the best blog for anyone who wants to seek out out about this topic. You realize a lot its virtually exhausting to argue with you (not that I really would want?HaHa). You positively put a new spin on a subject thats been written about for years. Great stuff, simply nice!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>