-
Notifications
You must be signed in to change notification settings - Fork 2
Mac Knowledge Bytes
Parallax Git Administrator edited this page Mar 24, 2020
·
21 revisions
A collection of Mac-specific details, history, and tips.
- Includes Apple's attempt to directly support FTDI USB chipsets through Apple's kernel extension (kext)
- first at
/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBFTDI.kext
- later at
/System/Library/Extensions/AppleUSBFTDI.kext
(Mac OS X 10.11 "El Capitan")
- first at
- Introduced a new required destination for third-party driver installation destination
- from
/System/Library/Extensions/
- to
/Library/Extensions/
(FTDI's driver must go here)
- from
- Apple's FTDI driver (AppleUSBFTDI.kext)
- Didn't support all features Parallax needs (namely, DTR support was missing or inadequate)
- Caused system conflicts on some computers when FTDI's driver was installed (occasional Kernel Panics)
- The occurrence of this grew very rare as time when on (later versions after Mavericks seemed to solve it)
- Sometimes needed manual administrative help to prevent problems; see KEXT Admin Tips
Manually disable Apple's kext driver: sudo kextunload -b com.apple.driver.AppleUSBFTDI
Manually enable FTDI's kext driver: sudo kextload -b com.FTDI.driver.FTDIUSBSerialDriver
Verify FTDI's driver is running:
- Plug in FTDI-based device
-
kextstat | grep FTDI
- If all is well, it will report a line of information with the FTDI driver (not the Apple driver) listed in reverse-domain form (
com.FTDI.driver.FTDIUSBSerialDriver
). - If something's wrong, it won't report anything, or it will report the Apple driver instead (
com.apple.driver.AppleUSBFTDI
).
- If all is well, it will report a line of information with the FTDI driver (not the Apple driver) listed in reverse-domain form (
- Do not use v2.3 (suffers a "surprise removal" bug)
- Use v2.4.2 only on macOS 10.12 "Sierra" through macOS 10.14 "Mojave"
- Do not use any FTDI driver on macOS 10.15 "Catalina" (or later); it's not needed as Mac's included driver works
- Gatekeeper on Catalina prevents apps from running unless they are developer signed and Apple notarized.
- Can be overridden by administrators but it remains confusing and nagging.
- NWJS's app bundle contains many libraries and helper applications (bundles), all of which need to be signed (by either the NWJS team or by Parallax) in order for Apple issue a successful notarization.
- Apps need special permissions (called entitlements) in order to run and to have access to resources they need to properly function.
- NWJS seems to require the
com.apple.security.cs.allow-unsigned-executable-memory
entitlement set to true in order for it to read it's bundle-embedded app (in /Resources/app.nw/ folder). Without this entitlement, the bundle starts NWJS and fails silently (only showing an NWJS menu but no application window).
- NWJS seems to require the
- It's been said that Apple will eventually require both hardened runtime and sandboxing in macOS apps. These are two different things- read more.