Certifying Applications for MirrorLink

advertisement
Certifying
Applications
for
MirrorLink®
Requirements, process and systems for getting
applications certified for use in MirrorLink devices.
Ed Pichon
CCC Project Manager &
Application Certification Body
Certifying Apps
for MirrorLink
• What is MirrorLink?
• What is Certification?
• How Do I Make A
MirrorLink App?
• Why Certify My App?
• How Do I Certify My
App?
What is MirrorLink?
High Level Overview for Application Developers
• New Environment for Applications
Application
• Application Executed on Phone
• Known challenges for development
MirrorLink Common API
MirrorLink
Server
MirrorLink
Server
MirrorLink
Server
(Phone)
(Phone)
(Phone)
• MirrorLink Client Environment
• Wide range of display sizes & capabilities
• Different control schemes – rotary, single-touch
screens, multi-touch screens
• Different sets of available hardware keys
• MirrorLink Session Environment
• Remote framebuffer, scaling, audio streaming
MirrorLink
Client
MirrorLink
Client
MirrorLink
Client
(Head Unit)
(Head Unit)
(Head Unit)
• Communication of status and events
• Data services
What is Certification?
High-Level Overview of Application Certification
• Risk Reduction – Reduce Risk that Application Doesn’t Work
• CCC Publishes Requirements for Applications
• Base Certification – Does it work in MirrorLink session?
• Regional Drive Certification – Does it (not) distract the driver?
• Testing Performed by CCC Approved Test Labs
• Does the application comply with the CCC’s requirements?
• CCC Approves Applications for Use in MirrorLink
• Certified Applications Can Use MirrorLink Logo & Certification
Mark in their Application & in their App’s Promotional Material
Goal: Create Ecosystem of Trusted Apps
How Do I Make a MirrorLink App?
MirrorLink Common API
Making MirrorLink Apps
How do I make my app work with MirrorLink?
• Become MirrorLink Aware
Application
• Provide application metadata via self-signed
certificate
• Remote framebuffer, scaling, audio streaming
and control mapping transparent to application
• Use the MirrorLink Common API
• Update application metadata
MirrorLink Common API
MirrorLink
Server
MirrorLink
Server
MirrorLink
Server
(Phone)
(Phone)
(Phone)
MirrorLink
Client
MirrorLink
Client
MirrorLink
Client
(Head Unit)
(Head Unit)
(Head Unit)
• Discover capabilities of MirrorLink Client
• Respond to status messages from MirrorLink
Client
• Virtual keyboard and controls
• Take advantage of data services
MirrorLink Common API
Standard MirrorLink Server Application Interface
• Each Platform has Platform-Specific
ML Common API Definition
•
•
Android Common API defined
Other platforms pending
• Each Server Device Maker is
Responsible for Implementing the ML
Common API
• Device Certification Tests for Common
API Functionality and Compliance
•
•
Common API test cases
Common API test application
Common API Section
Obligation
Common API Info
Mandatory
Device Info
Mandatory
Certification Info
Mandatory
Connection Info
Mandatory
Display Info
Mandatory
Event Info
Mandatory
Client Virtual Keyboard
Optional
Key Event Listing
Optional
Context Information
Mandatory
Device Status Info
Mandatory
Data Services
Optional
Notifications
Optional
MirrorLink Does Not Create Compatibility Problems
MirrorLink Common API
Example Common API Definition
• Event Configuration Information
•
Obtain information about the events supported by the MirrorLink Session
Feature Name
Description
Type
Knob Support
Supported knob events from the MirrorLink Client. Bit mask as defined in
the VNC specification.
uint32
Device Key Support
Supported device key events from the MirrorLink Client. Bit mask as
defined in the VNC specification.
uint32
Multimedia Key Support
Supported multimedia key events from the MirrorLink Client. Bit mask as
defined in the VNC specification.
uint32
Function Key Support
ITU Key Support
Number of supported function keys from the MirrorLink Client.
Support for ITU keys from the MirrorLink Client
uint8
bool
Touch event support
Number of simultaneous touch events, supported from the MirrorLink
Server and Client: None, Single, Multi
uint8
Pressure Mask
The pressure mask indicates how many pressure levels can be
distinguished from the MirrorLink Server and Client.
uint8
• Event Configuration Callback
•
Notification to application if the Event Configuration Information has changed
Why Certify My Application?
Base and Regional Drive Certifications
Types of Certification & Benefits
• No Certification – No Guarantee of Availability in MirrorLink Session
• ML Server (phone) may not advertise application to the ML Client
• ML Client (head unit) may not present application to User
• Base Certification – Guaranteed Availability While Not Driving
• ML Server required to advertise the application to the ML Client
• ML Client required to list application to user while not driving
• Drive Certification – Guaranteed Availability While Driving (Per Region)
• ML Server required to advertise the application to the ML Client
• ML Client required to present application to user while driving
• Certified Applications Listed and Promoted by CCC
• Use MirrorLink logo & certification mark in application promotional materials
Base Certification
Basic Interoperability
Display Compatibility
• Support Reference Client
Display
• 800 x 480 pixels (square)
• 13.33 cm x 8.00 cm
• 90 cm from driver
• Adapt to Client Display
[Optional]
• Support Landscape Mode
• Control Positioning
•
Not entirely within outer 5% of the
display
Control Compatibility
• Support Rotary Knobs
• May not have a rotary keyboard
available, so either implement your
own, or don’t require
• Support Single-Touch Events
•
Cannot require multi-touch
• Voice Commands
•
•
May use, but may not be available
Must notify user if not available
• Cannot Require OS Keys
•
May not be present on Client
• Provide Application Metadata
Benefit – App Will Work With ML Clients
Base Certification
Application Metadata
• Provide Information to the ML Client About the
Application
•
•
•
Application type
Framebuffer context information – visual content categories
Audio stream context information – audio content categories
• ML Client Uses Information To Determine What
Has Priority
• Application Types
•
•
Long list of types
Can be provided on a per-screen area basis
• Visual Content Categories
•
•
Text, Video, Image, Vector Graphics, 3D Graphics, User
Interface (e.g. Application menu), Miscellaneous Content
Can be provided on a per-screen area basis
• Audio Content Categories
•
Phone Audio, Media Audio Out, Media Audio In, Voice
Command Out, Voice Command In, Miscellaneous Content
App Category
Navigation
Visual Content Category
Vector Graphics
App Category – General UI Framework
Visual Content Category – Vector Graphics
Drive Certification
Minimizing Driver Distraction
• Guiding Principals
•
•
Nothing that demands the driver’s attention
Quickly comprehendible and accessible
• Restricted Content
•
•
No video, incidental animations or flashing
No automatic scrolling text
Region-Based Certification
•
• Visual Accessibility
•
•
Color contrast – brightness & color differences
Text legibility
•
•
Minimum height
Font requirements
•
• Control Accessibility
•
•
•
No two-handed operations
Should not use the keyboard
Control sizing and spacing
• Pace of Interaction
•
•
Input retention and responsiveness
Notification dismissal
•
Region Specific
•
North America
•
European Union
•
APAC
Global Certification
•
Superset of NA, EU and APAC guidelines
•
Pending
Can Get Certified for One or Multiple
Regions
•
E.g. Drive in EU & APAC, but not NA
How Do I Certify My Application?
Application Certificates and the ACMS
MirrorLink Application Certificates
• X590v3 Certificate
• Signed by the the CCC’s Root
Certificate Authority
• Contains MirrorLink XML
Extension
• MirrorLink XML Extension
• Descriptive information about
the application
• Information on how to list
application on MirrorLink Client
• Content categories
• Base certification regions
• Drive certification regions
• Generated & Distributed
by the CCC
<appIdentifier>ACMSDemo1234abcd</appIdentifier>
<appListEntry>
<name>ACMS Demo 1</name>
<providerName>E-Qualus</providerName>
<providerURL>www.e-qualus.com</providerURL>
<description>A demo app.</description>
<iconList>
<icon>
<mimetype>image/png</mimetype>
<width>72</width>
<height>72</height>
<depth>24</depth>
<url>/resources/icon.png</url>
</icon>
</iconList>
<appInfo>
<appCategory>0x00080000</appCategory>
</appInfo>
.
.
.
Application Certificate Management System
ACMS for App Developers
Car Connectivity Consortium
App Certificate
Management System
Certificate
Distribution
App & Dev
Certificates
Device Makers
Management
Portal
Certification Body
Application Certificates
distributed to server
devices over the Internet.
Test Labs
Developers
Apps
MirrorLink® Server Devices
App Stores
Phones & other mobile devices
Apps
MirrorLink® Client Devices
Head unitsApp Certificate tells Servers
& Clients when the app is
safe to use, and where.
Apps do not contain
Application Certificates.
ACMS Integration Requires
No Changes to Application
16
Application Life Cycle
• Standard Application
• No MirrorLink functionality
• MirrorLink Aware Application
• Indicates to Server that app MAY have a
certificate provided by the ACMS
• Indicated to Server in platform-specific
fashion
•
Android – Include self-signed certificate in APK,
bind to MirrorLink API intents
• MirrorLink Server will check with the ACMS
for an application certificate
• MirrorLink Certified
Standard Application
MirrorLink Aware
Application
May have a Certificate on the ACMS
Platform-specific indication.
MirrorLink Certified
Application
Certificate provided by the
ACMS
• Certificate available from the ACMS
MirrorLink Aware Apps Can Become Certified At Any Time
Application Certificate Updates
• MirrorLink Servers Periodically
Check With ACMS
• Checks for to see if any application
certificates have been updated
• Check frequency controlled by
ACMS
• ~7 days, initial rate
• Certificate Update Process
• Revoke existing certificate
• Issue a new certificate
• MirrorLink Server downloads new
certificate from ACMS
Application
Perspective
• Can Distribute Application
Prior to Certification
• When certification is granted,
MirrorLink Servers will
automatically download
application certificate when it
becomes available
• Changes to Certification
Status Do Not Require
Changes to Application
• Certificate is updated and
distributed to devices in the field
Application ID & Security
• Identifies an App to the ACMS
• “Do you have a certificate for an app with this App ID?”
• How the App ID is Generated is Platform Specific
• In general, a hash of the application files
• Android – Hash of the contents of the Android Manifest
• Anytime the Application is Updated, the App ID Changes
• Updates to the application cause the App ID to change
• MirrorLink Server Checks That the App ID in the
Certificate Matches the App ID of the Application
Ensures That Running App is the
Application that Was Certified
Developer Certificates
Testing Application Behavior
1. Developer Requests a Developer
Certificate via ACMS Portal
• Provides IMEI to ACMS SMP
• Provides IDs of Server devices
• ACMS generates Developer ID
2. Developer Inputs Developer ID into
MirrorLink Server Device
• Server device requests developer
certificate from ACMS
3. Developer Provides MirrorLink XML
Extension in Application
• Self-signed certificate (typical)
4. MirrorLink Server Presents MirrorLink
XML Extension Provided By Developer
As CCC-Signed
ACMS
Developer
Certificate(s)
Status Query
Developer ID, Server
Device IDs, Manufacturer
Blacklist
ML Client
Device
Manufacturer
Name
Developer IDs,
Server Device ID
MirrorLink™
Server Device
Input Developer ID(s)
Device ID(s)
Dev-Signed Application
Certificate
Server Device IDs
Developer
Run Uncertified App In Drive Mode
Developer ID
How Do I Certify My Application?
Application Certification Process
Application Certification
High-Level Overview (Redux)
• CCC Approves Applications for Use in MirrorLink
•
Base Certification – Does it work?
•
Drive Certification – Does it distract the driver?
• Testing Performed by CCC Approved Test Labs
•
Does the application comply with the relevant requirements?
• MirrorLink Servers (Phones) Provided Certification Status Information
for Installed, Certified Applications
•
Applies for specific version of the app on a given server platform
• Certified Applications Can Use MirrorLink Logo & Certification Mark in
their Application and in their Applications Promotional Material
Goal – Create Ecosystem of Trusted Apps
Certification Process Overview
Key Elements
• CCC Authorized Application Test Lab (ATL)
•
Approved by the CCC to perform testing
•
•
•
•
Demonstrated capability to perform needed testing
Periodically audited by CCC lab manager
List maintained by CCC
Application developer arranges testing directly with the ATL
• Application Certification Body
•
•
•
Assesses application and test reports
Approves/rejects apps for certification based on requirements & testing
results
Assesses requests to change application certification status
•
•
Examines changes to application and application certification requirements
May call for additional testing or re-testing on a case-by-case basis
• Protocol Implementation Conformance Statement (PICS)
•
•
Statement of what the application does
Used to determine what tests to run
Certification Process Diagram
New Application Certification
Developer Decides
to Get App Certified
Test Lab
Performs Tests
Developer Fills Out
PICS & Submit
Certification Request
Testing
Complete?
Yes
Test Lab
Issues Report
Certification Body
Reviews Application
CB Reviews
Report
No
Ready
to Test?
Yes
No
Developer Makes
Changes to App
No
Approve
Certification?
Yes
ACMS Certificate Issued
Engineering Change Orders
ECO Process
• Applications Change All the Time
•
Certification status needs to be changed
•
Application ID changed, so a new certificate is needed
• Don’t Want to Retest the Application Every Time There is
an Update
• Instead, We Use an ECO Process
•
Inform CCC of the change to the app
•
App CB determines if re-testing is needed
ECO Process Reduces Testing Burden,
& Allows For Updating of Applications
ECO Process Flow
Test Lab
Performs Tests
Developer Updates
App or Certification
Developer Submits
Request for
New/Updated
Certificate on ACMS
Portal
Testing
Complete?
Certification Body
Reviews Change Request
Testing
Needed?
No
Yes
Yes
Test Lab
Issues Report
CB Reviews
Report
No
Developer Makes
Changes to App
No
Approve
Change?
Yes
ACMS Certificate Updated
Member-Certified Applications
Alternative Certification for Applications
• CCC Member Companies Can Certify Applications
•
•
Application will be considered certified on MirrorLink Clients from that Member
Company
Not required to be available on Clients from other Member Companies, and
probably will not be available
• Uses ACMS-Distributed Certificates
•
Certifying entity is listed as Member Company, rather than CCC
• Multiple Member-Certifications Possible
•
•
•
Can have multiple certifying entities listed, including CCC and member
companies
Allows for member companies to “extend” application operation for their Clients
– e.g. add drive-mode operation
Member certification can be tailored to specific vehicle models (vendor specific)
• Member Company Controls Parameters of MemberCertification
•
Blacklisting Possible, But Only Under Exceptional Circumstances
Developer Resources
Aids for MirrorLink
Application Developers
Developer Portal & Forum
• Specifications
•
•
Requirements for applications
Test specifications
• Whitepapers & “How Tos”
•
•
•
•
Requirements guidelines
How to comply with requirements
Information on MirrorLink protocol
FAQs
• Developer Forum
•
•
Community support
Ask questions of CCC
• Developer Tools
• Sample Code
Certificate and Application ID Generation
• Application MirrorLink XML
Extension Generator
•
Assist in creating XML that is placed in
Application Certificates
• ACMS-Generated certificates
• Self-signed certificates
•
Currently Excel macro…other versions
pending
• Self-Signed Certificate Generator
•
•
Build certificates for inclusion in
application
Developer certificate generation
• Application ID Generator
•
•
Create an application ID per defined rules
Android version first
MirrorLink Session Emulation
• Two Components
•
Common API “Faker” App
•
•
Provides Common API intents for app to bind to
Controller Application
•
Configure & invoke Common API methods
• Additional Features Coming
•
•
•
•
•
•
•
Protocol for external automated testing
Remote framebuffer simulation
Rotary knob support
Key event simulation
Event logging
Additional MirrorLink platforms
Certification testing support
Android Phone (or Emulator)
Common API
Faker
MirrorLink
Application
Creates intents &
interacts with app.
The application
being developed.
PC
Controller
Interacts with
Common API Faker
via IP Socket
MirrorLink App Testing at Workstation
31
MirrorLink Client Simulator
• Simulates MirrorLink Client
with Variable Capabilities
•
•
•
Screen size and pixel depth
Available controls
Simulate status updates (night mode,
drive mode)
• CCC Certified Linux
Application
•
•
Full implementation of MirrorLink
protocol
Capable of interoperating with
multiple different MirrorLink servers
• Allows for Testing of MirrorLink
Functionality at the
Developer’s Workstation
ACMS Portal
• Where App Developers Manage
Application Certificates
•
•
•
Request certificates for new applications
Request updates to certificate for existing
applications
Request developer ID and developer certificates
• Where Member Companies Add
Member Certification
•
At request of member company
• Where App Certification Body
Approves/Rejects Requests
•
•
Process requests
Approve/deny/ask for additional comment
• View Metrics
•
•
Overall number of queries to the ACMS from
fielded devices
Number of certificates issued, system-wide and
by application
Certifying Applications
for
MirrorLink
Technical Considerations
of Application Certification
Jörg Brakensiek, Nokia
Jörg Brakensiek is Principal Architect at
Nokia’s Smart Devices Business Unit, a
position he’s held since April 2013. Prior
to that, Jörg served as an R&D Manager
for Nokia’s Location & Commerce
Business Unit. During his tenure at the
company, he also led research teams
focused on ubiquitous mobile device
interoperability with specific attention to
the automotive domain. Jörg serves as
the head of the Technical Working Group
for the CCC.
Code Samples &
Demonstration
Piotr Janas, Comarch
R&D Manager, Comarch, has been
developing software for smartphone
platforms since 2005. Recently, he has
particularly been interested in the
mobile version Ubuntu. For two years,
Piotr has been a Technical Leader of
MirrorLink certification projects – the
Compliance Test System (CTS) and
the Application Certification
Management System (ACMS) for the
CCC.
Driver Workload
Guidelines Applied to
MirrorLink® Mobile
Applications
Matthias Henning, Carmeq
•
•
Graduated in Psychology and Human
Machine Interaction at Chemnitz University
of Technology, Germany, 2004
Researcher and lecturer at Chemnitz
University of Technology from 2004-2011:
•
•
•
Worked on several projects in the field of driver-vehicle
interaction funded by industry and government
Received his doctorate in 2010 in the field of driver’s
intention recognition
HMI specialist at CARMEQ (Volkswagen
Group) since 2011:
•
•
Team interaction concepts and evaluation
Focus on driver distraction guidelines and human
subject studies
QUESTIONS?
Certifying Applications
for
MirrorLink
Download