Tizen® 2.0 Compliance Specification
for Mobile Profile
Version 1.0 Copyright© 2013 Samsung Corporation Copyright© 2013 Intel Corporation Linux® is a registered trademark of Linus Torvalds. Tizen® is a registered trademark of The Linux Foundation ARM® is a registered trademark of ARM Holdings Plc. Intel® is a registered trademark of Intel Corporation in the U.S. and/or other countries * Other names and brands may be claimed as the property of others.
Revision History
Revision Date Author Reason for Changes
07/09/2012 Samsung Initial version
0.1 07/13/2012 Samsung / Intel Compliance F2F in Oregon
0.2 09/12/2012 Samsung / Intel Update to match overview
0.3 12/01/2012 Samsung / Intel Compliance F2F California
0.4 12/07/2012 Samsung / Intel Team review version
0.5 12/18/2012 Samsung / Intel Internal review version
0.6 01/15/2013 Samsung / Intel Restricted external review
0.7 01/25/2013 Samsung / Intel External review
0.8 01/29/2013 Samsung / Intel Release Candidate 1
0.9 01/31/2013 Samsung / Intel Release Candidate 2
1.0 02/04/2013 Samsung / Intel Public Release
Glossary
Term Definition
ABI Application Binary Interface
API Application Programming Interface
Compliance Full conformance, verified by testing and certified.
Conformance How well the implementation follows a specification.
CSS Cascading Style Sheets. A simple mechanism for adding style (e.g., fonts, colors, spacing) to Web documents.
DOM Document Object Model. A platform- and language-neutral interface that will allow programs and scripts to dynamically access and update the content, structure and style of documents.
DTV Digital Television, a target of the TV Profile.
IOMMU Input/Output Memory Management Unit
IPTV Internet Protocol Television, a target of the TV Profile.
IVI In-Vehicle-Infotainment, a target of the IVI Profile. System used for entertainment such as music, video, and games, along with information, such as navigation and web. A platform target for Tizen
Mobile Portable, connected devices, such as phones and tablets. A platform target for Tizen.
REST Representational State Transfer
SDB Smart Development Bridge – a device management tool in the Tizen SDK.
STB Television set-top box, a target of the TV Profile.
Term Definition
Smack Simplified Mandatory Access Control Kernel – an access control technology
UI User Interface
UX User Experience
Tizen Web API Collection of Tizen Web programming interfaces for applications. Includes approved specifications generically known as HTML5, as well as additional interfaces such as Tizen Web Device API and Tizen Web UI FW.
Tizen Native API Collection of Tizen Native(C++) interfaces, standard C & C++ libraries, and selected set of open source libraries such as OpenGL-ES, STL, etc.
Table of Contents 1. Overview
1.1. Why Compliance?
1.2. Target Audience
1.3. Tizen Compliance Model 1.4. Revision Policy
1.5. Tizen Source Code Modification Policy
1.6. Resources 2. Mobile Profile Software Compliance
2.1. General Principles 2.2. Tizen Web API
2.2.1. Namespace
2.2.2. Tizen Web API Categories 2.2.3. W3C/HTML5 Specifications 2.2.4. Supplementary API Specifications 2.2.5. Tizen Web Device API Specifications 2.2.6. Web UI Framework
2.2.7. Preliminary Web APIs 2.2.8. Behavior of Unsupported APIs
2.3. Tizen Native API 2.3.1. Namespace
2.3.2. Tizen Native API Categories 2.3.3. Behavior of unsupported APIs
2.4. Application Binary Interface
2.5. Application Control 2.6. Platform Attributes 2.7. Device Capability Report
2.7.1. Tizen Web API 2.7.2. Tizen Native API
2.8. Privilege
2.8.1. Tizen Web API 2.8.2. Tizen Native API
2.9. Application Packaging Compatibility
2.9.1. Web App Package Support 2.9.2. Native App Package Support 2.9.3. Hybrid Web/Native Package Support
2.10. WebKit and Browser 2.10.1. WebKit 2.10.2. Browser
2.11. Web Runtime
2.12. User Interface
2.12.1. UI Controls 2.12.2. Theme
2.12.3. Notification Tray
2.12.4. Keys
2.13. Security
2.14. Multimedia
2.15. Developer Tools 2.16. Software Update
2.17. Tizen Compliance Tests 3. Mobile Profile Hardware Compliance
3.1. Mandatory Hardware requirements 3.1.1. Memory Storage
3.1.2. Sound
3.1.3. Connectivity / Networking
3.1.4. Display
3.1.5. GPS
3.1.6. Input Devices 3.2. Optional Hardware
3.2.1. Camera
3.2.2. Graphics 3.2.3. USB
3.2.4. Sensors 3.2.5. Telephony
3.2.6. Bluetooth
3.2.7. Wi-Fi 3.2.8. NFC
3.2.9. Input Devices 4. Mobile Profile Application Compliance
4.1. API Use
4.2. Application Packaging
4.3. Application Lifecycle
4.4. Namespace
4.5. Application Features and Privileges 5. Appendix
5.1. Tizen Application Control 5.2. Tizen Features
5.2.1. Tizen Web API 5.2.2. Tizen Native API
5.3. Tizen Privileges 5.3.1. Tizen Web API Privileges 5.3.2. Tizen Native API Privileges
5.4. Tizen Device Capabilities 5.4.1. Tizen Web API (SystemInfoDeviceCapability) Tizen Native API (Tizen::System::SystemInfo) 5.4.2.
5.5. Preliminary Web APIs 5.6. Sensors Requirements
1. Overview
This specification defines the operating environment of the Tizen platform. It is intended to be used by both mobile device implementers and application developers to enable the development of portable application software.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" used in this document are to be interpreted as described in [Ref. 3].
Tizen is a registered trademark of the Linux Foundation, which controls the usage of the brand and trademark. A requirement for permission to use this trademark in conjunction with products is compliance with the requirements of this specification.
1.1. Why Compliance?
Tizen Compliance is designed to ensure mobile device implementations and applications work together:
Mobile device implementations: if implemented to a profile, a device will provide a consistent behavior defined by that profile to applications, and provide a consistent user experience.
Applications: if built to this specification, applications will run on compliant devices which implement the APIs it uses. Applications MAY be targeted to a specific profile if necessary.
1.2. Target Audience
This specification is intended to be used by:
Application developers: know how to create compatible applications which work across multiple devices, and how Tizen devices will behave.
Mobile device implementers: know how to implement device hardware, security configurations, services, APIs, etc.
Operators: know how to customize and enhance a device, while remaining within compliance guidelines.
End users: know that applications will work on their device and are assured a consistent user experience among compliant applications.
1.3. Tizen Compliance Model
The Tizen compliance model consists of two main areas:
Tizen Common Platform: the set of features and APIs common across all Tizen platforms and required by every platform. The common platform is defined to
reduce the effort of porting compliant applications from one device profile to another and maximize code re-use across profiles.
Tizen Profiles: targeted requirements for specific device categories which layer on top of the Tizen Common Platform, including additional components for devices, APIs, and hardware requirements. The current profile is:
o Mobile: Handsets, tablets.
Additional profiles are expected in the near future, possibly including:
o IVI: In-Vehicle Infotainment systems o TV: DTV/STB/IPTV systems o Clamshell: Netbook style laptops o Camera: Cameras o Printer: Printers
To be Tizen compliant, a platform MUST conform to the Tizen common requirements as well as at least one profile. It may then be described as compliant to that profile (or profiles). Tizen compliance will not be offered for the common platform alone. The Tizen compliance tests will measure conformance to the requirements.
Note: The initial release of this specification describes only the compliance requirements for the Tizen Mobile Profile. There is no current separation of requirements into common vs. profiles. Such separation will be made when additional profiles become available.
1.4. Revision Policy
There will be a distinct release of the specification, as well as a matching compliance tests, for each distinct release (version) of the Tizen platform. Updates may be issued between releases, if deemed necessary. All compliance requirements for the Mobile Profile specification must be approved by the Tizen Technical Steering Group and may change from time to time only by approval of the Tizen Technical Steering Group.
1.5. Tizen Source Code Modification Policy
Tizen mobile implementations MUST provide the full behavior of the Tizen API to applications. The best way to accomplish this is by using the Tizen source code. If modifications or replacements to the source code must be made, the implementer is responsible for ensuring there is no impact to compliant applications. The Tizen compliance
Mobile Profile (phone, tablet, mp3)
IVI Profile TV Profile Camera Profile
Tizen Common Common APIs, packaging, security, and development services
Printer Profile
Additional ...
(future categories)
Clamshell Profile
(netbook/laptop)
tests may be used to measure correctness of the implementation, but in case of ambiguities, errors, or incompleteness of this specification or of the compliance tests, the final arbiter of compatibility is the behavior of the Tizen Platform as represented by the source code.
1.6. Resources
The following external specifications and other documents are referenced by this specification.
1. GNU C library: http://www.gnu.org/software/libc/ 2. GNU C++ library: http://gcc.gnu.org/onlinedocs/libstdc++/ 3. IETF RFC 2119 "Key words for use in RFCs to Indicate Requirement Levels":
http://www.ietf.org/rfc/rfc2119.txt 4. ISO 18092:
http://standards.iso.org/ittf/PubliclyAvailableStandards/c038578_ISO_IEC_18092_2004(E).zip 5. libxml2: http://www.xmlsoft.org/html/index.html 6. NFC Connection Handover 1.2: http://www.nfc-forum.org/specs/spec_list/#conn_handover 7. NFC Forum Tag Type Technical Specifications: http://www.nfc-
forum.org/specs/spec_list/#tagtypes 8. NFC Logical Link Control Protocol 1.0: http://www.nfc-forum.org/specs/spec_list/#llcp
9. NFC Simple NDEF Exchange Protocol 1.0: http://www.nfc-forum.org/specs/spec_list/#protts
10. OpenAL library: http://connect.creativelabs.com/openal/Documentation/OpenAL%201.1%20Specification.htm
11. OpenGL ES 1.1: http://www.khronos.org/registry/gles/specs/1.1/es_full_spec_1.1.12.pdf 12. OpenGL ES 2.0: http://www.khronos.org/registry/gles/specs/2.0/es_full_spec_2.0.25.pdf 13. OpenMP: http://www.openmp.org/mp-documents/OpenMP3.1.pdf 14. Smart Development Bridge:
https://developer.tizen.org/help/topic/org.tizen.gettingstarted/html/dev_env/smart_development_bridge.htm
15. Standard Template Library: http://www.sgi.com/tech/stl/ 16. Tizen Native API Namespace List:
https://developer.tizen.org/help/topic/org.tizen.native.apireference/namespaces.html 17. Tizen Native API Packaging:
https://developer.tizen.org/help/topic/org.tizen.native.appprogramming/html/app_dev_process/packaging_app.htm
18. Tizen Native API Reference: https://developer.tizen.org/help/topic/org.tizen.native.apireference/index.html
19. Tizen Native Application Development Process: http://developer.tizen.org/help/topic/org.tizen.native.appprogramming/html/app_dev_process/overview_of_app_dev.htm
20. Tizen Native Application Lifecycle: http://developer.tizen.org/help/topic/org.tizen.native.appprogramming/html/basics_tizen_programming/tizen_app_model/application_lifecycle.htm
21. Tizen Web Supplementary API Reference: http://developer.tizen.org/help/topic/org.tizen.web.supplementary.apireference/supplementary_api.html
22. Tizen UX Guide: [TBD] 23. Tizen W3C API Reference:
https://developer.tizen.org/help/topic/org.tizen.web.w3c.apireference/w3c_api.html 24. Tizen Web Application Development Process:
http://developer.tizen.org/help/topic/org.tizen.web.appprogramming/html/app_dev_process/overview_of_app_dev_web.htm
25. Tizen Web Device API Reference: https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/index.html
26. Tizen Web Runtime Developer Guide: http://developer.tizen.org/help/topic/org.tizen.web.appprogramming/html/basics_tizen_programming/web_runtime.htm
27. Tizen Web UI Framework Reference: http://developer.tizen.org/help/topic/org.tizen.web.uiwidget.apireference/html/web_ui_framework.htm
28. W3C Widget Access Request Policy: http://www.w3.org/TR/2012/REC-widgets-access-20120207/
2. Mobile Profile Software Compliance
This chapter describes the software requirements that implementers MUST meet to create a compliant Tizen mobile device.
2.1. General Principles
A mobile device implementation MUST include support for both the Tizen Web API and the Tizen Native API.
The mobile device implementation MUST accurately report the presence or absence of optional hardware features (see section 3.2) and software features as platform attributes.
If a mobile device implementation supports a particular optional hardware or software feature, it MUST implement the entire corresponding API, and it MUST report the presence of the hardware or software in the platform attributes.
If a mobile device implementation does not support a particular optional hardware or software feature, it MUST report the absence of the hardware or software in the platform attributes.
If a mobile device implementation reports the presence of an optional hardware or software feature through the platform attributes API, then the corresponding compliance test for that feature MUST be passed. If a Tizen device lacks a particular optional hardware or software feature, then the corresponding compliance tests for that feature will be skipped.
2.2. Tizen Web API
2.2.1. Namespace
Mobile device implementations MUST NOT modify the API namespace listed in the Tizen Web Device API Reference [ref. 25], including tizen.*.
2.2.2. Tizen Web API Categories
W3C/HTML5 APIs: include the standard APIs defined by W3C, such as HTML5, CSS3, Widget Specification, etc.
Supplementary APIs: non-W3C specifications, such as WebGL, Typed Arrays, Fullscreen API, and viewport Meta Tag.
Tizen Web Device API: defined by the Tizen project to facilitate the development of web applications by accessing various device features not fully covered by W3C APIs. The APIs enable interacting with device features, such as Calendar, Contact, Bluetooth, NFC, Messaging, Alarm, System Information, etc.
Web UI Framework: includes jQuery mobile-based extended widgets, themes, events, effects, animations, etc. The Web UI framework is an optional feature for Tizen application developers. Thus, Tizen application developers MAY just use W3C standard technology, such as HTML/JavaScript/CSS. However, note that mobile device implementations MUST provide the Tizen Web UI framework for applications which use it.
The following sections list these categories in more detail.
2.2.3. W3C/HTML5 Specifications
The APIs listed in this category are all part of the W3C specifications. The W3C APIs are categorized based on functionality.
Widget
Specification Description
Widget Packaging and XML Configuration
A packaging format and metadata for a class of software known as widgets.
Widget Interface API for widgets that provides, amongst other things, functionality for accessing a widget's metadata and persistently storing data.
XML Digital Signatures for Widgets
A profile of the XML Signature Syntax and Processing 1.1 specification to allow a widget package to be digitally signed.
Widget Access Request Policy
The security model controlling network access from within a widget, as well as a method for authors to request that the user agent grant
access to certain network resources or sets thereof.
DOM, Forms and Styles
Specification Description
HTML5 Forms HTML5 form features.
Selectors API Level 1 API for retrieving Element nodes from the DOM by matching against a group of selectors
Selectors API Level 2 (Partial)
API for retrieving Element nodes from the DOM by matching against a group of selectors, and for testing if a given element matches a particular selector. The methods currently not supported are: queryScopedSelector, queryScopedSelectorAll of NodeSelector interface
Media Queries (Partial)
Offers a mechanism that allows adapting the layout and behavior of a Web page based on some of the characteristics of the device, including the screen width/height. The query currently not supported is: orientation
CSS 2D Transforms CSS 2D Transforms allow elements rendered by CSS to be transformed in two-dimensional space.
CSS 3D Transforms Module Level 3
CSS 3D Transforms extend CSS Transforms to allow elements rendered by CSS to be transformed in three-dimensional space.
CSS Animations Module Level 3
CSS Animations allow an author to modify CSS property values over time.
CSS Transitions Module Level 3
CSS Transitions allow property changes in CSS values to occur smoothly over a specified duration.
CSS Color Module Level 3
CSS3 color enhancements related to color values and properties for foreground color and group opacity
CSS Backgrounds and Borders Module Level 3
Rounded corners, complex background images, shadow effects.
CSS Flexible Box Layout Module
CSS box model optimized for user interface design.
CSS Multi-column Layout Module
Creates multiple columns for laying out text.
CSS Text Module Level 3 (Partial)
CSS properties for text manipulation and specifies their processing model. The properties currently not supported are: text-align-last, text-justify, text-decoration-color, text-decoration-line, text-decoration-style, text-decoration-skip
CSS Basic User Interface Module Level 3 (CSS3 UI)
User interface related CSS enhancements.
CSS Fonts Module Level 3 (Partial)
@font-face rule with downloadable font src URL. The features currently not supported are: font-feature-settings, font-language-override, font-synthesis, font-variant-alternates, font-variant-caps, font-variant-east-asian, font-variant-numeric, font-variant-position, font-size-adjust, font-stretch
WOFF File Format 1.0
Web Open Font Format: File Format 1.0.
DOM/JavaScript related HTML5 Enhancements
Handy DOM/JavaScript related enhancements in HTML5.
Device
Specification Description
Touch Events version 1 (Partial)
W3C touch event specification for touch devices. The method currently not supported is: identifiedTouch of TouchList interface
DeviceOrientation Event Specification (Partial)
Provides access to orientation and acceleration data. The method currently not supported is: initAccelerometerEvent of DeviceMotionEvent interface
Battery Status API W3C Battery API defines new DOM event types that provide information about the battery status of the hosting device.
Vibration API Haptic feedback API from W3C.
HTML5 Browser state Signals when network connectivity is available to the Web environment
The Screen Orientation API
To provide an interface for web applications to be able to read the screen orientation state, to be informed when this state changes and to be able to lock the screen orientation to a specific state
The Network Information API
W3C Network Information API provides an interface for the Web Applications to access the underlying network information (connection info) of the device.
Graphics
Specification Description
HTML5 The canvas element
HTML5 canvas element including 2D context and text.
HTML Canvas 2D Context
2D Context for the HTML canvas element
HTML5 SVG Inline SVG (1.1) support in HTML5
Media
Specification Description
HTML5 The video element
HTML5 video element.
HTML5 The audio element
HTML5 audio element.
getUserMedia API that directly manipulates streams from cameras and microphones.
Web Audio API W3C Web Audio API describes a high-level JavaScript API for
(Partial) processing and synthesizing audio in Web Applications. The attributes currently not supported are: node, playbackTime of AudioProcessingEvent interface
HTML Media Capture Capture and record multimedia content with input tag.
Communication
Specification Description
The WebSocket API Offers bi-directional network connectivity.
XMLHttpRequest Level 2
Enhancements on XHR, including binary file uploading, formdata submission, transfer progress, etc.
HTML5 The session history of browsing contexts
Navigating the sequence of documents in a browsing context.
Server-Sent Events The API allows triggering DOM events based on push notifications (via HTTP and other protocols).
HTML5 Web Messaging
HTML5 Web Messaging. The postMessage API allows for Web Applications to communicate between each other.
Storage
Specification Description
Web Storage W3C storage specification including session and local storage.
File API Reads files from local device file system.
File API: Directories and System
API that allows accessing the device file system.
File API: Writer Saves or modifies files in local device file system.
HTML5 Application caches
HTML5 application cache and custom handlers.
Indexed Database API
A database of values and hierarchical objects that integrates naturally with JavaScript, and can be queried and updated very efficiently.
Web SQL Database API for storing data in databases that can be queried using a variant of SQL.
Security
Specification Description
Cross-Origin Resource Sharing
Sharing of resources across different domains.
HTML5 The iframe element
Access restriction (sandboxing) for iframe content. Currently supported attributes are: allow-same-origin, allow-scripts, allow-forms, allow-top-navigation
UI
Specification Description
Clipboard API and events
To describe APIs for clipboard operations such as copy, cut and paste in web applications.
HTML5 Drag and drop
To define an event-based drag-and-drop mechanism.
Performance and Optimization
Specification Description
Web Workers (Partial)
API that allows Web application authors to spawn background workers running scripts in parallel to their main page. The event handlers and attributes currently not supported are: ononline, onoffline of WorkerGlobalScope interface, applicationCache of SharedWorkerGlobalScope interface and lineno, filename of ErrorEvent interface
Page Visibility This specification defines a means for developers to programmatically determine the current visibility state of the page in order to develop power and CPU efficient Web applications.
Timing control for script-based animations
Resource effective animation timing control by user agent.
Location
Specification Description
Geolocation API Specification
Provides scripted access to geographical location information associated with the hosting device.
2.2.4. Supplementary API Specifications
The APIs listed in this category are non-W3C specifications, but are popular, widely used specifications.
Specification Description
Typed Arrays - Khronos
Provides an API for interoperability with native binary data.
WebGL - Khronos (Partial)
This specification describes an additional rendering context and support objects for the HTML 5 canvas element. This context allows rendering using an API that conforms closely to the OpenGL ES 2.0 API. The method and attribute currently not supported are: initWebGLContextEvent of WebGLContextEvent interface, NUM_COMPRESSED_TEXTURE_FORMATS of
WebGLRenderingContext interface
Fullscreen API - Mozilla (Partial)
Provides a way for an element to be displayed in full screen mode programmatically. The method and attribute currently not supported are: requestFullScreenWithKeys of element, allowFullScreen of iframe element
viewport Metatag - Apple
Allows Web developers to control the viewport's size and scale.
2.2.5. Tizen Web Device API Specifications
The APIs listed in this category are created by the Tizen project to expose device functionality to web applications.
API Description
Tizen The base object for accessing Tizen Web Device APIs.
Alarm Functionality for setting and unsetting alarms.
Application Information and control for running and installed applications.
Bluetooth Enables control over Bluetooth.
Calendar Enables the management of calendar information.
Call History Access to call history for cellular and VoIP calls.
Contact Enables the management of contact information.
Content Functionality to discover multimedia content (such as images, videos, or music).
Download Interfaces and methods for downloading remote objects by HTTP request.
Filesystem Access to the file system of a device.
Messaging Allows SMS, MMS, and Email message sending and receiving.
NFC Allows access to NFC device(s).
Notification Provides a way to notify the user of events that happen in the application.
Power Provides interfaces and methods for controlling power resources.
System Information Provides information about the device's display, network, storage, and other capabilities.
System Setting Provides system setting functionality.
Time Exposes information about date, time, and time zones.
2.2.6. Web UI Framework
The Web UI framework provides tools, such as widgets, themes, events, effects, and animations for web applications. The Web UI framework is based on jQuery version 1.8.2, jQuery mobile version 1.2.0, and Globalize version 0.1.0a2.
Widget Description
Autodividers The autodividers widget automatically creates dividers for a list view.
Button The button widget shows a control on the screen that can be used to generate an action event.
Checkbox The checkbox widget shows a list of options on the screen where one or more can be selected.
Context popup The context popup widget shows a small pop-up list of application options.
Date picker, Time picker, and Date time picker
The picker widgets show a control that you can use to enter date and time values.
Extendable list The extendable list is used to display a list of data elements that can be extended.
Fast scroll The fast scroll widget shows a shortcut list that is bound to its parent scroll bar and respective list view.
Flip toggle switch The flip toggle switch widget shows a 2-state switch on the screen.
Gallery The gallery widget shows images in a gallery on the screen.
Handler The handler provides a touch-friendly scroll bar.
Header and Footer The header and footer widget shows the default header and footer bar on the screen.
List The list widget displays a list view.
List divider The list divider widget is a list separator used for grouping lists.
Multimedia view The multimedia view widget displays the audio and video player.
Notification The notification widget displays a small pop-up indicating accidental events.
Popup The popup widget displays a pop-up window.
Progress The progress widget shows that an operation is in progress.
Progress bar The progress bar widget shows a control that indicates the progress percentage of an on-going operation.
Search filter bar The search filter bar widget is used to search for page content.
Slider The slider widget is used to change a value by dragging a handle.
Swipe The swipe widget shows a list view on the screen, which can be swiped vertically.
Tabbar The tabbar widget shows an unordered list of buttons on the screen wrapped together in a single group.
Token text area The token text area widget enables the user to enter text and convert it to a button.
Virtual grid The virtual grid widget is used to display the data elements in a grid format with dynamic data management.
Virtual list The virtual list widget is used to display the data elements in a list format with dynamic data management.
2.2.7. Preliminary Web APIs
The Tizen Web API includes some preliminary Web API specifications, which are in an early stage in the development cycle. Application developers are cautioned that such APIs could be modified in a future version of Tizen to align with the developing progress of specifications. Mobile device implementations MUST support all Web APIs from the Tizen Web API specifications, including those indicated as preliminary. Preliminary Web APIs are listed in section 5.4.
2.2.8. Behavior of Unsupported APIs
A mobile device implementation MUST NOT omit any web API listed in the Tizen Web API specification, except those specified as optional in section 2.7.1 and not supported on the device. Optional APIs are dependent on particular hardware or software availability.
If an optional API is not supported on the device, it MUST return “undefined” when accessed. For example, an attempt to access tizen.nfc MUST return “undefined” if the NFC API is not supported.
2.3. Tizen Native API
2.3.1. Namespace
The Tizen Native API namespace is Tizen::*, as defined by [16]. The following is a list of all documented namespaces with brief descriptions:
Namespace Description
Tizen This namespace is the root namespace of the Tizen native framework
Tizen::App This namespace contains classes for application development
Tizen::App::Package This namespace contains classes and interfaces for a package
Tizen::Base This namespace contains classes and interfaces for basic features
Tizen::Base::Collection This namespace contains classes and interfaces for various collections
Tizen::Base::Runtime This namespace contains classes for running applications
Tizen::Base::Utility This namespace contains classes for various utilities
Tizen::Content This namespace contains classes and interfaces for content management and search services
Tizen::Graphics This namespace contains classes for drawing-related functionalities
Tizen::Graphics::Opengl This namespace contains interfaces for OpenGL(R)
Tizen::Io This namespace contains classes and interfaces for performing basic I/O operations
Tizen::Locales This namespace contains classes that define culture-related information
Tizen::Locations This namespace contains the classes and interfaces for the location-related information and services
Tizen::Media This namespace contains classes and interfaces for media processing services
Tizen::Messaging This namespace contains classes and interfaces for messaging services
Tizen::Net This namespace contains the classes and interfaces for network account, connection, and addressing utilities
Tizen::Net::Bluetooth This namespace contains the classes and interfaces for Bluetooth services
Tizen::Net::Http This namespace contains the classes and interfaces for the HTTP 1.1 client programming
Tizen::Net::Nfc This namespace contains the classes and interfaces for the Near Field Communication (NFC) services
Tizen::Net::Sockets This namespace contains the classes and interfaces for Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) socket programming
Tizen::Net::Wifi This namespace contains the classes and interfaces for the Wi-Fi management and Wi-Fi Direct functionalities
Tizen::Security This namespace contains classes and interfaces for security services
Tizen::Security::Cert This namespace contains classes and interfaces for managing the X.509 digital certificate
Tizen::Security::Crypto This namespace contains classes and interfaces for the cryptographic primitives
Tizen::Shell This namespace contains classes for phone shell management
Tizen::Social This namespace contains the classes and interfaces for managing the social information of the user
Tizen::System This namespace contains classes and interfaces for System
Tizen::Telephony This namespace contains classes and interfaces of the Telephony service
Tizen::Text This namespace contains classes that encode and decode characters
Tizen::Ui This namespace contains the classes and interfaces that act as the UI foundation for the applications
Tizen::Ui::Animations This namespace contains the classes for the animation-related functionalities
Tizen::Ui::Controls This namespace contains the classes and interfaces for creating rich user interface components for the applications
Tizen::Ui::Effects This namespace contains the classes and interfaces for the effect-related functionalities
Tizen::Ui::Scenes This namespace contains the classes for the scene management and its related functions
Tizen::Uix This namespace contains the Ui extension classes and the Tizen interfaces
Tizen::Uix::Sensor This namespace contains Sensor classes and Tizen interfaces
Tizen::Uix::Speech This namespace contains the classes for the speech and its related functions
Tizen::Uix::Vision This namespace contains the classes for the face and its related functions
Tizen::Web This namespace contains classes to manage the history data
Tizen::Web::Controls This namespace contains classes and interfaces to interact with the browser engine
Tizen::Web::Json This namespace contains interfaces to manipulate the JSON documents
2.3.2. Tizen Native API Categories
The Tizen Native API is defined by a C++ library [ref. 18], which provides the namespace Tizen::* as defined in [ref. 16]. In addition, the following native APIs MUST be available to native applications:
C library, as implemented by Eglibc [ref. 1]
C++ library libstdc++ [ref. 2]
STL [ref. 15]
OpenGL-ES [ref. 11][ref. 12]
OpenAL [ref. 10]
OpenMP [ref. 13]
libxml2 [ref. 5]
2.3.3. Behavior of unsupported APIs
APIs for hardware or software that is not supported MUST return an error (E_UNSUPPORTED_OPERATION).
2.4. Application Binary Interface
The Application Binary Interface (ABI) describes the compatibility of executable object or binary programs. Use of the Tizen Native API will result in binary programs. Mobile device implementations MUST be compatible with the one of the following ABIs. The ABI for ARM® Architecture CPUs is supported with these characteristics:
ABI: aapcs-linux
CPU architecture: armv7 or higher version
CPU instruction set: cortex-a5 or higher version
FPU option: vfpv3-d16 or higher version
Floating point ABI: softfp
Endian-ness: little endian The ABI for Intel® IA32 Architecture CPUs is supported with these characteristics:
ABI: i386 psABI (gcc: -m32)
CPU architecture: IA32
CPU instruction set: SSSE3
Floating point ABI: SSE math (gcc: -mfpmath=sse)
Endian-ness: little endian
2.5. Application Control
The Application Control interface in both the Tizen Web API and the Tizen Native API provides methods that control the behavior of an application.
Mobile device implementations MUST provide the mandatory platform AppControls, as defined in section 5.1.
A Tizen application may register itself as an AppControl provider. The available AppControl values can be queried and invoked by a Tizen application.
2.6. Platform Attributes
A mobile device implementation MUST provide accurate platform attributes through the System Information API for the Tizen Web API and the Tizen Native API.
Platform attributes include the following:
Device capabilities (see section 5.4)
Information about data storage devices
Display information
Information about the device orientation
2.7. Device Capability Report
Mobile device implementations MUST support a mechanism to report device capabilities. This mechanism is the device capability API. Capability information (see section 5.4) can be
used by application stores to check the capabilities of a given device and to select applications that will run with full capabilities on the device.
2.7.1. Tizen Web API
The application configuration document for the Tizen Web API widgets (config.xml) will declare features according to this syntax:
<feature name="http://tizen.org/feature/network.nfc"/>
The following Tizen Web APIs will not be implemented if a mobile device implementation does not include the feature. These features can be used to filter out applications by using the device capability report. The mobile device implementation MUST accurately report the availability of these features.
Feature Corresponding Tizen Web API
Bluetooth tizen.bluetooth
Telephony tizen.callhistory, tizen.messaging
NFC tizen.nfc
Location (GPS) W3C Geolocation
Camera W3C getUserMedia, HTML Media Capture
Microphone HTML Media Capture
Sensors W3C Device Orientation Event, W3C Screen Orientation
2.7.2. Tizen Native API
For the Tizen Native API, reported features may depend on available hardware capabilities and in some cases on software capabilities. Optional software features may be capabilities not part of the publicly available stack, or may require hardware capability that is beyond the minimum mobile device requirement (such as higher processing power/memory) (See section 3.1 for minimum hardware requirements).
Examples:
• NFC, Bluetooth (depends on hardware) • Database encryption, facial recognition (depends on software)
The configuration document for the Tizen Native API (manifest.xml) will declare features according to this syntax:
<Requirements>
<Feature Name="http://tizen.org/feature/camera.front.flash">true
</Feature>
</Requirements>
The following Tizen Native APIs will not be implemented if the Tizen mobile device does not include the hardware or software feature. These features can be used to filter out applications by using the device capability report. The mobile device implementation MUST accurately report the availability of these features.
Feature Corresponding Tizen Native API namespace
DB encryption Tizen::Io
Camera Tizen::Media
Location (GPS, WPS) Tizen::Locations
Video & Canvas Texture for OpenGL-ES
Tizen::Graphics::Opengl
Bluetooth Tizen::Net::Bluetooth
NFC Tizen::Net::NFC
WiFi/WiFi-Direct Tizen::Net::Wifi
Telephony Tizen::Telephony
Facial recognition Tizen::Uix
Motion recognition
Voice recognition
Sensors
2.8. Privilege
Certain APIs have access to privacy-sensitive information, such as contacts, camera, geolocation, etc. If an application uses privacy-sensitive APIs, then appropriate privileges MUST be declared in the configuration document for the application.
2.8.1. Tizen Web API
The application configuration document for the Tizen Web API (config.xml) MUST declare privileges according to the following syntax, as specified in the Tizen Web Runtime Developer Guide [ref. 26].
<tizen:privilege name="http://tizen.org/privilege/application.launch"/>
If the intent to access a privacy-sensitive API is not declared, access to such an API MUST throw SecurityError, as specified in the Tizen Web Device API Reference [ref. 25]. A mobile device implementation MUST support this mechanism. A mobile device implementation MUST NOT change the semantics of permissions and support as documented in the Tizen Web Runtime Developer Guide [ref. 26] for applications using the Tizen Web Device API. Refer to section 5.3.1 for a full list of privileges defined for the Tizen Web Device API.
2.8.2. Tizen Native API
The application configuration document for the Tizen Native API (manifest.xml) MUST declare privileges according to the following syntax. For example, to use Tizen::App::NotificationManager::Notify(int) the manifest MUST contain:
<Privileges>
<Privilege>http://tizen.org/privilege/notification</Privilege>
</Privileges>
Mobile device implementations MUST enforce a mechanism which limits an application using the Tizen Native API to use privileged APIs only if the privileges it requires are declared. A mobile device implementation MUST NOT change the semantics of permissions and support as documented in the manifest specification for applications using the Tizen Native API. Refer to section 5.3.2 for the full list of privileges defined for the Tizen Native API.
2.9. Application Packaging Compatibility
Tizen defines several mandatory application packaging formats. Mobile device implementations MUST correctly process packages in these formats. They MUST NOT extend these packaging formats in a way that would prevent packages generated on the implementation from running on other conforming mobile device implementations. Nothing in this section precludes mobile device implementations from supporting additional packaging formats outside the requirements of this specification.
2.9.1. Web App Package Support
A mobile device implementation MUST be able to install, remove, list, and update Web application packages in .wgt format extended in the Tizen Web Runtime Developer Guide [ref. 26], as described in the Tizen Web Application Development Process [ref. 24].
2.9.2. Native App Package Support
A mobile device implementation MUST be able to install, remove, list, and update Native application packages in .tpk format, as described in the Tizen Native Application Development Process [ref. 19].
2.9.3. Hybrid Web/Native Package Support
A mobile device implementation MUST be able to install, remove, list, and update hybrid Web/Native application packages in .wgt format.
2.10. WebKit and Browser
2.10.1. WebKit
Mobile device implementations SHOULD use the same version of WebKit for the Web View, Web Runtime, and default browser for the best compatibility when executing Web Applications. The current version of WebKit in Tizen is r123997.
2.10.2. Browser
Mobile device implementations MUST include a browser.
The browser MUST meet the W3C/HTML5 and Supplementary API specifications. Mobile device implementations SHOULD (strongly recommended) use version r123997 of WebKit for compatibility.
2.11. Web Runtime
Mobile device implementations MUST support all features specified in the Tizen Web Runtime Developer Guide. [ref. 26]
2.12. User Interface
The Tizen platform provides a full user interface (UI) implementation for both web and native applications. The UI implementation including both APIs and UI controls helps ensure a high quality mobile experience that is consistent across all Tizen mobile devices.
2.12.1. UI Controls
The Tizen platform provides a full suite of UI controls (i.e. UI widgets) for the creation of mobile applications using both the Tizen Web API and the Tizen Native API. Each UI control provides functionality and look-and-feel optimized for the Mobile domain, while providing a unique and differentiated user experience. The mobile device implementation MUST NOT alter the UI behavior and related resources.
2.12.2. Theme
Many UI resources are defined in a package called a theme. The Tizen platform provides the system themes for both the web and native UI Frameworks.
While developers MAY create and use custom themes for their applications, the system themes MUST NOT be altered, to ensure applications using this theme run consistently across all Tizen mobile devices.
2.12.3. Notification Tray
The Notification Tray is an area used to display notifications from applications such as the most recent texts, calls, emails, and more. It is accessible by simply pulling down on the status bar. Tizen provides APIs to display notifications to the user in the Notification Tray. Mobile device implementations MUST provide the Notification Tray.
2.12.4. Keys
Mobile device implementations MUST provide the following functions through either dedicated physical (hardware) buttons or as dedicated software-implemented keys:
Home - used to navigate to the Home screen in an application. The key will always send the application in use to the background and bring the Home screen to the front.
Volume - used to adjust volume of incoming call, notification, media, system, etc.
Power - used to turn on/off the device or display.
2.13. Security
The following are security requirements for Tizen platforms.
The device MUST follow the Linux standard security model, including: o Applications MUST run under a non root user ID. o An application MUST only be allowed to manipulate files in the following
locations: home directory, shared media directory, shared system resources, and temporary directories.
Smack based access control and process isolation: o The device SHOULD have a Linux kernel including all Smack features from
Linux kernel version 3.5 or later, and the Smack features SHOULD be enabled. o The device SHOULD include a Smack security policy which MUST NOT conflict
with the Tizen Reference Policy [ref TBD]. o All applications SHOULD run with Smack labels different from the predefined
Smack labels.
Secure execution environment: o Native applications SHALL be launched by the application framework. o Web applications SHALL be launched by the web runtime. o There SHALL NOT be any set-user-ID binaries in the device o The runtime environment SHALL NOT allow any other privilege than the
permissions described in Smack security policy.
Smack supported modules: o The device SHOULD contain busybox or coreutils, d-bus, udev, and Xorg with
Smack capability enabled by Tizen o The device SHOULD contain the Tizen rpm security plugin
Privileged information o The device MUST NOT allow any other privilege than the permissions
described in the application’s manifest file.
2.14. Multimedia
The following media formats/codecs MUST be supported by mobile device implementations.
Format Codec Status
Audio codec (Decoder)
AAC Required
AMR-NB Required
MIDI Required
MP3 Required
Vorbis Required
WAV Required
Audio codec (Encoder)
AAC Required
AMR-NB Required
Vorbis Required
Video codec (Decoder)
H.263 Required
H.264 Required
MPEG-4 part 2 Required
MPEG-4 part 2 MS v1 Required
MPEG-4 part 2 MS v2 Required
MPEG-4 part 2 MS v3 Required
Video codec (Encoder)
H.263 Required
H.264 Required
MPEG-4 part 2 Required
MPEG-4 part 2 MS v2 Required
MPEG-4 part 2 MS v3 Required
Container Format
3GPP Required
AAC Required
AMR Required
MIDI Required
MP3 Required
MP4 Required
OGG Required
WAV Required
Image Codec (Decoder)
BMP Required
GIF Required
JPEG Required
PNG Required
Image Codec (Encoder)
JPEG Required
PNG Required
2.15. Developer Tools
Mobile device implementations MUST support the tools provided in the Tizen SDK. In particular, implementations MUST support the Smart Development Bridge (SDB) [ref. 14]. The SDB is a device management tool in the Tizen SDK.
Mobile device implementations MUST include services which enable communication with the Tizen SDK, enabling the following development tasks:
Push a file to the device
Pull a file to the device
Start a shell script
Install or remove an application
List installed applications
2.16. Software Update
The system MUST provide a mechanism for updating system software. “Live” updating (not requiring a reboot) is not mandatory.
When updating software, user data, application private data, and application shared data MUST be preserved.
2.17. Tizen Compliance Tests
The Tizen compliance tests verify conformance to the requirements of this specification. Platforms MUST pass the compliance tests to be considered Tizen compliant.
3. Mobile Profile Hardware Compliance
This chapter describes mandatory and optional hardware components. If a mobile device includes an optional hardware component that has a corresponding API, the implementation MUST implement that API as described in this specification.
3.1. Mandatory Hardware requirements
These minimum hardware features MUST be provided by a compliant Mobile device implementation.
3.1.1. Memory Storage
A Tizen mobile device MUST have at least 512MB of RAM (with IOMMU support). A mobile device implementation MUST have at least 1GB of storage. Mobile device implementations MUST be able to access data from a shared repository on a host computer. The precise method is unspecified. Two optional methods are USB mass storage (UMS) and Media Transfer Protocol (MTP). If a USB port is not available, the mobile device implementation MUST provide some other way to access stored data from a host computer, such as a network file system.
3.1.2. Sound
A mobile device implementation MUST support at least one audio output.
3.1.3. Connectivity / Networking
A mobile device implementation MUST support at least one form of data networking. Examples of acceptable data networking technologies include Ethernet, WiFi, LTE, HSPA, etc. No specific data networking scheme is required. Implementations MAY omit any individual mechanism, as long as at least one method is supported.
3.1.4. Display
A mobile device implementation MUST provide a minimum screen resolution of 800x480 (WVGA).
The screen orientation MAY be fixed or dynamically rotatable at 90 degree angles.
A mobile device implementation MUST support a 32-bit frame buffer.
3.1.5. GPS
A mobile device implementation MUST provide GPS functionality and MUST support the GPS API.
3.1.6. Input Devices
A mobile device implementation MUST provide a keyboard input implementation to applications.
Implementations MAY omit a full hardware keyboard.
If no hardware keyboard is available, a soft keyboard MUST be provided.
A soft keyboard or an input method setup MUST be able to augment keyboards not capable of “full QWERTY”. Example: a 12 key number pad numeric input which allows entering alphabetical letters through multiple presses of a key.
Mobile device implementations MUST include a touchscreen capable of single touch. Multi-touch capability is recommended, if possible.
3.2. Optional Hardware
If a mobile device includes an optional hardware component that has a corresponding API, the implementation MUST implement that API as described in this specification.
Mobile device implementations MUST accurately report the presence of optional hardware components in:
the Tizen Web API SystemInfoDeviceCapability capabilities (see section 5.4.1) and
the Tizen Native API Tizen::System::SystemInfo capabilities (see section 1.1.1)
3.2.1. Camera
A mobile device implementation MAY omit a camera device. If a camera device is present, at least a 1.5 megapixel rear-facing camera MUST be provided.
Mobile device implementations MUST accurately report the presence or absence of cameras.
3.2.2. Graphics
A mobile device implementation MAY omit 3D Graphics hardware acceleration. However, it is strongly recommended to include hardware acceleration to provide the best possible user experience on the device.
3.2.3. USB
A mobile device implementation MAY omit USB capability.
If USB is provided, then the implementation MUST support:
microUSB type with USB2.0
the Smart Debug Bridge (SDB)
Mobile device implementations MUST accurately report the presence or absence of USB.
3.2.4. Sensors
A mobile device implementation MAY omit any and all sensors listed in this specification. If an implementation provides any sensor from this specification, it MUST meet the specific requirements for that sensor type. See Section 5.6 for details.
Mobile device implementations MUST accurately report the presence or absence of sensors.
3.2.5. Telephony
A mobile device implementation MAY omit telephony hardware features. If an implementation includes telephony hardware, it MUST support voice calls and the messaging API (SMS) using cellular technologies.
Mobile device implementations MUST accurately report the presence or absence of telephony.
3.2.6. Bluetooth
A mobile device implementation MAY omit Bluetooth capability. If an implementation includes Bluetooth hardware features, it MUST support the Bluetooth API.
Mobile device implementations SHOULD implement profiles AVRCP and OBEX.
Mobile device implementations MUST accurately report the presence or absence of Bluetooth.
3.2.7. Wi-Fi
A mobile device implementation MAY omit Wi-Fi capability. If an implementation includes Wi-Fi hardware features, it MUST support the Wi-Fi API.
Mobile device implementations MUST accurately report the presence or absence of Wi-Fi.
3.2.8. NFC
A mobile device implementation MAY omit NFC capability. If an implementation includes NFC hardware, it MUST support the NFC API. Mobile device implementations MUST read/write NDEF messages in NFC standard formats, such as NFC Forum Tag Types 1, 2, 3, and 4. [ref. 7] A Tizen mobile device MUST support sending and receiving data using the following standards:
Connection Handover 1.2 [ref. 6]
NFCIP-1 (ISO 18092) [ref. 4]
LLCP 1.0 [ref. 8]
SNEP 1.0 [ref. 9]
Mobile device implementations MUST accurately report the presence or absence of NFC.
3.2.9. Input Devices
A mobile device implementation MAY omit a microphone. Mobile device Implementations MUST accurately report the presence or absence of a microphone.
4. Mobile Profile Application Compliance
This chapter provides information for application developers to aid them in creating applications which will run on Tizen compliant devices.
4.1. API Use
Applications MUST use only the APIs defined in the Tizen Web API and the Tizen Native API specifications when making calls external to the application. Compliant web applications MAY also use any RESTful web APIs implemented using HTTP and the principles of REST (Representational state transfer). Web applications MAY also use RESTful APIs provided by other open services, as well as JavaScript libraries included in the resources of the application, subject to the condition that
the web application’s configuration specifies the REST API domain in the <access> tag,
according to the W3C Widget Access Request Policy [ref. 28].
4.2. Application Packaging
Applications MUST follow the packaging guidelines as defined for the platform (see section 2.9).
4.3. Application Lifecycle
Native applications MUST be implemented with the Tizen Native API application lifecycle. [ref. 20]
4.4. Namespace
Applications SHOULD include a namespace, such as: <company>.<application>. Applications MUST NOT overwrite the Tizen API namespaces. In a case where the Tizen namespace includes sections for plugin use, an application MAY write into the appropriate plugin area of the namespace, taking care not to conflict with any other plugins.
4.5. Application Features and Privileges
A Tizen application MUST declare the features (see section 5.2), privileges (see section 5.3) that it uses in the configuration document included in the application package. The application will only be granted privileges for the listed APIs. In some circumstances, confirmation will be required before privilege is granted. Confirmation may occur at install time or at access time (“user consent”). The Tizen Web API configuration document (config.xml) uses syntax according to these examples: <feature name="http://tizen.org/feature/network.nfc"/>
<tizen:privilege name="http://tizen.org/privilege/application.launch"/>
The Tizen Native API configuration document (manifest.xml) uses syntax according to these examples:
<Requirements>
<Feature Name="http://tizen.org/feature/camera.front.flash">true
</Feature>
</Requirements>
<Privileges>
<Privilege>http://tizen.org/privilege/notification</Privilege>
</Privileges>
5. Appendix
This chapter contains tables of information providing further details for API aspects referenced elsewhere in this specification.
5.1. Tizen Application Control
Use case Action Scheme MIME
Browse a webpage http://tizen.org/appcontrol/operation/view file http
https
Select a file http://tizen.org/appcontrol/operation/pick file
Display an image http://tizen.org/appcontrol/operation/view file http https
image/bmp image/gif image/jpeg image/png
Play a video http://tizen.org/appcontrol/operation/view file video/mp4
Play a sound http://tizen.org/appcontrol/operation/view file
audio/aac audio/amr audio/mid audio/mp3 audio/wav
5.2. Tizen Features
Certain hardware or software features must be identified by the mobile device implementation and declared in application packages to allow matching of applications to mobile device implementation so applications can run with full capabilities. The following tables list the official Tizen feature names.
5.2.1. Tizen Web API
Feature
http://tizen.org/feature/network.nfc
http://tizen.org/feature/network.bluetooth
http://tizen.org/feature/camera
http://tizen.org/feature/location.gps
http://tizen.org/feature/microphone
http://tizen.org/feature/sensor.accelerometer
http://tizen.org/feature/sensor.gyroscope
http://tizen.org/feature/sensor.magnetometer
5.2.2. Tizen Native API
Feature
http://tizen.org/feature/camera
http://tizen.org/feature/camera.back
http://tizen.org/feature/camera.back.flash
http://tizen.org/feature/camera.front
http://tizen.org/feature/camera.front.flash
http://tizen.org/feature/database.encryption
http://tizen.org/feature/fmradio
http://tizen.org/feature/input.keyboard
http://tizen.org/feature/input.keyboard.layout
http://tizen.org/feature/location
http://tizen.org/feature/location.gps
http://tizen.org/feature/location.wps
http://tizen.org/feature/microphone
http://tizen.org/feature/multi_point_touch.point_count
http://tizen.org/feature/network.bluetooth
http://tizen.org/feature/network.telephony
http://tizen.org/feature/network.wifi
http://tizen.org/feature/network.wifi.direct
http://tizen.org/feature/network.nfc
http://tizen.org/feature/opengles.texture_format.utc
http://tizen.org/feature/opengles.texture_format.ptc
http://tizen.org/feature/opengles.texture_format.etc
http://tizen.org/feature/opengles.texture_format.3dc
http://tizen.org/feature/opengles.texture_format.atc
http://tizen.org/feature/opengles.texture_format.pvrtc
http://tizen.org/feature/opengles.version.1_1
http://tizen.org/feature/opengles.version.2_0
http://tizen.org/feature/platform.core.cpu.arch.armv6
http://tizen.org/feature/platform.core.cpu.arch.armv7
http://tizen.org/feature/platform.core.cpu.arch.x86
http://tizen.org/feature/platform.core.cpu.arch.llvm
http://tizen.org/feature/platform.core.fpu.arch.vfpv2
http://tizen.org/feature/platform.core.fpu.arch.vfpv3
http://tizen.org/feature/platform.core.fpu.arch.sse2
http://tizen.org/feature/platform.core.fpu.arch.sse3
http://tizen.org/feature/platform.core.fpu.arch.ssse3
http://tizen.org/feature/platform.native.api.version
http://tizen.org/feature/platform.web.api.version
http://tizen.org/feature/platform.version
http://tizen.org/feature/sensor.accelerometer
http://tizen.org/feature/sensor.accelerometer.wakeup
http://tizen.org/feature/sensor.barometer
http://tizen.org/feature/sensor.barometer.wakeup
http://tizen.org/feature/sensor.gyroscope
http://tizen.org/feature/sensor.gyroscope.wakeup
http://tizen.org/feature/sensor.magnetometer
http://tizen.org/feature/sensor.magnetometer.wakeup
http://tizen.org/feature/sensor.photometer
http://tizen.org/feature/sensor.photometer.wakeup
http://tizen.org/feature/sensor.proximity
http://tizen.org/feature/sensor.proximity.wakeup
http://tizen.org/feature/sensor.tiltmeter
http://tizen.org/feature/sensor.tiltmeter.wakeup
http://tizen.org/feature/sip.voip
http://tizen.org/feature/speech.recognition
http://tizen.org/feature/usb.accessory
http://tizen.org/feature/usb.host
5.3. Tizen Privileges
Certain APIs have restricted usage models, either requiring an elevated privilege level or some confirmation mechanism (such as user consent) prior to usage. Applications declare their intent to use privileged APIs by including a privilege declaration in the application configuration document. The following tables list the official Tizen privilege names.
5.3.1. Tizen Web API Privileges
Privilege
http://tizen.org/privilege/alarm
http://tizen.org/privilege/application.launch
http://tizen.org/privilege/application.read
http://tizen.org/privilege/bluetooth.admin
http://tizen.org/privilege/bluetooth.gap
http://tizen.org/privilege/bluetooth.spp
http://tizen.org/privilege/bluetooth.opp
http://tizen.org/privilege/calendar.read
http://tizen.org/privilege/calendar.write
http://tizen.org/privilege/callhistory.read
http://tizen.org/privilege/callhistory.write
http://tizen.org/privilege/contact.read
http://tizen.org/privilege/contact.write
http://tizen.org/privilege/content.read
http://tizen.org/privilege/content.write
http://tizen.org/privilege/download
http://tizen.org/privilege/filesystem.read
http://tizen.org/privilege/filesystem.write
http://tizen.org/privilege/messaging.read
http://tizen.org/privilege/messaging.send
http://tizen.org/privilege/messaging.write
http://tizen.org/privilege/nfc.admin
http://tizen.org/privilege/nfc.cardemulation
http://tizen.org/privilege/nfc.common
http://tizen.org/privilege/nfc.p2p
http://tizen.org/privilege/nfc.tag
http://tizen.org/privilege/notification.read
http://tizen.org/privilege/notification.write
http://tizen.org/privilege/power
http://tizen.org/privilege/setting
http://tizen.org/privilege/systeminfo
5.3.2. Tizen Native API Privileges
Privilege
http://tizen.org/privilege/alarm
http://tizen.org/privilege/application.launch
http://tizen.org/privilege/audiorecorder
http://tizen.org/privilege/bluetooth.admin
http://tizen.org/privilege/bluetooth.gap
http://tizen.org/privilege/bluetooth.health
http://tizen.org/privilege/bluetooth.opp
http://tizen.org/privilege/bluetooth.spp
http://tizen.org/privilege/calendar.read
http://tizen.org/privilege/calendar.write
http://tizen.org/privilege/camera
http://tizen.org/privilege/contact.read
http://tizen.org/privilege/contact.write
http://tizen.org/privilege/content.read
http://tizen.org/privilege/content.write
http://tizen.org/privilege/dns
http://tizen.org/privilege/download
http://tizen.org/privilege/http
http://tizen.org/privilege/location
http://tizen.org/privilege/messaging.email
http://tizen.org/privilege/messaging.mms
http://tizen.org/privilege/messaging.sms
http://tizen.org/privilege/network.account
http://tizen.org/privilege/network.connection
http://tizen.org/privilege/network.statistics.read
http://tizen.org/privilege/network.statistics.write
http://tizen.org/privilege/nfc.admin
http://tizen.org/privilege/nfc.common
http://tizen.org/privilege/nfc.p2p
http://tizen.org/privilege/nfc.tag
http://tizen.org/privilege/notification
http://tizen.org/privilege/packageinfo
http://tizen.org/privilege/platforminfo
http://tizen.org/privilege/power
http://tizen.org/privilege/push
http://tizen.org/privilege/setting
http://tizen.org/privilege/socket
http://tizen.org/privilege/systeminfo
http://tizen.org/privilege/vibrator
http://tizen.org/privilege/videorecorder
http://tizen.org/privilege/web.privacy
http://tizen.org/privilege/web.service
http://tizen.org/privilege/wifi.admin
http://tizen.org/privilege/wifi.read
http://tizen.org/privilege/wifi.wifidirect.admin
http://tizen.org/privilege/wifi.wifidirect.read
5.4. Tizen Device Capabilities
Mobile device implementations must accurately report details of the implementation through the device capabilities API. The following tables list the official Tizen capability names.
5.4.1. Tizen Web API (SystemInfoDeviceCapability)
Attribute Description
bluetooth Indicates whether the device supports Bluetooth.
nfc Indicates whether the device supports NFC.
multiTouchCount The number of points in Multi-point touch.
inputKeyboard Indicates whether the device supports a keyboard.
wifi Indicates whether the device supports Wi-Fi.
wifiDirect Indicates whether the device supports Wi-Fi direct.
openglesVersion1_1 Indicates whether the device supports OpenGL-ES version 1.1.
openglesVersion2_0 Indicates whether the device supports OpenGL-ES version 2.0.
fmRadio Indicates whether the device supports FM radio.
platformVersion The version of the platform in the "[Major].[Minor].[Build Version]" format. For example, "1.0.0" represents a platform version where the major version is 1 and the minor and build versions are 0.
platformName The name of the platform.
cameraFront Indicates whether the device supports front camera.
cameraFrontFlash Indicates whether the device supports flash on the front camera.
cameraBack Indicates whether the device supports back-side camera.
cameraBackFlash Indicates whether the device supports flash on the back-side camera.
location Indicates whether the device supports location.
locationGps Indicates whether the device supports GPS based location feature.
locationWps Indicates whether the device supports WPS based location feature.
microphone Indicates whether the device supports a microphone.
usbHost Indicates whether the device supports USB host.
usbAccessory Indicates whether the device supports USB accessory.
screenOutputRca Indicates whether the device supports RCA output.
screenOutputHdmi Indicates whether the device supports HDMI output.
platformCoreCpuArch The device CPU architecture. possible output (armv6 / armv7 / x86 / llvm)
platformCoreFpuArch The device FPU architecture. possible output (vfpv2 / vfpv3 / sse2 / sse3 / ssse3)
sipVoip Indicates whether the device supports VOIP.
duid The device’s unique ID.
speechRecognition Indicates whether the device supports speech recognition.
accelerometer Indicates whether the device supports an accelerometer sensor.
sensorBarometer Indicates whether the device supports a barometer sensor.
gyroscope Indicates whether the device supports a gyroscope sensor.
magnetometer Indicates whether the device supports a magnetometer sensor.
proximity Indicates whether the device supports a proximity sensor.
5.4.2. Tizen Native API (Tizen::System::SystemInfo)
Key Description
http://tizen.org/feature/camera
Indicates whether the device supports camera.
http://tizen.org/feature/camera.back
Indicates whether the device supports back-side camera.
http://tizen.org/feature/camera.back.flash
Indicates whether the device supports a flash on the back-side camera.
http://tizen.org/feature/camera.front
Indicates whether the device supports front camera.
http://tizen.org/feature/camera.front.flash
Indicates whether the device supports flash on the front camera.
http://tizen.org/feature/database.encryption
Indicates whether the device supports database encrypt feature. You can useTizen::Io::Database to obtain more information on database.
http://tizen.org/system/duid
The device unique ID.
http://tizen.org/feature/fmradio
Indicates whether the device supports FM radio.
http://tizen.org/feature/input.keyboard
Indicates whether the device supports a built-in-keyboard.
http://tizen.org/feature/i Indicates the built-in keyboard layout.
nput.keyboard.layout
http://tizen.org/feature/location
Indicates whether the device supports location features.
http://tizen.org/feature/location.gps
Indicates whether the device supports the GPS-based location feature.
http://tizen.org/feature/location.wps
Indicates whether the device supports the WPS-based location feature.
http://tizen.org/feature/microphone
Indicates whether the device supports a microphone.
http://tizen.org/system/model_name
The device model name.
http://tizen.org/feature/multi_point_touch.point_count
The maximum count of multi-point touches.
http://tizen.org/feature/network.bluetooth
Indicates whether the device supports Bluetooth.
http://tizen.org/feature/network.nfc
Indicates whether the device supports NFC.
http://tizen.org/feature/network.telephony
Indicates whether the device supports telephony or not.
http://tizen.org/feature/network.telephony.service.cdma
Indicates whether the device supports CDMA service.
http://tizen.org/feature/network.telephony.service.edge
Indicates whether the device supports EDGE service.
http://tizen.org/feature/network.telephony.service.gprs
Indicates whether the device supports GPRS service.
http://tizen.org/feature/network.telephony.service.gsm
Indicates whether the device supports GSM service.
http://tizen.org/feature/network.telephony.service.hsdpa
Indicates whether the device supports HSDPA service.
http://tizen.org/feature/network.telephony.service.hspa
Indicates whether the device supports HSPA service.
http://tizen.org/feature/network.telephony.service.hsupa
Indicates whether the device supports HSUPA service.
http://tizen.org/feature/network.telephony.service.lte
Indicates whether the device supports LTE service.
http://tizen.org/feature/network.telephony.service.
Indicates whether the device supports UMTS service.
umts
http://tizen.org/feature/network.wifi
Indicates whether the device supports Wi-Fi.
http://tizen.org/feature/network.wifi.direct
Indicates whether the device supports Wi-Fi Direct.
http://tizen.org/feature/opengles.texture_format.utc
The supported texture format for OpenGL® ES.
http://tizen.org/feature/opengles.texture_format.ptc
The supported texture PTC format for OpenGL® ES.
http://tizen.org/feature/opengles.texture_format.etc
The supported texture ETC format for OpenGL® ES.
http://tizen.org/feature/opengles.texture_format.3dc
The supported texture 3DCformat for OpenGL® ES.
http://tizen.org/feature/opengles.texture_format.atc
The supported texture ATCformat for OpenGL® ES.
http://tizen.org/feature/opengles.texture_format.pvrtc
The supported texture PVRTC format for OpenGL® ES.
http://tizen.org/feature/opengles.version.1_1
Indicates whether the device supports OpenGL® ES version 1.1.
http://tizen.org/feature/opengles.version.2_0
Indicates whether the device supports OpenGL® ES version 2.0.
http://tizen.org/feature/platform.core.cpu.arch.armv6
Indicates whether the device supports ARMv6 architecture.
http://tizen.org/feature/platform.core.cpu.arch.armv7
Indicates whether the device supports ARMv7 architecture.
http://tizen.org/feature/platform.core.cpu.arch.x86
Indicates whether the device supports x86 architecture.
http://tizen.org/feature/platform.core.fpu.arch.vfpv2
Indicates whether the device supports VFPV2.
http://tizen.org/feature/platform.core.fpu.arch.vfpv3
Indicates whether the device supports VFPV3.
http://tizen.org/feature/platform.core.fpu.arch.sse2
Indicates whether the device supports SSE2.
http://tizen.org/feature/platform.core.fpu.arch.sse3
Indicates whether the device supports SSE3.
http://tizen.org/feature/p Indicates whether the device supports SSSE3.
latform.core.fpu.arch.ssse3
http://tizen.org/system/platform.name
Platform name.
http://tizen.org/feature/screen.bpp
The number of bits per pixel. The value depends on the screen. It provides typically 8, 16, 24 or 32.
http://tizen.org/feature/screen.coordinate_system.logical.normal
Indicates whether the device supports logical normal coordinatesystem.
http://tizen.org/feature/screen.coordinate_system.logical.large
Indicates whether the device supports logical large coordinatesystem.
http://tizen.org/feature/screen.coordinate_system.physical.normal_480x800
Indicates whether the device supports physical normal coordinatesystem width 480x800 resolution.
http://tizen.org/feature/screen.coordinate_system.physical.normal_720x1280
Indicates whether the device supports physical normal coordinatesystem width 720x1280 resolution.
http://tizen.org/feature/screen.coordinate_system.physical.large_480x800
Indicates whether the device supports physical large coordinatesystem width 480x800 resolution.
http://tizen.org/feature/screen.coordinate_system.physical.large_720x1280
Indicates whether the device supports physical large coordinatesystem width 720x1280 resolution.
http://tizen.org/feature/screen.dpi
Indicates whether the device supports the desktop mode.
http://tizen.org/feature/screen.height
The height of the screen in pixels.
http://tizen.org/feature/screen.output.hdmi
Indicates whether the device supports HDMI output.
http://tizen.org/feature/screen.output.rca
Indicates whether the device supports RCA output.
http://tizen.org/feature/screen.coordinate_system.size.normal
Indicates whether the device supports normal screen size of coordinatesystem..
http://tizen.org/feature/screen.coordinate_system.size.large
Indicates whether the device supports large screen size of coordinatesystem.
http://tizen.org/feature/screen.size.normal
Indicates whether the device supports normal screen size.
http://tizen.org/feature/screen.size.large
Indicates whether the device supports large screen size.
http://tizen.org/feature/screen.width
The width of the screen in pixels.
http://tizen.org/feature/s Indicates whether the device supports the accelerometer
ensor.accelerometer sensor.
http://tizen.org/feature/sensor.accelerometer.wakeup
Indicates whether the device supports the accelerometer sensor wake-up operation.
http://tizen.org/feature/sensor.barometer
Indicates whether the device supports the barometer sensor.
http://tizen.org/feature/sensor.barometer.wakeup
Indicates whether the device supports the barometer sensor wake-up operation.
http://tizen.org/feature/sensor.gyroscope
Indicates whether the device supports the gyroscope sensor.
http://tizen.org/feature/sensor.gyroscope.wakeup
Indicates whether the device supports the gyroscope sensor wake-up operation.
http://tizen.org/feature/sensor.magnetometer
Indicates whether the device supports the magnetic sensor.
http://tizen.org/feature/sensor.magnetometer.wakeup
Indicates whether the device supports the magnetic sensor wake-up operation.
http://tizen.org/feature/sensor.photometer
Indicates whether the device supports the photo (light) sensor.
http://tizen.org/feature/sensor.photometer.wakeup
Indicates whether the device supports the photo sensor wake-up operation.
http://tizen.org/feature/sensor.proximity
Indicates whether the device supports the proximity sensor.
http://tizen.org/feature/sensor.proximity.wakeup
Indicates whether the device supports the proximity sensor wake-up operation.
http://tizen.org/feature/sensor.tiltmeter
Indicates whether the device supports the tilt sensor.
http://tizen.org/feature/sensor.tiltmeter.wakeup
Indicates whether the device supports the tilt sensor wake-up operation.
http://tizen.org/feature/sip.voip
Indicates whether the device supports VOIP.
http://tizen.org/system/sound.media.volume.resolution.max
The maximum sound volume level of the media category.
http://tizen.org/system/sound.notification.volume.resolution.max
The maximum sound volume level of the notification category.
http://tizen.org/system/sound.ringtone.volume.resolution.max
The maximum sound volume level of the ringtone category.
http://tizen.org/system/sound.system.volume.resolution.max
The maximum sound volume level of the system category.
http://tizen.org/feature/speech.recognition
Indicates whether the device supports speech recognition.
http://tizen.org/feature/u Indicates whether the device supports the USB accessory
sb.accessory mode.
http://tizen.org/feature/usb.host
Indicates whether the device supports the USB host mode.
5.5. Preliminary Web APIs
The following table indicates those API sets that are in a preliminary state. Such APIs do not carry a version compatibility promise. They may change in future versions of Tizen if the specifications change.
Feature Spec URL
DOM, Forms and Styles
HTML5 Forms http://www.w3.org/TR/2011/WD-html5-20110525/forms.html#forms
Selectors API Level 1
http://www.w3.org/TR/2012/WD-selectors-api-20120628/
Selectors API Level 2 (Partial)
http://www.w3.org/TR/2010/WD-selectors-api2-20100119/?path=5_2_6#matchesselector0
CSS 2D Transforms http://www.w3.org/TR/2011/WD-css3-2d-transforms-20111215/
CSS 3D Transforms Module Level 3
http://www.w3.org/TR/2009/WD-css3-3d-transforms-20090320
CSS Animations Module Level 3
http://www.w3.org/TR/2009/WD-css3-animations-20090320
CSS Transitions Module Level 3
http://www.w3.org/TR/2009/WD-css3-transitions-20091201
CSS Flexible Box Layout Module
http://www.w3.org/TR/2012/WD-css3-flexbox-20120612/
CSS Text Module Level 3 (Partial)
http://www.w3.org/TR/2012/WD-css3-text-20121113
CSS Basic User Interface Module Level 3 (CSS3 UI)
http://www.w3.org/TR/2012/WD-css3-ui-20120117/
CSS Fonts Module Level 3 (Partial)
http://www.w3.org/TR/2012/WD-css3-fonts-20120823
DOM/JavaScript related HTML5 Enhancements
http://www.w3.org/TR/2011/WD-html5-20110525/
Device
Device Orientation Event Specification (Partial)
http://www.w3.org/TR/2011/WD-orientation-event-20111201
Vibration API http://www.w3.org/TR/2012/WD-vibration-20120202/
HTML5 Browser state
http://www.w3.org/TR/2012/WD-html5-20120329/offline.html?path=5_4_5#event-online
The Screen Orientation API
http://www.w3.org/TR/2012/WD-screen-orientation-20121206/
The Network Information API
http://www.w3.org/TR/2011/WD-netinfo-api-20110607/
Graphics
HTML5 The canvas element
http://www.w3.org/TR/2012/WD-html5-20120329/the-canvas-element.html#the-canvas-element
HTML Canvas 2D Context
http://www.w3.org/TR/2012/WD-2dcontext-20120329/
HTML5 SVG http://www.w3.org/TR/2011/WD-html5-20110525/the-map-element.html#svg-0
Media
HTML5 The video element
http://www.w3.org/TR/2011/WD-html5-20110525/the-iframe-element.html#the-video-element
HTML5 The audio element
http://www.w3.org/TR/2011/WD-html5-20110525/the-iframe-element.html#the-audio-element
getUserMedia http://dev.w3.org/2011/webrtc/editor/getusermedia-20111130.html
Web Audio API (Partial)
http://www.w3.org/TR/2011/WD-webaudio-20111215/
HTML Media Capture
http://www.w3.org/TR/2012/WD-html-media-capture-20120712/
Communication
XMLHttpRequest Level 2
http://www.w3.org/TR/2012/WD-XMLHttpRequest-20120117/
HTML5 The session history of browsing contexts
http://www.w3.org/TR/2011/WD-html5-20110525/history.html#history
Server-Sent Events http://www.w3.org/TR/2011/WD-eventsource-20111020
Storage
File API http://www.w3.org/TR/2011/WD-FileAPI-20111020/
File API: Directories and System
http://www.w3.org/TR/2011/WD-file-system-api-20110419
File API: Writer http://www.w3.org/TR/2011/WD-file-writer-api-20110419/
HTML5 Application caches
http://www.w3.org/TR/2012/WD-html5-20120329/offline.html#appcache
Indexed Database API
http://www.w3.org/TR/2011/WD-IndexedDB-20111206/
Security
Cross-Origin Resource Sharing
http://www.w3.org/TR/2012/WD-cors-20120403
HTML5 The iframe http://www.w3.org/TR/2011/WD-html5-
element 20110525/the-iframe-element.html?path=5_2_8#the-iframe-element
UI
Clipboard API and events
http://www.w3.org/TR/2012/WD-clipboard-apis-20120223/
HTML5 Drag and drop
http://www.w3.org/TR/2012/WD-html5-20120329/dnd.html
Fullscreen API – Mozilla (Partial)
https://wiki.mozilla.org/index.php?title=Gecko:FullScreenAPI
viewport Metatag - Apple
https://developer.apple.com/library/safari/#documentation/appleapplications/reference/SafariHTMLRef/Articles/MetaTags.html
Performance and Optimization
Timing control for script-based animations
http://www.w3.org/TR/2012/WD-animation-timing-20120221/
Widget Widget Interface http://www.w3.org/TR/2011/WD-widgets-apis-20110607/
5.6. Sensors Requirements
The following table details required capabilities of sensors which have corresponding programming interfaces in Tizen.
Sensor Type Required Capabilities
Accelerometer
Axis: 3 (x,y,z)
Data range: -2G ~ 2G
Minimum data rate: 50Hz
Minimum resolution 0.1m/s^2
Unit: G, 9.8m/s^2 = 1G
Barometer
Provide temperature and barometric pressure
Data range: temperature 0 ~ 2000hPa, barometric pressure -10 ~ 40 degree
Minimum data rate: 10Hz
Minimum resolution 0.1hPa, 0.1 degree
Unit: hPa and degree
Gyroscope
Axis: 3 (x,y,z)
Data range: -8.73 rad/s ~ 8.73 rad/s
Minimum data rate: 50Hz
Minimum resolution 0.01 rad / s
Unit: rad/s, radians per second
Magnetometer
Axis: 3 (x,y,z) with azimuth, pitch, roll
Data range: -1200 μT ~ 1200 μT
Minimum data rate: 50Hz
Minimum resolution 0.5μT
Unit: μT, micro tesla