MUSBLAN Customer Kit Configuration

September 1, 2020

Belcarra’s MUSBLAN for MacOS is a Driverkit Extension that implements Networking over USB.

Installation of the MUSBLAN Driverkit Extension is done from the MUSBLAN Installation program. The Application bundle for the installation program contains the Driver Extensions required to implement the driver.

The configuration of the installation program requires:
1.    Customer Name for the installation program
2.    The customer USB Vendor ID and list of Product ID’s to match
3.    Two provisioning profiles.
a.    Installation application
b.    DriverKit extension

Provisioning profiles are generated by using an Apple Developer Account. They contain the Team Identifier for the Developer Account, the public keys for the codesigning certificate that will be used to codesign bundles that use the provisioning profile, and the specific entitlements that the bundle is requesting.

Belcarra can provide the profiles and codesign the resulting Application Bundle.

Optionally if the customer needs to codesign the Application Bundle, they must provide the provisioning profiles because the certificate that will be used for codesigning is specified in the provisioning profile.

Entitlements

The creation of the required provisioning profiles requires specific entitlements and certificates.

Customers that need to generate their own provisioning profiles will need to request these entitlements from Apple, and approved by Apple for the specific Developer account they will be using:
     System Extension - used by the Installation application
     DriverKit USB Transport - VendorID - used by the DriverKit extensions

N.B. The USB Transport entitlement will be granted for a specific USB Vendor ID. The DriverKit extension cannot be used for any Vendor ID not specifically called out in the provisioning file.

N.B. It is not clear at this time if Application Bundles containing DriverKit Extensions can be distributed in the Mac App Store.

 Entitlements can be requested from Apple at this page: https://developer.apple.com/contact/request/system-extension/


Kit Building

Building a customer kit has four steps:
1.    Using the provisioning profiles to construct a Customer configuration file for the compilation of the code.
2.    Using Xcode to compile the code using the Customer configuration.
3.    The building, codesigning, and notarization of the Application bundle.
4.  The building, codesigning, and notarization of the distribution kit.

Normally Belcarra will do all of the above to produce either a .pkg or .dmg package that can be distributed to end-users.

Optionally Belcarra can provide the interim build files so that the customer can perform steps #3 and #4.

Certificates

For distribution outside of the Mac App Store the following certificate is required and must be available before creation of the provisioning profile:

     Developer ID Application


Some packing formats, e.g. .pkg produced by the productbuild program, require a different type of certificate when codesigning:
     Developer ID Installer

Certificate creation and management is done here:

Identifiers

Two Identifiers are required and must be available before the creation of the provisioning profile:
App ID Prefix (Team ID)
Description
Bundle ID
Capabilities
F7XQY5N68B
MyCorp MUSBLAN Installer
com.mycorp.musblan-installer
System Extension
F7XQY5N68B
MyCorp MUSBLAN DriverKit
com.mycorp.musblan-driverkit
DriverKit USB Transport - VendorID


Identifier creation and management is done here:

N.B. The format of the Bundle ID is optional. As long as there are three unique ID’s that conform to Apple’s guidelines.

Provisioning Profiles

Two Developer ID Provisioning Profiles are required. The Data Dext profile is only required if the Customer USB Device using CDC-ECM or CDC-NCM (specifically any configuration with two USB Interfaces).

Identifier
Entitlements
Provisioning Profile Name
Download to file
MyCorp MUSBLAN Installer
DriverKit and System Extension Template for  F7XQY5N68B Developer ID
MyCorp MUSBLAN App Installer
MyCorp_musblan_app.provisionprofile

MyCorp MUSBLAN DriverKit
DriverKit Template for F7XQY5N68B - Mac Developer ID
MyCorp MUSBLAN DriverKit
MyCorp_musblan_dext.provisionprofile


N.B. Ensure that the correct Developer ID Application certificate is selected.

Profile creation and management is done here:

More Information

For more information contact: info@belcarra.com


Favourites