mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-08 22:33:26 +01:00
Force-enables “Enforce 3-App Limit” if iOS version does not support MacDirtyCow exploit
Prevents “Enforce 3-App Limit” remaining enabled after updating iOS version without a way to disable it.
This commit is contained in:
@@ -302,10 +302,8 @@ private extension SettingsViewController
|
||||
switch section
|
||||
{
|
||||
case .macDirtyCow:
|
||||
let ios16_2 = OperatingSystemVersion(majorVersion: 16, minorVersion: 2, patchVersion: 0)
|
||||
|
||||
let isMacDirtyCowExploitSupported = !ProcessInfo.processInfo.isOperatingSystemAtLeast(ios16_2)
|
||||
return !(isMacDirtyCowExploitSupported && UserDefaults.standard.isDebugModeEnabled)
|
||||
let isHidden = !(UserDefaults.standard.isMacDirtyCowSupported && UserDefaults.standard.isDebugModeEnabled)
|
||||
return isHidden
|
||||
|
||||
default: return false
|
||||
}
|
||||
|
||||
@@ -71,6 +71,7 @@ public extension UserDefaults
|
||||
@NSManaged @objc(activeAppsLimit) private var _activeAppsLimit: NSNumber?
|
||||
|
||||
@NSManaged var ignoreActiveAppsLimit: Bool
|
||||
@NSManaged var isMacDirtyCowSupported: Bool
|
||||
|
||||
class func registerDefaults()
|
||||
{
|
||||
@@ -81,6 +82,9 @@ public extension UserDefaults
|
||||
let ios14 = OperatingSystemVersion(majorVersion: 14, minorVersion: 0, patchVersion: 0)
|
||||
let localServerSupportsRefreshing = !ProcessInfo.processInfo.isOperatingSystemAtLeast(ios14)
|
||||
|
||||
let ios16_2 = OperatingSystemVersion(majorVersion: 16, minorVersion: 2, patchVersion: 0)
|
||||
let isMacDirtyCowSupported = ProcessInfo.processInfo.isOperatingSystemAtLeast(ios14) && !ProcessInfo.processInfo.isOperatingSystemAtLeast(ios16_2) // MacDirtyCow supports iOS 14.0 - 16.1.2
|
||||
|
||||
let defaults = [
|
||||
#keyPath(UserDefaults.isAppLimitDisabled): false,
|
||||
#keyPath(UserDefaults.isBackgroundRefreshEnabled): true,
|
||||
@@ -92,10 +96,17 @@ public extension UserDefaults
|
||||
#keyPath(UserDefaults.requiresAppGroupMigration): true,
|
||||
#keyPath(UserDefaults.menuAnisetteList): "https://servers.sidestore.io/servers.json",
|
||||
#keyPath(UserDefaults.menuAnisetteURL): "https://ani.sidestore.io",
|
||||
#keyPath(UserDefaults.ignoreActiveAppsLimit): false
|
||||
#keyPath(UserDefaults.ignoreActiveAppsLimit): false,
|
||||
#keyPath(UserDefaults.isMacDirtyCowSupported): isMacDirtyCowSupported
|
||||
] as [String : Any]
|
||||
|
||||
UserDefaults.standard.register(defaults: defaults)
|
||||
UserDefaults.shared.register(defaults: defaults)
|
||||
|
||||
if !isMacDirtyCowSupported
|
||||
{
|
||||
// Disable ignoreActiveAppsLimit if running iOS version that doesn't support MacDirtyCow.
|
||||
UserDefaults.standard.ignoreActiveAppsLimit = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user