Page 2 - Preface; Purpose of this document
Developers guidelines | Signing applications 2 October 2006 This document is published by Sony Ericsson Mobile Communications AB, without any warranty*. Improvements and changes to this text necessitated by typographical errors, inaccuracies of current information or improvements to programs and/or ...
Page 3 - Sony Ericsson Developer World; Products
Developers guidelines | Signing applications 3 October 2006 Sony Ericsson Developer World On www.sonyericsson.com/developer , developers will find documentation and tools such as phone White Papers, Developers Guidelines for different technologies, SDKs and relevant APIs. The website also con-tains ...
Page 4 - Typographical conventions; Trademarks and acknowledgements
Developers guidelines | Signing applications 4 October 2006 Typographical conventions Code is written in Courier font, for example: TInt CCamera::CamerasAvailable() Trademarks and acknowledgements Symbian, Symbian OS, UIQ Technologies, UIQ and other Symbian marks are all trademarks of Symbian Ltd. O...
Page 5 - Contents
Developers guidelines | Signing applications 5 October 2006 Contents Symbian OS v9 security architecture ........................................................................ 7 Introduction ..............................................................................................................
Page 8 - Introduction; Restricted and unrestricted APIs
Developers guidelines | Signing applications 8 October 2006 Introduction Symbian OS version 9.x is specifically intended for mid-range phones to be produced in large numbers of units. The open development platform, featuring many new key technologies, offers large opportunities for ISVs (Independent...
Page 9 - Identifiers; Unique Identifiers, UIDs; Secure Identifier, SID
Developers guidelines | Signing applications 9 October 2006 Identifiers Symbian OS v9 Platform Security also requires that applications can be uniquely identified and strictly classified to reflect their PlatSec level of trust. For example, signed and unsigned application are clearly separated by ha...
Page 10 - Data caging; Unsigned - sandboxed applications
Developers guidelines | Signing applications 10 October 2006 IF a VID value other than 0 is to be used, it is specified in the .MMP file of the application. VID values must not be specified for unsigned applications. Data caging Data caging has been introduced in Symbian OS v9 to prevent one applica...
Page 11 - Symbian Signed applications; Capability mapping
Developers guidelines | Signing applications 11 October 2006 The following table lists allowed user granted permissions per capability for unsigned applications: Note: An application that could be deployed as an unsigned - sandboxed application may as well be sub- dued to the Symbian Signed process....
Page 13 - Developer certificates
Developers guidelines | Signing applications 13 October 2006 Developer certificates As a consequence of the Symbian OS v9 enhanced platform security, applications that require access to restricted APIs can not be installed on targeted devices before they have been signed, which in turn makes it impo...
Page 15 - Planning for development; Signing or not; Required capabilities
Developers guidelines | Signing applications 15 October 2006 Planning for development There are a number of considerations to take in the beginning of the development process for a Symbian OS applications. Apart from the normal system analysis and design, also the design implications on sign-ing req...
Page 18 - Creating a Symbian Signed application; General signing procedure
Developers guidelines | Signing applications 18 October 2006 A complete list of functions per capability can be found in the appendix of this document, see “Functions listed by capability” on page 29, in the Symbian developer library, http://www.symbian.com/developer/ techlib/v9.1docs/index.asp , an...
Page 19 - Symbian Signed portal account registration; UID allocation
Developers guidelines | Signing applications 19 October 2006 *”<path>\<My_Private_Key>.key”, “<path>\<My_Cert>.cer” [,KEY=”<My_PrivateKey_Pwd>] for example, *”files\devcert2.key”,”files\devcert2.cer”,KEY=”password” MakeSis is run with the modified .pkg file create the ....
Page 21 - ACS publisher ID
Developers guidelines | Signing applications 21 October 2006 When logged in on the Symbian Signed portal, UIDs allocated to the account can be viewed by clicking “View UIDs” in the left navigation bar. ACS publisher ID Having an application Symbian Signed requires an ACS publisher ID, either owned b...
Page 22 - Requesting a developer certificate
Developers guidelines | Signing applications 22 October 2006 Developer certificates can be issued on three different levels, depending primarily on wich capabilities are required and how many specific phones (identified by their IMEI) are to be used for testing. The following table lists granted cap...
Page 25 - Testing procedures and tools; To do before submitting the application
Developers guidelines | Signing applications 25 October 2006 4. Upload the .csr file. When uploaded, the request is forwarded to Sony Ericsson, where a steering group reviews the request. Their decision is communicated to the developer via Symbian Signed. 5. When approved, the developer certificate ...
Page 26 - Testing and signing procedures for Symbian Signed
Developers guidelines | Signing applications 26 October 2006 • Policy statement dialog The application should launch a policy statement dialog at the very first application startup, The dialog should summarize the use of network access, local connectivity, multimedia recording, read/write user data,...
Page 28 - Appendix
Developers guidelines | Signing applications 28 October 2006 Appendix
Page 29 - Functions listed by capability
Developers guidelines | Signing applications 29 October 2006 Functions listed by capability In the list, text within curly brackets { } indicates other capabilities that the function is associated with. The text “Dependent” in curly brackets indicates that the association with the capability is cond...
Page 30 - Capability: DiskAdmin
Developers guidelines | Signing applications 30 October 2006 Capability: DiskAdmin RFormat::Next(TInt &);{} RFormat::Next(TPckgBuf< TInt > &,TRequestStatus &);{} RFs::AddFileSystem(const TDesC &)const;{} RFs::AddPlugin(const TDesC &)const;{} RFs::CheckDisk(const TDesC &...
Page 36 - Capability: LocalServices
Developers guidelines | Signing applications 36 October 2006 ContentAccess::CManager::SetProperty(TAgentProperty,TInt);{} ContentAccess::CRightsInfo::Description()const;{} ContentAccess::CRightsInfo::RightsStatus()const;{} ContentAccess::CRightsInfo::RightsType()const;{} ContentAccess::CRightsInfo::...
Page 39 - Capability: MultimediaDD
Developers guidelines | Signing applications 39 October 2006 Capability: MultimediaDD CCamera::NewL(MCameraObserver2 &,TInt,TInt);{UserEnvironment} CDevASR::SetPrioritySettings(const TMMFPrioritySettings &);{} CMMFController::SetPrioritySettings(const TMMFPrioritySettings &)=0;{} CMMFUrl...
Page 40 - Capability: NetworkControl
Developers guidelines | Signing applications 40 October 2006 CMmfGlobalAudioEffect::SetSettingsByUidL(TUid);{} CSpeechRecognitionUtility::SetAudioPriority(TInt,TInt,TInt,TInt);{} CVideoPlayerUtility::NewL(MVideoPlayerUtilityObserver &,TInt,TMdaPriorityPreference,RWsSession &,CWsScreenDevice ...
Page 43 - Capability: NetworkServices
Developers guidelines | Signing applications 43 October 2006 RSat::ClientSatProfileIndication(const TDesC8 &)const;{WriteDeviceData} RSat::EventDownload(TRequestStatus &,TEventList,const TDesC8 &)const;{WriteDeviceData} RSat::MenuSelection(TRequestStatus &,const TDesC8 &)const;{R...
Page 50 - Capability: PowerMgmt
Developers guidelines | Signing applications 50 October 2006 RSyncMLDevManJob::CreateL(RSyncMLSession &,TSmlProfileId,TSmlConnectionId);{LocalServices} Capability: PowerMgmt Power::CancelWakeupEventNotification();{} Power::DisableWakeupEvents();{} Power::EnableWakeupEvents(TPowerState);{} Power:...
Page 54 - Capability: ReadUserData
Developers guidelines | Signing applications 54 October 2006 RSat::NotifyDisplayTextPCmd(TRequestStatus &,TDes8 &)const;{} RSat::NotifyGetServiceInfoPCmd(TRequestStatus &,TDes8 &)const;{} RSat::NotifyLaunchBrowserPCmd(TRequestStatus &,TDes8 &)const;{} RSat::NotifyLocalInfoPCm...
Page 65 - Capability: SurroundingsDD
Developers guidelines | Signing applications 65 October 2006 RPhoneBookSession::DoSynchronisation(TRequestStatus &,TUid);{WriteUserData} RPhoneBookSession::ShutdownServer(TBool);{WriteUserData} RPhoneBookSession::ValidateContact(MContactSynchroniser::TValidateOperation,TContactItemId);{} RSat::N...
Page 66 - Capability: TrustedUI
Developers guidelines | Signing applications 66 October 2006 RWsSession::SimulateKeyEvent(TKeyEvent);{} RWsSession::SimulateRawEvent(TRawEvent);{} UserSvr::AddEvent(const TRawEvent &);{} Capability: Tcb RLocalDrive::Connect(TInt,TBool &);{} TBusLocalDrive::Connect(TInt,TBool &);{} Capabi...
Page 74 - Capability: WriteUserData
Developers guidelines | Signing applications 74 October 2006 RWsSession::SetKeyboardRepeatRate(const TTimeIntervalMicroSeconds32 &,const TTimeIntervalMicroSeconds32 &);{} RWsSession::SetModifierState(TEventModifier,TModifierState);{} RWsSession::SetPointerCursorArea(TInt,const TRect &);{...