Recently, I and some other people participated in a Forum Nokia Discussions thread on how to reboot the phone gracefully. I pointed out the undocumented SysStartup::ShutdownAndRestart() function with some example code, which was promptly removed. This sparked the following discussion (I’m just reposting my own text with enough context from others to situate it).
[QUOTE=ltomuta]This forum is moderated and every now and then some posts may have to be “removed” at least until they are properly analyzed. The code posted here uses internal APIs which you are not authorized to use and/or distribute.[/QUOTE]
Since this is Nokia’s Forum, they are of course allowed to remove anything they want, with mainly the risk of people not posting anything useful anymore (which is mainly the case anyway). But since they do not have any other authority over the code, it’s futile too: just search google for the relevant terms (although I admit that most of the users on these forums do not seem capable of doing that).
The claim that there can be code that ‘uses internal APIs which you are not authorized to use and/or distribute’ is in its generality pure FUD.
You (I in this case) may be limited in distributing the header by copyright. A partial header from an SDK is with thousands of headers very unlikely to be protected by copyright.
Should the poster have signed some kind of agreement with Nokia where they have agreed to protection beyond copyright, such as an NDA, the poster may not actually have the right to post such information. This is not the case here (I have signed an NDA with Nokia, but it does not cover information I have received through other channels or before the agreement).
If the poster is within their rights to post a header snippet there is no way somebody could not be ‘authorized to use’ the API, unless they have also signed an agreement with Nokia where they expressedly give up any such right. I don’t think anybody has.
The header in question is also trivially generatable from the SYSUTIL.LIB library file, with only the parameter values to be deciphered. These parameter values are (drumroll, please): 100 and any UID. This information is definitely not protectable under copyright.
Reverse engineering for interoperability is expressedly permitted in the EU, and many other legislations.
With 3rd ed, you are of course of at the mercy of Nokia as to whether you can get an app that uses this API signed. That’s the life of a sharecropper.
Forum Nokia Champion
[QUOTE=ltomuta]Thanks for pointing me to that thread Paul. I took the posts out but I have to say that I am quite disappointed seeing who are those demonstrating that advanced knowledge is not always good friend with wisdom.[/QUOTE]
And just in case anybody still feels like they shouldn’t be rebooting the phone: the only reason we automatically reboot the phone is that basically all 2nd edition (and according to some other people’s experience, some 3rd ed) phones may reach a state where they are no longer to make TCP/IP connections, and the only cure is a reboot. We only use this in unattended applications (see http://loca-lab.org and http://article.no/exhibition/the-head/).
There are at three separate ways the phone may permanently fail to make TCP/IP connections:
- sometimes the name resolver gets an error when resolving a name, and will never retry the resolution
- sometimes the phone seems able to create a GPRS connection, but will never actually put any data through it
- sometimes the phone totally loses the ability to talk to the NOS/GSM side (unable to make calls, 0 signal strength).
When Nokia starts making phones that don’t require a reboot to work, we will stop rebooting them automatically.
Forum Nokia Champion