mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +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
|
switch section
|
||||||
{
|
{
|
||||||
case .macDirtyCow:
|
case .macDirtyCow:
|
||||||
let ios16_2 = OperatingSystemVersion(majorVersion: 16, minorVersion: 2, patchVersion: 0)
|
let isHidden = !(UserDefaults.standard.isMacDirtyCowSupported && UserDefaults.standard.isDebugModeEnabled)
|
||||||
|
return isHidden
|
||||||
let isMacDirtyCowExploitSupported = !ProcessInfo.processInfo.isOperatingSystemAtLeast(ios16_2)
|
|
||||||
return !(isMacDirtyCowExploitSupported && UserDefaults.standard.isDebugModeEnabled)
|
|
||||||
|
|
||||||
default: return false
|
default: return false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ public extension UserDefaults
|
|||||||
@NSManaged @objc(activeAppsLimit) private var _activeAppsLimit: NSNumber?
|
@NSManaged @objc(activeAppsLimit) private var _activeAppsLimit: NSNumber?
|
||||||
|
|
||||||
@NSManaged var ignoreActiveAppsLimit: Bool
|
@NSManaged var ignoreActiveAppsLimit: Bool
|
||||||
|
@NSManaged var isMacDirtyCowSupported: Bool
|
||||||
|
|
||||||
class func registerDefaults()
|
class func registerDefaults()
|
||||||
{
|
{
|
||||||
@@ -81,6 +82,9 @@ public extension UserDefaults
|
|||||||
let ios14 = OperatingSystemVersion(majorVersion: 14, minorVersion: 0, patchVersion: 0)
|
let ios14 = OperatingSystemVersion(majorVersion: 14, minorVersion: 0, patchVersion: 0)
|
||||||
let localServerSupportsRefreshing = !ProcessInfo.processInfo.isOperatingSystemAtLeast(ios14)
|
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 = [
|
let defaults = [
|
||||||
#keyPath(UserDefaults.isAppLimitDisabled): false,
|
#keyPath(UserDefaults.isAppLimitDisabled): false,
|
||||||
#keyPath(UserDefaults.isBackgroundRefreshEnabled): true,
|
#keyPath(UserDefaults.isBackgroundRefreshEnabled): true,
|
||||||
@@ -92,10 +96,17 @@ public extension UserDefaults
|
|||||||
#keyPath(UserDefaults.requiresAppGroupMigration): true,
|
#keyPath(UserDefaults.requiresAppGroupMigration): true,
|
||||||
#keyPath(UserDefaults.menuAnisetteList): "https://servers.sidestore.io/servers.json",
|
#keyPath(UserDefaults.menuAnisetteList): "https://servers.sidestore.io/servers.json",
|
||||||
#keyPath(UserDefaults.menuAnisetteURL): "https://ani.sidestore.io",
|
#keyPath(UserDefaults.menuAnisetteURL): "https://ani.sidestore.io",
|
||||||
#keyPath(UserDefaults.ignoreActiveAppsLimit): false
|
#keyPath(UserDefaults.ignoreActiveAppsLimit): false,
|
||||||
|
#keyPath(UserDefaults.isMacDirtyCowSupported): isMacDirtyCowSupported
|
||||||
] as [String : Any]
|
] as [String : Any]
|
||||||
|
|
||||||
UserDefaults.standard.register(defaults: defaults)
|
UserDefaults.standard.register(defaults: defaults)
|
||||||
UserDefaults.shared.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