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
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.
N.B. It is not clear at this time if Application Bundles containing DriverKit Extensions can be distributed in the Mac App Store.
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.
Certificates
●
Developer ID Application
●
Developer ID Installer
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:
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
|