certifying applications for mirrorlink n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Certifying Applications for MirrorLink ® PowerPoint Presentation
Download Presentation
Certifying Applications for MirrorLink ®

Loading in 2 Seconds...

play fullscreen
1 / 38

Certifying Applications for MirrorLink ® - PowerPoint PPT Presentation


  • 1892 Views
  • Uploaded on

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?

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Certifying Applications for MirrorLink ®' - kolina


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
certifying applications for mirrorlink

Certifying ApplicationsforMirrorLink®

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
Certifying Appsfor 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
What is MirrorLink? High Level Overview for Application Developers
  • New Environment for Applications
  • Application Executed on Phone
    • Known challenges for development
  • 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
    • Communication of status and events
    • Data services

Application

MirrorLink Server

(Phone)

MirrorLink Server

(Phone)

MirrorLink Server

(Phone)

MirrorLink Common API

MirrorLink Client

(Head Unit)

MirrorLink Client

(Head Unit)

MirrorLink Client

(Head Unit)

what is certification high level overview of application certification
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
How Do I Make a MirrorLink App?

MirrorLink Common API

making mirrorlink apps how do i make my app work with mirrorlink
Making MirrorLink AppsHow do I make my app work with MirrorLink?
  • Become MirrorLink Aware
    • 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
    • Discover capabilities of MirrorLink Client
    • Respond to status messages from MirrorLink Client
    • Virtual keyboard and controls
    • Take advantage of data services

Application

MirrorLink Server

(Phone)

MirrorLink Server

(Phone)

MirrorLink Server

(Phone)

MirrorLink Common API

MirrorLink Client

(Head Unit)

MirrorLink Client

(Head Unit)

MirrorLink Client

(Head Unit)

mirrorlink common api standard mirrorlink server application interface
MirrorLink Common APIStandard 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

MirrorLink Does Not Create Compatibility Problems

mirrorlink common api example common api definition
MirrorLink Common APIExample Common API Definition
  • Event Configuration Information
    • Obtain information about the events supported by the MirrorLink Session
  • Event Configuration Callback
    • Notification to application if the Event Configuration Information has changed
why certify my application
Why Certify My Application?

Base and Regional Drive Certifications

types of certification benefits
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

Base CertificationBasic Interoperability

Benefit – App Will Work With ML Clients

base certification application metadata
Base CertificationApplication 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
Drive CertificationMinimizing 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
  • 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-Based Certification
  • 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
How Do I Certify My Application?

Application Certificates and the ACMS

mirrorlink application certificates
MirrorLink Application Certificates

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

.

.

.

  • 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
application certificate management system acms for app developers
Application Certificate Management SystemACMS for App Developers

App Certificate Management System

Car Connectivity Consortium

Device Makers

Management Portal

Certificate Distribution

Certification Body

Test Labs

Application Certificates distributed to server devices over the Internet.

Developers

App & Dev Certificates

Apps

MirrorLink®Server Devices

Phones & other mobile devices

App Stores

Apps do not contain Application Certificates.

Apps

ACMS Integration Requires No Changes to Application

MirrorLink® Client Devices

Head units

App Certificate tells Servers & Clients when the app is safe to use, and where.

application life cycle
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
    • Certificate available from the ACMS

Standard Application

MirrorLink Aware Application

May have a Certificate on the ACMS

Platform-specific indication.

  • MirrorLink Certified Application
  • Certificate provided by the ACMS

MirrorLink Aware Apps Can Become Certified At Any Time

application certificate updates
Application Certificate Updates

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
  • 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 id security
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

Developer Requests a Developer Certificate via ACMS Portal

Provides IMEI to ACMS SMP

Provides IDs of Server devices

ACMS generates Developer ID

Developer Inputs Developer ID into MirrorLink Server Device

Server device requests developer certificate from ACMS

Developer Provides MirrorLink XML Extension in Application

Self-signed certificate (typical)

MirrorLink Server Presents MirrorLink XML Extension Provided By Developer As CCC-Signed

Developer CertificatesTesting Application Behavior

ACMS

Developer Certificate(s)

Status Query

Developer ID, Server Device IDs, Manufacturer Blacklist

Developer IDs, Server Device ID

MLClient

Device

MirrorLink™ Server Device

Device ID(s)

Manufacturer Name

Dev-Signed Application Certificate

Server Device IDs

Input Developer ID(s)

Developer

Developer ID

Run Uncertified App In Drive Mode

how do i certify my application1
How Do I Certify My Application?

Application Certification Process

application certification high level overview redux
Application CertificationHigh-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
Certification Process OverviewKey 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
Certification Process DiagramNew Application Certification

Test LabPerforms Tests

Developer Decides to Get App Certified

Testing Complete?

No

Developer Makes Changes to App

Developer Fills Out PICS & Submit Certification Request

Yes

Test LabIssues Report

Certification Body Reviews Application

No

Approve Certification?

CB Reviews Report

Ready to Test?

Yes

No

Yes

ACMS Certificate Issued

engineering change orders eco process
Engineering Change OrdersECO 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
ECO Process Flow

Test LabPerforms Tests

Developer Updates App or Certification

Testing Complete?

No

Developer Submits Request for New/Updated Certificate on ACMS Portal

Developer Makes Changes to App

Yes

Test LabIssues Report

No

Certification Body Reviews Change Request

Approve Change?

CB Reviews Report

Testing Needed?

Yes

Yes

No

ACMS Certificate Updated

member certified applications alternative certification for applications
Member-Certified ApplicationsAlternative 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 Member-Certification
    • Blacklisting Possible, But Only Under Exceptional Circumstances
developer resources
Developer Resources
  • Aids for MirrorLink Application Developers
developer portal forum
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
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
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)

MirrorLink Application

The application being developed.

Common API Faker

Creates intents & interacts with app.

PC

Controller

Interacts with Common API Faker via IP Socket

MirrorLink App Testing at Workstation

mirrorlink client simulator
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
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
technical considerations of application certification j rg brakensiek nokia
Technical Considerations of Application CertificationJörgBrakensiek, Nokia
  • JörgBrakensiek 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
Code Samples & DemonstrationPiotrJanas, 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
Driver Workload Guidelines Applied to MirrorLink® Mobile ApplicationsMatthias 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