Are AIF files supported in s60 3rd edition or are they deprecated?
AIF files are not supported in s60 3rd edition.
Why is the registration RSS file required, where shocould it be located, and what information shocould it contain?
An Application Registration file defines application information that is required by the application launcher or system shell. this parameter des the application's name, uid, and properties. other information required by the shell, for instance the icons and captions, is defined separately; the location of the icon/caption definitions is provided in the regifile file. before Symbian OS v8.1, all of this information was provided in AIF files. in Symbian OS v8.1, both AIF files and registration files are supported, but from Symbian OS v9.1 (s60 3rd edition) onwards, only registration files are supported.
A registration file is required by every application, even if it has default properties, icons, and caption. it must specify at least the application's UID and the name of the application's executable.
All registration files are located in/Private/10003a3f/apps, On the same drive as the application.
Where shocould resources, help files, and other files used by the application be located and how does the framework know to look there?
Three completely new protected directories have been introduced because of platform security:
/Sys
All executable native code resides in/sys/bin.
/Sys/bin is a flat directory-for example, all EXE files and DLLs must have a different name.
TCB capability is required for modifying/sys contents.
Allfiles capability is enough for reading the/sys directory (file browser, diagnostics tools ).
/Resource
Read-only resource files shared by (potentially) all applications.
Applications without any capabilities can read these files.
TCB capability is required for modifying the contents of/resource.
Only the software installer adds and updates these files.
Subdirectories can be utilized to ensure that the file name remains unique.
/Private
/Private/<Sid>:The private directory of the process with Sid.
/Private/<Sid>/import: "foreign" files (that is, files not owned by the process itself) can be placed here. all other processes have access to this directory with no capability restrictions. thus, all content from here shoshould be handled as untrusted by default.
These protected directories are located on either fixed or removable drives. All the other (previusly used) directories are unprotected, so it is not safe to leave any sensitive data in them.
Type |
Old, current location |
New location in platsec directory structure |
AIF * |
/System/apps/<app>/ |
None |
Application (. app )* |
/System/apps/<app>/ |
None |
Application resource (. RSC) |
/System/apps/<app>/ |
/Resource/apps/ |
Application bitmap files (. MBM,. MIF) |
/System/apps/<app> |
/Resource/apps/ |
Exes |
/System/programs/ |
/Sys/bin/ |
FEP Resources |
/System/FEP/ |
/Resource/FEP/ |
Help Files |
/System/help/ |
/Resource/help/ |
Shared libraries |
/System/libs/ |
/Sys/bin/ |
Executables |
/System/programs |
/Sys/bin/ |
Temp files |
/Temp |
/Private/<SID of the executable>/temp |
What modifications are required to change an application from a. app to A. EXE?
MyApp. MMP
In the MMP file a new target and target type must be defined. Additionally, every line that starts with resource or systemresource must be changed to a start resource... End Block so that a targetpath can be defined for the resource to be built. The targetpath keyword will be neglected by the compiler when used outside start resource... End blocks. Make the Changes marked with bold into the existing MyApp. MMP file:
# Ifdef app_to_exe
Target myapp.exe
Targettype exe
# Else
Target MyApp. app
Targettype app
# Endif
UID 0x100039ce 0x1000xxxx
Vendorid xxxx
Capability xxxx
// Note that for app_to_exe the targetpath does not need be defined, because it
// Is automatically handled by the build tools
# Ifndef app_to_exe
Targetpath/system/apps/MyApp
# Endif
MyApp. cpp
Add new entrypoints for EXE type application creation & initialization into the file where newapplication () is defined. The changes have been marked with bold font.
# Ifdef app_to_exe
# Include <eikstart. h>
Local_c capaapplication * newapplication ()
{
Return new cmyapplication;
}
Gldef_c tint e32main ()
{
Return eikstart: runapplication (newapplication );
}
# If defined (_ wins __)&&! Defined (eka2)
Gldef_c tint e32dll (tdllreason)
{
Return kerrnone;
}
Export_c tint winsmain (tdesc * acmdline)
{
Return eikstart: runapplication (newapplication, acmdline );
}
# Endif
# Else //! App_to_exe
//--------------------------------------------------------------
// Newapplication
// Creates a new MyApp Application Object (cmyapplication ).
// Returns: The New Application Object (cmyapplication ).
// Null if out of memory.
//--------------------------------------------------------------
//
Export_c capaapplication * newapplication ()
{
Return new cmyapplication;
}
//--------------------------------------------------------------
// E32dll
// Standard entry point for the Application DLL (MyApp. APP ).
// Returns: Standard Symbian OS error code, kerrnone if successful.
//--------------------------------------------------------------
//
# If! Defined (eka2)
Gldef_c tint e32dll (tdllreason)
{
Return kerrnone;
}
# Endif
# Endif // app_to_exe