URL Live Development Suite With Source v1.0 serial key or number

URL Live Development Suite With Source v1.0 serial key or number

URL Live Development Suite With Source v1.0 serial key or number

URL Live Development Suite With Source v1.0 serial key or number

Symbian

Discontinued mobile operating system

Symbian is a discontinued mobile operating system (OS) and computing platform designed for smartphones.[6] Symbian was originally developed as a Proprietary software OS for PDAs in by the Symbian Ltd. consortium.[7] Symbian OS is a descendant of Psion's EPOC, and was released exclusively on ARMprocessors, although an unreleased x86 port existed. Symbian was used by many major mobile phone brands, like Samsung, Motorola, Sony Ericsson, and above all by Nokia. It was also prevalent in Japan by brands including Fujitsu, Sharp and Mitsubishi. As a pioneer that established the smartphone industry, it was the most popular smartphone OS on a worldwide average until the end of —at a time when smartphones were in limited use—when it was overtaken by iOS and Android. It was notably not as popular in North America.

The Symbian OS platform is formed of two components: one being the microkernel-based operating system with its associated libraries, and the other being the user interface (as middleware), which provides the graphical shell atop the OS.[8] The most prominent user interface was the S60 (formerly Series 60) platform built by Nokia, first released in and powering most Nokia Symbian devices. UIQ was a competing user interface mostly used by Motorola and Sony Ericsson that focused on pen-based devices, rather than a traditional keyboard interface from S Another interface was the MOAP(S) platform from carrier NTT DoCoMo in the Japanese market.[9][10] Applications of these different interfaces were not compatible with each other, despite each being built atop Symbian OS. Nokia became the largest shareholder of Symbian Ltd. in and purchased the entire company in [11] The non-profit Symbian Foundation was then created to make a royalty-free successor to Symbian OS – seeking to unify the platform, S60 became the Foundation's favoured interface and UIQ stopped development. The touchscreen-focused Symbian^1 (or S60 5th Edition) was created as a result in Symbian^2 (based on MOAP) was used by NTT DoCoMo, one of the members of the Foundation, for the Japanese market. Symbian^3 was released in as the successor to S60 5th Edition, by which time it became fully free software. The transition from a proprietary operating system to a free software project is believed to be one of the largest in history.[12] Symbian^3 received the Anna and Belle updates in [13][14]

The Symbian Foundation disintegrated in late and Nokia took back control of the OS development.[15][16] In February , Nokia, by now the only remaining company still supporting Symbian outside Japan, announced that it would use Microsoft's Windows Phone 7 as its primary smartphone platform, while Symbian would be gradually wound down.[17][18] Two months later, Nokia moved the OS to proprietary licensing, only collaborating with the Japanese OEMs[19] and later outsourced Symbian development to Accenture.[6][20] Although support was promised until , including two major planned updates, by Nokia had mostly abandoned development and most Symbian developers had already left Accenture,[21] and in January Nokia stopped accepting new or changed Symbian software from developers.[22] The Nokia PureView in was officially the last Symbian smartphone from Nokia.[23] NTT DoCoMo continued releasing OPP(S) (Operator Pack Symbian, successor of MOAP) devices in Japan, which still act as middleware on top of Symbian.[24] Phones running this include the FF&#;[ja] from Fujitsu and SHF&#;[ja] from Sharp in [25][25]

History[edit]

Logo of Symbian OS until the Symbian Foundation was formed in

Symbian originated from EPOC32, an operating system created by Psion in the s. In June , Psion Software became Symbian Ltd., a major joint venture between Psion and phone manufacturers Ericsson, Motorola, and Nokia.

Afterwards, different software platforms were created for Symbian, backed by different groups of mobile phone manufacturers. They include S60 (Nokia, Samsung and LG), UIQ (Sony Ericsson and Motorola) and MOAP(S) (Japanese only such as Fujitsu, Sharp etc.).

With no major competition in the smartphone OS then (Palm OS and Windows Mobile were comparatively small players), Symbian reached as high as 67% of the global smartphone market share in [26]

Despite its sizable market share then, Symbian was at various stages difficult to develop for: First (at around early-to-mids) due to the complexity of then the only native programming languages OPL and Symbian C++ and of the OS itself; then the obstinate developer bureaucracy, along with high prices of various IDEs and SDKs, which were prohibitive for independent or very small developers; and then the subsequent fragmentation, which was in part caused by infighting among and within manufacturers, each of which also had their own IDEs and SDKs. All of this discouraged third-party developers, and served to cause the native app ecosystem for Symbian not to evolve to a scale later reached by Apple's App Store or Android's Google Play.

By contrast, iPhone OS (renamed iOS in ) and Android had comparatively simpler design, provided easier and much more centralized infrastructure to create and obtain third-party apps, offered certain developer tools and programming languages with a manageable level of complexity, and having capabilities such as multitasking and graphics in order to meet future consumer demands.

Although Symbian was difficult to program for, this issue could be worked around by creating Java Mobile Edition apps, ostensibly under a "write once, run anywhere" slogan.[27] This wasn't always the case because of fragmentation due to different device screen sizes and differences in levels of Java ME support on various devices.

In June , Nokia announced the acquisition of Symbian Ltd., and a new independent non-profit organization called the Symbian Foundation was established. Symbian OS and its associated user interfaces S60, UIQ and MOAP(S) were contributed by their owners Nokia, NTT DoCoMo, Sony Ericsson and Symbian Ltd., to the foundation with the objective of creating the Symbian platform as a royalty-free, Free software, under the FSF- and OSI-approved Eclipse Public License (EPL). The platform was designated as the successor to Symbian OS, following the official launch of the Symbian Foundation in April The Symbian platform was officially made available as Free software in February [28]

Nokia became the major contributor to Symbian's code, since it then possessed the development resources for both the Symbian OS core and the user interface. Since then Nokia maintained its own code repository for the platform development, regularly releasing its development to the public repository.[29] Symbian was intended to be developed by a community led by the Symbian Foundation, which was first announced in June and which officially launched in April Its objective was to publish the source code for the entire Symbian platform under the OSI- and FSF-approved Eclipse Public License (EPL). The code was published under EPL on 4 February ; Symbian Foundation reported this event to be the largest codebase moved to Free software in history.[28][30]

However, some important components within Symbian OS were licensed from third parties, which prevented the foundation from publishing the full source under EPL immediately; instead much of the source was published under a more restrictive Symbian Foundation License (SFL) and access to the full source code was limited to member companies only, although membership was open to any organisation.[31] Also, the Free software Qt framework was introduced to Symbian in , as the primary upgrade path to MeeGo, which was to be the next mobile operating system to replace and supplant Symbian on high-end devices; Qt was by its nature free and very convenient to develop with. Several other frameworks were deployed to the platform, among them Standard C/C++, Python, Ruby, and Flash Lite. IDEs and SDKs were developed and then released for free, and app development for Symbian picked up.

In November , the Symbian Foundation announced that due to changes in global economic and market conditions (and also a lack of support from members such as Samsung[32] and Sony Ericsson), it would transition to a licensing-only organisation;[31] Nokia announced it would take over the stewardship of the Symbian platform. Symbian Foundation would remain the trademark holder and licensing entity and would only have non-executive directors involved.

With market share sliding from 39% in Q to 31% in Q,[33] Symbian was losing ground to iOS and Android quickly, eventually falling behind Android in Q[34]Stephen Elop was appointed the CEO of Nokia in September , and on 11 February , he announced a partnership with Microsoft that would see Nokia adopt Windows Phone as its primary smartphone platform,[35] and Symbian would be gradually phased out, together with MeeGo.[18] As a consequence, Symbian's market share fell, and application developers for Symbian dropped out rapidly. Research in June indicated that over 39% of mobile developers using Symbian at the time of publication were planning to abandon the platform.[36]

By 5 April , Nokia ceased to make free any portion of the Symbian software and reduced its collaboration to a small group of pre-selected partners in Japan.[5] Source code released under the EPL remains available in third party repositories.[37][38]

On 22 June , Nokia made an agreement with Accenture for an outsourcing program. Accenture will provide Symbian-based software development and support services to Nokia through ; about 2, Nokia employees became Accenture employees as of October [20] The transfer was completed on 30 September [6]

Nokia terminated its support of software development and maintenance for Symbian with effect from 1 January , thereafter refusing to publish new or changed Symbian applications or content in the Nokia Store and terminating its 'Symbian Signed' program for software certification.[39]

Features[edit]

User interface[edit]

Symbian has had a native graphics toolkit since its inception, known as AVKON (formerly known as Series 60). S60 was designed to be manipulated by a keyboard-like interface metaphor, such as the ~key augmented telephone keypad, or the mini-QWERTY keyboards. AVKON-based software is binary-compatible with Symbian versions up to and including Symbian^3.

Symbian^3 includes the Qt framework, which is now the recommended user interface toolkit for new applications. Qt can also be installed on older Symbian devices.

Symbian^4 was planned to introduce a new GUI library framework specifically designed for a touch-based interface, known as "UI Extensions for Mobile" or UIEMO (internal project name "Orbit"), which was built on top of Qt Widget; a preview was released in January , however in October Nokia announced that Orbit/UIEMO had been cancelled.

Nokia currently recommends that developers use Qt Quick with QML, the new high-level declarative UI and scripting framework for creating visually rich touchscreen interfaces that allows development for both Symbian and MeeGo; it will be delivered to existing Symbian^3 devices as a Qt update. When more applications gradually feature a user interface reworked in Qt, the legacy S60 framework (AVKON) will be deprecated and no longer included with new devices at some point, thus breaking binary compatibility with older S60 applications.[40][41]

Browser[edit]

Symbian^3 and earlier have a built-in WebKit based browser. Symbian was the first mobile platform to make use of WebKit (in June ).[42] Some older Symbian models have Opera Mobile as their default browser.

Nokia released a new browser with the release of Symbian Anna with improved speed and an improved user interface.[43]

Multiple language support[edit]

Symbian has strong localization support enabling manufacturers and 3rd party application developers to localize their Symbian based products in order to support global distribution. Current Symbian release (Symbian Belle) has support for 48 languages, which Nokia makes available on device in language packs (set of languages which cover the languages commonly spoken in the area where the device variant is intended to be sold). All language packs have in common English (or a locally relevant dialect of it). The supported languages [with dialects] (and scripts) in Symbian Belle are:

  • Arabic (Arabic),
  • Basque (Latin),
  • Bulgarian (Cyrillic),
  • Catalan (Latin),
  • Chinese [PRC] (Simplified Chinese),
  • Chinese [Hong Kong] (Traditional Chinese),
  • Chinese [Taiwan] (Traditional Chinese),
  • Croatian (Latin),
  • Czech (Latin),
  • Danish (Latin),
  • Dutch (Latin),
  • English [UK] (Latin),
  • English [US] (Latin),
  • Estonian (Latin),
  • Finnish (Latin),
  • French (Latin),
  • French [Canadian] (Latin),
  • Galician (Latin),
  • German (Latin),
  • Greek (Greek),
  • Hebrew (Hebrew),
  • Hindi (Indian),
  • Hungarian (Latin),
  • Icelandic (Latin),
  • Indonesian [Bahasa Indonesia] (Latin),
  • Italian (Latin),
  • Japanese (Japanese script)*
  • Kazakh (Cyrillic),
  • Latvian (Latin),
  • Lithuanian (Latin),
  • Malay [Bahasa Malaysia] (Latin),
  • Marathi (India - Maharashtra),
  • Norwegian (Latin),
  • Persian [Farsi],
  • Polish (Latin),
  • Portuguese (Latin),
  • Portuguese [Brazilian] (Latin),
  • Romanian [Romania] (Latin),
  • Russian (Cyrillic),
  • Serbian (Latin),
  • Slovak (Latin),
  • Slovene (Latin),
  • Spanish (Latin),
  • Spanish [Latin America] (Latin),
  • Swedish (Latin),
  • Tagalog [Filipino] (Latin),
  • Thai (Thai),
  • Tamil (India)
  • Turkish (Latin),
  • Ukrainian (Cyrillic),
  • Urdu (Arabic),
  • Vietnamese (Latin).

