tizen compliance specifcation -- mobile profile

47
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.

Upload: others

Post on 03-Feb-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

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

Photometer

Provide the lux value

Data range: 0 lux ~ 45000lux

Minimum data rate: 10Hz

Minimum resolution 1 lux

Unit: lux

Proximity

Provide the lux value, can turn on/off

Data range: 0 ~ 5 cm

Minimum data rate: 10Hz

Minimum resolution 1 cm

Unit: cm