Hi,
Yes you can install non Symbian Signed apps on your phone if you change the installer settings. Such apps may well fulfill all your requirements in the area in which they are providing a solution, however thats not true of many classes of apps.
It really depends on what type of app you want to write as to whether capabilities are required. Its then a somewhat different issues as to whether you need to be Symbian Signed.
E.g.
Want a real file manager - not the pretend one shipped on numerous devices - well you need Symbian Signed, sell your company to Nokia/Symbian/SE, kidnap the big chief of any of these companies + promise to only ever list the directory contents, sell the dog, cat, house children, and your soul to demand AllFiles capability.....
Want to write a file recogniser so your app gets lauched e.g. when web browser gets to some content it otherwise does not know about - Symbian Signed
Want to write a location based app - e.g. Treasure Hunt game - Symbian Signed. I imagine pretty much any mapping app needs this as well.
Want to write an app that looks at the Contacts DB - e.g .a replacement Contacts app - Symbian Signed.
Almost certainly true of the Message stores and Agenda as well. (new email client and replacement Diary apps)
Games:
Want to play games via Bluetooth. Dont need to be Symbian Signed.
Want to be able to send say an SMS to post the high score - Symbian Signed required.
Want to have in-game chat e.g. via SMS - Symbian Signed
Want to have SIP based multiplayer gaming - Symbian Signed
Just want to write a plain single user game - probably dont need to be Symbian Signed.
etc
In theory the Symbian SDK's document what functions require what capabilities in order to function correctly. However, if you've ever actually attempted to use the SDK docs + believe whats in them you havnt done much Symbian programming 😊
E.g. an example at random (well alright pseudo random with a very poor generator):
The Rfs::Att() function to obtian the file attributes is defined in the SDK to require 'AllFiles' capability. Apart from being insane this is just plain wrong. You dont need 'AllFiles' UNLESS you are attempting to read file attributes of files in the restricted parts of the file store - in which case attempting to read the file attributes is the least of the problems.
There is also the fantastic note in the SDK where it lists the capabilites stating
"Note: Implementation may vary between devices"
- so just because Capability X is user grantable at install time on your test device it may or may not be user grantable on the customer device. Well thats really useful.
Is it a real problem... Yes and no. Its a pain in the rrrr's, can become expensive and definatly slows development. It hits large and small companies in totally different ways. E,g, individuals cant actually get a Verisign ACS publisher cert despite the fact that their entire vetting procedure appears to be phoning you up once a year. On the other hand large companies have serious procedural issues actually giving mere mortal progammers the private (top secret) key files + pass words needs to actually sign the files - just incase they compromise the privacy of the private key. Having a publically available private key sort of defeats the point !!
A classic example of other sort of issue that dont get considered:
Due to a change in the Nokia firmware concerning how keyboards work on E61 - in particular what keys are deliverd to apps - one of our apps suddently became unusable - 0 to 9 were no longer delivered to the app at all !.
Because Nokia have either fixed a bug or introduced one in the firmware release (depending on your view) we had to change the app and get it re-signed (with all the associated costs). So thats several hundred sales worth of reveune gone up in smoke.
PS
IMEI access is restricted primarily due to a BUG which is supposed to be fixed in later phone versions, most real world devices you need NetworkServices and ReadDeviceData irrespective of what you may read in any SDK.