Symbian Belle marks the introduction of Kazakh, while Korean is no longer supported.

  • Japanese is only available on Symbian^2 devices as they are made in Japan, and on other Symbian devices Japanese is still supported with limitations.

Application development[edit]

From , Symbian switched to using standard C++ with Qt as the main SDK, which can be used with either Qt Creator or Carbide.c++. Qt supports the older Symbian/S60 3rd (starting with Feature Pack 1, a.k.a. S60 ) and Symbian/S60 5th Edition (a.k.a. S60 b) releases, as well as the new Symbian platform. It also supports Maemo and MeeGo, Windows, Linux and Mac OS X.[44][45]

Alternative application development can be done using Python (see Python for S60), Adobe Flash Lite or Java ME.

Symbian OS previously used a Symbian specific C++ version, along with CodeWarrior and later Carbide.c++integrated development environment (IDE), as the native application development environment.

Web Run time (WRT) is a portable application framework that allows creating widgets on the S60 Platform; it is an extension to the S60 WebKit based browser that allows launching multiple browser instances as separate JavaScript applications.[46][47]

Application development[edit]

Qt[edit]

As of , the SDK for Symbian is standard C++, using Qt. It can be used with either Qt Creator, or Carbide (the older IDE previously used for Symbian development).[44][48] A phone simulator allows testing of Qt apps. Apps compiled for the simulator are compiled to native code for the development platform, rather than having to be emulated.[49] Application development can either use C++ or QML.

Symbian C++[edit]

As Symbian OS is written in C++ using Symbian Software's coding standards, it is possible to develop using Symbian C++, although it is not a standard implementation. Before the release of the Qt SDK, this was the standard development environment. There were multiple platforms based on Symbian OS that provided software development kits (SDKs) for application developers wishing to target Symbian OS devices, the main ones being UIQ and S Individual phone products, or families, often had SDKs or SDK extensions downloadable from the maker's website too.

The SDKs contain documentation, the header files and library files needed to build Symbian OS software, and a Windows-based emulator ("WINS"). Up until Symbian OS version 8, the SDKs also included a version of the GNU Compiler Collection (GCC) compiler (a cross-compiler) needed to build software to work on the device.

Symbian OS 9 and the Symbian platform use a new application binary interface (ABI) and needed a different compiler. A choice of compilers is available including a newer version of GCC (see external links below).

Unfortunately, Symbian C++ programming has a steep learning curve, as Symbian C++ requires the use of special techniques such as descriptors, active objects and the cleanup stack. This can make even relatively simple programs initially harder to implement than in other environments. It is possible that the techniques, developed for the much more restricted mobile hardware and compilers of the s, caused extra complexity in source code because programmers are required to concentrate on low-level details instead of more application-specific features. As of , these issues are no longer the case when using standard C++, with the Qt SDK.

Symbian C++ programming is commonly done with an integrated development environment (IDE). For earlier versions of Symbian OS, the commercial IDE CodeWarrior for Symbian OS was favoured. The CodeWarrior tools were replaced during by Carbide.c++, an Eclipse-based IDE developed by Nokia. Carbide.c++ is offered in four different versions: Express, Developer, Professional, and OEM, with increasing levels of capability. Fully featured software can be created and released with the Express edition, which is free. Features such as UI design, crash debugging etc. are available in the other, charged-for, editions. Microsoft Visual Studio and are also supported via the standardservices.com.pk plugin.

Other languages[edit]

Symbian devices can also be programmed using Python, Java ME, Flash Lite, Ruby, .NET, Web Runtime (WRT) Widgets and Standard C/C++.[50]

Visual Basic programmers can use NS Basic to develop apps for S60 3rd Edition and UIQ 3 devices.

In the past, Visual Basic, Visual Basic .NET, and C# development for Symbian were possible through AppForge Crossfire, a plugin for Microsoft Visual Studio. On 13 March AppForge ceased operations; Oracle purchased the intellectual property, but announced that they did not plan to sell or provide support for former AppForge products. Net60, a .NET compact framework for Symbian, which is developed by redFIVElabs, is sold as a commercial product. With Net60, standardservices.com.pk and C# (and other) source code is compiled into an intermediate language (IL) which is executed within the Symbian OS using a just-in-time compiler. (As of Jan 18th, , RedFiveLabs has ceased development of Net60 with this announcement on their landing page: "At this stage we are pursuing some options to sell the IP so that Net60 may continue to have a future".)

There is also a version of a Borland IDE for Symbian OS. Symbian OS development is also possible on Linux and Mac OS X using tools and methods developed by the community, partly enabled by Symbian releasing the source code for key tools. A plugin that allows development of Symbian OS applications in Apple's Xcode IDE for Mac OS X was available.[51]

Java ME applications for Symbian OS are developed using standard techniques and tools such as the Sun Java Wireless Toolkit (formerly the J2ME Wireless Toolkit). They are packaged as JAR (and possibly JAD) files. Both CLDC and CDC applications can be created with NetBeans. Other tools include SuperWaba, which can be used to build Symbian and s programs using Java.

Nokia S60 phones can also run Python scripts when the interpreter Python for S60 is installed, with a custom made API that allows for Bluetooth support and such. There is also an interactive console to allow the user to write Python scripts directly from the phone.

Deployment[edit]

Once developed, Symbian applications need to find a route to customers' mobile phones. They are packaged in SIS files which may be installed over-the-air, via PC connect, Bluetooth or on a memory card. An alternative is to partner with a phone manufacturer and have the software included on the phone itself. Applications must be Symbian Signed for Symbian OS 9.x in order to make use of certain capabilities (system capabilities, restricted capabilities and device manufacturer capabilities).[52] Applications can now be signed for free.[53]

Architecture[edit]

Technology domains and packages[edit]

Symbian's design is subdivided into technology domains,[54] each of which comprises a number of software packages.[55] Each technology domain has its own roadmap, and the Symbian Foundation has a team of technology managers who manage these technology domain roadmaps.

Every package is allocated to exactly one technology domain, based on the general functional area to which the package contributes and by which it may be influenced. By grouping related packages by themes, the Symbian Foundation hopes to encourage a strong community to form around them and to generate discussion and review.

The Symbian System Model[56] illustrates the scope of each of the technology domains across the platform packages.

Packages are owned and maintained by a package owner, a named individual from an organization member of the Symbian Foundation, who accepts code contributions from the wider Symbian community and is responsible for package.

Symbian kernel[edit]

The Symbian kernel (EKA2) supports sufficiently fast real-time response to build a single-core phone around it&#;&#; that is, a phone in which a single processor core executes both the user applications and the signalling stack.[57] The real-time kernel has a microkernel architecture containing only the minimum, most basic primitives and functionality, for maximum robustness, availability and responsiveness. It has been termed a nanokernel, because it needs an extended kernel to implement any other abstractions. It contains a scheduler, memory management and device drivers, with networking, telephony and file system support services in the OS Services Layer or the Base Services Layer. The inclusion of device drivers means the kernel is not a true microkernel.

Design[edit]

Symbian features pre-emptive multitasking and memory protection, like other operating systems (especially those created for use on desktop computers). EPOC's approach to multitasking was inspired by VMS and is based on asynchronous server-based events.

Symbian OS was created with three systems design principles in mind:

  1. the integrity and security of user data is paramount
  2. user time must not be wasted
  3. all resources are scarce

To best follow these principles, Symbian uses a microkernel, has a request-and-callback approach to services, and maintains separation between user interface and engine. The OS is optimised for low-power battery-based devices and for ROM-based systems (e.g. features like XIP and re-entrancy in shared libraries). Applications, and the OS itself, follow an object-oriented design: Model-view-controller (MVC).

Later OS iterations diluted this approach in response to market demands, notably with the introduction of a real-time kernel and a platform security model in versions 8 and 9.

There is a strong emphasis on conserving resources which is exemplified by Symbian-specific programming idioms like descriptors and a cleanup stack. Similar methods exist to conserve storage space. Further, all Symbian programming is event-based, and the central processing unit (CPU) is switched into a low power mode when applications are not directly dealing with an event. This is done via a programming idiom called active objects. Similarly the Symbian approach to threads and processes is driven by reducing overheads.

Operating system[edit]

The All over Model contains the following layers, from top to bottom:

  • UI Framework Layer
  • Application Services Layer
  • OS Services Layer
    • generic OS services
    • communications services
    • multimedia and graphics services
    • connectivity services
  • Base Services Layer
  • Kernel Services & Hardware Interface Layer

The Base Services Layer is the lowest level reachable by user-side operations; it includes the File Server and User Library, a Plug-In Framework which manages all plug-ins, Store, Central Repository, DBMS and cryptographic services. It also includes the Text Window Server and the Text Shell: the two basic services from which a completely functional port can be created without the need for any higher layer services.

Symbian has a microkernel architecture, which means that the minimum necessary is within the kernel to maximise robustness, availability and responsiveness. It contains a scheduler, memory management and device drivers, but other services like networking, telephony and filesystem support are placed in the OS Services Layer or the Base Services Layer. The inclusion of device drivers means the kernel is not a true microkernel. The EKA2 real-time kernel, which has been termed a nanokernel, contains only the most basic primitives and requires an extended kernel to implement any other abstractions.

Symbian is designed to emphasise compatibility with other devices, especially removable media file systems. Early development of EPOC led to adopting FAT as the internal file system, and this remains, but an object-oriented persistence model was placed over the underlying FAT to provide a POSIX-style interface and a streaming model. The internal data formats rely on using the same APIs that create the data to run all file manipulations. This has resulted in data-dependence and associated difficulties with changes and data migration.

There is a large networking and communication subsystem, which has three main servers called: ETEL (EPOC telephony), ESOCK (EPOC sockets) and C32 (responsible for serial communication). Each of these has a plug-in scheme. For example, ESOCK allows different ".PRT" protocol modules to implement various networking protocol schemes. The subsystem also contains code that supports short-range communication links, such as Bluetooth, IrDA and USB.

There is also a large volume of user interface (UI) Code. Only the base classes and substructure were contained in Symbian OS, while most of the actual user interfaces were maintained by third parties. This is no longer the case. The three major UIs&#;&#; S60, UIQ and MOAP&#;&#; were contributed to Symbian in Symbian also contains graphics, text layout and font rendering libraries.

All native Symbian C++ applications are built up from three framework classes defined by the application architecture: an application class, a document class and an application user interface class. These classes create the fundamental application behaviour. The remaining needed functions, the application view, data model and data interface, are created independently and interact solely through their APIs with the other classes.

Many other things do not yet fit into this model&#;&#; for example, SyncML, Java ME providing another set of APIs on top of most of the OS and multimedia. Many of these are frameworks, and vendors are expected to supply plug-ins to these frameworks from third parties (for example, Helix Player for multimedia codecs). This has the advantage that the APIs to such areas of functionality are the same on many phone models, and that vendors get a lot of flexibility. But it means that phone vendors needed to do a great deal of integration work to make a Symbian OS phone.

