diff --git a/Shared/Data/UserDefaults/Preferences.swift b/Shared/Data/UserDefaults/Preferences.swift index e2bd286..16552fb 100644 --- a/Shared/Data/UserDefaults/Preferences.swift +++ b/Shared/Data/UserDefaults/Preferences.swift @@ -40,7 +40,7 @@ enum Preferences { @Storage(key: "Feather.ppqcheckBypass", defaultValue: "") static var pPQCheckString: String - @Storage(key: "Feather.fuckOffPpqcheckDetection", defaultValue: false) + @Storage(key: "Feather.fuckOffPpqcheckDetection", defaultValue: true) static var isFuckingPPqcheckDetectionOff: Bool @Storage(key: "Feather.idWhitelist", defaultValue: ["kh.crysalis.feather", "kh.crysalis.feather2"]) diff --git a/feather.xcodeproj/project.pbxproj b/feather.xcodeproj/project.pbxproj index ce57ad3..c8093b3 100644 --- a/feather.xcodeproj/project.pbxproj +++ b/feather.xcodeproj/project.pbxproj @@ -1075,7 +1075,7 @@ PROVISIONING_PROFILE_SPECIFIER = ""; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_OBJC_BRIDGING_HEADER = "Shared/Signing/feather-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -1120,7 +1120,7 @@ PROVISIONING_PROFILE_SPECIFIER = ""; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_OBJC_BRIDGING_HEADER = "Shared/Signing/feather-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/iOS/Views/Apps/Signing/AppSigningInputViewController.swift b/iOS/Views/Apps/Signing/AppSigningInputViewController.swift index 65813b0..19e98d7 100644 --- a/iOS/Views/Apps/Signing/AppSigningInputViewController.swift +++ b/iOS/Views/Apps/Signing/AppSigningInputViewController.swift @@ -57,7 +57,7 @@ class AppSigningInputViewController: UITableViewController { override func numberOfSections(in tableView: UITableView) -> Int { if ((appSigningViewController.certs?.certData?.pPQCheck) != nil) && valueToSaveTo == "bundleId"{ - return 3 + return 2 } else { return 1 } @@ -87,20 +87,20 @@ class AppSigningInputViewController: UITableViewController { cell.textLabel?.text = "PPQCheck is Enabled" cell.textLabel?.textColor = .systemRed - cell.detailTextLabel?.text = "Sadly your certificate seems to have the PPQCheck option enabled and cannot be turned off by any normal means, so we've appended a random string to your Bundle Identifier. If you wish to continue you may remove that prepended string or disable it in settings." - cell.detailTextLabel?.textColor = .systemOrange - cell.textLabel?.numberOfLines = 0 - cell.detailTextLabel?.numberOfLines = 0 - case 2: - cell = UITableViewCell(style: .subtitle, reuseIdentifier: "Cell") - - cell.textLabel?.text = "Information" - cell.textLabel?.textColor = .label - - cell.detailTextLabel?.text = "PPQCheck is a way for Apple to check if the app you're opening matches another bundle identifier found on the App Store, the check happens every time you open the signed installed application. By default we prepended the random string to save you from a headache of getting the Apple ID associated with the certificate locked." - cell.detailTextLabel?.textColor = .secondaryLabel + cell.detailTextLabel?.text = "PPQCheck is a way for Apple to check if the app you're opening matches another bundle identifier found on the App Store, the check happens on the first time you open the signed installed application. We have an option for you to avoid this, however you will no longer receive the benefits of notifications and such relating to the default identifier." + cell.detailTextLabel?.textColor = .label cell.textLabel?.numberOfLines = 0 cell.detailTextLabel?.numberOfLines = 0 +// case 2: +// cell = UITableViewCell(style: .subtitle, reuseIdentifier: "Cell") +// +// cell.textLabel?.text = "Information" +// cell.textLabel?.textColor = .label +// +// cell.detailTextLabel?.text = "PPQCheck is a way for Apple to check if the app you're opening matches another bundle identifier found on the App Store, the check happens every time you open the signed installed application. By default we prepended the random string to save you from a headache of getting the Apple ID associated with the certificate locked." +// cell.detailTextLabel?.textColor = .secondaryLabel +// cell.textLabel?.numberOfLines = 0 +// cell.detailTextLabel?.numberOfLines = 0 default: break } return cell diff --git a/iOS/Views/Apps/Signing/AppSigningViewController.swift b/iOS/Views/Apps/Signing/AppSigningViewController.swift index 6c8f77d..acd068c 100644 --- a/iOS/Views/Apps/Signing/AppSigningViewController.swift +++ b/iOS/Views/Apps/Signing/AppSigningViewController.swift @@ -58,7 +58,7 @@ class AppSigningViewController: UITableViewController { } if let bundleId = app.value(forKey: "bundleidentifier") as? String { - if self.certs?.certData?.pPQCheck == true && Preferences.isFuckingPPqcheckDetectionOff == false { + if self.certs?.certData?.pPQCheck == true && Preferences.isFuckingPPqcheckDetectionOff == true { self.bundleId = bundleId+"."+Preferences.pPQCheckString } else { self.bundleId = bundleId diff --git a/iOS/Views/Settings/SettingsViewController.swift b/iOS/Views/Settings/SettingsViewController.swift index f5092ad..c8f1797 100644 --- a/iOS/Views/Settings/SettingsViewController.swift +++ b/iOS/Views/Settings/SettingsViewController.swift @@ -145,11 +145,17 @@ extension SettingsViewController { } case "Fuck PPQCheck": let fuckPPq = SwitchViewCell() - fuckPPq.textLabel?.text = "Disable PPQCheck Protections" + fuckPPq.textLabel?.text = "PPQCheck Protection" fuckPPq.switchControl.addTarget(self, action: #selector(fuckPpqcheckToggled(_:)), for: .valueChanged) fuckPPq.switchControl.isOn = Preferences.isFuckingPPqcheckDetectionOff fuckPPq.selectionStyle = .none + + let infoButton = UIButton(type: .infoLight) + infoButton.addTarget(self, action: #selector(showPPQInfoAlert), for: .touchUpInside) + fuckPPq.accessoryView = infoButton + return fuckPPq + case "PPQCheckMitigationString": cell.textLabel?.text = "Change Random Identifier" cell.textLabel?.textColor = .tintColor @@ -203,6 +209,18 @@ extension SettingsViewController { return cell } + @objc func showPPQInfoAlert() { + let alertController = UIAlertController( + title: "PPQCheck Protections", + message: "This setting enables the PPQCheck protections, which is designed to prepend each bundle identifier for the apps you sideload with a random string.\n\nThis is meant to avoid apple flagging your account by (trying) to make it so they're unable to associate the app your sideloading with one from the App Store.", + preferredStyle: .alert + ) + alertController.addAction(UIAlertAction(title: "???", style: .default)) + alertController.addAction(UIAlertAction(title: "I don't care", style: .destructive)) + alertController.addAction(UIAlertAction(title: "Good to know", style: .cancel)) + present(alertController, animated: true, completion: nil) + } + @objc func onlinePathToggled(_ sender: UISwitch) { Preferences.userSelectedServer = sender.isOn }