From 64a9281e6e624db1f60442f4afe9a0f4185f7336 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Thu, 11 May 2023 15:59:42 -0500 Subject: [PATCH] Removes Psychic Paper support from VerifyAppOperation --- AltStore/Operations/VerifyAppOperation.swift | 77 -------------------- 1 file changed, 77 deletions(-) diff --git a/AltStore/Operations/VerifyAppOperation.swift b/AltStore/Operations/VerifyAppOperation.swift index a458df4f..87f80303 100644 --- a/AltStore/Operations/VerifyAppOperation.swift +++ b/AltStore/Operations/VerifyAppOperation.swift @@ -41,7 +41,6 @@ struct VerificationError: ALTLocalizedError { var errorTitle: String? var errorFailure: String? @Managed var app: AppProtocol? - var entitlements: [String: Any]? var sourceBundleID: String? var deviceOSVersion: OperatingSystemVersion? var requiredOSVersion: OperatingSystemVersion? @@ -134,47 +133,6 @@ final class VerifyAppOperation: ResultOperation throw VerificationError.iOSVersionNotSupported(app: app, requiredOSVersion: app.minimumiOSVersion) } - if #available(iOS 13.5, *) - { - // No psychic paper, so we can ignore private entitlements - app.hasPrivateEntitlements = false - } - else - { - // Make sure this goes last, since once user responds to alert we don't do any more app verification. - if let commentStart = app.entitlementsString.range(of: ""), let commentEnd = app.entitlementsString.range(of: "") - { - // Psychic Paper private entitlements. - - let entitlementsStart = app.entitlementsString.index(after: commentStart.upperBound) - let rawEntitlements = String(app.entitlementsString[entitlementsStart ..< commentEnd.lowerBound]) - - let plistTemplate = """ - - - - - %@ - - - """ - let entitlementsPlist = String(format: plistTemplate, rawEntitlements) - let entitlements = try PropertyListSerialization.propertyList(from: entitlementsPlist.data(using: .utf8)!, options: [], format: nil) as! [String: Any] - - app.hasPrivateEntitlements = true - let error = VerificationError.privateEntitlements(entitlements, app: app) - self.process(error) { (result) in - self.finish(result.mapError { $0 as Error }) - } - - return - } - else - { - app.hasPrivateEntitlements = false - } - } - self.finish(.success(())) } catch @@ -183,38 +141,3 @@ final class VerifyAppOperation: ResultOperation } } } - -private extension VerifyAppOperation -{ - func process(_ error: VerificationError, completion: @escaping (Result) -> Void) - { - guard let presentingViewController = self.context.presentingViewController else { return completion(.failure(error)) } - - DispatchQueue.main.async { - switch error.code - { - case .privateEntitlements: - guard let entitlements = error.entitlements else { return completion(.failure(error)) } - let permissions = entitlements.keys.sorted().joined(separator: "\n") - let message = String(format: NSLocalizedString(""" - You must allow access to these private permissions before continuing: - - %@ - - Private permissions allow apps to do more than normally allowed by iOS, including potentially accessing sensitive private data. Make sure to only install apps from sources you trust. - """, comment: ""), permissions) - - let alertController = UIAlertController(title: error.failureReason ?? error.localizedDescription, message: message, preferredStyle: .alert) - alertController.addAction(UIAlertAction(title: NSLocalizedString("Allow Access", comment: ""), style: .destructive) { (action) in - completion(.success(())) - }) - alertController.addAction(UIAlertAction(title: NSLocalizedString("Deny Access", comment: ""), style: .default, handler: { (action) in - completion(.failure(error)) - })) - presentingViewController.present(alertController, animated: true, completion: nil) - - case .mismatchedBundleIdentifiers, .iOSVersionNotSupported: return completion(.failure(error)) - } - } - } -}