Symbian includes a reference user-interface called "TechView." It provides a basis for starting customisation and is the environment in which much Symbian test and example code runs. It is very similar to the user interface from the Psion Series 5 personal organiser and is not used for any production phone user interface.

Symbian UI variants/platforms[edit]

Symbian, as it advanced to OS version , spun off into several different graphical user interfaces, each backed by a certain company or group of companies. Unlike Android OS's cosmetic GUIs, Symbian GUIs are referred to as "platforms" due to more significant modifications and integrations. Things became more complicated when applications developed for different Symbian GUI platforms were not compatible with each other, and this led to OS fragmentation.[58]

User Interfaces platforms that run on or are based on Symbian OS include:

  • S60, Symbian, also called Series It was backed mainly by Nokia. There are several editions of this platform, appearing first as S60 (1st Edition) on Nokia It was followed by S60 2nd Edition (e.g. Nokia N70), S60 3rd Edition (e.g. Nokia N73) and S60 5th Edition (which introduced touch UI e.g. Nokia N97). The name, S60, was changed to just Symbian after the formation of Symbian Foundation, and subsequently called Symbian^1, 2 and 3.
  • Series 80 used by Nokia Communicators such as Nokia i.
  • Series 90 Touch and button based. The only phone using this platform is Nokia
  • UIQ backed mainly by Sony Ericsson and then Motorola. It is compatible with both buttons and touch/stylus based inputs. The last major release version is UIQ in , on Sony Ericsson G It was discontinued after the formation of Symbian Foundation, and the decision to consolidate different Symbian UI variants into one led to the adoption of S60 as the version going forward.[59]
  • MOAP (Mobile Oriented Applications Platform) [Japan Only] used by Fujitsu, Mitsubishi, Sony Ericsson and Sharp-developed phones for NTT DoCoMo. It uses an interface developed specifically for DoCoMo's FOMA "Freedom of Mobile Access" network brand and is based on the UI from earlier Fujitsu FOMA models. The user cannot install new C++ applications. (Japan Only)
  • OPP [Japan Only], successor of MOAP, used on NTT DoCoMo's FOMA phone.

Version comparison[edit]

Feature Symbian^3/Anna/Belle Symbian^2[60]Symbian^1/Series 60 5th Edition Series 60 3rd Edition UIQ () Series 80
Year released (Symbian^3), (Symbian Anna, Nokia Belle) (Japan only with MOAP/OPP middleware)
Company Symbian Foundation, later Nokia Symbian Foundation Symbian Foundation Nokia UIQ TechnologyNokia
Symbian OS version (Symbian^3/Symbian Anna), (Nokia Belle) ?
Series 60 version (Symbian^3/Symbian Anna),[61] (Nokia Belle), (Nokia Belle FP1) 5th Edition 3rd Edition Feature Pack 2 N/A N/A
Touch input support Yes Yes Yes No Yes No
Multi touch input support Yes No No No No
Number of customizable home screens Three to six (Five on Nokia E6 and Nokia , six on Nokia Belle) One Two One
Wi-Fi version support B, G, NB, G B, G B, G B, G
USB on the go support Yes No No
DVB-H support Yes, with extra headset[62]Unknown, but have 1seg support[63]Yes, with extra headset Yes, with extra headset
Short range FM transmitter support Yes Yes Yes No No
FM radio support Yes ? Yes Yes Yes No
External Storage Card Support MicroSD, up to 32GB MicroSD MicroSD MicroSD, MiniSD Memory Stick, MicroSD, MultiMedia Card MultiMedia Card
Adobe Flash support Yes, Flash Lite native version , upgradable Yes, Flash Lite native version , upgradable Yes, Flash Lite native version , upgradable Yes, Flash native version 6, not upgradable
Microsoft Silverlight support No[64][citation needed]Yes[65][66]No[67][citation needed]No
OpenGL ES support Yes, version No
SQLite support Yes Yes Yes[68]
CPU architecture support ARM SH-MobileARM ARM ARM
Programmed in C++, Qt? C++, QtC++, Qt
License Eclipse Public License;
Since 31 March Nokia Symbian License
proprietary SFL license, while some portions of source code are EPL licensed.
Public issues list No more
Package manager.sis, .sisx ? .sis, .sisx .sis, .sisx .sis, .sisx .sis, .sisx
Non English languages support Yes mainly Japanese Yes Yes Yes Yes
Underlining spell checker Yes Yes[69]Yes Yes
Keeps state on shutdown or crash No No No No
Internal search Yes Yes[63]Yes Yes Yes Yes
Proxy serverYes ? Yes Yes Yes Yes
On-device encryption Yes Yes[63]Yes Yes
Cut, copy, and paste support Yes Yes[69]Yes Yes Yes Yes
Undo No No Yes Yes Yes
Default Web Browser for S60, WebKit engine version , engine version (Symbian^3);[70] version , engine version (Symbian Anna) version , engine version ; version , engine version (for 9 selected units after firmware updates released in summer ) engine version (Nokia N79) N/A N/A
Official App Store NokiaOvi Storei-αppli/i-Widget[69]NokiaOvi Store, Sony Ericsson PlayNow Arena NokiaOvi Store, Download!
Email sync protocol support POP3, IMAP i-mode mail[69]POP3, IMAP POP3, IMAP POP3, IMAP POP3, IMAP
NFC Support Yes No No No No No
Push alerts Yes Yes Yes Yes Yes
Voice recognition Yes Yes Yes Yes
Tethering USB, Bluetooth; mobile Wi-Fi hotspot, with third-party software USB, Bluetooth; mobile Wi-Fi hotspot, with third-party software USB, Bluetooth; mobile Wi-Fi hotspot, with third-party software USB, Bluetooth;
Text, document support Mobile Office Applications, PDF Mobile Office Applications, PDF Mobile Office Applications, PDF Mobile Office Applications, PDF Mobile Office Applications, PDF Mobile Office Applications, PDF
Audio playback All wma,[63] aac[citation needed]All All wav, mp3
Video playback H, H, WMV, MPEG4, MPEG4@ HD p 25–30 frames/s, MKV, DivX, XviD WMV,[69] MPEG4[citation needed]H, WMV, MPEG4, 3GPP, 3GPP2 H, WMV, MPEG4, 3GPP, 3GPP2 H, 3GPP, 3GPP2
Turn-by-turn GPSYes, with third-party software, or Nokia MapsYes, with monthly paid Docomo Map Navi[71] (ドコモ地図ナビ[72])Yes, with third-party software, or Nokia MapsYes, with third-party software, or Nokia MapsYes, with third-party software
Video out Nokia AV (mm), PAL, NTSC, HDMI, DLNA via Nokia Play To HDMI, and Nokia AV (mm), PAL, NTSC Nokia AV (mm), PAL, NTSC No
Multitasking Yes Yes Yes Yes Yes Yes
Desktop interactive widgets Yes Yes Yes No
Integrated hardware keyboard Yes Yes Yes Yes Yes Yes
Bluetooth keyboard Yes Yes[63]Yes Yes Yes
Video conference front video camera Yes Yes Yes Yes Yes Yes
Can share data via Bluetooth with all devices Yes Yes Yes Yes Yes Yes
Skype, third-party software Yes[73]Yes[73]Yes[73]
Facebook IM chat Yes ? Yes Yes
Secure Shell (SSH) Yes, third-party software Yes, third-party software Yes, third-party software
OpenVPNNo, Nokia VPN can be used No, Nokia VPN can be used No, Nokia VPN can be used Yes, third-party software
Remote frame buffer ?
Screenshot Yes, third-party software[74]Yes, third-party software[74]
Источник: [standardservices.com.pk]
, URL Live Development Suite With Source v1.0 serial key or number

Decentralized Identifiers (DIDs) v

Abstract

Decentralized identifiers (DIDs) are a new type of identifier that enables verifiable, decentralized digital identity. A DID identifies any subject (e.g., a person, organization, thing, data model, abstract entity, etc.) that the controller of the DID decides that it identifies. In contrast to typical, federated identifiers, DIDs have been designed so that they may be decoupled from centralized registries, identity providers, and certificate authorities. Specifically, while other parties might be used to help enable the discovery of information related to a DID, the design enables the controller of a DID to prove control over it without requiring permission from any other party. DIDs are URLs that associate a DID subject with a DID document allowing trustable interactions associated with that subject. Each DID document can express cryptographic material, verification methods, or service endpoints, which provide a set of mechanisms enabling a DID controller to prove control of the DID. Service endpoints enable trusted interactions associated with the DID subject. A DID document might contain semantics about the subject that it identifies. A DID document might contain the DID subject itself (e.g. a data model).

This document specifies a common data model, a URL format, and a set of operations for DIDs, DID documents, and DID methods.

Status of This Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at standardservices.com.pk

This specification is under active development and implementers are advised against implementing the specification unless they are directly involved with the W3C DID Working Group. There are use cases [DID-USE-CASES] in active development that establish requirements for this document.

At present, there exist 40 experimental implementations and a preliminary test suite that will eventually determine whether or not implementations are conformant. Readers are advised that Appendix § Current Issues contains a list of concerns and proposed changes that will most likely result in alterations to this specification.

Comments regarding this document are welcome. Please file issues directly on GitHub, or send them to public-did-wg@standardservices.com.pk ( subscribe, archives).

Portions of the work on this specification have been funded by the United States Department of Homeland Security's Science and Technology Directorate under contracts HSHQDCRH-SB and HSHQDCC The content of this specification does not necessarily reflect the position or the policy of the U.S. Government and no official endorsement should be inferred.

Work on this specification has also been supported by the Rebooting the Web of Trust community facilitated by Christopher Allen, Shannon Appelcline, Kiara Robles, Brian Weller, Betty Dhamers, Kaliya Young, Kim Hamilton Duffy, Manu Sporny, Drummond Reed, Joe Andrieu, and Heather Vescent.

This document was published by the Decentralized Identifier Working Group as a Working Draft. This document is intended to become a W3C Recommendation.

GitHub Issues are preferred for discussion of this specification. Alternatively, you can send comments to our mailing list. Please send them to public-did-wg@standardservices.com.pk (archives).

Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This document was produced by a group operating under the W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

This document is governed by the 1 March W3C Process Document.

Introduction

This section is non-normative.

As individuals and organizations, many of us use globally unique identifiers in a wide variety of contexts. They serve as communications addresses (telephone numbers, email addresses, usernames on social media), ID numbers (for passports, drivers licenses, tax IDs, health insurance), and product identifiers (serial numbers, barcodes, RFIDs). Resources on the Internet are identified by globally unique identifiers in the form of MAC addresses; URIs (Uniform Resource Identifiers) are used for resources on the Web and each web page you view in a browser has a globally unique URL (Uniform Resource Locator).

The vast majority of these globally unique identifiers are not under our control. They are issued by external authorities that decide who or what they identify and when they can be revoked. They are useful only in certain contexts and recognized only by certain bodies (not of our choosing). They may disappear or cease to be valid with the failure of an organization. They may unnecessarily reveal personal information. And in many cases they can be fraudulently replicated and asserted by a malicious third-party ("identity theft").

The Decentralized Identifiers (DIDs) defined in this specification are a new type of globally unique identifier designed to enable individuals and organizations to generate our own identifiers using systems we trust, and to prove control of those identifiers (authenticate) using cryptographic proofs (for example, digital signatures, privacy-preserving biometric protocols, and so on).

Because we control the generation and assertion of these identifiers, each of us can have as many DIDs as we need to respect our desired separation of identities, personas, and contexts (in the everyday sense of these words). We can scope the use of these identifiers to the most appropriate contexts. We can interact with other people, institutions or systems that require us to identify ourselves (or things we control) while maintaining control over how much personal or private data should be revealed, and without depending on a central authority to guarantee the continued existence of the identifier.

