From 7c33d9579fe7445b4ab242c55451b218b02e31b1 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Wed, 29 Nov 2023 14:02:31 -0600 Subject: [PATCH] [AltServer] Supports changing AltJIT timeout via `defaults` CLI --- AltServer/Extensions/UserDefaults+AltServer.swift | 13 +++++++++++++ AltServer/JIT/JITManager.swift | 5 +++++ 2 files changed, 18 insertions(+) diff --git a/AltServer/Extensions/UserDefaults+AltServer.swift b/AltServer/Extensions/UserDefaults+AltServer.swift index 499cf69e..096f4a0a 100644 --- a/AltServer/Extensions/UserDefaults+AltServer.swift +++ b/AltServer/Extensions/UserDefaults+AltServer.swift @@ -36,3 +36,16 @@ extension UserDefaults } } } + +// "Public" defaults configurable via CLI. +extension UserDefaults +{ + private static let altJITTimeoutKey = "JITTimeout" + + var altJITTimeout: TimeInterval? { + let timeout = self.double(forKey: UserDefaults.altJITTimeoutKey) // Coerces strings into doubles. + guard timeout != 0 else { return nil } + + return timeout + } +} diff --git a/AltServer/JIT/JITManager.swift b/AltServer/JIT/JITManager.swift index b85abeff..e9450eeb 100644 --- a/AltServer/JIT/JITManager.swift +++ b/AltServer/JIT/JITManager.swift @@ -137,6 +137,11 @@ private extension JITManager } arguments += ["--udid", device.identifier] + if let timeout = UserDefaults.standard.altJITTimeout + { + arguments += ["--timeout", String(timeout)] + } + self.authorization = try Process.runAsAdmin(URL.altjit.path, arguments: arguments, authorization: self.authorization) } catch