Look, S60 Software Installation with No Hands

S60 3rd Edition has been out for quite a while by now, and for me, the one thing that has all but killed the pleasure of developing native software for the platform has been the humiliating wait—dismiss dialog—wait—dismiss dialog—wait—dismiss dialog—wait procedure during installation of the software being tested and developed. For one-off installations the installation procedure is no problem, but when you’re a developer it gets old real fast.

On 1st and 2nd edition I would bypass the installer by simply transferring the binaries to where they ultimately belong on the target filesystem, using a tool such as obexftp. The platform security introduced in 3rd edition has prevented access to the relevant directories, making the same approach impossible. (Even on a hacked phone, where transferring files to protected directories is possible, the system still checks the checksums of the binaries, refusing to run software that did not go through the installer, it seems.)

While I’m all in favor of protecting the end-user from malware with a platform-wide security architecture (rather than security being something of an afterthought), I’m firmly of the opinion that a legitimate developer should be able to disable any and all security features that hinder development, on the devices that he/she uses for development. Whether this means buying the devices through special channels, having special firmware flashed at a service center, or installing manufacturer-signed IMEI-bound PlatSec disabler software, or whatever.

The inconvenient installation of native code has been a clear disadvantage for native S60 development when compared to developing with Python for S60, say, as the Python interpreter does not forbid the loading of Python code from “insecure” directories.

Nokia surely has some functionality in their collection of development tools that can automate the installation of native software, but I’m not aware of the S60 SDKs or the Carbide.c++ IDE including any such solution that could be integrated in other environments and toolchains, at least not in a way that is documented. Some months ago I finally decided to address this issue, and ended up creating such a solution. It may well be the most useful piece of Symbian software I have ever written. Finally, finally a tolerable developer experience when doing native S60 development.

The software, a Python for S60 extension named pyswinst, is available via a dedicated webpage hosted at HIIT. The included auto_installer.py example is a complete program that can be used to automate SIS file installations, when used together with any suitable file transfer tool. The pyswinst extension might conceivably even handle JAR files or WRT widgets, which are also supported by the Application Manager application, but I haven’t tried.

Installation using this software is not exactly fast, but at least it’s convenient, and lets you do other things while waiting for an installation to complete. Let your makefile take care of transferring and installing the software you develop. Start today.