SDP Editor - An application for updating SDP records on Series 60, specifically for making Bluetooth File Exchange on OS X usable with Series 60. Licensed under GPL.
OBEX File Transfer on Series 60, with Bluetooth File Exchange on OS X
This only conserns Series 60 2nd edition (and probably 1st edition, too), 3rd edition and Series 80 work as they should.
Overview
Ever since starting to use Series 60 phones with OS X, I've been annoyed by the fact that Bluetooth File Exchange can't browse them. The only way of transferring files between them is by using OBEX push, that is, by sending individual files (which then on the phone end up in the inbox).
This is bearable, but sometimes you'd want to send a bigger file straight to the memory card which doesn't even fit into the main memory of the phone.
I don't know about any OBEX FTP client for Series 60 either (is there any?), otherwise that would be a feasible workaround.
Initially, it seemed to me that Series 60 didn't work at all with Bluetooth File Exchange, since it only showed an empty folder. After quite some time, though, I figured out that it actually works, but not as one would hope. Uploading files works, and then the uploaded files are stored into the inbox. And in that case, the files which are in the inbox, uploaded using OBEX FTP earlier, are visible. But not files sent using OBEX push, and of course nothing outside of the inbox.
I had only tried using obexftp (which uses openobex) on Linux using USB earlier, and knew that that one works as I want to. Much later, when I tried using obexftp with Bluetooth, I found the same situation if one doesn't manually specify a specific RFCOMM channel. Using the wonderful tools in BlueZ (more specifically, sdptool), I could view a dump of all SDP (service discovery protocol) records on the phone, and suddenly everything made sense.
The phone advertises quite a few different services, among them a standard OBEX FTP service and OBEX PC Suite services. The RFCOMM channel one had to specify in order to make obexftp work was the PC Suite channel.
In other words, Series 60 advertises two services which speak the OBEX FTP protocol, one very crippled advertised with the ordinary OBEX FTP service UUID and one full-fledged service with a PC Suite-specific UUID.
One can't expect Bluetooth File Exchange to look for the non-standard PC Suite service UUID, and I don't know of any other OBEX FTP application for OS X. But there's still another (quite hackish) solution: make the phone advertise the PC Suite service using the OBEX service UUID.
Ideally, the hack would consist of a simple application on the phone, which investigates the local SDP database and makes the necessary modifications. Unfortunately, the SDP APIs on Symbian don't seem to provide any way of reading what's in the database, and the APIs for reading SDP records from other devices don't seem to be able to connect to the local SDP server. In other words, the investigation of the SDP database must be done on some other device.
Solution
Note, I take no responsibility whatsover for the effects of using these tools. They work for me, at least.
SdpBrowser
SdpBrowser is a tool for OS X, which more or less does the same as sdptool in BlueZ - it's capable of listing all the SDP record data on a remote device. (Bluetooth Explorer in the Xcode Developer Tools does more or less the same, but only for the local SDP database.) This can be useful when developing Bluetooth applications for some other device than the local mac.
Since SdpBrowser is made specifically for this need, it also can try to parse out the necessary information from the SDP records.
SDP Editor
SDP Editor is a small tool for Series 60 for updating already existing SDP records on the phone. Enter a SDP record handle and a RFCOMM channel, and that record is updated to advertise the given channel.
The changes aren't persistent, everything is back to normal after restarting the phone.
The APIs don't work too well if the given record handle doesn't already exist, on 6630 the SDP server crashes. Updating the wrong record makes some other service unusable. In all cases, restarting the phone should restore everything.
Usage
Using SdpBrowser, select Get PC Suite info in the Device menu, select the phone and click browse. If everything works as it should, it gives the SDP record handle of the OBEX FTP record and the RFCOMM channel of the PC Suite service.
Then start SDP Editor on the phone, choose Update channel in the menu, and enter the handle and RFCOMM channel given by SdpBrowser. Then, Bluetooth File Exchange should be able to browse the files on the phone.
The handle and channel shouldn't change as long as you don't install/remove any service on the phone, so in general you'll only need to rerun the application on the phone with the last, working values.
If it doesn't give all the necessary information, you can try to read it manually from the raw SDP records. Select Browse in the Device menu, and select the phone. Look for a record with the text "OBEX File Transfer", and look for the number on the row starting with "0:" in this record (e.g. "0: 0x10006"). That's the record handle (in hexadecimal). Also look for a record with the text "Nokia OBEX PC Suite Services". That record should have a row like "4: { { } }, { { }, { 0xc } }, { { } }". Here 0xc, that is 12, is the RFCOMM channel.
Further improvements
This already is quite an improvement to the original "functionalty" of the crippled OBEX FTP service. But e.g. the System-directory is hidden - if one would be able to directly transfer files there, the development process of Series 60 applications would get a big speedup. This directory is still accessible, if one is able to manually enter a directory to open. (Incidentally, obexftp does this.)
So, the final wish is a "Go to directory"-dialog for Bluetooth File Exchange, or obexftp working on OS X. (openobex can be compiled with USB support on OS X, but I haven't gotten it to work... Perhaps I'll have to add support for OS X-bluetooth to it myself, sometime, if I have time and if noone else beats me to it.)
Like it? Share with your friends!
If you got an error while installing Themes, Software or Games, please, read FAQ.
Resolvr Resolvr is a framework for Zeroconf naming, service advertisement, and discovery for Symbian OS
wx60 Wx60 is a GUI toolkit for the Python programming language on Symbian S60
PyS60 Python Python for S60 - brings the power and productivity of the Python programming language to the S60 platform. The tools enable rapid application development and prototyping, and the ability to create stand-alone S60 applications written in Python
SwiftLog Fast logging for your C++ Symbian programs
KeyLock KeyLock-Python extension that allows access to the Key Lock API which is available on all Symbian editions. It allows getting/setting the lock state (the latter with or without user notification), or to popup a note asking the user whether the device should be locked
SISContents SISContents is a tool that allows you to unpack, edit and sign Symbian 9 SIS packages (Nokia S60 3rd/5th Edition and Sony Ericsson UIQ 3.x platforms are supported). It helps you to inspect the files contained in SIS package, to see certificates against which it was signed as well as to view the PKG script that describes the on-device installation process
Pymgfetch Pymgfetch- is an external Python module for PyS60. It is a wrapper for the Symbian C++ MGFetch::RunL function and allows you to present a selection dialog to the user, showing the contents of the mobile phone's media gallery.
Usage, examples, and installation instructions can be found here
Miso Miso Python Library is a Python for S60 extension providing simple utility functions and classes, implemented on top of Symbian OS native resources. Miso Build Tool is a make-style tool for PyS60 extension building
Other Software by developer «Martin Storsjo»:
MiniBlaster (S60) MiniBlaster (S60) - MiniBlaster is a game for Nokia Series 60 phones (Series 60 1st, 2nd and 3rd edition, e.g. 7650, N-Gage, 6670, 6630, E70 etc.), inspired by the old classics Bomberman and DynaBlaster.
The game is playable in single player mode and in multiplayer mode for two players over bluetooth.
MiniBlaster is localized into English, Swedish and Finnish
Bantumi GL (UIQ3) An OpenGL ES version of the classical game, licensed under GPL. Source code included
Large Time Screensaver Large Time Screensaver - A screensaver for Series 60 2nd edition phones, licensed under GPL. After installing the package, it can be selected and enabled in the themes application on the phone.
What's New in This Release:
· Version 1
MiniBlaster (S60 3rd Edition) MiniBlaster (S60 3rd Edition) - MiniBlaster is a game for Nokia Series 60 phones (Series 60 1st, 2nd and 3rd edition, e.g. 7650, N-Gage, 6670, 6630, E70 etc.), inspired by the old classics Bomberman and DynaBlaster.
The game is playable in single player mode and in multiplayer mode for two players over bluetooth
ES Knot (UIQ3) An OpenGL ES demo featuring a torus knot and a few effects, licensed under GPL
Bantumi GL (S60 2nd Edition) Bantumi GL (S60 2nd Edition) - An OpenGL ES version of the classical game, licensed under GPL. Source code included.
What's New in This Release:
· Version 2.04 fixes some general bugs, adds backup registration