resetting file location tweaks

This commit is contained in:
leminlimez
2024-09-27 19:07:51 -04:00
parent f4d34c1eee
commit a543f8cb9b
2 changed files with 26 additions and 3 deletions

View File

@@ -1,5 +1,6 @@
from Sparserestore.restore import restore_files, FileToRestore, restore_file from Sparserestore.restore import restore_files, FileToRestore, restore_file
from tweaks.tweaks import tweaks, TweakModifyType, FeatureFlagTweak, EligibilityTweak, BasicPlistTweak from tweaks.tweaks import tweaks, TweakModifyType, FeatureFlagTweak, EligibilityTweak, BasicPlistTweak
from tweaks.basic_plist_locations import FileLocation
from devicemanagement.constants import Device from devicemanagement.constants import Device
from pymobiledevice3.exceptions import PyMobileDevice3Exception from pymobiledevice3.exceptions import PyMobileDevice3Exception
@@ -125,7 +126,6 @@ while running:
basic_plists = tweak.apply_tweak(basic_plists) basic_plists = tweak.apply_tweak(basic_plists)
else: else:
gestalt_plist = tweak.apply_tweak(gestalt_plist) gestalt_plist = tweak.apply_tweak(gestalt_plist)
# TODO: Improve resetting (make it work with basic plist tweaks)
# create the restore file list # create the restore file list
files_to_restore = [ files_to_restore = [
@@ -147,6 +147,14 @@ while running:
contents=plistlib.dumps(plist), contents=plistlib.dumps(plist),
restore_path=location.value restore_path=location.value
)) ))
# reset basic tweaks
if resetting:
empty_data = plistlib.dumps({})
for location in FileLocation:
files_to_restore.append(FileToRestore(
contents=empty_data,
restore_path=location.value
))
# restore to the device # restore to the device
try: try:
restore_files(files=files_to_restore, reboot=True, lockdown_client=device.ld) restore_files(files=files_to_restore, reboot=True, lockdown_client=device.ld)

View File

@@ -11,6 +11,7 @@ from devicemanagement.constants import Device, Version
from devicemanagement.data_singleton import DataSingleton from devicemanagement.data_singleton import DataSingleton
from tweaks.tweaks import tweaks, FeatureFlagTweak, EligibilityTweak, BasicPlistTweak from tweaks.tweaks import tweaks, FeatureFlagTweak, EligibilityTweak, BasicPlistTweak
from tweaks.basic_plist_locations import FileLocation
from Sparserestore.restore import restore_files, FileToRestore from Sparserestore.restore import restore_files, FileToRestore
def show_error_msg(txt: str): def show_error_msg(txt: str):
@@ -121,6 +122,12 @@ class DeviceManager:
if gestalt_plist != None: if gestalt_plist != None:
gestalt_plist = tweak.apply_tweak(gestalt_plist) gestalt_plist = tweak.apply_tweak(gestalt_plist)
gestalt_data = None
if resetting:
gestalt_data = b""
elif gestalt_plist != None:
gestalt_data = plistlib.dumps(gestalt_plist)
# Generate backup # Generate backup
update_label("Generating backup...") update_label("Generating backup...")
# create the restore file list # create the restore file list
@@ -131,9 +138,9 @@ class DeviceManager:
restore_name="Global.plist" restore_name="Global.plist"
) )
] ]
if gestalt_plist != None: if gestalt_data != None:
files_to_restore.append(FileToRestore( files_to_restore.append(FileToRestore(
contents=plistlib.dumps(gestalt_plist), contents=gestalt_data,
restore_path="/var/containers/Shared/SystemGroup/systemgroup.com.apple.mobilegestaltcache/Library/Caches/", restore_path="/var/containers/Shared/SystemGroup/systemgroup.com.apple.mobilegestaltcache/Library/Caches/",
restore_name="com.apple.MobileGestalt.plist" restore_name="com.apple.MobileGestalt.plist"
)) ))
@@ -144,6 +151,14 @@ class DeviceManager:
contents=plistlib.dumps(plist), contents=plistlib.dumps(plist),
restore_path=location.value restore_path=location.value
)) ))
# reset basic tweaks
if resetting:
empty_data = plistlib.dumps({})
for location in FileLocation:
files_to_restore.append(FileToRestore(
contents=empty_data,
restore_path=location.value
))
# restore to the device # restore to the device
update_label("Restoring to device...") update_label("Restoring to device...")