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, *)
|
|
|
|
|
class EnableJITOperation<Context: EnableJITContext>: ResultOperation<Void>
|
|
|
|
|
{
|
|
|
|
|
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
|
|
|
let v = minimuxer_to_operation(code: 1)
|
2021-09-03 13:57:15 -05:00
|
|
|
|
2022-11-02 17:58:59 -07:00
|
|
|
do {
|
|
|
|
|
var x = try debug_app(app_id: installedApp.resignedBundleIdentifier)
|
|
|
|
|
switch x {
|
|
|
|
|
case .Good:
|
|
|
|
|
self.finish(.success(()))
|
|
|
|
|
case .Bad(let code):
|
|
|
|
|
self.finish(.failure(minimuxer_to_operation(code: code)))
|
2021-09-03 13:57:15 -05:00
|
|
|
}
|
2022-11-02 17:58:59 -07:00
|
|
|
} catch Uhoh.Bad(let code) {
|
|
|
|
|
self.finish(.failure(minimuxer_to_operation(code: code)))
|
|
|
|
|
} catch {
|
|
|
|
|
self.finish(.failure(OperationError.unknown))
|
2021-09-03 13:57:15 -05:00
|
|
|
}
|
2022-11-02 17:58:59 -07:00
|
|
|
|
|
|
|
|
|
2021-09-03 13:57:15 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|