Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Slack Status

SmartDeviceLink (SDL)

SmartDeviceLink (SDL) is a standard set of protocols and messages that connect applications on a smartphone to a vehicle head unit. This messaging enables a consumer to interact with their application using common in-vehicle interfaces such as a touch screen display, embedded voice recognition, steering wheel controls and various vehicle knobs and buttons. There are three main components that make up the SDL ecosystem.

  • The Core component is the software which Vehicle Manufacturers (OEMs) implement in their vehicle head units. Integrating this component into their head unit and HMI based on a set of guidelines and templates enables access to various smartphone applications.
  • The optional SDL Server can be used by Vehicle OEMs to update application policies and gather usage information for connected applications.
  • The iOS and Android libraries are implemented by app developers into their applications to enable command and control via the connected head unit.


SDL Server

The SmartDeviceLink (SDL) server allows the automated construction of policy tables, which the SDL Core component uses to validate messaging with connected applications. The server communicates with SHAID to maintain updated information about application information and uses that information to help build appropriate policy table responses.

Depending on your needs, you may not require the use of the SDL Server. If you only want to permit all your apps using an sdl_core instance that you control, then you can edit the preloaded policy table to allow this. Edit the default permissions located in this line of the preloaded policy table:

Change the contents of that array to include this instead: [“Base-4”, “Location-1", “Notifications”, “DrivingCharacteristics-3", “VehicleInfo-3”, “PropriataryData-1", “PropriataryData-2”, “ProprietaryData-3", “Emergency-1”, “Navigation-1", “Base-6”, “OnKeyboardInputOnlyGroup”, “OnTouchEventOnlyGroup”, “DiagnosticMessageOnly”, “DataConsent-2”, “BaseBeforeDataConsent”, “SendLocation”, “WayPoints”, “BackgroundAPT”]

Getting Started

A quick guide to setup the SDL server can be found at


All documentation can be found at


If you have a suggestion or bug please submit an issue. You can submit code using a pull request, but please follow the contributing guidelines.


The SmartDeviceLink (SDL) server handles authentication, data collection, and basic configurations for SDL connected vehicles.







No packages published