diff --git a/AltServer/Anisette Data/LocalAnisetteDataManager.swift b/AltServer/Anisette Data/LocalAnisetteDataManager.swift index 8791646759..c7da879361 100644 --- a/AltServer/Anisette Data/LocalAnisetteDataManager.swift +++ b/AltServer/Anisette Data/LocalAnisetteDataManager.swift @@ -20,6 +20,13 @@ private extension URL static let unzip = URL(fileURLWithPath: "/usr/bin/unzip") } +private extension String +{ + // AnisetteKit provisions an Android device, and GrandSlam now rejects sign-in with -80045 + // when X-MMe-Client-Info describes a Mac instead. + static let androidClientInfo = " " +} + // Swift wrapper around AnisetteKit to generate anisette data when macOS won't provide it. class LocalAnisetteDataManager { @@ -155,7 +162,7 @@ private extension LocalAnisetteDataManager routingInfo: routingInfo, deviceUniqueIdentifier: identifier.uuidString.uppercased(), deviceSerialNumber: AnisetteConstants.defaultSerialNumber, - deviceDescription: client.clientInfo, + deviceDescription: .androidClientInfo, date: Date(), locale: .current, timeZone: .current) diff --git a/AltServer/AppDelegate.swift b/AltServer/AppDelegate.swift index 8b3abb6d43..b57a904293 100644 --- a/AltServer/AppDelegate.swift +++ b/AltServer/AppDelegate.swift @@ -61,6 +61,17 @@ class AppDelegate: NSObject, NSApplicationDelegate { ServerConnectionManager.shared.start() ALTDeviceManager.shared.start() + // Apple rejects one-time passwords that were already used, so let AltSign ask for new anisette data between sign-in steps. + ALTAppleAPI.shared.anisetteDataRefreshHandler = { (completionHandler) in + AnisetteDataManager.shared.requestAnisetteData { (result) in + switch result + { + case .failure(let error): completionHandler(nil, error) + case .success(let anisetteData): completionHandler(anisetteData, nil) + } + } + } + #if STAGING SUUpdater.shared().feedURL = URL(string: "https://altstore.io/altserver/sparkle-macos-staging.xml") #else diff --git a/Dependencies/AltSign b/Dependencies/AltSign index 0d3c1a3cac..780f7cfb9b 160000 --- a/Dependencies/AltSign +++ b/Dependencies/AltSign @@ -1 +1 @@ -Subproject commit 0d3c1a3cac608e724ca0c8d7404253cd5fee9495 +Subproject commit 780f7cfb9b0dab1189fb8fcdaaa31f005cfab597