Thanks to NEK-RA for English translation. Original text in Russian language.
- Small site, contains links to SDK and other usefull resources - https://mrrosset.github.io/Symbian-Archive/index.html
- List of active Symbian developers - mrRosset/Symbian-Archive#10
- Chat - https://discord.gg/5Bm5SJ9 or https://discord.com/channels/431429574975422464/743412813279526914
- Symbian Basics presentation - http://www.cs.rug.nl/~aiellom/images/SymbianOS.pdf
- Files:
- Literature
- Symbian OS sources - https://github.com/SymbianSource
- Docs for different Symbian OS versions - https://docs.huihoo.com/symbian/
- List of versions and models
- Nokia phone manuals:
Download from https://www.oracle.com/technetwork/java/javase/downloads/2133151 or http://java-runtime.ru/download
It`s better to install 5.0 version, because emulator settings don't work with newer java versions. Download link: http://www.oldversion.com/windows/java-platform-runtime-5-0-update-5
http://www.mediafire.com/file/9uc7fjb2ynmxlud/s60v3.1_SDK.zip/file
Emulator needs activation, otherwise it works only in 14-days trial mode. To reset trial I wrote this bat-script. On Windows 7 and higher run as Administrator
(Optional installation)
Provides ability to use standart C++ libraries (like stdio, iostream, string, etc.) https://ia800905.us.archive.org/7/items/nokia_sdks_n_dev_tools/s60_open_c_cpp_plug_in_v1_7_en.zip
http://www.mediafire.com/file/6z54qrceef73x9s/Carbide_cpp_v2_7_en.exe/file 2.7 – last version, which still supports Symbian OS 9.2. (If I remember correctly, Carbide 3.2 can works only with Symbian 9.3 and higher. (ToDo: refine))
"\Symbian\Carbide\workspace\GUIDemo\group\BLD.INF" FATAL ERROR(S): \Symbian\Carbide\workspace\GUIDemo\group\BLD.INF(21) : \Symbian\Carbide\workspace\GUIDemo\group\ICONS_SCALABLE_DC.MK does not exist
We need to modify group/bld.inf
, change string:
gnumakefile icons_scalable_dc.mk
to this:
gnumakefile icons_aif_scalable_dc.mk
How it looks:
undefined reference to `RpositionServer::RPositionServer()'
undefined reference to `Rpositioner::RPositioner()'
undefined reference to `TpositionInfo::TPositionInfo()'
undefined reference to `Rpositioner::Open(RPositionServer&)'
Solution:
We need to add lib-file. (In this case - lbs.lib). Open mmp-file and add library in Libraries tab.
By default apps just close on panic. No alerts, error messages and etc. will be shown. To enable alerts, we need to create empty file called errrd
(without extension) in c:\resource\
directory. To do this you need to unlock phone and give full access to system files, otherwise security system will not allow you to create this file.
Trouble:
Building sis(x)
package failed when compiling project.
Solution:
Go to: Project
→ Properties
→ Carbide.c++
→ Build configurations
. Choose Phone release (GCCE)
in Active Configuration
combobox. In SIS Builder
tab press Add
button. Choose PKG-file and press Ok
.
Trouble:
When creating console application from template Basic Console Application (EXE)
, app icon doesn`t appear in applications menu.
Solution: ToDo: make bat-script for automation
Go to data
folder and create file
YourAppName_reg.rsswith the following text (replace bold values with yours):
#include UID2 KUidAppRegistrationResourceFile UID3 0x12345678 // Replace with your application ID RESOURCE APP_REGISTRATION_INFO { app_file = "YourAppName"; // Replace with your application executable file name (exe) without extension }
Then add to mmp-file:
SOURCEPATH ..\data START RESOURCE YourAppName_reg.rss TARGETPATH \private\10003a3f\apps END
Add to pkg-file:
"$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\YourAppName_reg.rsc" -"!:\private\10003a3f\import\apps\YourAppName_reg.rsc"
Trouble:
Error "App is incompatible with phone" appears on sis(x)
package installation
Reason:
pkg
file should contains information of supported platforms and phone models. This error appears if your phone model is not supported or such list in pkg
file is not defined (empty) (for example, when creating new project from Basic console, application (EXE)
template).
Solution:
Add list of supported "products" to your sis/YourAppName.pkg
as strings:
[ProductUID], VersionRange, {"ProductName"}
Where:
- ProductUID - Unique identifier of platform/product as HEX-number (list of available IDs will be shown below)
- VersionRange - Firmware version of platform (I`m using
0.0.0
, which means "any version") - ProductName - Platform name in quotes (as I understand, it doesn`t affect anything)
Example:
;Platform version (";" is used for single-line comments)
[0x101F7961], 0, 0, 0, {"S60 3rd Edition devices"}
[0x1028315F], 0, 0, 0, {"S60 5th Edition devices"}
In this example application should works on S60v3 and S60v5 (Symbian 9.1 and 9.4). (Example of complete PKG-file)
Also there is backward compatibility for previous platform versions: app created for Symbian OS 9.2 should also works on OS version 9.1.
ProductUIDs of Symbian OS 9.X:
Platform | ProductUID |
---|---|
S60 3rd Edition (Symbian 9.1) | 0x101F7961 |
S60 3rd Edition FP1 (Symbian 9.2) | 0x102032BE |
S60 3rd Edition FP2 (Symbian 9.3) | 0x102752AE |
S60 5th Edition (Symbian 9.4) | 0x1028315F |
UIQ3 (Symbian 9.1) | 0x101F6300 |
UIQ3.1 (Symbain 9.2) | 0x101F63DF |
Full list available in SISContents app or on this site.
Use command devices
in command line. Available arguments:
C:\Documents and Settings\user>devices -help
Syntax: devices -info @deviceID Displays detailed device information
devices -default Displays the default device information
devices -setdefault @deviceID Sets the default device
devices -setalias new_alias @deviceID Sets the alias for a device
devices -add device_path tools_path @deviceID
devices -remove @deviceID
devices -help Displays this help
where deviceID is a device identifier (of the form 'kit:name') or
device alias, preceded by '@'
new_alias is a new device alias
device_path is the location of the main epoc32 directory
tools_path is the location of the epoc32\tools directory
Note: When using -setalias or -add, the device may not be referred to by
an alias.
With no arguments or switches, devices lists all device names and aliases
If command not found, add this path to PATH
environment variable: C:\Program Files\Common Files\Symbian\Tools
(or C:\Program Files (x86)\Common Files\Symbian\Tools
).
To see list of all installed SDKs run command devices
without any arguments:
C:\Documents and Settings\user>devices
S60_3rd:com.nokia.s60
S60_5th_Edition_SDK_v1.0:com.nokia.s60
S60_3rd_FP1:com.nokia.s60 - default
You can set certain SDK as default with -setdefault
option (note: do not miss @
before SDK identifier):
devices -setdefault @S60_3rd_FP1:com.nokia.s60
@TheeraphatSrisombat ??