3 ms·
Quick fix for drivers for El Capitan (e.g. ZTE USB modem)
My ZTE USB modem driver refused to work after the El Capitan update. Turns out, it wasn't signed.
codesign -s "name of my cert" ~/Downloads/ZTEUSBCDCACMData.kext
failed with "object file format unrecognized, invalid, or unsuitable".
I tracked that down to the fact that XCode 7 refuses to sign a multi-architecture kext. So the remedy is to call
lipo -thin x86_64 ~/Downloads/ZTEUSBCDCACMData.kext/Contents/MacOS/ZTEUSBCDCACMData -output ~/Downloads/ZTEUSBCDCACMData.kext/Contents/MacOS/ZTEUSBCDCACMData
which will convert the fat binary into a x86_64 thin binary and then sign this with
codesign -s "name of my cert" ~/Downloads/ZTEUSBCDCACMData.kext
then do the usual kext dance
(copy into /Library/Extensions, chown to root:wheel, kextload /L/E/name.kext)
and voila, the Yosemite kext now also works on El Capitan.
I've used the exact same procedure for my scanner too.. so if you have hardware that used to work with Yosemite and is getting refused by El Capitan, you might want to try this simple trick :)
And if you want to see some seriously cool driver trickery, please take a look at my headphone enhancer app http://hajoheadphone.com/