This specification does not require any particular technology or cryptography to underpin the generation, persistence, resolution or interpretation of DIDs. Rather, it defines: a) the generic syntax for all DIDs, and b) the generic requirements for performing the four basic CRUD operations (create, read, update, deactivate) on the metadata associated with a DID (called the DID document).

This enables implementers to design specific types of DIDs to work with the computing infrastructure they trust (e.g., blockchain, distributed ledger, decentralized file system, distributed database, peer-to-peer network). The specification for a specific type of DID is called a DID method. Implementers of applications or systems using DIDs can choose to support the DID methods most appropriate for their particular use cases.

This specification is for:

  • Developers who want to enable users of their system to generate and assert their own identifiers (producers of DIDs);
  • Developers who want to enable their systems to accept user-controlled identifiers (consumers of DIDs);
  • Developers who wish to enable the use of DIDs with particular computing infrastructure (DID method developers).
Note: Diversity of DID systems

DID methods can also be developed for identifiers registered in federated or centralized identity management systems. Indeed, almost all types of identifier systems can add support for DIDs. This creates an interoperability bridge between the worlds of centralized, federated, and decentralized identifiers.

A Simple Example

This section is non-normative.

A DID is a simple text string consisting of three parts, the:

  • URI scheme identifier ()
  • Identifier for the DID method
  • DID method-specific identifier.
Example: A simple example of a decentralized identifier (DID)
did:exampleabcdefghi

The example DID above resolves to a DID document. A DID document contains information associated with the DID, such as ways to cryptographically authenticate the DID controller, as well as services that can be used to interact with the DID subject.

