From 5522eb16acbd838d641c63b5bfe43dda2f752f1c Mon Sep 17 00:00:00 2001 From: leminlimez <59540996+leminlimez@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:19:15 -0500 Subject: [PATCH] fix mobilegestalt tweaks not applying + optimize tweak options --- gui/main_window.py | 4 ++-- tweaks/eligibility_tweak.py | 11 ++++----- tweaks/tweak_classes.py | 46 +++++++++++++++---------------------- tweaks/tweaks.py | 32 +++++++++++--------------- 4 files changed, 38 insertions(+), 55 deletions(-) diff --git a/gui/main_window.py b/gui/main_window.py index 60f3e03..eeaa1b0 100644 --- a/gui/main_window.py +++ b/gui/main_window.py @@ -18,8 +18,8 @@ from tweaks.tweaks import tweaks from tweaks.custom_gestalt_tweaks import CustomGestaltTweaks, ValueTypeStrings from tweaks.daemons_tweak import Daemon -App_Version = "4.2" -App_Build = 0 +App_Version = "4.2.1" +App_Build = 1 class Page(Enum): Home = 0 diff --git a/tweaks/eligibility_tweak.py b/tweaks/eligibility_tweak.py index 4c9d950..943534f 100644 --- a/tweaks/eligibility_tweak.py +++ b/tweaks/eligibility_tweak.py @@ -1,4 +1,4 @@ -from .tweak_classes import Tweak, TweakModifyType +from .tweak_classes import Tweak from Sparserestore.restore import FileToRestore from devicemanagement.constants import Version @@ -22,11 +22,8 @@ def replace_region_code(plist_path: str, original_code: str = "US", new_code: st return plistlib.dumps(updated_plist_data) class EligibilityTweak(Tweak): - def __init__( - self, - min_version: Version = Version("1.0") - ): - super().__init__(key=None, value=["Method 1", "Method 2"], edit_type=TweakModifyType.PICKER, min_version=min_version) + def __init__(self): + super().__init__(key=None, value=["Method 1", "Method 2"]) self.code = "US" self.method = 0 # between 0 and 1 @@ -89,7 +86,7 @@ class EligibilityTweak(Tweak): class AITweak(Tweak): def __init__(self): - super().__init__(key=None, value="", min_version=Version("18.1")) + super().__init__(key=None, value="") def set_language_code(self, lang: str): self.value = lang diff --git a/tweaks/tweak_classes.py b/tweaks/tweak_classes.py index bd5e5f5..2382c9d 100644 --- a/tweaks/tweak_classes.py +++ b/tweaks/tweak_classes.py @@ -2,24 +2,15 @@ from enum import Enum from devicemanagement.constants import Version from .basic_plist_locations import FileLocation -class TweakModifyType(Enum): - TOGGLE = 1 - TEXT = 2 - PICKER = 3 - class Tweak: def __init__( self, key: str, value: any = 1, - edit_type: TweakModifyType = TweakModifyType.TOGGLE, - min_version: Version = Version("1.0"), owner: int = 501, group: int = 501 ): self.key = key self.value = value - self.min_version = min_version - self.edit_type = edit_type self.owner = owner self.group = group self.enabled = False @@ -33,9 +24,6 @@ class Tweak: if toggle_enabled: self.enabled = True - def is_compatible(self, device_ver: str): - return Version(device_ver) >= self.min_version - def apply_tweak(self): raise NotImplementedError @@ -43,10 +31,9 @@ class NullifyFileTweak(Tweak): def __init__( self, file_location: FileLocation, - min_version: Version = Version("1.0"), owner: int = 501, group: int = 501 ): - super().__init__(key=None, value=None, min_version=min_version, owner=owner, group=group) + super().__init__(key=None, value=None, owner=owner, group=group) self.file_location = file_location def apply_tweak(self, other_tweaks: dict): @@ -60,12 +47,10 @@ class BasicPlistTweak(Tweak): 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 ): - super().__init__(key=key, value=value, edit_type=edit_type, min_version=min_version, owner=owner, group=group) + super().__init__(key=key, value=value, owner=owner, group=group) self.file_location = file_location self.is_risky = is_risky @@ -83,12 +68,10 @@ class AdvancedPlistTweak(BasicPlistTweak): 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 ): - 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) + super().__init__(file_location=file_location, key=None, value=keyValues, owner=owner, group=group, is_risky=is_risky) def set_multiple_values(self, keys: list[str], value: any): for key in keys: @@ -182,6 +165,15 @@ class RdarFixTweak(BasicPlistTweak): class MobileGestaltTweak(Tweak): + def __init__( + self, + key: str, subkey: str = None, + value: any = 1, + owner: int = 501, group: int = 501 + ): + super().__init__(key, value, owner, group) + self.subkey = subkey + def apply_tweak(self, plist: dict): if not self.enabled: return plist @@ -196,10 +188,9 @@ class MobileGestaltPickerTweak(Tweak): def __init__( self, key: str, subkey: str = None, - values: list = [1], - min_version: Version = Version("1.0") + values: list = [1] ): - super().__init__(key=key, value=values, edit_type=TweakModifyType.PICKER, min_version=min_version) + super().__init__(key=key, value=values) self.subkey = subkey self.selected_option = 0 # index of the selected option @@ -221,8 +212,8 @@ class MobileGestaltPickerTweak(Tweak): return self.selected_option class MobileGestaltMultiTweak(Tweak): - def __init__(self, keyValues: dict, min_version: Version = Version("1.0")): - super().__init__(key=None, min_version=min_version) + def __init__(self, keyValues: dict): + super().__init__(key=None) self.keyValues = keyValues # key values looks like ["key name" = value] @@ -237,10 +228,9 @@ class FeatureFlagTweak(Tweak): def __init__( self, flag_category: str, flag_names: list, - is_list: bool=True, inverted: bool=False, - min_version: Version = Version("1.0") + is_list: bool=True, inverted: bool=False ): - super().__init__(key=None, min_version=min_version) + super().__init__(key=None) 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 d816592..63cf128 100644 --- a/tweaks/tweaks.py +++ b/tweaks/tweaks.py @@ -1,5 +1,5 @@ from devicemanagement.constants import Version -from .tweak_classes import MobileGestaltTweak, MobileGestaltMultiTweak, MobileGestaltPickerTweak, FeatureFlagTweak, TweakModifyType, BasicPlistTweak, AdvancedPlistTweak, RdarFixTweak, NullifyFileTweak +from .tweak_classes import MobileGestaltTweak, MobileGestaltMultiTweak, MobileGestaltPickerTweak, FeatureFlagTweak, BasicPlistTweak, AdvancedPlistTweak, RdarFixTweak, NullifyFileTweak from .eligibility_tweak import EligibilityTweak, AITweak from .basic_plist_locations import FileLocation @@ -7,12 +7,12 @@ tweaks = { ## MobileGestalt Tweaks "DynamicIsland": MobileGestaltPickerTweak("oPeik/9e8lQWMszEjbPzng", "ArtworkDeviceSubType", [2436, 2556, 2796, 2976, 2622, 2868]), "RdarFix": RdarFixTweak(), - "ModelName": MobileGestaltTweak("oPeik/9e8lQWMszEjbPzng", "ArtworkDeviceProductDescription", "", TweakModifyType.TEXT), + "ModelName": MobileGestaltTweak("oPeik/9e8lQWMszEjbPzng", "ArtworkDeviceProductDescription", ""), "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")), + "CameraButton": MobileGestaltMultiTweak({"CwvKxM2cEogD3p+HYgaW0Q": 1, "oOV1jhJbdV3AddkcCg0AEA": 1}), "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}), @@ -25,23 +25,20 @@ tweaks = { "InternalInstall": MobileGestaltTweak("EqrsVvjcYDdxHBiQmGhAWw"), "EUEnabler": EligibilityTweak(), "AOD": MobileGestaltMultiTweak( - {"2OOJf1VhaM7NxfRok3HbWQ": 1, "j8/Omm6s1lsmTDFsXjsBfA": 1}, - min_version=Version("18.0")), - "AODVibrancy": MobileGestaltTweak("ykpu7qyhqFweVMKtxNylWA", min_version=Version("18.0")), + {"2OOJf1VhaM7NxfRok3HbWQ": 1, "j8/Omm6s1lsmTDFsXjsBfA": 1}), + "AODVibrancy": MobileGestaltTweak("ykpu7qyhqFweVMKtxNylWA"), ## Feature Flag Tweaks "ClockAnim": FeatureFlagTweak(flag_category='SpringBoard', - flag_names=['SwiftUITimeAnimation'], - min_version=Version("18.0")), + flag_names=['SwiftUITimeAnimation']), "Lockscreen": FeatureFlagTweak(flag_category="SpringBoard", - flag_names=['AutobahnQuickSwitchTransition', 'SlipSwitch', 'PosterEditorKashida'], - min_version=Version("18.0")), - "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")), + flag_names=['AutobahnQuickSwitchTransition', 'SlipSwitch', 'PosterEditorKashida']), + "PhotoUI": FeatureFlagTweak(flag_category='Photos', flag_names=['Lemonade'], is_list=False, inverted=True), + "AI": FeatureFlagTweak(flag_category='SpringBoard', flag_names=['Domino', 'SuperDomino']), ## AI Enabler "AIEligibility": AITweak(), - "AIGestalt": MobileGestaltTweak("A62OafQ85EJAiiqKn4agtg", min_version=Version("18.1")), + "AIGestalt": MobileGestaltTweak("A62OafQ85EJAiiqKn4agtg"), "SpoofModel": MobileGestaltPickerTweak("h9jDsbgj7xIVeIQ8S3/X3Q", values=[ # Default "Placeholder", # 0 | Original @@ -81,7 +78,7 @@ tweaks = { "iPad13,9", # 24 | iPad Pro (12.9-inch) (M1) (C) "iPad13,16", # 25 | iPad Air (M1) (W) "iPad13,17", # 26 | iPad Air (M1) (C) - ], min_version=Version("18.1")), + ]), "SpoofHardware": MobileGestaltPickerTweak("oYicEKzVTz4/CxxE05pEgQ", values=[ # Default "Placeholder", # 0 | Original @@ -121,7 +118,7 @@ tweaks = { "J522xAP", # 24 | iPad Pro (12.9-inch) (M1) (C) "J407AP", # 25 | iPad Air (M1) (W) "J408AP", # 26 | iPad Air (M1) (C) - ], min_version=Version("18.1")), + ]), "SpoofCPU": MobileGestaltPickerTweak("5pYKlGnYYBzGvAlIU8RjEQ", values=[ # Default "Placeholder", # 0 | Original @@ -161,13 +158,12 @@ 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")), + ]), ## Springboard Tweaks "LockScreenFootnote": BasicPlistTweak( FileLocation.footnote, - key="LockScreenFootnote", value="", - edit_type=TweakModifyType.TEXT + key="LockScreenFootnote", value="" ), "SBDontLockAfterCrash": BasicPlistTweak( FileLocation.springboard,