2021-09-03 13:57:15 -05:00
|
|
|
//
|
|
|
|
|
// EnableJITOperation.swift
|
|
|
|
|
// EnableJITOperation
|
|
|
|
|
//
|
|
|
|
|
// Created by Riley Testut on 9/1/21.
|
|
|
|
|
// Copyright © 2021 Riley Testut. All rights reserved.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
import UIKit
|
|
|
|
|
import Combine
|
2022-11-02 17:58:59 -07:00
|
|
|
import minimuxer
|
2021-09-03 13:57:15 -05:00
|
|
|
|
|
|
|
|
import AltStoreCore
|
|
|
|
|
|
|
|
|
|
@available(iOS 14, *)
|
|
|
|
|
protocol EnableJITContext
|
|
|
|
|
{
|
|
|
|
|
var installedApp: InstalledApp? { get }
|
|
|
|
|
|
|
|
|
|
var error: Error? { get }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@available(iOS 14, *)
|
2023-01-04 09:52:12 -05:00
|
|
|
final class EnableJITOperation<Context: EnableJITContext>: ResultOperation<Void>
|
2021-09-03 13:57:15 -05:00
|
|
|
{
|
|
|
|
|
let context: Context
|
|
|
|
|
|
|
|
|
|
private var cancellable: AnyCancellable?
|
|
|
|
|
|
|
|
|
|
init(context: Context)
|
|
|
|
|
{
|
|
|
|
|
self.context = context
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override func main()
|
|
|
|
|
{
|
|
|
|
|
super.main()
|
|
|
|
|
|
|
|
|
|
if let error = self.context.error
|
|
|
|
|
{
|
|
|
|
|
self.finish(.failure(error))
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
2022-11-02 17:58:59 -07:00
|
|
|
guard let installedApp = self.context.installedApp else { return self.finish(.failure(OperationError.invalidParameters)) }
|
2021-09-03 13:57:15 -05:00
|
|
|
|
|
|
|
|
installedApp.managedObjectContext?.perform {
|
2022-11-02 17:58:59 -07:00
|
|
|
do {
|
2023-04-01 16:02:12 -07:00
|
|
|
try debug_app(installedApp.resignedBundleIdentifier)
|
2022-11-02 17:58:59 -07:00
|
|
|
} catch {
|
2023-04-11 21:04:07 -07:00
|
|
|
return self.finish(.failure(error))
|
2021-09-03 13:57:15 -05:00
|
|
|
}
|
2022-11-02 17:58:59 -07:00
|
|
|
|
2023-04-01 16:02:12 -07:00
|
|
|
self.finish(.success(()))
|
2021-09-03 13:57:15 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|