diff --git a/tweaks/eligibility_tweak.py b/tweaks/eligibility_tweak.py index 9bfa4d8..4c9d950 100644 --- a/tweaks/eligibility_tweak.py +++ b/tweaks/eligibility_tweak.py @@ -23,11 +23,10 @@ def replace_region_code(plist_path: str, original_code: str = "US", new_code: st class EligibilityTweak(Tweak): def __init__( - self, label: str, - min_version: Version = Version("1.0"), - divider_below: bool = False + self, + min_version: Version = Version("1.0") ): - super().__init__(label=label, key=None, value=["Method 1", "Method 2"], edit_type=TweakModifyType.PICKER, min_version=min_version, divider_below=divider_below) + super().__init__(key=None, value=["Method 1", "Method 2"], edit_type=TweakModifyType.PICKER, min_version=min_version) self.code = "US" self.method = 0 # between 0 and 1 @@ -90,7 +89,7 @@ class EligibilityTweak(Tweak): class AITweak(Tweak): def __init__(self): - super().__init__(label="Enable Apple Intelligence (for Unsupported Devices) (Eligibility)", key=None, value="", min_version=Version("18.1")) + super().__init__(key=None, value="", min_version=Version("18.1")) def set_language_code(self, lang: str): self.value = lang diff --git a/tweaks/tweak_classes.py b/tweaks/tweak_classes.py index 85ad92b..bd5e5f5 100644 --- a/tweaks/tweak_classes.py +++ b/tweaks/tweak_classes.py @@ -9,23 +9,19 @@ class TweakModifyType(Enum): class Tweak: def __init__( - self, label: str, - key: str, subkey: str = None, + self, + key: str, value: any = 1, edit_type: TweakModifyType = TweakModifyType.TOGGLE, min_version: Version = Version("1.0"), - owner: int = 501, group: int = 501, - divider_below: bool = False + owner: int = 501, group: int = 501 ): - self.label = label self.key = key - self.subkey = subkey self.value = value self.min_version = min_version self.edit_type = edit_type self.owner = owner self.group = group - self.divider_below = divider_below self.enabled = False def set_enabled(self, value: bool): @@ -45,13 +41,12 @@ class Tweak: class NullifyFileTweak(Tweak): def __init__( - self, label: str, + self, file_location: FileLocation, min_version: Version = Version("1.0"), - owner: int = 501, group: int = 501, - divider_below: bool = False + owner: int = 501, group: int = 501 ): - super().__init__(label=label, key=None, value=None, min_version=min_version, owner=owner, group=group, divider_below=divider_below) + super().__init__(key=None, value=None, min_version=min_version, owner=owner, group=group) self.file_location = file_location def apply_tweak(self, other_tweaks: dict): @@ -61,17 +56,16 @@ class NullifyFileTweak(Tweak): class BasicPlistTweak(Tweak): def __init__( - self, label: str, + self, file_location: FileLocation, key: str, value: any = True, edit_type: TweakModifyType = TweakModifyType.TOGGLE, min_version: Version = Version("1.0"), owner: int = 501, group: int = 501, - is_risky: bool = False, - divider_below: bool = False + is_risky: bool = False ): - super().__init__(label=label, key=key, subkey=None, value=value, edit_type=edit_type, min_version=min_version, owner=owner, group=group, divider_below=divider_below) + super().__init__(key=key, value=value, edit_type=edit_type, min_version=min_version, owner=owner, group=group) self.file_location = file_location self.is_risky = is_risky @@ -86,16 +80,15 @@ class BasicPlistTweak(Tweak): class AdvancedPlistTweak(BasicPlistTweak): def __init__( - self, label: str, + self, file_location: FileLocation, keyValues: dict, edit_type: TweakModifyType = TweakModifyType.TOGGLE, min_version: Version = Version("1.0"), owner: int = 501, group: int = 501, - is_risky: bool = False, - divider_below: bool = False + is_risky: bool = False ): - super().__init__(label=label, file_location=file_location, key=None, value=keyValues, edit_type=edit_type, min_version=min_version, owner=owner, group=group, is_risky=is_risky, divider_below=divider_below) + super().__init__(file_location=file_location, key=None, value=keyValues, edit_type=edit_type, min_version=min_version, owner=owner, group=group, is_risky=is_risky) def set_multiple_values(self, keys: list[str], value: any): for key in keys: @@ -112,8 +105,8 @@ class AdvancedPlistTweak(BasicPlistTweak): class RdarFixTweak(BasicPlistTweak): - def __init__(self, divider_below: bool = False): - super().__init__(label="Fix RDAR (modifies resolution)", file_location=FileLocation.resolution, key=None, divider_below=divider_below) + def __init__(self): + super().__init__(file_location=FileLocation.resolution, key=None) self.mode = 0 self.di_type = -1 @@ -201,13 +194,13 @@ class MobileGestaltTweak(Tweak): class MobileGestaltPickerTweak(Tweak): def __init__( - self, label: str, + self, key: str, subkey: str = None, values: list = [1], - min_version: Version = Version("1.0"), - divider_below: bool = False + min_version: Version = Version("1.0") ): - super().__init__(label=label, key=key, subkey=subkey, value=values, edit_type=TweakModifyType.PICKER, min_version=min_version, divider_below=divider_below) + super().__init__(key=key, value=values, edit_type=TweakModifyType.PICKER, min_version=min_version) + self.subkey = subkey self.selected_option = 0 # index of the selected option def apply_tweak(self, plist: dict): @@ -228,8 +221,8 @@ class MobileGestaltPickerTweak(Tweak): return self.selected_option class MobileGestaltMultiTweak(Tweak): - def __init__(self, label: str, keyValues: dict, min_version: Version = Version("1.0"), divider_below: bool = False): - super().__init__(label=label, key=None, min_version=min_version, divider_below=divider_below) + def __init__(self, keyValues: dict, min_version: Version = Version("1.0")): + super().__init__(key=None, min_version=min_version) self.keyValues = keyValues # key values looks like ["key name" = value] @@ -242,13 +235,12 @@ class MobileGestaltMultiTweak(Tweak): class FeatureFlagTweak(Tweak): def __init__( - self, label: str, + self, flag_category: str, flag_names: list, is_list: bool=True, inverted: bool=False, - min_version: Version = Version("1.0"), - divider_below: bool = False + min_version: Version = Version("1.0") ): - super().__init__(label=label, key=None, min_version=min_version, divider_below=divider_below) + super().__init__(key=None, min_version=min_version) self.flag_category = flag_category self.flag_names = flag_names self.is_list = is_list diff --git a/tweaks/tweaks.py b/tweaks/tweaks.py index 0a07870..d816592 100644 --- a/tweaks/tweaks.py +++ b/tweaks/tweaks.py @@ -5,44 +5,44 @@ from .basic_plist_locations import FileLocation tweaks = { ## MobileGestalt Tweaks - "DynamicIsland": MobileGestaltPickerTweak("Toggle Dynamic Island", "oPeik/9e8lQWMszEjbPzng", "ArtworkDeviceSubType", [2436, 2556, 2796, 2976, 2622, 2868]), + "DynamicIsland": MobileGestaltPickerTweak("oPeik/9e8lQWMszEjbPzng", "ArtworkDeviceSubType", [2436, 2556, 2796, 2976, 2622, 2868]), "RdarFix": RdarFixTweak(), - "ModelName": MobileGestaltTweak("Set Device Model Name", "oPeik/9e8lQWMszEjbPzng", "ArtworkDeviceProductDescription", "", TweakModifyType.TEXT), - "BootChime": MobileGestaltTweak("Toggle Boot Chime", "QHxt+hGLaBPbQJbXiUJX3w"), - "ChargeLimit": MobileGestaltTweak("Toggle Charge Limit", "37NVydb//GP/GrhuTN+exg"), - "CollisionSOS": MobileGestaltTweak("Toggle Collision SOS", "HCzWusHQwZDea6nNhaKndw"), - "TapToWake": MobileGestaltTweak("Toggle Tap To Wake (iPhone SE)", "yZf3GTRMGTuwSV/lD7Cagw"), - "CameraButton": MobileGestaltMultiTweak("Toggle iPhone 16 Settings", {"CwvKxM2cEogD3p+HYgaW0Q": 1, "oOV1jhJbdV3AddkcCg0AEA": 1}, min_version=Version("18.0")), - "Parallax": MobileGestaltTweak("Disable Wallpaper Parallax", "UIParallaxCapability", value=0), - "StageManager": MobileGestaltTweak("Toggle Stage Manager Supported (WARNING: risky on some devices, mainly phones)", "qeaj75wk3HF4DwQ8qbIi7g", value=1), - "Medusa": MobileGestaltMultiTweak("Toggle Medusa (iPad Multitasking) (WARNING: may be risky on some phones)", {"mG0AnH/Vy1veoqoLRAIgTA": 1, "UCG5MkVahJxG1YULbbd5Bg": 1, "ZYqko/XM5zD3XBfN5RmaXA": 1, "nVh/gwNpy7Jv1NOk00CMrw": 1, "uKc7FPnEO++lVhHWHFlGbQ": 1}), - "iPadApps": MobileGestaltTweak("Allow iPad Apps on iPhone", "9MZ5AdH43csAUajl/dU+IQ", value=[1, 2]), - "Shutter": MobileGestaltMultiTweak("Disable Region Restrictions (ie. Shutter Sound)", {"h63QSdBCiT/z0WU6rdQv6Q": "US", "zHeENZu+wbg7PUprwNwBWg": "LL/A"}), - "FindMyFriends": MobileGestaltTweak("Toggle Find My Friends", "Y2Y67z0Nq/XdDXgW2EeaVg"), - "Pencil": MobileGestaltTweak("Toggle Apple Pencil", "yhHcB0iH0d1XzPO/CFd3ow"), - "ActionButton": MobileGestaltTweak("Toggle Action Button", "cT44WE1EohiwRzhsZ8xEsw"), - "InternalStorage": MobileGestaltTweak("Toggle Internal Storage (WARNING: risky for some devices, mainly iPads)", "LBJfwOEzExRxzlAnSuI7eg"), - "InternalInstall": MobileGestaltTweak("Set as Apple Internal Install (ie Metal HUD in any app)", "EqrsVvjcYDdxHBiQmGhAWw", divider_below=True), - "EUEnabler": EligibilityTweak("EU Enabler", divider_below=True), - "AOD": MobileGestaltMultiTweak("Always On Display", + "ModelName": MobileGestaltTweak("oPeik/9e8lQWMszEjbPzng", "ArtworkDeviceProductDescription", "", TweakModifyType.TEXT), + "BootChime": MobileGestaltTweak("QHxt+hGLaBPbQJbXiUJX3w"), + "ChargeLimit": MobileGestaltTweak("37NVydb//GP/GrhuTN+exg"), + "CollisionSOS": MobileGestaltTweak("HCzWusHQwZDea6nNhaKndw"), + "TapToWake": MobileGestaltTweak("yZf3GTRMGTuwSV/lD7Cagw"), + "CameraButton": MobileGestaltMultiTweak({"CwvKxM2cEogD3p+HYgaW0Q": 1, "oOV1jhJbdV3AddkcCg0AEA": 1}, min_version=Version("18.0")), + "Parallax": MobileGestaltTweak("UIParallaxCapability", value=0), + "StageManager": MobileGestaltTweak("qeaj75wk3HF4DwQ8qbIi7g", value=1), + "Medusa": MobileGestaltMultiTweak({"mG0AnH/Vy1veoqoLRAIgTA": 1, "UCG5MkVahJxG1YULbbd5Bg": 1, "ZYqko/XM5zD3XBfN5RmaXA": 1, "nVh/gwNpy7Jv1NOk00CMrw": 1, "uKc7FPnEO++lVhHWHFlGbQ": 1}), + "iPadApps": MobileGestaltTweak("9MZ5AdH43csAUajl/dU+IQ", value=[1, 2]), + "Shutter": MobileGestaltMultiTweak({"h63QSdBCiT/z0WU6rdQv6Q": "US", "zHeENZu+wbg7PUprwNwBWg": "LL/A"}), + "FindMyFriends": MobileGestaltTweak("Y2Y67z0Nq/XdDXgW2EeaVg"), + "Pencil": MobileGestaltTweak("yhHcB0iH0d1XzPO/CFd3ow"), + "ActionButton": MobileGestaltTweak("cT44WE1EohiwRzhsZ8xEsw"), + "InternalStorage": MobileGestaltTweak("LBJfwOEzExRxzlAnSuI7eg"), + "InternalInstall": MobileGestaltTweak("EqrsVvjcYDdxHBiQmGhAWw"), + "EUEnabler": EligibilityTweak(), + "AOD": MobileGestaltMultiTweak( {"2OOJf1VhaM7NxfRok3HbWQ": 1, "j8/Omm6s1lsmTDFsXjsBfA": 1}, min_version=Version("18.0")), - "AODVibrancy": MobileGestaltTweak("AOD Vibrancy", "ykpu7qyhqFweVMKtxNylWA", min_version=Version("18.0")), + "AODVibrancy": MobileGestaltTweak("ykpu7qyhqFweVMKtxNylWA", min_version=Version("18.0")), ## Feature Flag Tweaks - "ClockAnim": FeatureFlagTweak("Toggle Lockscreen Clock Animation", flag_category='SpringBoard', + "ClockAnim": FeatureFlagTweak(flag_category='SpringBoard', flag_names=['SwiftUITimeAnimation'], min_version=Version("18.0")), - "Lockscreen": FeatureFlagTweak("Toggle Duplicate Lockscreen Button and Lockscreen Quickswitch", flag_category="SpringBoard", + "Lockscreen": FeatureFlagTweak(flag_category="SpringBoard", flag_names=['AutobahnQuickSwitchTransition', 'SlipSwitch', 'PosterEditorKashida'], min_version=Version("18.0")), - "PhotoUI": FeatureFlagTweak("Enable Old Photo UI", flag_category='Photos', flag_names=['Lemonade'], is_list=False, inverted=True, min_version=Version("18.0")), - "AI": FeatureFlagTweak("Enable Apple Intelligence", flag_category='SpringBoard', flag_names=['Domino', 'SuperDomino'], min_version=Version("18.1"), divider_below=True), + "PhotoUI": FeatureFlagTweak(flag_category='Photos', flag_names=['Lemonade'], is_list=False, inverted=True, min_version=Version("18.0")), + "AI": FeatureFlagTweak(flag_category='SpringBoard', flag_names=['Domino', 'SuperDomino'], min_version=Version("18.1")), ## AI Enabler "AIEligibility": AITweak(), - "AIGestalt": MobileGestaltTweak("Enable Apple Intelligence (for Unsupported Devices) (Gestalt)", "A62OafQ85EJAiiqKn4agtg", min_version=Version("18.1")), - "SpoofModel": MobileGestaltPickerTweak("Spoofed Device Model", "h9jDsbgj7xIVeIQ8S3/X3Q", values=[ + "AIGestalt": MobileGestaltTweak("A62OafQ85EJAiiqKn4agtg", min_version=Version("18.1")), + "SpoofModel": MobileGestaltPickerTweak("h9jDsbgj7xIVeIQ8S3/X3Q", values=[ # Default "Placeholder", # 0 | Original @@ -82,7 +82,7 @@ tweaks = { "iPad13,16", # 25 | iPad Air (M1) (W) "iPad13,17", # 26 | iPad Air (M1) (C) ], min_version=Version("18.1")), - "SpoofHardware": MobileGestaltPickerTweak("Spoof Hardware Model", "oYicEKzVTz4/CxxE05pEgQ", values=[ + "SpoofHardware": MobileGestaltPickerTweak("oYicEKzVTz4/CxxE05pEgQ", values=[ # Default "Placeholder", # 0 | Original @@ -122,7 +122,7 @@ tweaks = { "J407AP", # 25 | iPad Air (M1) (W) "J408AP", # 26 | iPad Air (M1) (C) ], min_version=Version("18.1")), - "SpoofCPU": MobileGestaltPickerTweak("Spoof CPU Model", "5pYKlGnYYBzGvAlIU8RjEQ", values=[ + "SpoofCPU": MobileGestaltPickerTweak("5pYKlGnYYBzGvAlIU8RjEQ", values=[ # Default "Placeholder", # 0 | Original @@ -161,117 +161,95 @@ tweaks = { "t8103", # 24 | iPad Pro (12.9-inch) (M1) (C) "t8103", # 25 | iPad Air (M1) (W) "t8103", # 26 | iPad Air (M1) (C) - ], min_version=Version("18.1"), divider_below=True), + ], min_version=Version("18.1")), ## Springboard Tweaks "LockScreenFootnote": BasicPlistTweak( - "Set Lock Screen Footnote Text", FileLocation.footnote, key="LockScreenFootnote", value="", edit_type=TweakModifyType.TEXT ), "SBDontLockAfterCrash": BasicPlistTweak( - "Disable Lock After Respring", FileLocation.springboard, "SBDontLockAfterCrash" ), "SBDontDimOrLockOnAC": BasicPlistTweak( - "Disable Screen Dimming While Charging", FileLocation.springboard, "SBDontDimOrLockOnAC" ), "SBHideLowPowerAlerts": BasicPlistTweak( - "Disable Low Battery Alerts", FileLocation.springboard, "SBHideLowPowerAlerts" ), "SBNeverBreadcrumb": BasicPlistTweak( - "Disable Breadcrumb", FileLocation.springboard, "SBNeverBreadcrumb" ), "SBShowSupervisionTextOnLockScreen": BasicPlistTweak( - "Show Supervision Text on Lock Screen", FileLocation.springboard, "SBShowSupervisionTextOnLockScreen" ), "AirplaySupport": BasicPlistTweak( - "Enable AirPlay support for Stage Manager", FileLocation.springboard, - "SBExtendedDisplayOverrideSupportForAirPlayAndDontFileRadars", - divider_below=True + "SBExtendedDisplayOverrideSupportForAirPlayAndDontFileRadars" ), ## Internal Options "SBBuildNumber": BasicPlistTweak( - "Show Build Version in Status Bar", FileLocation.globalPreferences, "UIStatusBarShowBuildVersion" ), "RTL": BasicPlistTweak( - "Force Right-to-Left Layout", FileLocation.globalPreferences, "NSForceRightToLeftWritingDirection" ), "MetalForceHudEnabled": BasicPlistTweak( - "Enable Metal HUD Debug", FileLocation.globalPreferences, "MetalForceHudEnabled" ), "iMessageDiagnosticsEnabled": BasicPlistTweak( - "Enable iMessage Debugging", FileLocation.globalPreferences, "iMessageDiagnosticsEnabled" ), "IDSDiagnosticsEnabled": BasicPlistTweak( - "Enable Continuity Debugging", FileLocation.globalPreferences, "IDSDiagnosticsEnabled" ), "VCDiagnosticsEnabled": BasicPlistTweak( - "Enable FaceTime Debugging", FileLocation.globalPreferences, "VCDiagnosticsEnabled" ), "AppStoreDebug": BasicPlistTweak( - "Enable App Store Debug Gesture", FileLocation.appStore, "debugGestureEnabled" ), "NotesDebugMode": BasicPlistTweak( - "Enable Notes App Debug Mode", FileLocation.notes, "DebugModeEnabled" ), "BKDigitizerVisualizeTouches": BasicPlistTweak( - "Show Touches With Debug Info", FileLocation.backboardd, "BKDigitizerVisualizeTouches" ), "BKHideAppleLogoOnLaunch": BasicPlistTweak( - "Hide Respring Icon", FileLocation.backboardd, "BKHideAppleLogoOnLaunch" ), "EnableWakeGestureHaptic": BasicPlistTweak( - "Vibrate on Raise-to-Wake", FileLocation.coreMotion, "EnableWakeGestureHaptic" ), "PlaySoundOnPaste": BasicPlistTweak( - "Play Sound on Paste", FileLocation.pasteboard, "PlaySoundOnPaste" ), "AnnounceAllPastes": BasicPlistTweak( - "Show Notifications for System Pastes", FileLocation.pasteboard, "AnnounceAllPastes" ), ## Daemons "Daemons": AdvancedPlistTweak( - "Disable Daemons", FileLocation.disabledDaemons, { "com.apple.magicswitchd.companion": True, @@ -283,13 +261,10 @@ tweaks = { }, owner=0, group=0 ), - "ClearScreenTimeAgentPlist": NullifyFileTweak( - "Clear ScreenTimeAgent Plist", FileLocation.screentime - ), + "ClearScreenTimeAgentPlist": NullifyFileTweak(FileLocation.screentime), ## Risky Options "DisableOTAFile": AdvancedPlistTweak( - "Disable OTA Updates (file)", FileLocation.ota, { "MobileAssetServerURL-com.apple.MobileAsset.MobileSoftwareUpdate.UpdateBrain": "https://mesu.apple.com/assets/tvOS16DeveloperSeed", @@ -302,7 +277,6 @@ tweaks = { }, is_risky=True ), "CustomResolution": AdvancedPlistTweak( - "Set Custom Resolution real", FileLocation.resolution, {}, # empty as to not cause issues when only 1 value is inputted is_risky=True