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/

Tools for configuring and working with Linux Gadget available on GitHub



https://github.com/Belcarra/gadgetconfig

We have made the above available as part of our ongoing efforts to assist developers who want to implement USB devices. This package contains tools for configuring Gadget USB Devices and integrating with systemd.
It relies on the Gadget ConfigFS module libcomposite to create and manage Gadget USB Devices.

Favourites