Post

Replies

Boosts

Views

Activity

Reply to Only Apple kexts may link against com.apple.kpi.private
Yes, it's possible, but with several conditions: Extension 'com.foo.bar' has invalid properties: [Linking com.apple.kpi.private requires an Apple kext (ANY OF: [ALL OF: [ANY OF: [Property CFBundleGetInfoString must have valid Apple copyright string, Property NSHumanReadableCopyright must have valid Apple copyright string], Property 'CFBundleIdentifier' should have type String with prefix: com.apple], Properties under OSBundleLibraries must satisfy: [Property 'com.apple.kpi.private' should be absent]])]" UserInfo={NSLocalizedDescription=Validating extension failed: Kext com.banana.ntfs-mod v1.1.1 in executable kext bundle com.banana.ntfs-mod at ***: You should have "com.apple" prefixed bundle id You should have "Copyright © 2002-2015 Apple Inc. All rights reserved." copyright string in 'CFBundleGetInfoString' key of your 'Info.plist' Finally, you can link against private KPIs in your info.plist by adding "com.apple.kpi.private" in OSBundleLibraries. But if you try to load your kext, you will get an error from kernelmanagerd saying, "kernelmanagerd apple-prefixed bundle found without explicit auxiliary collection load requirement: Kext com.foo.barv1.1.1 in executable kext bundle com.foo.bar at /Library/Extensions/***.kext". This means your kext is not been approved by the user. Apple-prefixed kext will not trigger a user consent as 3rd party kext does.
Jul ’22
Reply to Help in debugging an Audio Server Plugin
Updated my successful debug setup, hoping to help someone sometime. With Activity Monitor opened, one important thing to do is toggle the All Process option. Then you will see your target process. The user of this process is _coreaudiod. Once you get the PID, you can attach it to the process with its PID. No need to kick restart the coreaudiod service.
Aug ’22
Reply to Microphone crashing when change input source
Here is the link of a answer from stack overflow. Change Audio input programmatically doesn't change Audio engine input AVFoundation You crashed because after input source changed, let input = avAudioEngine.inputNode does not update to new input source. Therefore, just re-create the avAudioEngine. audioEngine = AVAudioEngine()
Jun ’23