import Foundation import SystemExtensions print("=== MarkBaseFS System Extension Installer ===") print("Date: \(Date())") print("") let extensionIdentifier = "com.accusys.markbase.fskitmodule" print("Extension ID: \(extensionIdentifier)") print("Submitting installation request...") print("") class InstallerDelegate: NSObject, OSSystemExtensionRequestDelegate { func request(_ request: OSSystemExtensionRequest, didFailWithError error: Error) { print("❌ Installation failed: \(error)") print("Error domain: \((error as NSError).domain)") print("Error code: \((error as NSError).code)") exit(1) } func request(_ request: OSSystemExtensionRequest, didFinishWithResult result: OSSystemExtensionRequest.Result) { print("✅ Installation succeeded!") print("Result: \(result)") switch result { case .completed: print("Extension installed and active") case .willCompleteAfterReboot: print("Extension will complete after reboot") @unknown default: print("Unknown result") } exit(0) } func requestNeedsUserApproval(_ request: OSSystemExtensionRequest) { print("⚠️ User approval required") print("System Preferences → Privacy & Security → System Extensions") print("Approve: \(request.identifier)") } func request(_ request: OSSystemExtensionRequest, actionForReplacingExtension existing: OSSystemExtensionProperties, withExtension ext: OSSystemExtensionProperties) -> OSSystemExtensionRequest.ReplacementAction { print("Replacing existing extension with new version") return .replace } } let delegate = InstallerDelegate() let request = OSSystemExtensionRequest.activationRequest( forExtensionWithIdentifier: extensionIdentifier, queue: DispatchQueue.main ) request.delegate = delegate OSSystemExtensionManager.shared.submitRequest(request) print("✅ Request submitted") print("") print("Waiting for approval...") print("") RunLoop.main.run()