{ "@context": "standardservices.com.pk", "id": "did:exampleabcdefghi", "authentication": [{ // used to authenticate as didfghi "id": "did:exampleabcdefghi#keys-1", "type": "EdVerificationKey", "controller": "did:exampleabcdefghi", "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV" }], "service": [{ // used to retrieve Verifiable Credentials associated with the DID "id":"did:exampleabcdefghi#vcs", "type": "VerifiableCredentialService", "serviceEndpoint": "standardservices.com.pk" }] }

Design Goals

This section is non-normative.

Decentralized Identifiers are a component of larger systems, such as the Verifiable Credentials ecosystem [VC-DATA-MODEL], which drove the design goals for this specification. This section summarizes the primary design goals for this specification.

Goal Description
Decentralization Eliminate the requirement for centralized authorities or single point failure in identifier management, including the registration of globally unique identifiers, public verification keys, service endpoints, and other metadata.
Control Give entities, both human and non-human, the power to directly control their digital identifiers without the need to rely on external authorities.
Privacy Enable entities to control the privacy of their information, including minimal, selective, and progressive disclosure of attributes or other data.
Security Enable sufficient security for requesting parties to depend on DID documents for their required level of assurance.
Proof-based Enable DID controllers to provide cryptographic proof when interacting with other entities.
Discoverability Make it possible for entities to discover DIDs for other entities, to learn more about or interact with those entities.
Interoperability Use interoperable standards so DID infrastructure can make use of existing tools and software libraries designed for interoperability.
Portability Be system- and network-independent and enable entities to use their digital identifiers with any system that supports DIDs and DID methods.
Simplicity Favor a reduced set of simple features to make the technology easier to understand, implement, and deploy.
Extensibility Where possible, enable extensibility provided it does not greatly hinder interoperability, portability, or simplicity.

Architecture Overview

This section provides a basic understanding of the major elements of DID architecture. Formal definitions of terms are provided in §  Terminology .

DIDs and DID URLs
A DID, or Decentralized Identifier, is a URI composed of three parts: the scheme "did:", a method identifier, and a unique, method-specific identifier generated by the DID method. DIDs are resolvable to DID documents. A DID URL extends the syntax of a basic DID to incorporate other standard URI components (path, query, fragment) in order to locate a particular resource—for example, a public key inside a DID document, or a resource available external to the DID document.
DID Subjects
The subject of a DID is, by definition, the entity identified by the DID. The DID subject may also be the DID controller. Anything can be the subject of a DID: person, group, organization, physical thing, logical thing, etc.
DID Controllers
The controller of a DID is the entity (person, organization, or autonomous software) that has the capability—as defined by a DID method—to make changes to a DID document. This capability is typically asserted by the control of a set of cryptographic keys used by software acting on behalf of the controller, though it may also be asserted via other mechanisms. Note that a DID may have more than one controller, and the controller(s) may include the DID subject.
Verifiable Data Registries
In order to be resolvable to DID documents, DIDs are typically recorded on an underlying system or network of some kind. Regardless of the specific technology used, any such system that supports recording DIDs and returning data necessary to produce DID documents is called a verifiable data registry. Examples include distributed ledgers, decentralized file systems, databases of any kind, peer-to-peer networks, and other forms of trusted data storage.
DID documents
DID documents contain metadata associated with a DID. They typically express verification methods (such as public keys) and services relevant to interactions with the DID subject. A DID document is serialized according to a particular syntax (see § Core Representations). The DID itself is the value of the property. The generic properties supported in a DID document are specified in § Core Properties. The properties present in a DID document may be updated according to the applicable operations outlined in §  Methods .
DID Methods
DID methods are the mechanism by which a particular type of DID and its associated DID document are created, resolved, updated, and deactivated using a particular verifiable data registry. DID methods are defined using separate DID method specifications (see §  Methods ).

Conceptually, the relationship between this specification and a DID method specification is similar to the relationship between the IETF generic URI specification ([RFC]) and a specific URI scheme ([IANA-URI-SCHEMES] (such as the http: and https: schemes specified in [RFC]). It is also similar to the relationship between the IETF generic URN specification ([RFC]) and a specific URN namespace definition, (such as the UUID URN namespace defined in [RFC]). The difference is that a DID method specification, as well as defining a specific DID scheme, also specifies the methods creating, resolving, updating, and deactivating DIDs and DID documents using a specific type of verifiable data registry.

DID resolvers and DID resolution
A DID resolver is a software and/or hardware component that takes a DID (and associated input metadata) as input and produces a conforming DID document (and associated metadata) as output. This process is called DID resolution. The inputs and outputs of the DID resolution process are defined in §  Resolution . The specific steps for resolving a specific type of DID are defined by the relevant DID method specification. Additional considerations for implementing a DID resolver are discussed in [DID-RESOLUTION].
DID URL dereferencers and DID URL dereferencing
A DID URL dereferencer is a software and/or hardware component that takes a DID URL (and associated input metadata) as input and produces a resource (and associated metadata) as output. This process is called DID URL dereferencing. The inputs and outputs of the DID URL dereferencing process are defined in §  DID URL Dereferencing . Additional considerations for implementing a DID URL dereferencer are discussed in [DID-RESOLUTION].

Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words MAY, MUST, MUST NOT, OPTIONAL, RECOMMENDED, REQUIRED, SHOULD, and SHOULD NOT in this document are to be interpreted as described in BCP 14 [RFC] [RFC] when, and only when, they appear in all capitals, as shown here.

This document contains examples that contain JSON, CBOR, and JSON-LD content. Some of these examples contain characters that are invalid, such as inline comments () and the use of ellipsis () to denote information that adds little value to the example. Implementers are cautioned to remove this content if they desire to use the information as valid JSON, CBOR, or JSON-LD.

Interoperability of implementations for DIDs and DID documents will be tested by evaluating an implementation's ability to create and parse DIDs and DID documents that conform to the specification. Interoperability for producers and consumers of DIDs and DID documents is provided by ensuring the DIDs and DID documents conform. Interoperability for DID method specifications is provided by the details in each DID method specification. It is understood that, in the same way that a web browser is not required to implement all known URI schemes, conformant software that works with DIDs is not required to implement all known DID methods (however, all implementations of a given DID method must be interoperable for that method).

A is any concrete expression of the rules specified in Section § Identifier and MUST comply with relevant normative statements in that section.

A is any concrete expression of the data model described in this specification and MUST comply with the relevant normative statements in Sections § Data Model and § Core Properties. A serialization format for the conforming document MUST be deterministic, bi-directional, and lossless as described in Section § Core Representations. The conforming DID documentMAY be transmitted or stored in any such serialization format.

A is any specification that complies with the relevant normative statements in Section §  Methods .

A is any algorithm realized as software and/or hardware and conforms to this specification if it generates conforming DIDs or conforming DID Documents. A conforming producer MUST NOT produce non-conforming DIDs or DID documents.

A is any algorithm realized as software and/or hardware and conforms to this specification if it consumes conforming DIDs or conforming DID documents. A conforming consumer MUST produce errors when consuming non-conforming DIDs or DID documents.

Terminology

This section is non-normative.

This section defines the terms used in this specification and throughout decentralized identifier infrastructure. A link to these terms is included whenever they appear in this specification.

Authentication is a process (typically some type of protocol) by which an entity can prove it has a specific attribute or controls a specific secret using one or more verification methods. With DIDs, a common example would be proving control of the private key associated with a public key published in a DID document.
(DID)
A globally unique persistent identifier that does not require a centralized registration authority because it is generated and/or registered cryptographically. The generic format of a DID is defined in the DID Core specification. A specific DID scheme is defined in a DID method specification. Many—but not all—DID methods make use of distributed ledger technology (DLT) or some other form of decentralized network.
identity management that is based on the use of decentralized identifiers. Decentralized identity management extends authority for identifier generation, registration, and assignment beyond traditional roots of trust such as X directory services, the Domain Name System, and most national ID systems.
An entity that has the capability to make changes to a DID document. A DID may have more than one DID controller. The DID controller(s) can be denoted by the optional property at the top level of the DID document. Note that one DID controller may be the DID subject.
An entity to whom a DID controller has granted permission to use a verification method associated with a DID via a DID document. For example, a parent who controls a child's DID document might permit the child to use their personal device in order to authenticate. In this case, the child is the DID delegate. The child's personal device would contain the private cryptographic material enabling the child to authenticate using the DID. However the child may not be permitted to add other personal devices without the parent's permission.
A set of data describing the DID subject, including mechanisms, such as public keys and pseudonymous biometrics, that the DID subject or a DID delegate can use to authenticate itself and prove its association with the DID. A DID document may also contain other attributes or claims describing the DID subject. A DID document may have one or more different representations as defined in § Core Representations or in the W3C DID Specification Registries [DID-SPEC-REGISTRIES].
The portion of a DID URL that follows the first hash sign character (). DID fragment syntax is identical to URI fragment syntax.
A definition of how a specific DID scheme must be implemented to work with a specific verifiable data registry. A DID method is defined by a DID method specification, which must specify the precise operations by which DIDs are created, resolved and deactivated and DID documents are written and updated. See §  Methods .
The portion of a DID URL that begins with and includes the first forward slash () character and ends with either a question mark () character or a fragment hash sign () character (or the end of the DID URL). DID path syntax is identical to URI path syntax. See § Path.
The portion of a DID URL that follows and includes the first question mark character (). DID query syntax is identical to URI query syntax. See § Query.
The function that takes as its input a DID and a set of input metadata and returns a DID document in a conforming representation plus additional metadata. This function relies on the "Read" operation of the applicable DID method. The inputs and outputs of this function are defined in §  Resolution .
A DID resolver is a software and/or hardware component that performs the DID resolution function by taking a DID as input and producing a conforming DID document as output.
The formal syntax of a decentralized identifier. The generic DID scheme begins with the prefix as defined in the section of the DID Core specification. Each DID method specification must define a specific DID scheme that works with that specific DID method. In a specific DID method scheme, the DID method name must follow the first colon and terminate with the second colon, e.g.,
The entity identified by a DID and described by a DID document. A DID has exactly one DID subject. Anything can be a DID subject: person, group, organization, physical thing, digital thing, logical thing, etc.
A DID plus any additional syntactic component that conforms to the definition in § DID URL Syntax. This includes an optional DID path, optional DID query (and its leading character), and optional DID fragment (and its leading character).
The function that takes as its input a DID URL, a DID document, plus a set of dereferencing options, and returns a resource. This resource may be a DID document plus additional metadata, or it may be a secondary resource contained within the DID document, or it may be a resource entirely external to the DID document. If the function begins with a DID URL, it use the DID resolution function to fetch a DID document indicated by the DID contained within the DID URL. The dereferencing function then can perform additional processing on the DID document to return the dereferenced resource indicated by the DID URL. The inputs and outputs of this function are defined in §  DID URL Dereferencing .
(DLT)
A distributed database in which the various nodes use a consensus protocol to maintain a shared ledger in which each transaction is cryptographically signed and chained to the previous transaction.
A data object contained inside a DID document that contains all the metadata necessary to use a public key or verification key.
As defined by [RFC]: "the term 'resource' is used in a general sense for whatever might be identified by a URI." Similarly, any resource may serve as a DID subject identified by a DID.
As defined for HTTP by [RFC]: "information that is intended to reflect a past, current, or desired state of a given resource, in a format that can be readily communicated via the protocol, and that consists of a set of representation metadata and a potentially unbounded stream of representation data." A DID document is a representation of information describing a DID subject. The § Core Representations section of the DID Core specification defines several representation formats for a DID document.
Means of communicating or interacting with the DID subject or associated entities via one or more service endpoints. Examples include discovery services, agent services, social networking services, file storage services, and verifiable credential repository services.
A network address (such as an HTTP URL) at which services operate on behalf of a DID subject.
(URI)
The standard identifier format for all resources on the World Wide Web as defined by [RFC]. A DID is a type of URI scheme.
A standard data model and representation format for cryptographically-verifiable digital credentials as defined by the W3C [VC-DATA-MODEL].
A system that facilitates the creation, verification, updating, and/or deactivation of decentralized identifiers and DID documents. A verifiable data registry may also be used for other cryptographically-verifiable data structures such as verifiable credentials. For more information, see [VC-DATA-MODEL].
A verifiable timestamp enables a third-party to verify that a data object existed at a specific moment in time and that it has not been modified or corrupted since that moment in time. If the data integrity could reasonably have modified or corrupted since that moment in time, the timestamp is not verifiable.

A set of parameters that can be used together with a process or protocol to independently verify a proof. For example, a public key can be used as a verification method with respect to a digital signature; in such usage, it verifies that the signer possessed the associated private key.

"Verification" and "proof" in this definition are intended to apply broadly. For example, a public key might be used during Diffie-Hellman key exchange to negotiate a shared symmetric key for encryption. This guarantees the integrity of the key agreement process. It is thus another type of verification method, even though descriptions of the process might not use the words "verification" or "proof."

An expression of the relationship between the DID subject and a verification method. An example of a verification relationship is § authentication.

(UUID)
A type of globally unique identifier defined by [RFC]. UUIDs are similar to DIDs in that they do not require a centralized registration authority. UUIDs differ from DIDs in that they are not resolvable or cryptographically-verifiable.

In addition to the terminology above, this specification also uses terminology from the [INFRA] specification to formally define the abstract data model. When [INFRA] terminology is used, such as string, ordered set, and map, it is linked directly to that specification.

Identifier

This section describes the formal syntax for DIDs and DID URLs. The term "generic" is used to differentiate the syntax defined here from syntax defined by specificDID methods in their respective specifications.

DID Syntax

The generic DID scheme is a URI scheme conformant with [RFC].

The DID scheme name MUST be an ASCII lowercase string.

The DID method name MUST be an ASCII lowercase string.

The following is the ABNF definition using the syntax in [RFC], which defines and . All other rule names not defined in this ABNF are defined in [RFC].

did = "did:" method-name ":" method-specific-id method-name = 1*method-char method-char = %xA / DIGIT method-specific-id = *( *idchar ":" ) 1*idchar idchar = ALPHA / DIGIT / "." / "-" / "_"

A DID method specification MUST further restrict the generic DID syntax by defining its own and its own syntax. Case sensitivity and normalization of the value of the rule MUST be defined by the governing DID method specification. For more information, see Section §  Methods .

A DID is expected to be persistent and immutable. That is, a DID is bound exclusively and permanently to its one and only subject. Even after a DID is deactivated, it is intended that it never be repurposed.

Ideally, a DID would be a completely abstract decentralized identifier (like a UUID) that could be bound to multiple underlying verifiable data registries over time, thus maintaining its persistence independent of any particular system. However, registering the same identifier on multiple verifiable data registries makes it extremely difficult to identify the authoritative version of a DID document if the contents diverge between the different verifiable data registries. It also greatly increases implementation complexity for developers.

To avoid these issues, developers should refer to the Decentralized Characteristics Rubric [DID-RUBRIC] to decide which DID method best addresses the needs of the use case.

DID URL Syntax

A DID URL always identifies a resource to be located. It can be used, for example, to identify a specific part of a DID document.

This following is the ABNF definition using the syntax in [RFC]. It builds on the scheme defined in § DID Syntax. The , , and components are identical to the ABNF rules defined in [RFC].

did-url = did path-abempty [ "?" query ] [ "#" fragment ]

This specification reserves the semicolon () character for possible future use as a sub-delimiter for parameters as described in [MATRIX-URIS].

DID Parameters

The DID URL syntax supports a simple format for parameters based on the component (See § Query).

Some DID parameter names (for example, for service selection) are completely independent of any specific DID method and MUST always function the same way for all DIDs. Other DID parameter names (for example, for versioning) MAY be supported by certain DID methods, but MUST operate uniformly across those DID methods that do support them.

The following table defines a set of DID parameter names.

Parameter Name Description
A resource hash of the DID document to add integrity protection, as specified in [HASHLINK]. The associated value MUST be an ASCII string. This parameter is non-normative.
Identifies a service from the DID document by service ID. The associated value MUST be an ASCII string.
Identifies a specific version of a DID document to be resolved (the version ID could be sequential, or a UUID, or method-specific). Note that this parameter might not be supported by all DID methods. The associated value MUST be an ASCII string.
Identifies a certain version timestamp of a DID document to be resolved. That is, the DID document that was valid for a DID at a certain time. Note that this parameter might not be supported by all DID methods. The associated value MUST be an ASCII string.
A relative URI reference according to RFC Section that identifies a resource at a service endpoint, which is selected from a DID document by using the parameter. The associated value MUST be an ASCII string and MUST use percent-encoding for certain characters as specified in RFC Section

Implementers as well as DID method specification authors MAY use additional DID parameters that are not listed here. For maximum interoperability, it is RECOMMENDED that DID parameters use the official W3C DID Specification Registries mechanism [DID-SPEC-REGISTRIES], to avoid collision with other uses of the same DID parameter with different semantics.

Additional considerations for processing these parameters are discussed in [DID-RESOLUTION].

Two example DID URLs using the and DID parameters are shown below.

Example: A DID URL with a 'service' DID parameter
did:footDAKCERh95uGgKbJNHYp?service=agent
Example: A DID URL with a 'version-time' DID parameter
did:footDAKCERh95uGgKbJNHYp?version-time=TZ

Adding a DID parameter to a DID URL means that the parameter becomes part of an identifier for a resource (the DID document or other). Alternatively, the DID resolution and the DID URL dereferencing functions can also be influenced by passing input metadata to a DID resolver that are not part of the DID URL. (See §  DID Resolution Input Metadata Properties ). Such input metadata could for example control caching or the desired encoding of a resolution result. This is comparable to HTTP, where certain parameters could either be included in an HTTP URL, or alternatively passed as HTTP headers during the dereferencing process. The important distinction is that DID parameters that are part of the DID URL should be used to specify what resource is being identified, whereas input metadata that is not part of the DID URL should be use to control how that resource is resolved or dereferenced.

DID parameters MAY be used if there is a clear use case where the parameter needs to be part of a URI that can be used as a link, or as a resource in RDF / JSON-LD documents.

DID parameters SHOULD NOT be used if the same functionality can be expressed by passing input metadata to a DID resolver, and if there is no need to construct a URI for use as a link, or as a resource in RDF / JSON-LD documents.

Path

A DID path is identical to a generic URI path and MUST conform to the ABNF rule in [RFC].

A DID method specification MAY specify ABNF rules for DID paths that are more restrictive than the generic rules in this section.

Query

A DID query is derived from a generic URI query and MUST conform to the ABNF rule in Section §  DID URL Syntax. If a DID query is present, it MUST be used as described in Section § DID Parameters.

A DID method specification MAY specify ABNF rules for DID queries that are more restrictive than the generic rules in this section.

Fragment

A DID fragment is used as method-independent reference into the DID document to identify a component of the document (for example, a unique public key description or service endpoint). DID fragment syntax and semantics are identical to a generic URI fragment and MUST conform to RFC , section To dereference a DID fragment, the complete DID URL including the DID fragmentMUST be used as input to the DID URL dereferencing function for the target component in the DID document object. For more information, see §  DID URL Dereferencing .

A DID method specification MAY specify ABNF rules for DID fragments that are more restrictive than the generic rules in this section.

In order to maximize interoperability, implementers are urged to ensure that DID fragments are interpreted in the same way across representations (as described in § Core Representations). For example, while JSON Pointer [RFC] can be used in a DID fragment, it will not be interpreted in the same way across representations.

Additional semantics for fragment identifiers, which are compatible with and layered upon the semantics in this section, are described for JSON-LD representations in Section § application/did+ld+json.

Relative DID URLs

A relative DID URL is any URL value in a DID document that does not start with . More specifically, it is any URL value that does not start with the ABNF defined in Section § DID Syntax. The contents of the URL typically refers to a resource in the same DID document. Relative DID URLs MAY contain relative path components, query parameters, and fragment identifiers.

When resolving a relative DID URL reference, the algorithm specified in RFC Section 5: Reference ResolutionMUST be used. The base URI value is the DID that is associated with the DID subject, see Section § DID Subject. The scheme is . The authority is a combination of , and the path, query, and fragment values are those defined in Section § Path, Section § Query, and Section § Fragment, respectively.

Relative DID URLs are often used to identify verification methods and services in a DID Document without having to use absolute URLs, which tend to be more verbose than necessary.

Источник: [standardservices.com.pk]
URL Live Development Suite With Source v1.0 serial key or number

Android 11 Compatibility Definition

1. Introduction

This document enumerates the requirements that must be met in order for devices to be compatible with Android

The use of “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” is per the IETF standard defined in RFC

As used in this document, a “device implementer” or “implementer” is a person or organization developing a hardware/software solution running Android A “device implementation” or “implementation" is the hardware/software solution so developed.

To be considered compatible with Android 11, device implementations MUST meet the requirements presented in this Compatibility Definition, including any documents incorporated via reference.

Where this definition or the software tests described in section 10 is silent, ambiguous, or incomplete, it is the responsibility of the device implementer to ensure compatibility with existing implementations.

For this reason, the Android Open Source Project is both the reference and preferred implementation of Android. Device implementers are STRONGLY RECOMMENDED to base their implementations to the greatest extent possible on the “upstream” source code available from the Android Open Source Project. While some components can hypothetically be replaced with alternate implementations, it is STRONGLY RECOMMENDED to not follow this practice, as passing the software tests will become substantially more difficult. It is the implementer’s responsibility to ensure full behavioral compatibility with the standard Android implementation, including and beyond the Compatibility Test Suite. Finally, note that certain component substitutions and modifications are explicitly forbidden by this document.

Many of the resources linked to in this document are derived directly or indirectly from the Android SDK and will be functionally identical to the information in that SDK’s documentation. In any cases where this Compatibility Definition or the Compatibility Test Suite disagrees with the SDK documentation, the SDK documentation is considered authoritative. Any technical details provided in the linked resources throughout this document are considered by inclusion to be part of this Compatibility Definition.

Document Structure

Requirements by Device Type

Section 2 contains all of the requirements that apply to a specific device type. Each subsection of Section 2 is dedicated to a specific device type.

All the other requirements, that universally apply to any Android device implementations, are listed in the sections after Section 2. These requirements are referenced as "Core Requirements" in this document.

Requirement ID

Requirement ID is assigned for MUST requirements.

  • The ID is assigned for MUST requirements only.
  • STRONGLY RECOMMENDED requirements are marked as [SR] but ID is not assigned.
  • The ID consists of : Device Type ID - Condition ID - Requirement ID (e.g. C).

Each ID is defined as below:

  • Device Type ID (see more in 2. Device Types)
    • C: Core (Requirements that are applied to any Android device implementations)
    • H: Android Handheld device
    • T: Android Television device
    • A: Android Automotive implementation
    • W: Android Watch implementation
    • Tab: Android Tablet implementation
  • Condition ID
    • When the requirement is unconditional, this ID is set as 0.
    • When the requirement is conditional, 1 is assigned for the 1st condition and the number increments by 1 within the same section and the same device type.
  • Requirement ID
    • This ID starts from 1 and increments by 1 within the same section and the same condition.

Requirement ID in Section 2

The Requirement ID in Section 2 starts with the corresponding section ID that is followed by the Requirement ID described above.

  • The ID in Section 2 consists of : Section ID / Device Type ID - Condition ID - Requirement ID (e.g. /A).

2. Device Types

While the Android Open Source Project provides a software stack that can be used for a variety of device types and form factors, there are a few device types that have a relatively better established application distribution ecosystem.

This section describes those device types, and additional requirements and recommendations applicable for each device type.

All Android device implementations that do not fit into any of the described device types MUST still meet all requirements in the other sections of this Compatibility Definition.

Device Configurations

For the major differences in hardware configuration by device type, see the device-specific requirements that follow in this section.

Handheld Requirements

An Android Handheld device refers to an Android device implementation that is typically used by holding it in the hand, such as an mp3 player, phone, or tablet.

Android device implementations are classified as a Handheld if they meet all the following criteria:

  • Have a power source that provides mobility, such as a battery.
  • Have a physical diagonal screen size in the range of inches (or inches for devices which launched on an API level earlier than Android 11) to 8 inches.

The additional requirements in the rest of this section are specific to Android Handheld device implementations.

Note: Requirements that do not apply to Android Tablet devices are marked with an *.

Hardware

Handheld device implementations:

  • [/H] MUST have at least one Android-compatible display that meets all requirements described on this document.
  • [/H-SR] Are STRONGLY RECOMMENDED to provide users an affordance to change the display size (screen density).

If Handheld device implementations support software screen rotation, they:

  • [/H]* MUST make the logical screen that is made available for third party applications be at least 2 inches on the short edge(s) and inches on the long edge(s). Devices which launched on an API level earlier than that of this document are exempted from this requirement.

If Handheld device implementations do not support software screen rotation, they:

  • [/H]* MUST make the logical screen that is made available for third party applications be at least inches on the short edge(s). Devices which launched on an API level earlier than that of this document are exempted from this requirement.

If Handheld device implementations claim support for high dynamic range displays through , they:

  • [/H] MUST advertise support for the , , , , and extensions.

Handheld device implementations:

  • [/H] MUST report whether the device supports the GPU profiling capability via a system property .

If Handheld device implementations declare support via a system property , they:

Handheld device implementations:

  • [/H] MUST include support for legacy application compatibility mode as implemented by the upstream Android open source code. That is, device implementations MUST NOT alter the triggers or thresholds at which compatibility mode is activated, and MUST NOT alter the behavior of the compatibility mode itself.
  • [/H] MUST include support for third-party Input Method Editor (IME) applications.
  • [/H] MUST provide the Home function on all the Android-compatible displays that provide the home screen.
  • [/H] MUST provide the Back function on all the Android-compatible displays and the Recents function on at least one of the Android-compatible displays.
  • [/H] MUST send both the normal and long press event of the Back function () to the foreground application. These events MUST NOT be consumed by the system and CAN be triggered by outside of the Android device (e.g. external hardware keyboard connected to the Android device).
  • [/H] MUST support touchscreen input.
  • [/H-SR] Are STRONGLY RECOMMENDED to launch the user-selected assist app, in other words the app that implements VoiceInteractionService, or an activity handling the on long-press of or if the foreground activity does not handle those long-press events.
  • [/H-SR] Are STRONGLY RECOMMENDED to include a 3-axis accelerometer.

If Handheld device implementations include a 3-axis accelerometer, they:

  • [/H] MUST be able to report events up to a frequency of at least Hz.

If Handheld device implementations include a GPS/GNSS receiver and report the capability to applications through the feature flag, they:

  • [/H] MUST report GNSS measurements, as soon as they are found, even if a location calculated from GPS/GNSS is not yet reported.
  • [/H] MUST report GNSS pseudoranges and pseudorange rates, that, in open-sky conditions after determining the location, while stationary or moving with less than meter per second squared of acceleration, are sufficient to calculate position within 20 meters, and speed within meters per second, at least 95% of the time.

If Handheld device implementations include a 3-axis gyroscope, they:

  • [/H] MUST be able to report events up to a frequency of at least Hz.
  • [/H] MUST be capable of measuring orientation changes up to degrees per second.

Handheld device implementations that can make a voice call and indicate any value other than in :

  • [/H] SHOULD include a proximity sensor.

Handheld device implementations:

  • [/H-SR] Are RECOMMENDED to support pose sensor with 6 degrees of freedom.
  • [/H] SHOULD include support for Bluetooth and Bluetooth LE.

If Handheld device implementations include a metered connection, they:

  • [/H] MUST provide the data saver mode.

If Handheld device implementations include a logical camera device that lists capabilities using , they:

  • [/H] MUST have normal field of view (FOV) by default and it MUST be between 50 and 90 degrees.

Handheld device implementations:

  • [/H] MUST have at least 4 GB of non-volatile storage available for application private data (a.k.a. "/data" partition).
  • [/H] MUST return “true” for when there is less than 1GB of memory available to the kernel and userspace.

If Handheld device implementations declare support of only a bit ABI:

  • [/H] The memory available to the kernel and userspace MUST be at least MB if the default display uses framebuffer resolutions up to qHD (e.g. FWVGA).

  • [/H] The memory available to the kernel and userspace MUST be at least MB if the default display uses framebuffer resolutions up to HD+ (e.g. HD, WSVGA).

  • [/H] The memory available to the kernel and userspace MUST be at least MB if the default display uses framebuffer resolutions up to FHD (e.g. WSXGA+).

  • [/H] The memory available to the kernel and userspace MUST be at least MB if the default display uses framebuffer resolutions up to QHD (e.g. QWXGA).

If Handheld device implementations declare support of bit and bit ABIs:

  • [/H] The memory available to the kernel and userspace MUST be at least MB if the default display uses framebuffer resolutions up to qHD (e.g. FWVGA).

  • [/H] The memory available to the kernel and userspace MUST be at least MB if the default display uses framebuffer resolutions up to HD+ (e.g. HD, WSVGA).

  • [/H] The memory available to the kernel and userspace MUST be at least MB if the default display uses framebuffer resolutions up to FHD (e.g. WSXGA+).

  • [/H] The memory available to the kernel and userspace MUST be at least MB if the default display uses framebuffer resolutions up to QHD (e.g. QWXGA).

Note that the "memory available to the kernel and userspace" above refers to the memory space provided in addition to any memory already dedicated to hardware components such as radio, video, and so on that are not under the kernel’s control on device implementations.

If Handheld device implementations include less than or equal to 1GB of memory available to the kernel and userspace, they:

  • [/H] MUST declare the feature flag .
  • [/H] MUST have at least GB of non-volatile storage for application private data (a.k.a. "/data" partition).

If Handheld device implementations include more than 1GB of memory available to the kernel and userspace, they:

  • [/H] MUST have at least 4GB of non-volatile storage available for application private data (a.k.a. "/data" partition).
  • SHOULD declare the feature flag .

Handheld device implementations:

  • [/H] MUST NOT provide an application shared storage smaller than 1 GiB.
  • [/H] SHOULD include a USB port supporting peripheral mode.

If handheld device implementations include a USB port supporting peripheral mode, they:

  • [/H] MUST implement the Android Open Accessory (AOA) API.

If Handheld device implementations include a USB port supporting host mode, they:

  • [/H] MUST implement the USB audio class as documented in the Android SDK documentation.

Handheld device implementations:

  • [/H] MUST include a microphone.
  • [/H] MUST have an audio output and declare .

If Handheld device implementations are capable of meeting all the performance requirements for supporting VR mode and include support for it, they:

  • [/H] MUST declare the feature flag.
  • [/H] MUST include an application implementing that can be enabled by VR applications via .

If Handheld device implementations include one or more USB-C port(s) in host mode and implement (USB audio class), in addition to requirements in section , they:

  • [/H] MUST provide the following software mapping of HID codes:
Function Mappings Context Behavior
A HID usage page: 0x0C
HID usage: 0x0CD
Kernel key:
Android key:
Media playback Input: Short press
Output: Play or pause
Input: Long press
Output: Launch voice command
Sends: if the device is locked or its screen is off. Sends otherwise
Incoming call Input: Short press
Output: Accept call
Input: Long press
Output: Reject call
Ongoing call Input: Short press
Output: End call
Input: Long press
Output: Mute or unmute microphone
B HID usage page: 0x0C
HID usage: 0x0E9
Kernel key:
Android key:
Media playback, Ongoing call Input: Short or long press
Output: Increases the system or headset volume
C HID usage page: 0x0C
HID usage: 0x0EA
Kernel key:
Android key:
Media playback, Ongoing call Input: Short or long press
Output: Decreases the system or headset volume
D HID usage page: 0x0C
HID usage: 0x0CF
Kernel key:
Android key:
All. Can be triggered in any instance. Input: Short or long press
Output: Launch voice command
  • [/H] MUST trigger ACTION_HEADSET_PLUG upon a plug insert, but only after the USB audio interfaces and endpoints have been properly enumerated in order to identify the type of terminal connected.

When the USB audio terminal types 0x is detected, they:

  • [/H] MUST broadcast Intent ACTION_HEADSET_PLUG with "microphone" extra set to 0.

When the USB audio terminal types 0x is detected, they:

  • [/H] MUST broadcast Intent ACTION_HEADSET_PLUG with "microphone" extra set to 1.

When API standardservices.com.pkices() is called while the USB peripheral is connected they:

  • [/H] MUST list a device of type standardservices.com.pk_USB_HEADSET and role isSink() if the USB audio terminal type field is 0x

  • [/H] MUST list a device of type standardservices.com.pk_USB_HEADSET and role isSink() if the USB audio terminal type field is 0x

  • [/H] MUST list a device of type standardservices.com.pk_USB_HEADSET and role isSource() if the USB audio terminal type field is 0x

  • [/H] MUST list a device of type standardservices.com.pk_USB_DEVICE and role isSink() if the USB audio terminal type field is 0x

  • [/H] MUST list a device of type standardservices.com.pk_USB_DEVICE and role isSource() if the USB audio terminal type field is 0x

  • [/H] MUST list a device of type standardservices.com.pk_USB_DEVICE and role isSink() if the USB audio terminal type field is 0x

  • [/H] MUST list a device of type standardservices.com.pk_USB_DEVICE and role isSource() if the USB audio terminal type field is 0x

  • [/H-SR] Are STRONGLY RECOMMENDED upon connection of a USB-C audio peripheral, to perform enumeration of USB descriptors, identify terminal types and broadcast Intent ACTION_HEADSET_PLUG in less than milliseconds.

If Handheld device implementations include at least one haptic actuator, they:

  • [/H-SR]* Are STRONGLY RECOMMENDED NOT to use an eccentric rotating mass (ERM) haptic actuator(vibrator).
  • [/H]* SHOULD position the placement of the actuator near the location where the device is typically held or touched by hands.
  • [/H-SR]* Are STRONGLY RECOMMENDED to implement all public constants for clear haptics in standardservices.com.pkFeedbackConstants namely (CLOCK_TICK, CONTEXT_CLICK, KEYBOARD_PRESS, KEYBOARD_RELEASE, KEYBOARD_TAP, LONG_PRESS, TEXT_HANDLE_MOVE, VIRTUAL_KEY, VIRTUAL_KEY_RELEASE, CONFIRM, REJECT, GESTURE_START and GESTURE_END).
  • [/H-SR]* Are STRONGLY RECOMMENDED to implement all public constants for clear haptics in standardservices.com.pkionEffect namely (EFFECT_TICK, EFFECT_CLICK, EFFECT_HEAVY_CLICK and EFFECT_DOUBLE_CLICK) and all public constants for rich haptics in standardservices.com.pkition namely (PRIMITIVE_CLICK and PRIMITIVE_TICK).
  • [/H-SR]* Are STRONGLY RECOMMENDED to use these linked haptic constants mappings.
  • [/H-SR]* Are STRONGLY RECOMMENDED to follow quality assessment for createOneShot() and createWaveform() API's.
  • [/H-SR]* Are STRONGLY RECOMMENDED to verify the capabilities for amplitude scalability by running standardservices.com.pklitudeControl().

Linear resonant actuator (LRA) is a single mass spring system which has a dominant resonant frequency where the mass translates in the direction of desired motion.

If Handheld device implementations include at least one linear resonant actuator, they:

  • [/H]* SHOULD move the haptic actuator in the X-axis of portrait orientation.

If Handheld device implementations have a haptic actuator which is X-axis Linear resonant actuator (LRA), they:

  • [/H-SR]* Are STRONGLY RECOMMENDED to have the resonant frequency of the X-axis LRA be under Hz.

If handheld device implementations follow haptic constants mapping, they:

Multimedia

Handheld device implementations MUST support the following audio encoding and decoding formats and make them available to third-party applications:

  • [/H] AMR-NB
  • [/H] AMR-WB
  • [/H] MPEG-4 AAC Profile (AAC LC)
  • [/H] MPEG-4 HE AAC Profile (AAC+)
  • [/H] AAC ELD (enhanced low delay AAC)

Handheld device implementations MUST support the following video encoding formats and make them available to third-party applications:

  • [/H] H AVC
  • [/H] VP8

Handheld device implementations MUST support the following video decoding formats and make them available to third-party applications:

  • [/H] H AVC
  • [/H] H HEVC
  • [/H] MPEG-4 SP
  • [/H] VP8
  • [/H] VP9

Software

Handheld device implementations:

  • [/H] MUST have an application that handles the , , , and intents as described in the SDK documents, and provide the user affordance to access the document provider data by using API.
  • [/H]* MUST preload one or more applications or service components with an intent handler, for all the public intent filter patterns defined by the following application intents listed here.
  • [/H-SR] Are STRONGLY RECOMMENDED to preload an email application which can handle ACTION_SENDTO or ACTION_SEND or ACTION_SEND_MULTIPLE intents to send an email.
  • [/H] MUST provide a complete implementation of the API.
  • [/H] MUST include a standalone Browser application for general user web browsing.
  • [/H-SR] Are STRONGLY RECOMMENDED to implement a default launcher that supports in-app pinning of shortcuts, widgets and widgetFeatures.
  • [/H-SR] Are STRONGLY RECOMMENDED to implement a default launcher that provides quick access to the additional shortcuts provided by third-party apps through the ShortcutManager API.
  • [/H-SR] Are STRONGLY RECOMMENDED to include a default launcher app that shows badges for the app icons.
  • [/H-SR] Are STRONGLY RECOMMENDED to support third-party app widgets.
  • [/H] MUST allow third-party apps to notify users of notable events through the and API classes.
  • [/H] MUST support rich notifications.
  • [/H] MUST support heads-up notifications.
  • [/H] MUST include a notification shade, providing the user the ability to directly control (e.g. reply, snooze, dismiss, block) the notifications through user affordance such as action buttons or the control panel as implemented in the AOSP.
  • [/H] MUST display the choices provided through in the notification shade.
  • [/H-SR] Are STRONGLY RECOMMENDED to display the first choice provided through in the notification shade without additional user interaction.
  • [/H-SR] Are STRONGLY RECOMMENDED to display all the choices provided through in the notification shade when the user expands all notifications in the notification shade.
  • [/H-SR] Are STRONGLY RECOMMENDED to display actions for which is set as in-line with the replies displayed by .
  • [/H-SR] Are STRONGLY RECOMMENDED to implement an assistant on the device to handle the Assist action.

If Handheld device implementations support Assist action, they:

  • [/H-SR] Are STRONGLY RECOMMENDED to use long press on key as the designated interaction to launch the assist app as described in section MUST launch the user-selected assist app, in other words the app that implements , or an activity handling the intent.

If Handheld device implementations support and group them into a separate section from alerting and silent non-conversation notifications, they:

  • [/H]* MUST display conversation notifications ahead of non conversation notifications with the exception of ongoing foreground service notifications and importance:high notifications.

If Android Handheld device implementations support a lock screen, they:

  • [/H] MUST display the Lock screen Notifications including the Media Notification Template.

If Handheld device implementations support a secure lock screen, they:

  • [/H] MUST implement the full range of device administration policies defined in the Android SDK documentation.
  • [/H] MUST declare the support of managed profiles via the feature flag, except when the device is configured so that it would report itself as a low RAM device or so that it allocates internal (non-removable) storage as shared storage.

If Handheld device implementations include support for and APIs and allow third-party applications to publish , then they:

  • [/H] MUST declare the feature flag and set it to .
  • [/H] MUST provide a user affordance with the ability to add, edit, select, and operate the user’s favorite device controls from the controls registered by the third-party applications through the and the APIs.
  • [/H] MUST provide access to this user affordance within three interactions from a default Launcher.
  • [/H] MUST accurately render in this user affordance the name and icon of each third-party app that provides controls via the API as well as any specified fields provided by the APIs.

Conversely, If Handheld device implementations do not implement such controls, they:

Handheld device implementations:

  • [/H] MUST support third-party accessibility services.
  • [/H-SR] Are STRONGLY RECOMMENDED to preload accessibility services on the device comparable with or exceeding functionality of the Switch Access and TalkBack (for languages supported by the preinstalled Text-to-speech engine) accessibility services as provided in the talkback open source project.
  • [/H] MUST support installation of third-party TTS engines.
  • [/H-SR] Are STRONGLY RECOMMENDED to include a TTS engine supporting the languages available on the device.
  • [/H-SR] Are STRONGLY RECOMMENDED to include a Quick Settings UI component.

If Android handheld device implementations declare or support, they:

  • [/H] MUST support the companion device pairing feature.

If the navigation function is provided as an on-screen, gesture-based action:

  • [/H] The gesture recognition zone for the Home function SHOULD be no higher than 32 dp in height from the bottom of the screen.

If Handheld device implementations provide a navigation function as a gesture from anywhere on the left and right edges of the screen:

  • [/H] The navigation function's gesture area MUST be less than 40 dp in width on each side. The gesture area SHOULD be 24 dp in width by default.

Performance and Power

  • [/H] Consistent frame latency. Inconsistent frame latency or a delay to render frames MUST NOT happen more often than 5 frames in a second, and SHOULD be below 1 frames in a second.
  • [/H] User interface latency. Device implementations MUST ensure low latency user experience by scrolling a list of 10K list entries as defined by the Android Compatibility Test Suite (CTS) in less than 36 secs.
  • [/H] Task switching. When multiple applications have been launched, re-launching an already-running application after it has been launched MUST take less than 1 second.

Handheld device implementations:

  • [/H] MUST ensure a sequential write performance of at least 5 MB/s.
  • [/H] MUST ensure a random write performance of at least MB/s.
  • [/H] MUST ensure a sequential read performance of at least 15 MB/s.
  • [/H] MUST ensure a random read performance of at least MB/s.

If Handheld device implementations include features to improve device power management that are included in AOSP or extend the features that are included in AOSP, they:

  • [/H] MUST provide user affordance to enable and disable the battery saver feature.
  • [/H] MUST provide user affordance to display all apps that are exempted from App Standby and Doze power-saving modes.

Handheld device implementations:

  • [/H] MUST provide a per-component power profile that defines the current consumption value for each hardware component and the approximate battery drain caused by the components over time as documented in the Android Open Source Project site.
  • [/H] MUST report all power consumption values in milliampere hours (mAh).
  • [/H] MUST report CPU power consumption per each process's UID. The Android Open Source Project meets the requirement through the kernel module implementation.
  • [/H] MUST make this power usage available via the shell command to the app developer.
  • [/H] SHOULD be attributed to the hardware component itself if unable to attribute hardware component power usage to an application.

If Handheld device implementations include a screen or video output, they:

Security Model

Handheld device implementations:

  • [/H] MUST allow third-party apps to access the usage statistics via the permission and provide a user-accessible mechanism to grant or revoke access to such apps in response to the intent.

Handheld device implementations (* Not applicable for Tablet):

  • [/H]* MUST back up the keystore implementation with an isolated execution environment.
  • [/H]* MUST have implementations of RSA, AES, ECDSA, and HMAC cryptographic algorithms and MD5, SHA1, and SHA-2 family hash functions to properly support the Android Keystore system's supported algorithms in an area that is securely isolated from the code running on the kernel and above. Secure isolation MUST block all potential mechanisms by which kernel or userspace code might access the internal state of the isolated environment, including DMA. The upstream Android Open Source Project (AOSP) meets this requirement by using the Trusty implementation, but another ARM TrustZone-based solution or a third-party reviewed secure implementation of a proper hypervisor-based isolation are alternative options.
  • [/H]* MUST perform the lock screen authentication in the isolated execution environment and only when successful, allow the authentication-bound keys to be used. Lock screen credentials MUST be stored in a way that allows only the isolated execution environment to perform lock screen authentication. The upstream Android Open Source Project provides the Gatekeeper Hardware Abstraction Layer (HAL) and Trusty, which can be used to satisfy this requirement.
  • [/H]* MUST support key attestation where the attestation signing key is protected by secure hardware and signing is performed in secure hardware. The attestation signing keys MUST be shared across large enough number of devices to prevent the keys from being used as device identifiers. One way of meeting this requirement is to share the same attestation key unless at least , units of a given SKU are produced. If more than , units of an SKU are produced, a different key MAY be used for each , units.

Note that if a device implementation is already launched on an earlier Android version, such a device is exempted from the requirement to have a keystore backed by an isolated execution environment and support the key attestation, unless it declares the feature which requires a keystore backed by an isolated execution environment.

When Handheld device implementations support a secure lock screen, they:

  • [/H] MUST allow the user to choose the shortest sleep timeout, that is a transition time from the unlocked to the locked state, as 15 seconds or less.
  • [/H] MUST provide user affordance to hide notifications and disable all forms of authentication except for the primary authentication described in Secure Lock Screen. The AOSP meets the requirement as lockdown mode.

Developer Tools and Options Compatibility

Handheld device implementations (* Not applicable for Tablet):

  • [/H]* MUST support the shell command .

Handheld device implementations (* Not applicable for Tablet):

  • Perfetto
    • [/H]* MUST expose a binary to the shell user which cmdline complies with the perfetto documentation.
    • [/H]* The perfetto binary MUST accept as input a protobuf config that complies with the schema defined in the perfetto documentation.
    • [/H]* The perfetto binary MUST write as output a protobuf trace that complies with the schema defined in the perfetto documentation.
    • [/H]* MUST provide, through the perfetto binary, at least the data sources described in the perfetto documentation.
    • [/H]* The perfetto traced daemon MUST be enabled by default (system property ).

Television Requirements

An Android Television device refers to an Android device implementation that is an entertainment interface for consuming digital media, movies, games, apps, and/or live TV for users sitting about ten feet away (a “lean back” or “foot user interface”).

Android device implementations are classified as a Television if they meet all the following criteria:

  • Have provided a mechanism to remotely control the rendered user interface on the display that might sit ten feet away from the user.
  • Have an embedded screen display with the diagonal length larger than 24 inches OR include a video output port, such as VGA, HDMI, DisplayPort, or a wireless port for display.

The additional requirements in the rest of this section are specific to Android Television device implementations.

Hardware

Television device implementations:

  • [/T] MUST support D-pad.
  • [/T] MUST provide the Home and Back functions.
  • [/T] MUST send both the normal and long press event of the Back function () to the foreground application.
  • [/T] MUST include support for game controllers and declare the feature flag.
  • [/T] SHOULD provide a remote control from which users can access non-touch navigation and core navigation keys inputs.

If Television device implementations include a 3-axis gyroscope, they:

  • [/T] MUST be able to report events up to a frequency of at least Hz.
  • [/T] MUST be capable of measuring orientation changes up to degrees per second.

Television device implementations:

  • [/T] MUST support Bluetooth and Bluetooth LE.
  • [/T] MUST have at least 4 GB of non-volatile storage available for application private data (a.k.a. "/data" partition).

If Television device implementations include a USB port that supports host mode, they:

  • [/T] MUST include support for an external camera that connects through this USB port but is not necessarily always connected.

If TV device implementations are bit:

  • [/T] The memory available to the kernel and userspace MUST be at least MB if any of the following densities are used:

    • dpi or higher on small/normal screens
    • xhdpi or higher on large screens
    • tvdpi or higher on extra large screens

If TV device implementations are bit:

  • [/T] The memory available to the kernel and userspace MUST be at least MB if any of the following densities are used:

    • dpi or higher on small/normal screens
    • xhdpi or higher on large screens
    • tvdpi or higher on extra large screens

Note that the "memory available to the kernel and userspace" above refers to the memory space provided in addition to any memory already dedicated to hardware components such as radio, video, and so on that are not under the kernel’s control on device implementations.

Television device implementations:

  • [/T] SHOULD include a microphone.
  • [/T] MUST have an audio output and declare .

Multimedia

Television device implementations MUST support the following audio encoding and decoding formats and make them available to third-party applications:

  • [/T] MPEG-4 AAC Profile (AAC LC)
  • [/T] MPEG-4 HE AAC Profile (AAC+)
  • [/T] AAC ELD (enhanced low delay AAC)

Television device implementations MUST support the following video encoding formats and make them available to third-party applications:

  • [/T] H
  • [/T] VP8

Television device implementations:

  • [/T-SR] Are STRONGLY RECOMMENDED to support H encoding of p and p resolution videos at 30 frames per second.

Television device implementations MUST support the following video decoding formats and make them available to third-party applications:

Television device implementations MUST support MPEG-2 decoding, as detailed in Section , at standard video frame rates and resolutions up to and including:

  • [/T] HD p at frames per second with Main Profile High Level.
  • [/T] HD i at frames per second with Main Profile High Level. They MUST deinterlace interlaced MPEG-2 video to its progressive equivalent (e.g. from i at frames per second to p at frames per second) and make it available to third-party applications.

Television device implementations MUST support H decoding, as detailed in Section , at standard video frame rates and resolutions up to and including:

  • [/T] HD p at 60 frames per second with Baseline Profile
  • [/T] HD p at 60 frames per second with Main Profile
  • [/T] HD p at 60 frames per second with High Profile Level

Television device implementations with H hardware decoders MUST support H decoding, as detailed in Section , at standard video frame rates and resolutions up to and including:

  • [/T] HD p at 60 frames per second with Main Profile Level

If Television device implementations with H hardware decoders support H decoding and the UHD decoding profile, they:

  • [/T] MUST support UHD p at 60 frames per second with Main10 Level 5 Main Tier profile

Television device implementations MUST support VP8 decoding, as detailed in Section , at standard video frame rates and resolutions up to and including:

  • [/T] HD p at 60 frames per second decoding profile

Television device implementations with VP9 hardware decoders MUST support VP9 decoding, as detailed in Section , at standard video frame rates and resolutions up to and including:

  • [/T] HD p at 60 frames per second with profile 0 (8 bit color depth)

If Television device implementations with VP9 hardware decoders support VP9 decoding and the UHD decoding profile, they:

  • [/T] MUST support UHD p at 60 frames per second with profile 0 (8 bit color depth).
  • [/T] Are STRONGLY RECOMMENDED to support UHD p at 60 frames per second with profile 2 (10 bit color depth).

Television device implementations:

  • [/T] MUST include support for system Master Volume and digital audio output volume attenuation on supported outputs, except for compressed audio passthrough output (where no audio decoding is done on the device).

If Television device implementations do not have a built in display, but instead support an external display connected via HDMI, they:

  • [/T] MUST set the HDMI output mode to select the maximum resolution that can be supported with either a 50Hz or 60Hz refresh rate.
  • [/T-SR] Are STRONGLY RECOMMENDED to provide a user configurable HDMI refresh rate selector.
  • [] SHOULD set the HDMI output mode refresh rate to either 50Hz or 60Hz, depending on the video refresh rate for the region the device is sold in.

If Television device implementations do not have a built in display, but instead support an external display connected via HDMI, they:

  • [/T] MUST support HDCP

If Television device implementations do not support UHD decoding, but instead support an external display connected via HDMI, they:

  • [/T] MUST support HDCP

Software

Television device implementations:

  • [3/T] MUST declare the features and .
  • [/T] MUST preload one or more applications or service components with an intent handler, for all the public intent filter patterns defined by the following application intents listed here.
  • [/T] MUST provide a complete implementation of the API.

If Android Television device implementations support a lock screen,they:

  • [/T] MUST display the Lock screen Notifications including the Media Notification Template.

Television device implementations:

  • [/T-SR] Are STRONGLY RECOMMENDED to support picture-in-picture (PIP) mode multi-window.
  • [/T] MUST support third-party accessibility services.
  • [/T-SR] Are STRONGLY RECOMMENDED to preload accessibility services on the device comparable with or exceeding functionality of the Switch Access and TalkBack (for languages supported by the preinstalled Text-to-speech engine) accessibility services as provided in the talkback open source project.

If Television device implementations report the feature , they:

  • [/T-SR] Are STRONGLY RECOMMENDED to include a TTS engine supporting the languages available on the device.
  • [/T] MUST support installation of third-party TTS engines.

Television device implementations:

  • [/T] MUST support TV Input Framework.

Performance and Power

  • [/T] Consistent frame latency. Inconsistent frame latency or a delay to render frames MUST NOT happen more often than 5 frames in a second, and SHOULD be below 1 frames in a second.
  • [/T] MUST ensure a sequential write performance of at least 5MB/s.
  • [/T] MUST ensure a random write performance of at least MB/s.
  • [/T] MUST ensure a sequential read performance of at least 15MB/s.
  • [/T] MUST ensure a random read performance of at least MB/s.

If Television device implementations include features to improve device power management that are included in AOSP or extend the features that are included in AOSP, they:

  • [/T] MUST provide user affordance to enable and disable the battery saver feature.

If Television device implementations do not have a battery they:

If Television device implementations have a battery they:

  • [/T] MUST provide user affordance to display all apps that are exempted from App Standby and Doze power-saving modes.

Television device implementations:

  • [/T] MUST provide a per-component power profile that defines the current consumption value for each hardware component and the approximate battery drain caused by the components over time as documented in the Android Open Source Project site.
  • [/T] MUST report all power consumption values in milliampere hours (mAh).
  • [/T] MUST report CPU power consumption per each process's UID. The Android Open Source Project meets the requirement through the kernel module implementation.
  • [/T] SHOULD be attributed to the hardware component itself if unable to attribute hardware component power usage to an application.
  • [/T] MUST make this power usage available via the shell command to the app developer.

Security Model

Television device implementations:

  • [/T] MUST back up the keystore implementation with an isolated execution environment.
  • [/T] MUST have implementations of RSA, AES, ECDSA and HMAC cryptographic algorithms and MD5, SHA1, and SHA-2 family hash functions to properly support the Android Keystore system's supported algorithms in an area that is securely isolated from the code running on the kernel and above. Secure isolation MUST block all potential mechanisms by which kernel or userspace code might access the internal state of the isolated environment, including DMA. The upstream Android Open Source Project (AOSP) meets this requirement by using the Trusty implementation, but another ARM TrustZone-based solution or a third-party reviewed secure implementation of a proper hypervisor-based isolation are alternative options.
  • [/T] MUST perform the lock screen authentication in the isolated execution environment and only when successful, allow the authentication-bound keys to be used. Lock screen credentials MUST be stored in a way that allows only the isolated execution environment to perform lock screen authentication. The upstream Android Open Source Project provides the Gatekeeper Hardware Abstraction Layer (HAL) and Trusty, which can be used to satisfy this requirement.
  • [/T] MUST support key attestation where the attestation signing key is protected by secure hardware and signing is performed in secure hardware. The attestation signing keys MUST be shared across large enough number of devices to prevent the keys from being used as device identifiers. One way of meeting this requirement is to share the same attestation key unless at least , units of a given SKU are produced. If more than , units of an SKU are produced, a different key MAY be used for each , units.

Note that if a device implementation is already launched on an earlier Android version, such a device is exempted from the requirement to have a keystore backed by an isolated execution environment and support the key attestation, unless it declares the feature which requires a keystore backed by an isolated execution environment.

If Television device implementations support a secure lock screen, they:

  • [/T] MUST allow the user to choose the Sleep timeout for transition from the unlocked to the locked state, with a minimum allowable timeout up to 15 seconds or less.

Developer Tools and Options Compatibility

Television device implementations:

Источник: [standardservices.com.pk]
.

What’s New in the URL Live Development Suite With Source v1.0 serial key or number?

Screen Shot

System Requirements for URL Live Development Suite With Source v1.0 serial key or number

Add a Comment

Your email address will not be published. Required fields are marked *