import Foundation import SystemExtensions let bundleID = "com.momentry.markbase.fskit" print("=== MarkBaseFS System Extension Installer ===") print("Bundle ID: \(bundleID)") print("") class InstallationDelegate: NSObject, OSSystemExtensionRequestDelegate { func request(_ request: OSSystemExtensionRequest, didFinishWithResult result: OSSystemExtensionRequest.Result) { print("✅ Installation succeeded!") print("Result: \(result)") CFRunLoopStop(CFRunLoopGetCurrent()) } func request(_ request: OSSystemExtensionRequest, didFailWithError error: Error) { print("❌ Installation failed!") print("Error: \(error.localizedDescription)") if let nsError = error as NSError? { print("Domain: \(nsError.domain)") print("Code: \(nsError.code)") print("UserInfo: \(nsError.userInfo)") } CFRunLoopStop(CFRunLoopGetCurrent()) } func requestNeedsUserApproval(_ request: OSSystemExtensionRequest) { print("⚠️ User approval required!") print("Please go to: System Settings → Privacy & Security → System Extensions") print("Click 'Allow' for MarkBaseFSKit") } func request(_ request: OSSystemExtensionRequest, actionForReplacingExtension existing: OSSystemExtensionProperties, withExtension new: OSSystemExtensionProperties) -> OSSystemExtensionRequest.ReplacementAction { print("Extension already exists, replacing with newer version...") return .replace } } let delegate = InstallationDelegate() let request = OSSystemExtensionRequest.activationRequest(forExtensionWithIdentifier: bundleID, queue: .main) request.delegate = delegate print("Submitting installation request...") OSSystemExtensionManager.shared.submitRequest(request) print("Waiting for approval...") print("(This tool will wait until you approve or it fails)") CFRunLoopRun() print("Installation process completed.")