Merge pull request #271 from leminlimez/v4.2

v4.2
This commit is contained in:
leminlimez
2024-12-11 17:48:26 -05:00
committed by GitHub
17 changed files with 2525 additions and 892 deletions

View File

@@ -5,39 +5,68 @@ Sparserestore works on all versions iOS 17.0-17.7 and iOS 18.0-18.1 beta 4. Ther
**iOS 18.2 developer beta 3 (public beta 2) and newer is not supported.** **iOS 18.2 developer beta 3 (public beta 2) and newer is not supported.**
Make sure you have installed the [requirements](#requirements) if you are on Windows or Linux.
This uses the sparserestore exploit to write to files outside of the intended restore location, like mobilegestalt. Read the [Getting the File](#getting-the-file) section to learn how to get your mobilegestalt file. This uses the sparserestore exploit to write to files outside of the intended restore location, like mobilegestalt. Read the [Getting the File](#getting-the-file) section to learn how to get your mobilegestalt file.
Note: I am not responsible if your device bootloops. Please back up your data before using! Note: I am not responsible if your device bootloops. Please back up your data before using!
## Features ## Features
### iOS 17.0+
- Enable Dynamic Island on any device - Enable Dynamic Island on any device
- Enable iPhone X gestures on iPhone SEs - Enable iPhone X gestures on iPhone SEs
- Change Device Model Name (ie what shows in the Settings app) - Change Device Model Name (ie what shows in the Settings app)
- Enable Boot Chime - Enable Boot Chime
- Enable Charge Limit - Enable Charge Limit
- Enable Tap to Wake on unsupported devices (ie iPhone SEs) - Enable Tap to Wake on unsupported devices (ie iPhone SEs)
- Enable iPhone 16 Settings
- Enable Collision SOS - Enable Collision SOS
- Enable Stage Manager - Enable Stage Manager
- Disable the Wallpaper Parallax - Disable the Wallpaper Parallax
- Disable Region Restrictions (ie. Shutter Sound) - Disable Region Restrictions (ie. Shutter Sound)
- Note: This does not include enabling EU sideloading outside the EU. That will come later. - Note: This does not include enabling EU sideloading outside the EU. That will come later.
- Enable AOD on any device
- Show the Apple Pencil options in Settings app - Show the Apple Pencil options in Settings app
- Show the Action Button options in Settings app - Show the Action Button options in Settings app
- Show Internal Storage info (Might cause problems on some devices, use at your own risk) - Show Internal Storage info (Might cause problems on some devices, use at your own risk)
- Enabling lock screen clock animation, lock screen page duplication button, and more! - EU Enabler (iOS 17.6-)
- Disabling the new iOS 18 Photos UI - Springboard Options (from [Cowabunga Lite](https://github.com/leminlimez/CowabungaLite))
- EU Enabler - Set Lock Screen Footnote
- AI Enabler - Disable Lock After Respring
- Springboard Options (from Cowabunga Lite) - Disable Screen Dimming While Charging
- Internal Options (from Cowabunga Lite) - Disable Low Battery Alerts
- Internal Options (from [Cowabunga Lite](https://github.com/leminlimez/CowabungaLite))
- Build Version in Status Bar
- Force Right to Left
- Force Metal HUD Debug
- iMessage Diagnostics
- IDS Diagnostics
- VC Diagnostics
- App Store Debug Gesture
- Notes App Debug Mode
- Disable Daemons:
- OTAd
- UsageTrackingAgent
- Game Center
- Screen Time Agent
- Logs, Dumps, and Crash Reports
- ATWAKEUP
- Tipsd
- VPN
- Chinese WLAN service
- HealthKit
- Risky (Hidden) Options: - Risky (Hidden) Options:
- Disable thermalmonitord
- OTA Killer - OTA Killer
- Custom Resolution - Custom Resolution
### iOS 18.0+
- Enable iPhone 16 camera button page in the Settings app
- Enable AOD & AOD Vibrancy on any device
- Feature Flags (iOS 18.1b4-):
- Enabling lock screen clock animation, lock screen page duplication button, and more!
- Disabling the new iOS 18 Photos UI (iOS 18.0 betas only, unknown which patched it)
### iOS 18.1+
- AI Enabler + Device Spoofing (fixed in iOS 18.2db3)
## Running the Program ## Requirements:
**Requirements:**
- **Windows:** - **Windows:**
- Either [Apple Devices (from Microsoft Store)](https://apps.microsoft.com/detail/9np83lwlpz9k%3Fhl%3Den-US%26gl%3DUS&ved=2ahUKEwjE-svo7qyJAxWTlYkEHQpbH3oQFnoECBoQAQ&usg=AOvVaw0rZTXCFmRaHAifkEEu9tMI) app or [iTunes (from Apple website)](https://support.apple.com/en-us/106372) - Either [Apple Devices (from Microsoft Store)](https://apps.microsoft.com/detail/9np83lwlpz9k%3Fhl%3Den-US%26gl%3DUS&ved=2ahUKEwjE-svo7qyJAxWTlYkEHQpbH3oQFnoECBoQAQ&usg=AOvVaw0rZTXCFmRaHAifkEEu9tMI) app or [iTunes (from Apple website)](https://support.apple.com/en-us/106372)
- **Linux:** - **Linux:**
@@ -48,6 +77,7 @@ Note: I am not responsible if your device bootloops. Please back up your data be
- PySide6 - PySide6
- Python 3.8 or newer - Python 3.8 or newer
## Running the Python Program
Note: It is highly recommended to use a virtual environment: Note: It is highly recommended to use a virtual environment:
``` ```
python3 -m venv .env # only needed once python3 -m venv .env # only needed once
@@ -82,6 +112,7 @@ If you would like to read more about the inner workings of the exploit and iOS r
## Credits ## Credits
- [JJTech](https://github.com/JJTech0130) for Sparserestore/[TrollRestore](https://github.com/JJTech0130/TrollRestore) - [JJTech](https://github.com/JJTech0130) for Sparserestore/[TrollRestore](https://github.com/JJTech0130/TrollRestore)
- [disfordottie](https://x.com/disfordottie) for some global flag features - [disfordottie](https://x.com/disfordottie) for some global flag features
- [Mikasa-san](https://github.com/Mikasa-san) for [Quiet Daemon](https://github.com/Mikasa-san/QuietDaemon)
- [sneakyf1shy](https://github.com/f1shy-dev) for [AI Eligibility](https://gist.github.com/f1shy-dev/23b4a78dc283edd30ae2b2e6429129b5) (iOS 18.1 beta 4 and below) - [sneakyf1shy](https://github.com/f1shy-dev) for [AI Eligibility](https://gist.github.com/f1shy-dev/23b4a78dc283edd30ae2b2e6429129b5) (iOS 18.1 beta 4 and below)
- [lrdsnow](https://github.com/Lrdsnow) for [EU Enabler](https://github.com/Lrdsnow/EUEnabler) - [lrdsnow](https://github.com/Lrdsnow) for [EU Enabler](https://github.com/Lrdsnow/EUEnabler)
- [pymobiledevice3](https://github.com/doronz88/pymobiledevice3) for restoring and device algorithms. - [pymobiledevice3](https://github.com/doronz88/pymobiledevice3) for restoring and device algorithms.

View File

@@ -27,14 +27,14 @@ def concat_exploit_file(file: FileToRestore, files_list: list[FileToRestore], la
if last_domain != domain_path: if last_domain != domain_path:
files_list.append(backup.Directory( files_list.append(backup.Directory(
"", "",
f"{domain_path}/", f"{domain_path}",
owner=file.owner, owner=file.owner,
group=file.group group=file.group
)) ))
new_last_domain = domain_path new_last_domain = domain_path
files_list.append(backup.ConcreteFile( files_list.append(backup.ConcreteFile(
"", "",
f"{domain_path}/{name}", f"{domain_path}{name}",
owner=file.owner, owner=file.owner,
group=file.group, group=file.group,
contents=file.contents contents=file.contents

View File

@@ -0,0 +1,40 @@
from requests import get, RequestException
from json import JSONDecodeError
from devicemanagement.constants import Version
Nugget_Repo = "leminlimez/Nugget/releases/latest"
last_fetched_version: str = None
def is_update_available(version: str, build: int) -> bool:
# check github for if version < tag (or == tag but build > 0)
latest_version = get_latest_version()
if latest_version != None:
if build > 0 and latest_version == version: # on beta version when there is a public release
return True
elif Version(latest_version) > Version(version):
return True
return False
def get_latest_version() -> str:
global last_fetched_version
# get the cached version
if last_fetched_version != None:
return last_fetched_version
# fetch with web requests
try:
response = get(f"https://api.github.com/repos/{Nugget_Repo}")
response.raise_for_status() # To raise an exception for 4xx/5xx responses
data = response.json() # Parse the JSON response
# Check if "tag_name" exists in the response and compare the version
tag_name = data.get("tag_name")
if tag_name:
last_fetched_version = tag_name.replace("v", "") # Remove 'v' from tag_name
return last_fetched_version
except RequestException as e:
print(f"Error fetching data: {e}")
except JSONDecodeError as e:
print(f"Error parsing JSON: {e}")
return None

View File

@@ -7,11 +7,12 @@ from PySide6.QtCore import QSettings
from pymobiledevice3 import usbmux from pymobiledevice3 import usbmux
from pymobiledevice3.lockdown import create_using_usbmux from pymobiledevice3.lockdown import create_using_usbmux
from pymobiledevice3.exceptions import MuxException, PasswordRequiredError
from devicemanagement.constants import Device, Version 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, AITweak, BasicPlistTweak, AdvancedPlistTweak, RdarFixTweak from tweaks.tweaks import tweaks, FeatureFlagTweak, EligibilityTweak, AITweak, BasicPlistTweak, AdvancedPlistTweak, RdarFixTweak, NullifyFileTweak
from tweaks.custom_gestalt_tweaks import CustomGestaltTweaks from tweaks.custom_gestalt_tweaks import CustomGestaltTweaks
from tweaks.basic_plist_locations import FileLocationsList, RiskyFileLocationsList from tweaks.basic_plist_locations import FileLocationsList, RiskyFileLocationsList
from Sparserestore.restore import restore_files, FileToRestore from Sparserestore.restore import restore_files, FileToRestore
@@ -34,7 +35,7 @@ def show_apply_error(e: Exception, update_label=lambda x: None):
detailed_txt="Your device is managed and MDM backup encryption is on. This must be turned off in order for Nugget to work. Please do not use Nugget on your school/work device!") detailed_txt="Your device is managed and MDM backup encryption is on. This must be turned off in order for Nugget to work. Please do not use Nugget on your school/work device!")
elif "SessionInactive" in str(e): elif "SessionInactive" in str(e):
show_error_msg("The session was terminated. Refresh the device list and try again.") show_error_msg("The session was terminated. Refresh the device list and try again.")
elif "Password" in str(e): elif isinstance(e, PasswordRequiredError):
show_error_msg("Device is password protected! You must trust the computer on your device.", show_error_msg("Device is password protected! You must trust the computer on your device.",
detailed_txt="Unlock your device. On the popup, click \"Trust\", enter your password, then try again.") detailed_txt="Unlock your device. On the popup, click \"Trust\", enter your password, then try again.")
else: else:
@@ -50,9 +51,11 @@ class DeviceManager:
self.current_device_index = 0 self.current_device_index = 0
# preferences # preferences
self.apply_over_wifi = True # TODO: Move to its own class
self.apply_over_wifi = False
self.auto_reboot = True self.auto_reboot = True
self.allow_risky_tweaks = False self.allow_risky_tweaks = False
self.show_all_spoofable_models = False
self.skip_setup = True self.skip_setup = True
self.supervised = False self.supervised = False
self.organization_name = "" self.organization_name = ""
@@ -116,14 +119,16 @@ class DeviceManager:
) )
tweaks["RdarFix"].get_rdar_mode(model) tweaks["RdarFix"].get_rdar_mode(model)
self.devices.append(dev) self.devices.append(dev)
except MuxException as e:
# there is probably a cable issue
print(f"MUX ERROR with lockdown device with UUID {device.serial}")
show_error_msg("MuxException: " + repr(e) + "\n\nIf you keep receiving this error, try using a different cable or port.",
detailed_txt=str(traceback.format_exc()))
except Exception as e: except Exception as e:
print(f"ERROR with lockdown device with UUID {device.serial}") print(f"ERROR with lockdown device with UUID {device.serial}")
show_error_msg(type(e).__name__ + ": " + repr(e), detailed_txt=str(traceback.format_exc())) show_error_msg(type(e).__name__ + ": " + repr(e), detailed_txt=str(traceback.format_exc()))
connected_devices.remove(device)
else:
connected_devices.remove(device)
if len(connected_devices) > 0: if len(self.devices) > 0:
self.set_current_device(index=0) self.set_current_device(index=0)
else: else:
self.set_current_device(index=None) self.set_current_device(index=None)
@@ -203,8 +208,8 @@ class DeviceManager:
QMessageBox.information(None, "Pairing Reset", "Your device's pairing was successfully reset. Refresh the device list before applying.") QMessageBox.information(None, "Pairing Reset", "Your device's pairing was successfully reset. Refresh the device list before applying.")
def add_skip_setup(self, files_to_restore: list[FileToRestore]): def add_skip_setup(self, files_to_restore: list[FileToRestore], restoring_domains: bool):
if self.skip_setup and not self.get_current_device_supported(): if self.skip_setup and (not self.get_current_device_supported() or restoring_domains):
# add the 2 skip setup files # add the 2 skip setup files
cloud_config_plist: dict = { cloud_config_plist: dict = {
"SkipSetup": ["WiFi", "Location", "Restore", "SIMSetup", "Android", "AppleID", "IntendedUser", "TOS", "Siri", "ScreenTime", "Diagnostics", "SoftwareUpdate", "Passcode", "Biometric", "Payment", "Zoom", "DisplayTone", "MessagingActivationUsingPhoneNumber", "HomeButtonSensitivity", "CloudStorage", "ScreenSaver", "TapToSetup", "Keyboard", "PreferredLanguage", "SpokenLanguage", "WatchMigration", "OnBoarding", "TVProviderSignIn", "TVHomeScreenSync", "Privacy", "TVRoom", "iMessageAndFaceTime", "AppStore", "Safety", "Multitasking", "ActionButton", "TermsOfAddress", "AccessibilityAppearance", "Welcome", "Appearance", "RestoreCompleted", "UpdateCompleted"], "SkipSetup": ["WiFi", "Location", "Restore", "SIMSetup", "Android", "AppleID", "IntendedUser", "TOS", "Siri", "ScreenTime", "Diagnostics", "SoftwareUpdate", "Passcode", "Biometric", "Payment", "Zoom", "DisplayTone", "MessagingActivationUsingPhoneNumber", "HomeButtonSensitivity", "CloudStorage", "ScreenSaver", "TapToSetup", "Keyboard", "PreferredLanguage", "SpokenLanguage", "WatchMigration", "OnBoarding", "TVProviderSignIn", "TVHomeScreenSync", "Privacy", "TVRoom", "iMessageAndFaceTime", "AppStore", "Safety", "Multitasking", "ActionButton", "TermsOfAddress", "AccessibilityAppearance", "Welcome", "Appearance", "RestoreCompleted", "UpdateCompleted"],
@@ -220,8 +225,8 @@ class DeviceManager:
cloud_config_plist["OrganizationName"] = self.organization_name cloud_config_plist["OrganizationName"] = self.organization_name
files_to_restore.append(FileToRestore( files_to_restore.append(FileToRestore(
contents=plistlib.dumps(cloud_config_plist), contents=plistlib.dumps(cloud_config_plist),
restore_path="systemgroup.com.apple.configurationprofiles/Library/ConfigurationProfiles/CloudConfigurationDetails.plist", restore_path="Library/ConfigurationProfiles/CloudConfigurationDetails.plist",
domain="SysSharedContainerDomain-." domain="SysSharedContainerDomain-systemgroup.com.apple.configurationprofiles"
)) ))
purplebuddy_plist: dict = { purplebuddy_plist: dict = {
"SetupDone": True, "SetupDone": True,
@@ -234,7 +239,12 @@ class DeviceManager:
domain="ManagedPreferencesDomain" domain="ManagedPreferencesDomain"
)) ))
def get_domain_for_path(self, path: str, fully_patched: bool = False) -> str: def get_domain_for_path(self, path: str, owner: int = 501) -> str:
# returns Domain: str?, Path: str
if self.get_current_device_supported() and not path.startswith("/var/mobile/") and not owner == 0:
# don't do anything on sparserestore versions
return path, None
fully_patched = self.get_current_device_patched()
# just make the Sys Containers to use the regular way (won't work for mga) # just make the Sys Containers to use the regular way (won't work for mga)
sysSharedContainer = "SysSharedContainerDomain-" sysSharedContainer = "SysSharedContainerDomain-"
sysContainer = "SysContainerDomain-" sysContainer = "SysContainerDomain-"
@@ -260,22 +270,18 @@ class DeviceManager:
parts = new_path.split("/") parts = new_path.split("/")
new_domain += parts[0] new_domain += parts[0]
new_path = new_path.replace(parts[0] + "/", "") new_path = new_path.replace(parts[0] + "/", "")
return new_domain, new_path return new_path, new_domain
return None, path return path, None
def concat_file(self, contents: str, path: str, files_to_restore: list[FileToRestore]): def concat_file(self, contents: str, path: str, files_to_restore: list[FileToRestore], owner: int = 501, group: int = 501):
if self.get_current_device_supported(): # TODO: try using inodes here instead
files_to_restore.append(FileToRestore( file_path, domain = self.get_domain_for_path(path, owner=owner)
contents=contents, files_to_restore.append(FileToRestore(
restore_path=path contents=contents,
)) restore_path=file_path,
else: domain=domain,
domain, file_path = self.get_domain_for_path(path, fully_patched=self.get_current_device_patched()) owner=owner, group=group
files_to_restore.append(FileToRestore( ))
contents=contents,
restore_path=file_path,
domain=domain
))
## APPLYING OR REMOVING TWEAKS AND RESTORING ## APPLYING OR REMOVING TWEAKS AND RESTORING
def apply_changes(self, resetting: bool = False, update_label=lambda x: None): def apply_changes(self, resetting: bool = False, update_label=lambda x: None):
@@ -291,6 +297,9 @@ class DeviceManager:
eligibility_files = None eligibility_files = None
ai_file = None ai_file = None
basic_plists: dict = {} basic_plists: dict = {}
basic_plists_ownership: dict = {}
files_data: dict = {}
uses_domains: bool = False
# set the plist keys # set the plist keys
if not resetting: if not resetting:
@@ -304,6 +313,13 @@ class DeviceManager:
ai_file = tweak.apply_tweak() ai_file = tweak.apply_tweak()
elif isinstance(tweak, BasicPlistTweak) or isinstance(tweak, RdarFixTweak) or isinstance(tweak, AdvancedPlistTweak): elif isinstance(tweak, BasicPlistTweak) or isinstance(tweak, RdarFixTweak) or isinstance(tweak, AdvancedPlistTweak):
basic_plists = tweak.apply_tweak(basic_plists, self.allow_risky_tweaks) basic_plists = tweak.apply_tweak(basic_plists, self.allow_risky_tweaks)
basic_plists_ownership[tweak.file_location] = tweak.owner
if tweak.owner == 0:
uses_domains = True
elif isinstance(tweak, NullifyFileTweak):
tweak.apply_tweak(files_data)
if tweak.enabled and tweak.file_location.value.startswith("/var/mobile/"):
uses_domains = True
else: else:
if gestalt_plist != None: if gestalt_plist != None:
gestalt_plist = tweak.apply_tweak(gestalt_plist) gestalt_plist = tweak.apply_tweak(gestalt_plist)
@@ -327,7 +343,7 @@ class DeviceManager:
path="/var/preferences/FeatureFlags/Global.plist", path="/var/preferences/FeatureFlags/Global.plist",
files_to_restore=files_to_restore files_to_restore=files_to_restore
) )
self.add_skip_setup(files_to_restore) self.add_skip_setup(files_to_restore, uses_domains)
if gestalt_data != None: if gestalt_data != None:
self.concat_file( self.concat_file(
contents=gestalt_data, contents=gestalt_data,
@@ -354,10 +370,19 @@ class DeviceManager:
files_to_restore=files_to_restore files_to_restore=files_to_restore
) )
for location, plist in basic_plists.items(): for location, plist in basic_plists.items():
ownership = basic_plists_ownership[location]
self.concat_file( self.concat_file(
contents=plistlib.dumps(plist), contents=plistlib.dumps(plist),
path=location.value, path=location.value,
files_to_restore=files_to_restore files_to_restore=files_to_restore,
owner=ownership, group=ownership
)
for location, data in files_data.items():
self.concat_file(
contents=data,
path=location.value,
files_to_restore=files_to_restore,
owner=ownership, group=ownership
) )
# reset basic tweaks # reset basic tweaks
if resetting: if resetting:
@@ -397,9 +422,9 @@ class DeviceManager:
settings.setValue(self.data_singleton.current_device.uuid + "_model", "") settings.setValue(self.data_singleton.current_device.uuid + "_model", "")
settings.setValue(self.data_singleton.current_device.uuid + "_hardware", "") settings.setValue(self.data_singleton.current_device.uuid + "_hardware", "")
settings.setValue(self.data_singleton.current_device.uuid + "_cpu", "") settings.setValue(self.data_singleton.current_device.uuid + "_cpu", "")
domain, file_path = self.get_domain_for_path( file_path, domain = self.get_domain_for_path(
"/var/containers/Shared/SystemGroup/systemgroup.com.apple.mobilegestaltcache/Library/Caches/com.apple.MobileGestalt.plist", "/var/containers/Shared/SystemGroup/systemgroup.com.apple.mobilegestaltcache/Library/Caches/com.apple.MobileGestalt.plist"
fully_patched=self.get_current_device_patched()) )
restore_files(files=[FileToRestore( restore_files(files=[FileToRestore(
contents=b"", contents=b"",
restore_path=file_path, restore_path=file_path,

68
gui/dialogs.py Normal file
View File

@@ -0,0 +1,68 @@
from PySide6.QtWidgets import QDialog, QDialogButtonBox, QLabel, QVBoxLayout
from PySide6.QtGui import QFont
from webbrowser import open_new_tab
from controllers.web_request_handler import Nugget_Repo, get_latest_version
class GestaltDialog(QDialog):
def __init__(self, device_manager, gestalt_label, selected_file, parent=None):
super().__init__(parent)
self.device_manager = device_manager
self.gestalt_label = gestalt_label
self.selected_file = selected_file
QBtn = (
QDialogButtonBox.Ok | QDialogButtonBox.Cancel
)
self.buttonBox = QDialogButtonBox(QBtn)
self.buttonBox.accepted.connect(self.accept)
self.buttonBox.rejected.connect(self.reject)
layout = QVBoxLayout()
message = QLabel("The gestalt file looks like it was made for a different device.\nAre you sure you want to use this one?")
layout.addWidget(message)
layout.addWidget(self.buttonBox)
self.setLayout(layout)
def accept(self):
self.device_manager.data_singleton.gestalt_path = self.selected_file
self.gestalt_label.setText(self.selected_file)
super().accept()
class UpdateAppDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
QBtn = (
QDialogButtonBox.Ok | QDialogButtonBox.Cancel
)
self.buttonBox = QDialogButtonBox(QBtn)
self.buttonBox.accepted.connect(self.accept)
self.buttonBox.rejected.connect(self.reject)
layout = QVBoxLayout()
title = QLabel("Update Available")
title_font = QFont()
title_font.setBold(True)
title.setFont(title_font)
message_text = ""
latest_version = get_latest_version()
if latest_version != None:
message_text += f"Nugget v{latest_version} is available. "
message_text += "Would you like to go to the download on GitHub?"
message = QLabel(message_text)
layout.addWidget(title)
layout.addWidget(message)
layout.addWidget(self.buttonBox)
self.setLayout(layout)
def accept(self):
# open up the repo page
open_new_tab(f"https://github.com/{Nugget_Repo}")
super().accept()

View File

@@ -1,27 +0,0 @@
from PySide6.QtWidgets import QDialog, QDialogButtonBox, QLabel, QVBoxLayout
class GestaltDialog(QDialog):
def __init__(self, device_manager, gestalt_label, selected_file, parent=None):
super().__init__(parent)
self.device_manager = device_manager
self.gestalt_label = gestalt_label
self.selected_file = selected_file
QBtn = (
QDialogButtonBox.Ok | QDialogButtonBox.Cancel
)
self.buttonBox = QDialogButtonBox(QBtn)
self.buttonBox.accepted.connect(self.accept)
self.buttonBox.rejected.connect(self.reject)
layout = QVBoxLayout()
message = QLabel("The gestalt file looks like it was made for a different device.\nAre you sure you want to use this one?")
layout.addWidget(message)
layout.addWidget(self.buttonBox)
self.setLayout(layout)
def accept(self):
self.device_manager.data_singleton.gestalt_path = self.selected_file
self.gestalt_label.setText(self.selected_file)
super().accept()

View File

@@ -7,13 +7,19 @@ from pymobiledevice3.lockdown import create_using_usbmux
from qt.ui_mainwindow import Ui_Nugget from qt.ui_mainwindow import Ui_Nugget
from controllers.web_request_handler import is_update_available
from devicemanagement.constants import Version from devicemanagement.constants import Version
from devicemanagement.device_manager import DeviceManager from devicemanagement.device_manager import DeviceManager
from gui.gestalt_dialog import GestaltDialog from gui.dialogs import GestaltDialog, UpdateAppDialog
from tweaks.tweaks import tweaks from tweaks.tweaks import tweaks
from tweaks.custom_gestalt_tweaks import CustomGestaltTweaks, ValueTypeStrings from tweaks.custom_gestalt_tweaks import CustomGestaltTweaks, ValueTypeStrings
from tweaks.daemons_tweak import Daemon
App_Version = "4.2"
App_Build = 0
class Page(Enum): class Page(Enum):
Home = 0 Home = 0
@@ -22,9 +28,10 @@ class Page(Enum):
EUEnabler = 3 EUEnabler = 3
Springboard = 4 Springboard = 4
InternalOptions = 5 InternalOptions = 5
RiskyTweaks = 6 Daemons = 6
Apply = 7 RiskyTweaks = 7
Settings = 8 Apply = 8
Settings = 9
class MainWindow(QtWidgets.QMainWindow): class MainWindow(QtWidgets.QMainWindow):
def __init__(self, device_manager: DeviceManager): def __init__(self, device_manager: DeviceManager):
@@ -35,6 +42,13 @@ class MainWindow(QtWidgets.QMainWindow):
self.show_uuid = False self.show_uuid = False
self.loadSettings() self.loadSettings()
# Check for an update
if is_update_available(App_Version, App_Build):
# notify with prompt to download the new version from github
UpdateAppDialog().exec()
# Update the app version/build number label
self.updateAppVersionLabel()
## DEVICE BAR ## DEVICE BAR
self.refresh_devices() self.refresh_devices()
@@ -48,6 +62,7 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.euEnablerPageBtn.clicked.connect(self.on_euEnablerPageBtn_clicked) self.ui.euEnablerPageBtn.clicked.connect(self.on_euEnablerPageBtn_clicked)
self.ui.springboardOptionsPageBtn.clicked.connect(self.on_springboardOptionsPageBtn_clicked) self.ui.springboardOptionsPageBtn.clicked.connect(self.on_springboardOptionsPageBtn_clicked)
self.ui.internalOptionsPageBtn.clicked.connect(self.on_internalOptionsPageBtn_clicked) self.ui.internalOptionsPageBtn.clicked.connect(self.on_internalOptionsPageBtn_clicked)
self.ui.daemonsPageBtn.clicked.connect(self.on_daemonsPageBtn_clicked)
self.ui.advancedPageBtn.clicked.connect(self.on_advancedPageBtn_clicked) self.ui.advancedPageBtn.clicked.connect(self.on_advancedPageBtn_clicked)
self.ui.applyPageBtn.clicked.connect(self.on_applyPageBtn_clicked) self.ui.applyPageBtn.clicked.connect(self.on_applyPageBtn_clicked)
self.ui.settingsPageBtn.clicked.connect(self.on_settingsPageBtn_clicked) self.ui.settingsPageBtn.clicked.connect(self.on_settingsPageBtn_clicked)
@@ -65,7 +80,7 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.jjtechBtn.clicked.connect(self.on_jjtechBtn_clicked) self.ui.jjtechBtn.clicked.connect(self.on_jjtechBtn_clicked)
self.ui.disfordottieBtn.clicked.connect(self.on_disfordottieBtn_clicked) self.ui.disfordottieBtn.clicked.connect(self.on_disfordottieBtn_clicked)
self.ui.lrdsnowBtn.clicked.connect(self.on_lrdsnowBtn_clicked) self.ui.mikasaBtn.clicked.connect(self.on_mikasaBtn_clicked)
self.ui.libiBtn.clicked.connect(self.on_libiBtn_clicked) self.ui.libiBtn.clicked.connect(self.on_libiBtn_clicked)
self.ui.qtBtn.clicked.connect(self.on_qtBtn_clicked) self.ui.qtBtn.clicked.connect(self.on_qtBtn_clicked)
@@ -83,6 +98,8 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.languageLbl.hide() # to be removed later self.ui.languageLbl.hide() # to be removed later
self.ui.languageTxt.textEdited.connect(self.on_languageTxt_textEdited) self.ui.languageTxt.textEdited.connect(self.on_languageTxt_textEdited)
self.ui.spoofedModelDrp.activated.connect(self.on_spoofedModelDrp_activated) self.ui.spoofedModelDrp.activated.connect(self.on_spoofedModelDrp_activated)
self.ui.spoofHardwareChk.toggled.connect(self.on_spoofHardwareChk_toggled)
self.ui.spoofCPUChk.toggled.connect(self.on_spoofCPUChk_toggled)
## FEATURE FLAGS PAGE ## FEATURE FLAGS PAGE
self.ui.clockAnimChk.toggled.connect(self.on_clockAnimChk_toggled) self.ui.clockAnimChk.toggled.connect(self.on_clockAnimChk_toggled)
@@ -114,6 +131,21 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.pasteSoundChk.toggled.connect(self.on_pasteSoundChk_clicked) self.ui.pasteSoundChk.toggled.connect(self.on_pasteSoundChk_clicked)
self.ui.notifyPastesChk.toggled.connect(self.on_notifyPastesChk_clicked) self.ui.notifyPastesChk.toggled.connect(self.on_notifyPastesChk_clicked)
## DAEMONS PAGE ACTIONS
self.ui.modifyDaemonsChk.toggled.connect(self.on_modifyDaemonsChk_clicked)
self.ui.thermalmonitordChk.toggled.connect(self.on_thermalmonitordChk_clicked)
self.ui.otadChk.toggled.connect(self.on_otadChk_clicked)
self.ui.usageTrackingAgentChk.toggled.connect(self.on_usageTrackingAgentChk_clicked)
self.ui.gameCenterChk.toggled.connect(self.on_gameCenterChk_clicked)
self.ui.screenTimeChk.toggled.connect(self.on_screenTimeChk_clicked)
self.ui.clearScreenTimeAgentChk.toggled.connect(self.on_clearScreenTimeAgentChk_clicked)
self.ui.crashReportsChk.toggled.connect(self.on_crashReportsChk_clicked)
self.ui.atwakeupChk.toggled.connect(self.on_atwakeupChk_clicked)
self.ui.tipsChk.toggled.connect(self.on_tipsChk_clicked)
self.ui.vpndChk.toggled.connect(self.on_vpndChk_clicked)
self.ui.wapicChk.toggled.connect(self.on_wapicChk_clicked)
self.ui.healthdChk.toggled.connect(self.on_healthdChk_clicked)
## RISKY OPTIONS PAGE ACTIONS ## RISKY OPTIONS PAGE ACTIONS
self.ui.disableOTAChk.toggled.connect(self.on_disableOTAChk_clicked) self.ui.disableOTAChk.toggled.connect(self.on_disableOTAChk_clicked)
self.ui.enableResolutionChk.toggled.connect(self.on_enableResolutionChk_clicked) self.ui.enableResolutionChk.toggled.connect(self.on_enableResolutionChk_clicked)
@@ -130,6 +162,7 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.allowWifiApplyingChk.toggled.connect(self.on_allowWifiApplyingChk_toggled) self.ui.allowWifiApplyingChk.toggled.connect(self.on_allowWifiApplyingChk_toggled)
self.ui.autoRebootChk.toggled.connect(self.on_autoRebootChk_toggled) self.ui.autoRebootChk.toggled.connect(self.on_autoRebootChk_toggled)
self.ui.showRiskyChk.toggled.connect(self.on_showRiskyChk_toggled) self.ui.showRiskyChk.toggled.connect(self.on_showRiskyChk_toggled)
self.ui.showAllSpoofableChk.toggled.connect(self.on_showAllSpoofableChk_toggled)
self.ui.skipSetupChk.toggled.connect(self.on_skipSetupChk_toggled) self.ui.skipSetupChk.toggled.connect(self.on_skipSetupChk_toggled)
self.ui.supervisionChk.toggled.connect(self.on_supervisionChk_toggled) self.ui.supervisionChk.toggled.connect(self.on_supervisionChk_toggled)
@@ -159,6 +192,7 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.internalStorageChk.clicked.connect(self.on_internalStorageChk_clicked) self.ui.internalStorageChk.clicked.connect(self.on_internalStorageChk_clicked)
self.ui.collisionSOSChk.clicked.connect(self.on_collisionSOSChk_clicked) self.ui.collisionSOSChk.clicked.connect(self.on_collisionSOSChk_clicked)
self.ui.aodChk.clicked.connect(self.on_aodChk_clicked) self.ui.aodChk.clicked.connect(self.on_aodChk_clicked)
self.ui.aodVibrancyChk.clicked.connect(self.on_aodVibrancyChk_clicked)
self.ui.addGestaltKeyBtn.clicked.connect(self.on_addGestaltKeyBtn_clicked) self.ui.addGestaltKeyBtn.clicked.connect(self.on_addGestaltKeyBtn_clicked)
self.ui.aiEnablerContent.hide() self.ui.aiEnablerContent.hide()
@@ -171,6 +205,15 @@ class MainWindow(QtWidgets.QMainWindow):
def updateInterfaceForNewDevice(self): def updateInterfaceForNewDevice(self):
# update the home page # update the home page
self.updatePhoneInfo() self.updatePhoneInfo()
def updateAppVersionLabel(self):
new_text: str = self.ui.appVersionLbl.text()
new_text = new_text.replace("%VERSION", App_Version)
if App_Build > 0:
new_text = new_text.replace("%BETATAG", f"(beta {App_Build})")
else:
new_text = new_text.replace("%BETATAG", "")
self.ui.appVersionLbl.setText(new_text)
## DEVICE BAR FUNCTIONS ## DEVICE BAR FUNCTIONS
@@ -188,7 +231,6 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.homePageBtn.setChecked(True) self.ui.homePageBtn.setChecked(True)
# hide all pages # hide all pages
self.ui.explorePageBtn.hide()
self.ui.sidebarDiv1.hide() self.ui.sidebarDiv1.hide()
self.ui.gestaltPageBtn.hide() self.ui.gestaltPageBtn.hide()
@@ -196,12 +238,14 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.euEnablerPageBtn.hide() self.ui.euEnablerPageBtn.hide()
self.ui.springboardOptionsPageBtn.hide() self.ui.springboardOptionsPageBtn.hide()
self.ui.internalOptionsPageBtn.hide() self.ui.internalOptionsPageBtn.hide()
self.ui.daemonsPageBtn.hide()
self.ui.advancedPageBtn.hide() self.ui.advancedPageBtn.hide()
self.ui.sidebarDiv2.hide() self.ui.sidebarDiv2.hide()
self.ui.applyPageBtn.hide() self.ui.applyPageBtn.hide()
self.ui.resetPairBtn.hide() self.ui.resetPairBtn.hide()
self.ui.showRiskyChk.hide()
else: else:
self.ui.devicePicker.setEnabled(True) self.ui.devicePicker.setEnabled(True)
# populate the ComboBox with device names # populate the ComboBox with device names
@@ -209,10 +253,10 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.devicePicker.addItem(device.name) self.ui.devicePicker.addItem(device.name)
# show all pages # show all pages
self.ui.explorePageBtn.hide()
self.ui.sidebarDiv1.show() self.ui.sidebarDiv1.show()
self.ui.springboardOptionsPageBtn.show() self.ui.springboardOptionsPageBtn.show()
self.ui.internalOptionsPageBtn.show() self.ui.internalOptionsPageBtn.show()
self.ui.daemonsPageBtn.show()
if self.device_manager.allow_risky_tweaks: if self.device_manager.allow_risky_tweaks:
self.ui.advancedPageBtn.show() self.ui.advancedPageBtn.show()
@@ -230,6 +274,7 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.advancedOptionsPageContent.setDisabled(False) self.ui.advancedOptionsPageContent.setDisabled(False)
self.ui.resetPairBtn.show() self.ui.resetPairBtn.show()
self.ui.showRiskyChk.show()
# update the selected device # update the selected device
self.ui.devicePicker.setCurrentIndex(0) self.ui.devicePicker.setCurrentIndex(0)
@@ -245,26 +290,28 @@ class MainWindow(QtWidgets.QMainWindow):
# indexes 1-6 for iPhones, 7-(len(values) - 1) for iPads # indexes 1-6 for iPhones, 7-(len(values) - 1) for iPads
# TODO: Make this get fetched from the gui on app startup # TODO: Make this get fetched from the gui on app startup
spoof_drp_options = ["iPhone 15 Pro (iPhone16,1)", "iPhone 15 Pro Max (iPhone16,2)", "iPhone 16 (iPhone17,3)", "iPhone 16 Plus (iPhone17,4)", "iPhone 16 Pro (iPhone17,1)", "iPhone 16 Pro Max (iPhone17,2)", "iPad Mini (A17 Pro) (W) (iPad16,1)", "iPad Mini (A17 Pro) (C) (iPad16,2)", "iPad Pro (13-inch) (M4) (W) (iPad16,5)", "iPad Pro (13-inch) (M4) (C) (iPad16,6)", "iPad Pro (11-inch) (M4) (W) (iPad16,3)", "iPad Pro (11-inch) (M4) (C) (iPad16,4)", "iPad Pro (12.9-inch) (M2) (W) (iPad14,5)", "iPad Pro (12.9-inch) (M2) (C) (iPad14,6)", "iPad Pro (11-inch) (M2) (W) (iPad14,3)", "iPad Pro (11-inch) (M2) (C) (iPad14,4)", "iPad Air (13-inch) (M2) (W) (iPad14,10)", "iPad Air (13-inch) (M2) (C) (iPad14,11)", "iPad Air (11-inch) (M2) (W) (iPad14,8)", "iPad Air (11-inch) (M2) (C) (iPad14,9)", "iPad Pro (11-inch) (M1) (W) (iPad13,4)", "iPad Pro (11-inch) (M1) (C) (iPad13,5)", "iPad Pro (12.9-inch) (M1) (W) (iPad13,8)", "iPad Pro (12.9-inch) (M1) (C) (iPad13,9)", "iPad Air (M1) (W) (iPad13,16)", "iPad Air (M1) (C) (iPad13,17)"] spoof_drp_options = ["iPhone 15 Pro (iPhone16,1)", "iPhone 15 Pro Max (iPhone16,2)", "iPhone 16 (iPhone17,3)", "iPhone 16 Plus (iPhone17,4)", "iPhone 16 Pro (iPhone17,1)", "iPhone 16 Pro Max (iPhone17,2)", "iPad Mini (A17 Pro) (W) (iPad16,1)", "iPad Mini (A17 Pro) (C) (iPad16,2)", "iPad Pro (13-inch) (M4) (W) (iPad16,5)", "iPad Pro (13-inch) (M4) (C) (iPad16,6)", "iPad Pro (11-inch) (M4) (W) (iPad16,3)", "iPad Pro (11-inch) (M4) (C) (iPad16,4)", "iPad Pro (12.9-inch) (M2) (W) (iPad14,5)", "iPad Pro (12.9-inch) (M2) (C) (iPad14,6)", "iPad Pro (11-inch) (M2) (W) (iPad14,3)", "iPad Pro (11-inch) (M2) (C) (iPad14,4)", "iPad Air (13-inch) (M2) (W) (iPad14,10)", "iPad Air (13-inch) (M2) (C) (iPad14,11)", "iPad Air (11-inch) (M2) (W) (iPad14,8)", "iPad Air (11-inch) (M2) (C) (iPad14,9)", "iPad Pro (11-inch) (M1) (W) (iPad13,4)", "iPad Pro (11-inch) (M1) (C) (iPad13,5)", "iPad Pro (12.9-inch) (M1) (W) (iPad13,8)", "iPad Pro (12.9-inch) (M1) (C) (iPad13,9)", "iPad Air (M1) (W) (iPad13,16)", "iPad Air (M1) (C) (iPad13,17)"]
if self.device_manager.get_current_device_model().startswith("iPhone"): if self.device_manager.show_all_spoofable_models or self.device_manager.get_current_device_model().startswith("iPhone"):
# re-enable iPhone spoof models # re-enable iPhone spoof models
self.ui.spoofedModelDrp.addItems(spoof_drp_options[:6]) self.ui.spoofedModelDrp.addItems(spoof_drp_options[:6])
else: if self.device_manager.show_all_spoofable_models or self.device_manager.get_current_device_model().startswith("iPad"):
# re-enable iPad spoof models # re-enable iPad spoof models
self.ui.spoofedModelDrp.addItems(spoof_drp_options[6:]) self.ui.spoofedModelDrp.addItems(spoof_drp_options[6:])
def change_selected_device(self, index): def change_selected_device(self, index):
self.ui.showAllSpoofableChk.hide()
if len(self.device_manager.devices) > 0: if len(self.device_manager.devices) > 0:
self.device_manager.set_current_device(index=index) self.device_manager.set_current_device(index=index)
# hide options that are for newer versions # hide options that are for newer versions
# remove the new dynamic island options # remove the new dynamic island options
MinTweakVersions = { MinTweakVersions = {
"no_patch": [self.ui.chooseGestaltBtn, self.ui.gestaltPageBtn, self.ui.resetGestaltBtn, self.ui.gestaltLocationLbl], "no_patch": [self.ui.chooseGestaltBtn, self.ui.gestaltPageBtn, self.ui.resetGestaltBtn, self.ui.gestaltLocationLbl, self.ui.showAllSpoofableChk],
"exploit": [("18.0", self.ui.featureFlagsPageBtn), ("18.1", self.ui.eligFileChk)], "exploit": [("18.0", self.ui.featureFlagsPageBtn), ("18.1", self.ui.eligFileChk), ("1.0", self.ui.regularDomainsLbl)],
"18.1": [self.ui.enableAIChk, self.ui.aiEnablerContent], "18.1": [self.ui.enableAIChk, self.ui.aiEnablerContent],
"18.0": [self.ui.aodChk, self.ui.iphone16SettingsChk] "18.0": [self.ui.aodChk, self.ui.aodVibrancyChk, self.ui.iphone16SettingsChk]
} }
MaxTweakVersions = { MaxTweakVersions = {
"17.7": [self.ui.euEnablerContent] "17.7": [self.ui.euEnablerContent],
"18.0": [self.ui.photosChk, self.ui.aiChk]
} }
try: try:
@@ -331,9 +378,10 @@ class MainWindow(QtWidgets.QMainWindow):
self.settings = QtCore.QSettings() self.settings = QtCore.QSettings()
try: try:
# load the settings # load the settings
apply_over_wifi = self.settings.value("apply_over_wifi", True, type=bool) apply_over_wifi = self.settings.value("apply_over_wifi", False, type=bool)
auto_reboot = self.settings.value("auto_reboot", True, type=bool) auto_reboot = self.settings.value("auto_reboot", True, type=bool)
risky_tweaks = self.settings.value("show_risky_tweaks", False, type=bool) risky_tweaks = self.settings.value("show_risky_tweaks", False, type=bool)
show_all_spoofable = self.settings.value("show_all_spoofable_models", False, type=bool)
skip_setup = self.settings.value("skip_setup", True, type=bool) skip_setup = self.settings.value("skip_setup", True, type=bool)
supervised = self.settings.value("supervised", False, type=bool) supervised = self.settings.value("supervised", False, type=bool)
organization_name = self.settings.value("organization_name", "", type=str) organization_name = self.settings.value("organization_name", "", type=str)
@@ -341,13 +389,21 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.allowWifiApplyingChk.setChecked(apply_over_wifi) self.ui.allowWifiApplyingChk.setChecked(apply_over_wifi)
self.ui.autoRebootChk.setChecked(auto_reboot) self.ui.autoRebootChk.setChecked(auto_reboot)
self.ui.showRiskyChk.setChecked(risky_tweaks) self.ui.showRiskyChk.setChecked(risky_tweaks)
self.ui.showAllSpoofableChk.setChecked(show_all_spoofable)
self.ui.skipSetupChk.setChecked(skip_setup) self.ui.skipSetupChk.setChecked(skip_setup)
self.ui.supervisionChk.setChecked(supervised) self.ui.supervisionChk.setChecked(supervised)
self.ui.supervisionOrganization.setText(organization_name) self.ui.supervisionOrganization.setText(organization_name)
# hide/show the warning label
if skip_setup:
self.ui.skipSetupOnLbl.show()
else:
self.ui.skipSetupOnLbl.hide()
self.device_manager.apply_over_wifi = apply_over_wifi self.device_manager.apply_over_wifi = apply_over_wifi
self.device_manager.auto_reboot = auto_reboot self.device_manager.auto_reboot = auto_reboot
self.device_manager.allow_risky_tweaks = risky_tweaks self.device_manager.allow_risky_tweaks = risky_tweaks
self.device_manager.show_all_spoofable_models = show_all_spoofable
self.device_manager.skip_setup = skip_setup self.device_manager.skip_setup = skip_setup
self.device_manager.supervised = supervised self.device_manager.supervised = supervised
self.device_manager.organization_name = organization_name self.device_manager.organization_name = organization_name
@@ -374,6 +430,9 @@ class MainWindow(QtWidgets.QMainWindow):
def on_internalOptionsPageBtn_clicked(self): def on_internalOptionsPageBtn_clicked(self):
self.ui.pages.setCurrentIndex(Page.InternalOptions.value) self.ui.pages.setCurrentIndex(Page.InternalOptions.value)
def on_daemonsPageBtn_clicked(self):
self.ui.pages.setCurrentIndex(Page.Daemons.value)
def on_advancedPageBtn_clicked(self): def on_advancedPageBtn_clicked(self):
self.ui.pages.setCurrentIndex(Page.RiskyTweaks.value) self.ui.pages.setCurrentIndex(Page.RiskyTweaks.value)
@@ -418,11 +477,11 @@ class MainWindow(QtWidgets.QMainWindow):
def show_version_text(self, version: str, build: str): def show_version_text(self, version: str, build: str):
support_str: str = "<span style=\"color: #32d74b;\">Supported!</span></a>" support_str: str = "<span style=\"color: #32d74b;\">Supported!</span></a>"
if Version(version) < Version("17.0") or self.device_manager.get_current_device_patched(): if Version(version) < Version("17.0"):
support_str = "<span style=\"color: #ff0000;\">Not Supported.</span></a>" support_str = "<span style=\"color: #ff0000;\">Not Supported.</span></a>"
elif not self.device_manager.get_current_device_supported(): elif self.device_manager.get_current_device_patched():
# sparserestore partially patched # sparserestore fully patched
support_str = "<span style=\"color: #ffff00;\">Supported, YMMV.</span></a>" support_str = "<span style=\"color: #ffff00;\">Partially Supported.</span></a>"
self.ui.phoneVersionLbl.setText(f"<a style=\"text-decoration:none; color: white;\" href=\"#\">iOS {version} ({build}) {support_str}") self.ui.phoneVersionLbl.setText(f"<a style=\"text-decoration:none; color: white;\" href=\"#\">iOS {version} ({build}) {support_str}")
## HOME PAGE LINKS ## HOME PAGE LINKS
@@ -440,8 +499,8 @@ class MainWindow(QtWidgets.QMainWindow):
webbrowser.open_new_tab("https://github.com/JJTech0130/TrollRestore") webbrowser.open_new_tab("https://github.com/JJTech0130/TrollRestore")
def on_disfordottieBtn_clicked(self): def on_disfordottieBtn_clicked(self):
webbrowser.open_new_tab("https://twitter.com/disfordottie") webbrowser.open_new_tab("https://twitter.com/disfordottie")
def on_lrdsnowBtn_clicked(self): def on_mikasaBtn_clicked(self):
webbrowser.open_new_tab("https://github.com/Lrdsnow/EUEnabler") webbrowser.open_new_tab("https://github.com/Mikasa-san/QuietDaemon")
def on_libiBtn_clicked(self): def on_libiBtn_clicked(self):
webbrowser.open_new_tab("https://github.com/doronz88/pymobiledevice3") webbrowser.open_new_tab("https://github.com/doronz88/pymobiledevice3")
@@ -523,6 +582,8 @@ class MainWindow(QtWidgets.QMainWindow):
tweaks["CollisionSOS"].set_enabled(checked) tweaks["CollisionSOS"].set_enabled(checked)
def on_aodChk_clicked(self, checked: bool): def on_aodChk_clicked(self, checked: bool):
tweaks["AOD"].set_enabled(checked) tweaks["AOD"].set_enabled(checked)
def on_aodVibrancyChk_clicked(self, checked: bool):
tweaks["AODVibrancy"].set_enabled(checked)
def update_custom_gestalt_value_type(self, id, idx, valueField: QtWidgets.QLineEdit): def update_custom_gestalt_value_type(self, id, idx, valueField: QtWidgets.QLineEdit):
new_str = CustomGestaltTweaks.set_tweak_value_type(id, idx) new_str = CustomGestaltTweaks.set_tweak_value_type(id, idx)
@@ -628,16 +689,16 @@ class MainWindow(QtWidgets.QMainWindow):
def on_spoofedModelDrp_activated(self, index: int): def on_spoofedModelDrp_activated(self, index: int):
idx_to_apply = index idx_to_apply = index
if index > 0 and not self.device_manager.get_current_device_model().startswith("iPhone"): if not self.device_manager.show_all_spoofable_models and not self.device_manager.get_current_device_model().startswith("iPhone"):
# offset the index for ipads # offset the index for ipads
idx_to_apply += 6 idx_to_apply += 6
tweaks["SpoofModel"].set_selected_option(idx_to_apply) tweaks["SpoofModel"].set_selected_option(idx_to_apply, is_enabled=(index != 0))
tweaks["SpoofHardware"].set_selected_option(idx_to_apply) tweaks["SpoofHardware"].set_selected_option(idx_to_apply, is_enabled=(index != 0 and self.ui.spoofHardwareChk.isChecked()))
tweaks["SpoofCPU"].set_selected_option(idx_to_apply) tweaks["SpoofCPU"].set_selected_option(idx_to_apply, is_enabled=(index != 0 and self.ui.spoofCPUChk.isChecked()))
if idx_to_apply == 0: def on_spoofHardwareChk_toggled(self, checked: bool):
tweaks["SpoofModel"].set_enabled(False) tweaks["SpoofHardware"].set_enabled(checked and tweaks["SpoofHardware"].selected_option != 0)
tweaks["SpoofHardware"].set_enabled(False) def on_spoofCPUChk_toggled(self, checked: bool):
tweaks["SpoofCPU"].set_enabled(False) tweaks["SpoofCPU"].set_enabled(checked and tweaks["SpoofCPU"].selected_option != 0)
## SPRINGBOARD OPTIONS PAGE ## SPRINGBOARD OPTIONS PAGE
@@ -688,9 +749,39 @@ class MainWindow(QtWidgets.QMainWindow):
def on_notifyPastesChk_clicked(self, checked: bool): def on_notifyPastesChk_clicked(self, checked: bool):
tweaks["AnnounceAllPastes"].set_enabled(checked) tweaks["AnnounceAllPastes"].set_enabled(checked)
## DAEMONS PAGE
def on_modifyDaemonsChk_clicked(self, checked: bool):
tweaks["Daemons"].set_enabled(checked)
self.ui.daemonsPageContent.setDisabled(not checked)
def on_thermalmonitordChk_clicked(self, checked: bool):
tweaks["Daemons"].set_multiple_values(Daemon.thermalmonitord.value, value=checked)
def on_otadChk_clicked(self, checked: bool):
tweaks["Daemons"].set_multiple_values(Daemon.OTA.value, value=checked)
def on_usageTrackingAgentChk_clicked(self, checked: bool):
tweaks["Daemons"].set_multiple_values(Daemon.UsageTrackingAgent.value, value=checked)
def on_gameCenterChk_clicked(self, checked: bool):
tweaks["Daemons"].set_multiple_values(Daemon.GameCenter.value, value=checked)
def on_screenTimeChk_clicked(self, checked: bool):
tweaks["Daemons"].set_multiple_values(Daemon.ScreenTime.value, value=checked)
def on_clearScreenTimeAgentChk_clicked(self, checked: bool):
tweaks["ClearScreenTimeAgentPlist"].set_enabled(checked)
def on_crashReportsChk_clicked(self, checked: bool):
tweaks["Daemons"].set_multiple_values(Daemon.CrashReports.value, value=checked)
def on_atwakeupChk_clicked(self, checked: bool):
tweaks["Daemons"].set_multiple_values(Daemon.ATWAKEUP.value, value=checked)
def on_tipsChk_clicked(self, checked: bool):
tweaks["Daemons"].set_multiple_values(Daemon.Tips.value, value=checked)
def on_vpndChk_clicked(self, checked: bool):
tweaks["Daemons"].set_multiple_values(Daemon.VPN.value, value=checked)
def on_wapicChk_clicked(self, checked: bool):
tweaks["Daemons"].set_multiple_values(Daemon.ChineseLAN.value, value=checked)
def on_healthdChk_clicked(self, checked: bool):
tweaks["Daemons"].set_multiple_values(Daemon.HealthKit.value, value=checked)
## Risky Options Page ## Risky Options Page
def on_disableOTAChk_clicked(self, checked: bool): def on_disableOTAChk_clicked(self, checked: bool):
tweaks["DisableOTA"].set_enabled(checked) tweaks["DisableOTAFile"].set_enabled(checked)
def on_enableResolutionChk_clicked(self, checked: bool): def on_enableResolutionChk_clicked(self, checked: bool):
tweaks["CustomResolution"].set_enabled(checked) tweaks["CustomResolution"].set_enabled(checked)
@@ -739,6 +830,12 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.advancedPageBtn.show() self.ui.advancedPageBtn.show()
else: else:
self.ui.advancedPageBtn.hide() self.ui.advancedPageBtn.hide()
def on_showAllSpoofableChk_toggled(self, checked: bool):
self.device_manager.show_all_spoofable_models = checked
# save the setting
self.settings.setValue("show_all_spoofable_models", checked)
# refresh the list of spoofable models
self.setup_spoofedModelDrp_models()
def on_autoRebootChk_toggled(self, checked: bool): def on_autoRebootChk_toggled(self, checked: bool):
self.device_manager.auto_reboot = checked self.device_manager.auto_reboot = checked
# save the setting # save the setting
@@ -747,6 +844,11 @@ class MainWindow(QtWidgets.QMainWindow):
self.device_manager.skip_setup = checked self.device_manager.skip_setup = checked
# save the setting # save the setting
self.settings.setValue("skip_setup", checked) self.settings.setValue("skip_setup", checked)
# hide/show the warning label
if checked:
self.ui.skipSetupOnLbl.show()
else:
self.ui.skipSetupOnLbl.hide()
def on_supervisionOrgTxt_textEdited(self, text: str): def on_supervisionOrgTxt_textEdited(self, text: str):
self.device_manager.organization_name = text self.device_manager.organization_name = text
self.settings.setValue("organization_name", text) self.settings.setValue("organization_name", text)
@@ -782,9 +884,9 @@ class MainWindow(QtWidgets.QMainWindow):
return return
if ( if (
not "qNNddlUK+B/YlooNoymwgA" in gestalt_plist["CacheExtra"] not "qNNddlUK+B/YlooNoymwgA" in gestalt_plist["CacheExtra"]
or not "0+nc/Udy4WNG8S+Q7a/s1A" in gestalt_plist["CacheExtra"]
or gestalt_plist["CacheExtra"]["qNNddlUK+B/YlooNoymwgA"] != self.device_manager.data_singleton.current_device.version or gestalt_plist["CacheExtra"]["qNNddlUK+B/YlooNoymwgA"] != self.device_manager.data_singleton.current_device.version
or gestalt_plist["CacheExtra"]["0+nc/Udy4WNG8S+Q7a/s1A"] != self.device_manager.data_singleton.current_device.model or gestalt_plist["CacheExtra"]["0+nc/Udy4WNG8S+Q7a/s1A"] != self.device_manager.data_singleton.current_device.model
or not "0+nc/Udy4WNG8S+Q7a/s1A" in gestalt_plist["CacheExtra"]
): ):
dialog = GestaltDialog( dialog = GestaltDialog(
device_manager=self.device_manager, device_manager=self.device_manager,
@@ -792,8 +894,9 @@ class MainWindow(QtWidgets.QMainWindow):
selected_file=selected_file selected_file=selected_file
) )
dialog.exec() dialog.exec()
self.device_manager.data_singleton.gestalt_path = selected_file else:
self.ui.gestaltLocationLbl.setText(selected_file) self.device_manager.data_singleton.gestalt_path = selected_file
self.ui.gestaltLocationLbl.setText(selected_file)
# hide the warning labels # hide the warning labels
self.ui.mgaWarningLbl.hide() self.ui.mgaWarningLbl.hide()
self.ui.mgaWarningLbl2.hide() self.ui.mgaWarningLbl2.hide()

View File

@@ -306,20 +306,6 @@ class Ui_Nugget(object):
self.verticalLayout.addWidget(self.homePageBtn) self.verticalLayout.addWidget(self.homePageBtn)
self.explorePageBtn = QToolButton(self.sidebar)
self.explorePageBtn.setObjectName(u"explorePageBtn")
self.explorePageBtn.setEnabled(True)
sizePolicy2.setHeightForWidth(self.explorePageBtn.sizePolicy().hasHeightForWidth())
self.explorePageBtn.setSizePolicy(sizePolicy2)
icon3 = QIcon()
icon3.addFile(u":/icon/compass.svg", QSize(), QIcon.Normal, QIcon.Off)
self.explorePageBtn.setIcon(icon3)
self.explorePageBtn.setCheckable(True)
self.explorePageBtn.setAutoExclusive(True)
self.explorePageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.explorePageBtn)
self.sidebarDiv1 = QFrame(self.sidebar) self.sidebarDiv1 = QFrame(self.sidebar)
self.sidebarDiv1.setObjectName(u"sidebarDiv1") self.sidebarDiv1.setObjectName(u"sidebarDiv1")
self.sidebarDiv1.setStyleSheet(u"QFrame {\n" self.sidebarDiv1.setStyleSheet(u"QFrame {\n"
@@ -334,9 +320,9 @@ class Ui_Nugget(object):
self.gestaltPageBtn.setObjectName(u"gestaltPageBtn") self.gestaltPageBtn.setObjectName(u"gestaltPageBtn")
sizePolicy2.setHeightForWidth(self.gestaltPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.gestaltPageBtn.sizePolicy().hasHeightForWidth())
self.gestaltPageBtn.setSizePolicy(sizePolicy2) self.gestaltPageBtn.setSizePolicy(sizePolicy2)
icon4 = QIcon() icon3 = QIcon()
icon4.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Normal, QIcon.Off) icon3.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Normal, QIcon.Off)
self.gestaltPageBtn.setIcon(icon4) self.gestaltPageBtn.setIcon(icon3)
self.gestaltPageBtn.setIconSize(QSize(24, 28)) self.gestaltPageBtn.setIconSize(QSize(24, 28))
self.gestaltPageBtn.setCheckable(True) self.gestaltPageBtn.setCheckable(True)
self.gestaltPageBtn.setAutoExclusive(True) self.gestaltPageBtn.setAutoExclusive(True)
@@ -352,9 +338,9 @@ class Ui_Nugget(object):
font = QFont() font = QFont()
font.setFamilies([u".AppleSystemUIFont"]) font.setFamilies([u".AppleSystemUIFont"])
self.featureFlagsPageBtn.setFont(font) self.featureFlagsPageBtn.setFont(font)
icon5 = QIcon() icon4 = QIcon()
icon5.addFile(u":/icon/flag.svg", QSize(), QIcon.Normal, QIcon.Off) icon4.addFile(u":/icon/flag.svg", QSize(), QIcon.Normal, QIcon.Off)
self.featureFlagsPageBtn.setIcon(icon5) self.featureFlagsPageBtn.setIcon(icon4)
self.featureFlagsPageBtn.setCheckable(True) self.featureFlagsPageBtn.setCheckable(True)
self.featureFlagsPageBtn.setAutoExclusive(True) self.featureFlagsPageBtn.setAutoExclusive(True)
self.featureFlagsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.featureFlagsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -365,9 +351,9 @@ class Ui_Nugget(object):
self.euEnablerPageBtn.setObjectName(u"euEnablerPageBtn") self.euEnablerPageBtn.setObjectName(u"euEnablerPageBtn")
sizePolicy2.setHeightForWidth(self.euEnablerPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.euEnablerPageBtn.sizePolicy().hasHeightForWidth())
self.euEnablerPageBtn.setSizePolicy(sizePolicy2) self.euEnablerPageBtn.setSizePolicy(sizePolicy2)
icon6 = QIcon() icon5 = QIcon()
icon6.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Normal, QIcon.Off) icon5.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Normal, QIcon.Off)
self.euEnablerPageBtn.setIcon(icon6) self.euEnablerPageBtn.setIcon(icon5)
self.euEnablerPageBtn.setCheckable(True) self.euEnablerPageBtn.setCheckable(True)
self.euEnablerPageBtn.setAutoExclusive(True) self.euEnablerPageBtn.setAutoExclusive(True)
self.euEnablerPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.euEnablerPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -378,9 +364,9 @@ class Ui_Nugget(object):
self.springboardOptionsPageBtn.setObjectName(u"springboardOptionsPageBtn") self.springboardOptionsPageBtn.setObjectName(u"springboardOptionsPageBtn")
sizePolicy2.setHeightForWidth(self.springboardOptionsPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.springboardOptionsPageBtn.sizePolicy().hasHeightForWidth())
self.springboardOptionsPageBtn.setSizePolicy(sizePolicy2) self.springboardOptionsPageBtn.setSizePolicy(sizePolicy2)
icon7 = QIcon() icon6 = QIcon()
icon7.addFile(u":/icon/app-indicator.svg", QSize(), QIcon.Normal, QIcon.Off) icon6.addFile(u":/icon/app-indicator.svg", QSize(), QIcon.Normal, QIcon.Off)
self.springboardOptionsPageBtn.setIcon(icon7) self.springboardOptionsPageBtn.setIcon(icon6)
self.springboardOptionsPageBtn.setCheckable(True) self.springboardOptionsPageBtn.setCheckable(True)
self.springboardOptionsPageBtn.setAutoExclusive(True) self.springboardOptionsPageBtn.setAutoExclusive(True)
self.springboardOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.springboardOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -391,15 +377,29 @@ class Ui_Nugget(object):
self.internalOptionsPageBtn.setObjectName(u"internalOptionsPageBtn") self.internalOptionsPageBtn.setObjectName(u"internalOptionsPageBtn")
sizePolicy2.setHeightForWidth(self.internalOptionsPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.internalOptionsPageBtn.sizePolicy().hasHeightForWidth())
self.internalOptionsPageBtn.setSizePolicy(sizePolicy2) self.internalOptionsPageBtn.setSizePolicy(sizePolicy2)
icon8 = QIcon() icon7 = QIcon()
icon8.addFile(u":/icon/hdd.svg", QSize(), QIcon.Normal, QIcon.Off) icon7.addFile(u":/icon/hdd.svg", QSize(), QIcon.Normal, QIcon.Off)
self.internalOptionsPageBtn.setIcon(icon8) self.internalOptionsPageBtn.setIcon(icon7)
self.internalOptionsPageBtn.setCheckable(True) self.internalOptionsPageBtn.setCheckable(True)
self.internalOptionsPageBtn.setAutoExclusive(True) self.internalOptionsPageBtn.setAutoExclusive(True)
self.internalOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.internalOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.internalOptionsPageBtn) self.verticalLayout.addWidget(self.internalOptionsPageBtn)
self.daemonsPageBtn = QToolButton(self.sidebar)
self.daemonsPageBtn.setObjectName(u"daemonsPageBtn")
self.daemonsPageBtn.setEnabled(True)
sizePolicy2.setHeightForWidth(self.daemonsPageBtn.sizePolicy().hasHeightForWidth())
self.daemonsPageBtn.setSizePolicy(sizePolicy2)
icon8 = QIcon()
icon8.addFile(u":/icon/toggles.svg", QSize(), QIcon.Normal, QIcon.Off)
self.daemonsPageBtn.setIcon(icon8)
self.daemonsPageBtn.setCheckable(True)
self.daemonsPageBtn.setAutoExclusive(True)
self.daemonsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.daemonsPageBtn)
self.advancedPageBtn = QToolButton(self.sidebar) self.advancedPageBtn = QToolButton(self.sidebar)
self.advancedPageBtn.setObjectName(u"advancedPageBtn") self.advancedPageBtn.setObjectName(u"advancedPageBtn")
sizePolicy2.setHeightForWidth(self.advancedPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.advancedPageBtn.sizePolicy().hasHeightForWidth())
@@ -787,12 +787,12 @@ class Ui_Nugget(object):
self.horizontalLayout_2.addWidget(self.disfordottieBtn) self.horizontalLayout_2.addWidget(self.disfordottieBtn)
self.lrdsnowBtn = QToolButton(self.horizontalWidget_21) self.mikasaBtn = QToolButton(self.horizontalWidget_21)
self.lrdsnowBtn.setObjectName(u"lrdsnowBtn") self.mikasaBtn.setObjectName(u"mikasaBtn")
sizePolicy2.setHeightForWidth(self.lrdsnowBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.mikasaBtn.sizePolicy().hasHeightForWidth())
self.lrdsnowBtn.setSizePolicy(sizePolicy2) self.mikasaBtn.setSizePolicy(sizePolicy2)
self.lrdsnowBtn.setMinimumSize(QSize(0, 37)) self.mikasaBtn.setMinimumSize(QSize(0, 37))
self.lrdsnowBtn.setStyleSheet(u"QToolButton {\n" self.mikasaBtn.setStyleSheet(u"QToolButton {\n"
" border-top-left-radius: 0px;\n" " border-top-left-radius: 0px;\n"
" border-bottom-left-radius: 0px;\n" " border-bottom-left-radius: 0px;\n"
" background: none;\n" " background: none;\n"
@@ -805,7 +805,7 @@ class Ui_Nugget(object):
" color: #FFFFFF;\n" " color: #FFFFFF;\n"
"}") "}")
self.horizontalLayout_2.addWidget(self.lrdsnowBtn) self.horizontalLayout_2.addWidget(self.mikasaBtn)
self.verticalLayout_25.addWidget(self.horizontalWidget_21) self.verticalLayout_25.addWidget(self.horizontalWidget_21)
@@ -897,7 +897,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_8.setIcon(icon4) self.toolButton_8.setIcon(icon3)
self.toolButton_8.setIconSize(QSize(30, 30)) self.toolButton_8.setIconSize(QSize(30, 30))
self.horizontalLayout_5.addWidget(self.toolButton_8) self.horizontalLayout_5.addWidget(self.toolButton_8)
@@ -1235,7 +1235,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_10.setIcon(icon5) self.toolButton_10.setIcon(icon4)
self.horizontalLayout_20.addWidget(self.toolButton_10) self.horizontalLayout_20.addWidget(self.toolButton_10)
@@ -1341,7 +1341,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_11.setIcon(icon6) self.toolButton_11.setIcon(icon5)
self.horizontalLayout_21.addWidget(self.toolButton_11) self.horizontalLayout_21.addWidget(self.toolButton_11)
@@ -1619,7 +1619,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_7.setIcon(icon7) self.toolButton_7.setIcon(icon6)
self.horizontalLayout_13.addWidget(self.toolButton_7) self.horizontalLayout_13.addWidget(self.toolButton_7)
@@ -1745,7 +1745,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_101.setIcon(icon8) self.toolButton_101.setIcon(icon7)
self.horizontalLayout_201.addWidget(self.toolButton_101) self.horizontalLayout_201.addWidget(self.toolButton_101)
@@ -1905,12 +1905,12 @@ class Ui_Nugget(object):
self.verticalLayout_141.addWidget(self.internalOptionsPageContent) self.verticalLayout_141.addWidget(self.internalOptionsPageContent)
self.pages.addWidget(self.internalOptionsPage) self.pages.addWidget(self.internalOptionsPage)
self.advancedOptionsPage = QWidget() self.daemonsPage = QWidget()
self.advancedOptionsPage.setObjectName(u"advancedOptionsPage") self.daemonsPage.setObjectName(u"daemonsPage")
self.verticalLayout_142 = QVBoxLayout(self.advancedOptionsPage) self.verticalLayout_142 = QVBoxLayout(self.daemonsPage)
self.verticalLayout_142.setObjectName(u"verticalLayout_142") self.verticalLayout_142.setObjectName(u"verticalLayout_142")
self.verticalLayout_142.setContentsMargins(0, 0, 0, 0) self.verticalLayout_142.setContentsMargins(0, 0, 0, 0)
self.horizontalWidget_52 = QWidget(self.advancedOptionsPage) self.horizontalWidget_52 = QWidget(self.daemonsPage)
self.horizontalWidget_52.setObjectName(u"horizontalWidget_52") self.horizontalWidget_52.setObjectName(u"horizontalWidget_52")
self.horizontalLayout_202 = QHBoxLayout(self.horizontalWidget_52) self.horizontalLayout_202 = QHBoxLayout(self.horizontalWidget_52)
self.horizontalLayout_202.setSpacing(10) self.horizontalLayout_202.setSpacing(10)
@@ -1918,7 +1918,7 @@ class Ui_Nugget(object):
self.horizontalLayout_202.setContentsMargins(0, 9, 0, 9) self.horizontalLayout_202.setContentsMargins(0, 9, 0, 9)
self.toolButton_102 = QToolButton(self.horizontalWidget_52) self.toolButton_102 = QToolButton(self.horizontalWidget_52)
self.toolButton_102.setObjectName(u"toolButton_102") self.toolButton_102.setObjectName(u"toolButton_102")
self.toolButton_102.setEnabled(False) self.toolButton_102.setEnabled(True)
self.toolButton_102.setStyleSheet(u"QToolButton {\n" self.toolButton_102.setStyleSheet(u"QToolButton {\n"
" icon-size: 24px;\n" " icon-size: 24px;\n"
" background-color: transparent;\n" " background-color: transparent;\n"
@@ -1926,7 +1926,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_102.setIcon(icon9) self.toolButton_102.setIcon(icon8)
self.horizontalLayout_202.addWidget(self.toolButton_102) self.horizontalLayout_202.addWidget(self.toolButton_102)
@@ -1936,11 +1936,11 @@ class Ui_Nugget(object):
self.verticalLayout_122.setSpacing(6) self.verticalLayout_122.setSpacing(6)
self.verticalLayout_122.setObjectName(u"verticalLayout_122") self.verticalLayout_122.setObjectName(u"verticalLayout_122")
self.verticalLayout_122.setContentsMargins(0, 0, 0, 0) self.verticalLayout_122.setContentsMargins(0, 0, 0, 0)
self.advancedOptionsLbl = QLabel(self.verticalWidget_42) self.daemonsLbl = QLabel(self.verticalWidget_42)
self.advancedOptionsLbl.setObjectName(u"advancedOptionsLbl") self.daemonsLbl.setObjectName(u"daemonsLbl")
self.advancedOptionsLbl.setFont(font1) self.daemonsLbl.setFont(font1)
self.verticalLayout_122.addWidget(self.advancedOptionsLbl) self.verticalLayout_122.addWidget(self.daemonsLbl)
self.verticalSpacer_181 = QSpacerItem(20, 16, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed) self.verticalSpacer_181 = QSpacerItem(20, 16, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
@@ -1956,7 +1956,7 @@ class Ui_Nugget(object):
self.verticalLayout_142.addWidget(self.horizontalWidget_52) self.verticalLayout_142.addWidget(self.horizontalWidget_52)
self.line_122 = QFrame(self.advancedOptionsPage) self.line_122 = QFrame(self.daemonsPage)
self.line_122.setObjectName(u"line_122") self.line_122.setObjectName(u"line_122")
self.line_122.setStyleSheet(u"QFrame {\n" self.line_122.setStyleSheet(u"QFrame {\n"
" color: #414141;\n" " color: #414141;\n"
@@ -1966,16 +1966,126 @@ class Ui_Nugget(object):
self.verticalLayout_142.addWidget(self.line_122) self.verticalLayout_142.addWidget(self.line_122)
self.advancedOptionsPageContent = QWidget(self.advancedOptionsPage) self.daemonsPageContent = QWidget(self.daemonsPage)
self.advancedOptionsPageContent.setObjectName(u"advancedOptionsPageContent") self.daemonsPageContent.setObjectName(u"daemonsPageContent")
self.advancedOptionsPageContent.setEnabled(False) self.daemonsPageContent.setEnabled(True)
self.verticalLayout_132 = QVBoxLayout(self.advancedOptionsPageContent) self.verticalLayout_132 = QVBoxLayout(self.daemonsPageContent)
self.verticalLayout_132.setObjectName(u"verticalLayout_132") self.verticalLayout_132.setObjectName(u"verticalLayout_132")
self.verticalLayout_132.setContentsMargins(0, 0, 0, 0) self.verticalLayout_132.setContentsMargins(0, 0, 0, 0)
self.thermalmonitordChk = QCheckBox(self.daemonsPageContent)
self.thermalmonitordChk.setObjectName(u"thermalmonitordChk")
self.verticalLayout_132.addWidget(self.thermalmonitordChk)
self.otadChk = QCheckBox(self.daemonsPageContent)
self.otadChk.setObjectName(u"otadChk")
self.verticalLayout_132.addWidget(self.otadChk)
self.usageTrackingAgentChk = QCheckBox(self.daemonsPageContent)
self.usageTrackingAgentChk.setObjectName(u"usageTrackingAgentChk")
self.verticalLayout_132.addWidget(self.usageTrackingAgentChk)
self.gameCenterChk = QCheckBox(self.daemonsPageContent)
self.gameCenterChk.setObjectName(u"gameCenterChk")
self.verticalLayout_132.addWidget(self.gameCenterChk)
self.screenTimeChk = QCheckBox(self.daemonsPageContent)
self.screenTimeChk.setObjectName(u"screenTimeChk")
self.verticalLayout_132.addWidget(self.screenTimeChk)
self.crashReportsChk = QCheckBox(self.daemonsPageContent)
self.crashReportsChk.setObjectName(u"crashReportsChk")
self.verticalLayout_132.addWidget(self.crashReportsChk)
self.tipsChk = QCheckBox(self.daemonsPageContent)
self.tipsChk.setObjectName(u"tipsChk")
self.verticalLayout_132.addWidget(self.tipsChk)
self.verticalSpacer_62 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_132.addItem(self.verticalSpacer_62)
self.verticalLayout_142.addWidget(self.daemonsPageContent)
self.pages.addWidget(self.daemonsPage)
self.advancedOptionsPage = QWidget()
self.advancedOptionsPage.setObjectName(u"advancedOptionsPage")
self.verticalLayout_143 = QVBoxLayout(self.advancedOptionsPage)
self.verticalLayout_143.setObjectName(u"verticalLayout_143")
self.verticalLayout_143.setContentsMargins(0, 0, 0, 0)
self.horizontalWidget_53 = QWidget(self.advancedOptionsPage)
self.horizontalWidget_53.setObjectName(u"horizontalWidget_53")
self.horizontalLayout_203 = QHBoxLayout(self.horizontalWidget_53)
self.horizontalLayout_203.setSpacing(10)
self.horizontalLayout_203.setObjectName(u"horizontalLayout_203")
self.horizontalLayout_203.setContentsMargins(0, 9, 0, 9)
self.toolButton_103 = QToolButton(self.horizontalWidget_53)
self.toolButton_103.setObjectName(u"toolButton_103")
self.toolButton_103.setEnabled(False)
self.toolButton_103.setStyleSheet(u"QToolButton {\n"
" icon-size: 24px;\n"
" background-color: transparent;\n"
" padding-left: 0px;\n"
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_103.setIcon(icon9)
self.horizontalLayout_203.addWidget(self.toolButton_103)
self.verticalWidget_43 = QWidget(self.horizontalWidget_53)
self.verticalWidget_43.setObjectName(u"verticalWidget_43")
self.verticalLayout_123 = QVBoxLayout(self.verticalWidget_43)
self.verticalLayout_123.setSpacing(6)
self.verticalLayout_123.setObjectName(u"verticalLayout_123")
self.verticalLayout_123.setContentsMargins(0, 0, 0, 0)
self.advancedOptionsLbl = QLabel(self.verticalWidget_43)
self.advancedOptionsLbl.setObjectName(u"advancedOptionsLbl")
self.advancedOptionsLbl.setFont(font1)
self.verticalLayout_123.addWidget(self.advancedOptionsLbl)
self.verticalSpacer_182 = QSpacerItem(20, 16, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_123.addItem(self.verticalSpacer_182)
self.horizontalLayout_203.addWidget(self.verticalWidget_43)
self.horizontalSpacer_73 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_203.addItem(self.horizontalSpacer_73)
self.verticalLayout_143.addWidget(self.horizontalWidget_53)
self.line_123 = QFrame(self.advancedOptionsPage)
self.line_123.setObjectName(u"line_123")
self.line_123.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_123.setFrameShadow(QFrame.Plain)
self.line_123.setFrameShape(QFrame.HLine)
self.verticalLayout_143.addWidget(self.line_123)
self.advancedOptionsPageContent = QWidget(self.advancedOptionsPage)
self.advancedOptionsPageContent.setObjectName(u"advancedOptionsPageContent")
self.advancedOptionsPageContent.setEnabled(True)
self.verticalLayout_133 = QVBoxLayout(self.advancedOptionsPageContent)
self.verticalLayout_133.setObjectName(u"verticalLayout_133")
self.verticalLayout_133.setContentsMargins(0, 0, 0, 0)
self.label_17 = QLabel(self.advancedOptionsPageContent) self.label_17 = QLabel(self.advancedOptionsPageContent)
self.label_17.setObjectName(u"label_17") self.label_17.setObjectName(u"label_17")
self.verticalLayout_132.addWidget(self.label_17) self.verticalLayout_133.addWidget(self.label_17)
self.line_191 = QFrame(self.advancedOptionsPageContent) self.line_191 = QFrame(self.advancedOptionsPageContent)
self.line_191.setObjectName(u"line_191") self.line_191.setObjectName(u"line_191")
@@ -1985,12 +2095,12 @@ class Ui_Nugget(object):
self.line_191.setFrameShadow(QFrame.Plain) self.line_191.setFrameShadow(QFrame.Plain)
self.line_191.setFrameShape(QFrame.HLine) self.line_191.setFrameShape(QFrame.HLine)
self.verticalLayout_132.addWidget(self.line_191) self.verticalLayout_133.addWidget(self.line_191)
self.disableOTAChk = QCheckBox(self.advancedOptionsPageContent) self.disableOTAChk = QCheckBox(self.advancedOptionsPageContent)
self.disableOTAChk.setObjectName(u"disableOTAChk") self.disableOTAChk.setObjectName(u"disableOTAChk")
self.verticalLayout_132.addWidget(self.disableOTAChk) self.verticalLayout_133.addWidget(self.disableOTAChk)
self.line_181 = QFrame(self.advancedOptionsPageContent) self.line_181 = QFrame(self.advancedOptionsPageContent)
self.line_181.setObjectName(u"line_181") self.line_181.setObjectName(u"line_181")
@@ -2000,47 +2110,95 @@ class Ui_Nugget(object):
self.line_181.setFrameShadow(QFrame.Plain) self.line_181.setFrameShadow(QFrame.Plain)
self.line_181.setFrameShape(QFrame.HLine) self.line_181.setFrameShape(QFrame.HLine)
self.verticalLayout_132.addWidget(self.line_181) self.verticalLayout_133.addWidget(self.line_181)
self.enableResolutionChk = QCheckBox(self.advancedOptionsPageContent) self.enableResolutionChk = QCheckBox(self.advancedOptionsPageContent)
self.enableResolutionChk.setObjectName(u"enableResolutionChk") self.enableResolutionChk.setObjectName(u"enableResolutionChk")
self.verticalLayout_132.addWidget(self.enableResolutionChk) self.verticalLayout_133.addWidget(self.enableResolutionChk)
self.resolutionContent = QVBoxLayout() self.resChangerContent = QWidget(self.advancedOptionsPageContent)
self.resolutionContent.setObjectName(u"resolutionContent") self.resChangerContent.setObjectName(u"resChangerContent")
self.resolutionContent.setContentsMargins(-1, -1, -1, 10) self.resChangerContent.setEnabled(True)
self.resHeightLbl = QLabel(self.advancedOptionsPageContent) self.verticalLayout_35 = QVBoxLayout(self.resChangerContent)
self.verticalLayout_35.setObjectName(u"verticalLayout_35")
self.verticalLayout_35.setContentsMargins(0, 0, 0, 0)
self.resHeightLbl = QLabel(self.resChangerContent)
self.resHeightLbl.setObjectName(u"resHeightLbl") self.resHeightLbl.setObjectName(u"resHeightLbl")
self.resHeightLbl.setEnabled(False) self.resHeightLbl.setEnabled(False)
self.resolutionContent.addWidget(self.resHeightLbl) self.verticalLayout_35.addWidget(self.resHeightLbl)
self.resHeightTxt = QLineEdit(self.advancedOptionsPageContent) self.horizontalLayout_9 = QHBoxLayout()
self.horizontalLayout_9.setObjectName(u"horizontalLayout_9")
self.horizontalLayout_9.setContentsMargins(-1, -1, -1, 5)
self.resHeightTxt = QLineEdit(self.resChangerContent)
self.resHeightTxt.setObjectName(u"resHeightTxt") self.resHeightTxt.setObjectName(u"resHeightTxt")
self.resHeightTxt.setEnabled(False) self.resHeightTxt.setEnabled(True)
self.resolutionContent.addWidget(self.resHeightTxt) self.horizontalLayout_9.addWidget(self.resHeightTxt)
self.resWidthLbl = QLabel(self.advancedOptionsPageContent) self.resHeightWarningLbl = QLabel(self.resChangerContent)
self.resHeightWarningLbl.setObjectName(u"resHeightWarningLbl")
self.resHeightWarningLbl.setMinimumSize(QSize(22, 0))
self.resHeightWarningLbl.setStyleSheet(u"QLabel {\n"
" border: 2px solid red;\n"
" border-radius: 25px;\n"
" color: red;\n"
"}")
self.resHeightWarningLbl.setFrameShape(QFrame.NoFrame)
self.resHeightWarningLbl.setFrameShadow(QFrame.Plain)
self.resHeightWarningLbl.setScaledContents(False)
self.resHeightWarningLbl.setAlignment(Qt.AlignCenter)
self.horizontalLayout_9.addWidget(self.resHeightWarningLbl)
self.verticalLayout_35.addLayout(self.horizontalLayout_9)
self.resWidthLbl = QLabel(self.resChangerContent)
self.resWidthLbl.setObjectName(u"resWidthLbl") self.resWidthLbl.setObjectName(u"resWidthLbl")
self.resolutionContent.addWidget(self.resWidthLbl) self.verticalLayout_35.addWidget(self.resWidthLbl)
self.resWidthTxt = QLineEdit(self.advancedOptionsPageContent) self.resolutionContent = QVBoxLayout()
self.resolutionContent.setObjectName(u"resolutionContent")
self.resolutionContent.setContentsMargins(-1, -1, -1, 0)
self.horizontalLayout_10 = QHBoxLayout()
self.horizontalLayout_10.setObjectName(u"horizontalLayout_10")
self.horizontalLayout_10.setContentsMargins(-1, -1, -1, 5)
self.resWidthTxt = QLineEdit(self.resChangerContent)
self.resWidthTxt.setObjectName(u"resWidthTxt") self.resWidthTxt.setObjectName(u"resWidthTxt")
self.resolutionContent.addWidget(self.resWidthTxt) self.horizontalLayout_10.addWidget(self.resWidthTxt)
self.resWidthWarningLbl = QLabel(self.resChangerContent)
self.resWidthWarningLbl.setObjectName(u"resWidthWarningLbl")
self.resWidthWarningLbl.setMinimumSize(QSize(22, 0))
self.resWidthWarningLbl.setStyleSheet(u"QLabel {\n"
" border: 2px solid red;\n"
" border-radius: 25px;\n"
" color: red;\n"
"}")
self.resWidthWarningLbl.setAlignment(Qt.AlignCenter)
self.horizontalLayout_10.addWidget(self.resWidthWarningLbl)
self.verticalLayout_132.addLayout(self.resolutionContent) self.resolutionContent.addLayout(self.horizontalLayout_10)
self.verticalSpacer_62 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_132.addItem(self.verticalSpacer_62)
self.verticalLayout_142.addWidget(self.advancedOptionsPageContent) self.verticalLayout_35.addLayout(self.resolutionContent)
self.verticalLayout_133.addWidget(self.resChangerContent)
self.verticalSpacer_63 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_133.addItem(self.verticalSpacer_63)
self.verticalLayout_143.addWidget(self.advancedOptionsPageContent)
self.pages.addWidget(self.advancedOptionsPage) self.pages.addWidget(self.advancedOptionsPage)
self.applyPage = QWidget() self.applyPage = QWidget()
@@ -2378,7 +2536,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_13.setIcon(icon6) self.toolButton_13.setIcon(icon5)
self.horizontalLayout_28.addWidget(self.toolButton_13) self.horizontalLayout_28.addWidget(self.toolButton_13)
@@ -2644,7 +2802,9 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_16.setIcon(icon3) icon22 = QIcon()
icon22.addFile(u":/icon/compass.svg", QSize(), QIcon.Normal, QIcon.Off)
self.toolButton_16.setIcon(icon22)
self.horizontalLayout_31.addWidget(self.toolButton_16) self.horizontalLayout_31.addWidget(self.toolButton_16)
@@ -2714,7 +2874,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.themesBtn.setIcon(icon4) self.themesBtn.setIcon(icon3)
self.themesBtn.setIconSize(QSize(30, 30)) self.themesBtn.setIconSize(QSize(30, 30))
self.horizontalLayout_23.addWidget(self.themesBtn) self.horizontalLayout_23.addWidget(self.themesBtn)
@@ -2760,9 +2920,9 @@ class Ui_Nugget(object):
self.importThemeZipBtn = QToolButton(self.horizontalWidget7) self.importThemeZipBtn = QToolButton(self.horizontalWidget7)
self.importThemeZipBtn.setObjectName(u"importThemeZipBtn") self.importThemeZipBtn.setObjectName(u"importThemeZipBtn")
icon22 = QIcon() icon23 = QIcon()
icon22.addFile(u":/icon/file-earmark-zip.svg", QSize(), QIcon.Normal, QIcon.Off) icon23.addFile(u":/icon/file-earmark-zip.svg", QSize(), QIcon.Normal, QIcon.Off)
self.importThemeZipBtn.setIcon(icon22) self.importThemeZipBtn.setIcon(icon23)
self.horizontalLayout_26.addWidget(self.importThemeZipBtn) self.horizontalLayout_26.addWidget(self.importThemeZipBtn)
@@ -2864,7 +3024,7 @@ class Ui_Nugget(object):
self.retranslateUi(Nugget) self.retranslateUi(Nugget)
self.devicePicker.setCurrentIndex(-1) self.devicePicker.setCurrentIndex(-1)
self.pages.setCurrentIndex(8) self.pages.setCurrentIndex(0)
self.dynamicIslandDrp.setCurrentIndex(0) self.dynamicIslandDrp.setCurrentIndex(0)
self.spoofedModelDrp.setCurrentIndex(0) self.spoofedModelDrp.setCurrentIndex(0)
@@ -2880,8 +3040,6 @@ class Ui_Nugget(object):
self.titleBar.setText(QCoreApplication.translate("Nugget", u"Nugget", None)) self.titleBar.setText(QCoreApplication.translate("Nugget", u"Nugget", None))
self.homePageBtn.setText(QCoreApplication.translate("Nugget", u" Home", None)) self.homePageBtn.setText(QCoreApplication.translate("Nugget", u" Home", None))
self.homePageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.homePageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.explorePageBtn.setText(QCoreApplication.translate("Nugget", u" Explore", None))
self.explorePageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.gestaltPageBtn.setText(QCoreApplication.translate("Nugget", u" Mobile Gestalt", None)) self.gestaltPageBtn.setText(QCoreApplication.translate("Nugget", u" Mobile Gestalt", None))
self.gestaltPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.gestaltPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.featureFlagsPageBtn.setText(QCoreApplication.translate("Nugget", u" Feature Flags", None)) self.featureFlagsPageBtn.setText(QCoreApplication.translate("Nugget", u" Feature Flags", None))
@@ -2892,7 +3050,9 @@ class Ui_Nugget(object):
self.springboardOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.springboardOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.internalOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Internal Options", None)) self.internalOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Internal Options", None))
self.internalOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.internalOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.advancedPageBtn.setText(QCoreApplication.translate("Nugget", u" Advanced Options", None)) self.daemonsPageBtn.setText(QCoreApplication.translate("Nugget", u" Daemons", None))
self.daemonsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.advancedPageBtn.setText(QCoreApplication.translate("Nugget", u" Risky Options", None))
self.advancedPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.advancedPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.applyPageBtn.setText(QCoreApplication.translate("Nugget", u" Apply", None)) self.applyPageBtn.setText(QCoreApplication.translate("Nugget", u" Apply", None))
self.applyPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.applyPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
@@ -2914,12 +3074,12 @@ class Ui_Nugget(object):
"Sparserestore", None)) "Sparserestore", None))
self.disfordottieBtn.setText(QCoreApplication.translate("Nugget", u"disfordottie\n" self.disfordottieBtn.setText(QCoreApplication.translate("Nugget", u"disfordottie\n"
"Clock Anim, Photos UI", None)) "Clock Anim, Photos UI", None))
self.lrdsnowBtn.setText(QCoreApplication.translate("Nugget", u"lrdsnow\n" self.mikasaBtn.setText(QCoreApplication.translate("Nugget", u"Mikasa\n"
"EU Enabler", None)) "Quiet Daemon", None))
self.toolButton_15.setText(QCoreApplication.translate("Nugget", u"Additional Thanks", None)) self.toolButton_15.setText(QCoreApplication.translate("Nugget", u"Additional Thanks", None))
self.libiBtn.setText(QCoreApplication.translate("Nugget", u"pymobiledevice3", None)) self.libiBtn.setText(QCoreApplication.translate("Nugget", u"pymobiledevice3", None))
self.qtBtn.setText(QCoreApplication.translate("Nugget", u"Qt Creator", None)) self.qtBtn.setText(QCoreApplication.translate("Nugget", u"Qt Creator", None))
self.label.setText(QCoreApplication.translate("Nugget", u"Nugget GUI - Version 4.1 (beta 2)", None)) self.label.setText(QCoreApplication.translate("Nugget", u"Nugget GUI - Version 4.2 (beta 1)", None))
self.statusBarLbl.setText(QCoreApplication.translate("Nugget", u"Mobile Gestalt", None)) self.statusBarLbl.setText(QCoreApplication.translate("Nugget", u"Mobile Gestalt", None))
self.mgaWarningLbl.setText(QCoreApplication.translate("Nugget", u"! You will need a MobileGestalt file for this feature. Please select it in the Apply page !", None)) self.mgaWarningLbl.setText(QCoreApplication.translate("Nugget", u"! You will need a MobileGestalt file for this feature. Please select it in the Apply page !", None))
self.label_9.setText(QCoreApplication.translate("Nugget", u"Device Subtype Preset", None)) self.label_9.setText(QCoreApplication.translate("Nugget", u"Device Subtype Preset", None))
@@ -3035,7 +3195,15 @@ class Ui_Nugget(object):
self.enableWakeVibrateChk.setText(QCoreApplication.translate("Nugget", u"Vibrate on Raise-to-Wake", None)) self.enableWakeVibrateChk.setText(QCoreApplication.translate("Nugget", u"Vibrate on Raise-to-Wake", None))
self.pasteSoundChk.setText(QCoreApplication.translate("Nugget", u"Play Sound on Paste", None)) self.pasteSoundChk.setText(QCoreApplication.translate("Nugget", u"Play Sound on Paste", None))
self.notifyPastesChk.setText(QCoreApplication.translate("Nugget", u"Show Notifications for System Pastes", None)) self.notifyPastesChk.setText(QCoreApplication.translate("Nugget", u"Show Notifications for System Pastes", None))
self.advancedOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Advanced Options", None)) self.daemonsLbl.setText(QCoreApplication.translate("Nugget", u"Daemons", None))
self.thermalmonitordChk.setText(QCoreApplication.translate("Nugget", u"Disable thermalmonitord", None))
self.otadChk.setText(QCoreApplication.translate("Nugget", u"Disable OTA", None))
self.usageTrackingAgentChk.setText(QCoreApplication.translate("Nugget", u"Disable UsageTrackingAgent", None))
self.gameCenterChk.setText(QCoreApplication.translate("Nugget", u"Disable Game Center", None))
self.screenTimeChk.setText(QCoreApplication.translate("Nugget", u"Disable Screen Time Agent", None))
self.crashReportsChk.setText(QCoreApplication.translate("Nugget", u"Disable Logs, Dumps, and Crash Reports", None))
self.tipsChk.setText(QCoreApplication.translate("Nugget", u"Disable Tips Services", None))
self.advancedOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Risky Options", None))
self.label_17.setText(QCoreApplication.translate("Nugget", u"Disclaimer:\n" self.label_17.setText(QCoreApplication.translate("Nugget", u"Disclaimer:\n"
"\n" "\n"
"The options on this page may be unsafe for your device. Use these options at your own risk. Changing\n" "The options on this page may be unsafe for your device. Use these options at your own risk. Changing\n"
@@ -3046,8 +3214,10 @@ class Ui_Nugget(object):
self.enableResolutionChk.setText(QCoreApplication.translate("Nugget", u"Set a Custom Device Resolution", None)) self.enableResolutionChk.setText(QCoreApplication.translate("Nugget", u"Set a Custom Device Resolution", None))
self.resHeightLbl.setText(QCoreApplication.translate("Nugget", u"Height:", None)) self.resHeightLbl.setText(QCoreApplication.translate("Nugget", u"Height:", None))
self.resHeightTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Resolution Height", None)) self.resHeightTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Resolution Height", None))
self.resHeightWarningLbl.setText(QCoreApplication.translate("Nugget", u"!", None))
self.resWidthLbl.setText(QCoreApplication.translate("Nugget", u"Width:", None)) self.resWidthLbl.setText(QCoreApplication.translate("Nugget", u"Width:", None))
self.resWidthTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Resolution Width", None)) self.resWidthTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Resolution Width", None))
self.resWidthWarningLbl.setText(QCoreApplication.translate("Nugget", u"!", None))
self.statusBarLbl_5.setText(QCoreApplication.translate("Nugget", u"Apply", None)) self.statusBarLbl_5.setText(QCoreApplication.translate("Nugget", u"Apply", None))
self.label_16.setText("") self.label_16.setText("")
self.modifiedTweaksLbl.setText(QCoreApplication.translate("Nugget", u"Current gestalt file location:", None)) self.modifiedTweaksLbl.setText(QCoreApplication.translate("Nugget", u"Current gestalt file location:", None))

File diff suppressed because it is too large Load Diff

View File

@@ -15,10 +15,11 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon, QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter, QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform) QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QFrame, from PySide6.QtWidgets import (QAbstractScrollArea, QApplication, QCheckBox, QComboBox,
QHBoxLayout, QLabel, QLineEdit, QMainWindow, QFrame, QHBoxLayout, QLabel, QLineEdit,
QProgressBar, QScrollArea, QSizePolicy, QSpacerItem, QMainWindow, QProgressBar, QScrollArea, QSizePolicy,
QStackedWidget, QToolButton, QVBoxLayout, QWidget) QSpacerItem, QStackedWidget, QToolButton, QVBoxLayout,
QWidget)
import resources_rc import resources_rc
class Ui_Nugget(object): class Ui_Nugget(object):
@@ -306,20 +307,6 @@ class Ui_Nugget(object):
self.verticalLayout.addWidget(self.homePageBtn) self.verticalLayout.addWidget(self.homePageBtn)
self.explorePageBtn = QToolButton(self.sidebar)
self.explorePageBtn.setObjectName(u"explorePageBtn")
self.explorePageBtn.setEnabled(True)
sizePolicy2.setHeightForWidth(self.explorePageBtn.sizePolicy().hasHeightForWidth())
self.explorePageBtn.setSizePolicy(sizePolicy2)
icon3 = QIcon()
icon3.addFile(u":/icon/compass.svg", QSize(), QIcon.Normal, QIcon.Off)
self.explorePageBtn.setIcon(icon3)
self.explorePageBtn.setCheckable(True)
self.explorePageBtn.setAutoExclusive(True)
self.explorePageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.explorePageBtn)
self.sidebarDiv1 = QFrame(self.sidebar) self.sidebarDiv1 = QFrame(self.sidebar)
self.sidebarDiv1.setObjectName(u"sidebarDiv1") self.sidebarDiv1.setObjectName(u"sidebarDiv1")
self.sidebarDiv1.setStyleSheet(u"QFrame {\n" self.sidebarDiv1.setStyleSheet(u"QFrame {\n"
@@ -334,9 +321,9 @@ class Ui_Nugget(object):
self.gestaltPageBtn.setObjectName(u"gestaltPageBtn") self.gestaltPageBtn.setObjectName(u"gestaltPageBtn")
sizePolicy2.setHeightForWidth(self.gestaltPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.gestaltPageBtn.sizePolicy().hasHeightForWidth())
self.gestaltPageBtn.setSizePolicy(sizePolicy2) self.gestaltPageBtn.setSizePolicy(sizePolicy2)
icon4 = QIcon() icon3 = QIcon()
icon4.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Normal, QIcon.Off) icon3.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Normal, QIcon.Off)
self.gestaltPageBtn.setIcon(icon4) self.gestaltPageBtn.setIcon(icon3)
self.gestaltPageBtn.setIconSize(QSize(24, 28)) self.gestaltPageBtn.setIconSize(QSize(24, 28))
self.gestaltPageBtn.setCheckable(True) self.gestaltPageBtn.setCheckable(True)
self.gestaltPageBtn.setAutoExclusive(True) self.gestaltPageBtn.setAutoExclusive(True)
@@ -352,9 +339,9 @@ class Ui_Nugget(object):
font = QFont() font = QFont()
font.setFamilies([u".AppleSystemUIFont"]) font.setFamilies([u".AppleSystemUIFont"])
self.featureFlagsPageBtn.setFont(font) self.featureFlagsPageBtn.setFont(font)
icon5 = QIcon() icon4 = QIcon()
icon5.addFile(u":/icon/flag.svg", QSize(), QIcon.Normal, QIcon.Off) icon4.addFile(u":/icon/flag.svg", QSize(), QIcon.Normal, QIcon.Off)
self.featureFlagsPageBtn.setIcon(icon5) self.featureFlagsPageBtn.setIcon(icon4)
self.featureFlagsPageBtn.setCheckable(True) self.featureFlagsPageBtn.setCheckable(True)
self.featureFlagsPageBtn.setAutoExclusive(True) self.featureFlagsPageBtn.setAutoExclusive(True)
self.featureFlagsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.featureFlagsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -365,9 +352,9 @@ class Ui_Nugget(object):
self.euEnablerPageBtn.setObjectName(u"euEnablerPageBtn") self.euEnablerPageBtn.setObjectName(u"euEnablerPageBtn")
sizePolicy2.setHeightForWidth(self.euEnablerPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.euEnablerPageBtn.sizePolicy().hasHeightForWidth())
self.euEnablerPageBtn.setSizePolicy(sizePolicy2) self.euEnablerPageBtn.setSizePolicy(sizePolicy2)
icon6 = QIcon() icon5 = QIcon()
icon6.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Normal, QIcon.Off) icon5.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Normal, QIcon.Off)
self.euEnablerPageBtn.setIcon(icon6) self.euEnablerPageBtn.setIcon(icon5)
self.euEnablerPageBtn.setCheckable(True) self.euEnablerPageBtn.setCheckable(True)
self.euEnablerPageBtn.setAutoExclusive(True) self.euEnablerPageBtn.setAutoExclusive(True)
self.euEnablerPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.euEnablerPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -378,9 +365,9 @@ class Ui_Nugget(object):
self.springboardOptionsPageBtn.setObjectName(u"springboardOptionsPageBtn") self.springboardOptionsPageBtn.setObjectName(u"springboardOptionsPageBtn")
sizePolicy2.setHeightForWidth(self.springboardOptionsPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.springboardOptionsPageBtn.sizePolicy().hasHeightForWidth())
self.springboardOptionsPageBtn.setSizePolicy(sizePolicy2) self.springboardOptionsPageBtn.setSizePolicy(sizePolicy2)
icon7 = QIcon() icon6 = QIcon()
icon7.addFile(u":/icon/app-indicator.svg", QSize(), QIcon.Normal, QIcon.Off) icon6.addFile(u":/icon/app-indicator.svg", QSize(), QIcon.Normal, QIcon.Off)
self.springboardOptionsPageBtn.setIcon(icon7) self.springboardOptionsPageBtn.setIcon(icon6)
self.springboardOptionsPageBtn.setCheckable(True) self.springboardOptionsPageBtn.setCheckable(True)
self.springboardOptionsPageBtn.setAutoExclusive(True) self.springboardOptionsPageBtn.setAutoExclusive(True)
self.springboardOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.springboardOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -391,15 +378,29 @@ class Ui_Nugget(object):
self.internalOptionsPageBtn.setObjectName(u"internalOptionsPageBtn") self.internalOptionsPageBtn.setObjectName(u"internalOptionsPageBtn")
sizePolicy2.setHeightForWidth(self.internalOptionsPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.internalOptionsPageBtn.sizePolicy().hasHeightForWidth())
self.internalOptionsPageBtn.setSizePolicy(sizePolicy2) self.internalOptionsPageBtn.setSizePolicy(sizePolicy2)
icon8 = QIcon() icon7 = QIcon()
icon8.addFile(u":/icon/hdd.svg", QSize(), QIcon.Normal, QIcon.Off) icon7.addFile(u":/icon/hdd.svg", QSize(), QIcon.Normal, QIcon.Off)
self.internalOptionsPageBtn.setIcon(icon8) self.internalOptionsPageBtn.setIcon(icon7)
self.internalOptionsPageBtn.setCheckable(True) self.internalOptionsPageBtn.setCheckable(True)
self.internalOptionsPageBtn.setAutoExclusive(True) self.internalOptionsPageBtn.setAutoExclusive(True)
self.internalOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.internalOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.internalOptionsPageBtn) self.verticalLayout.addWidget(self.internalOptionsPageBtn)
self.daemonsPageBtn = QToolButton(self.sidebar)
self.daemonsPageBtn.setObjectName(u"daemonsPageBtn")
self.daemonsPageBtn.setEnabled(True)
sizePolicy2.setHeightForWidth(self.daemonsPageBtn.sizePolicy().hasHeightForWidth())
self.daemonsPageBtn.setSizePolicy(sizePolicy2)
icon8 = QIcon()
icon8.addFile(u":/icon/toggles.svg", QSize(), QIcon.Normal, QIcon.Off)
self.daemonsPageBtn.setIcon(icon8)
self.daemonsPageBtn.setCheckable(True)
self.daemonsPageBtn.setAutoExclusive(True)
self.daemonsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.daemonsPageBtn)
self.advancedPageBtn = QToolButton(self.sidebar) self.advancedPageBtn = QToolButton(self.sidebar)
self.advancedPageBtn.setObjectName(u"advancedPageBtn") self.advancedPageBtn.setObjectName(u"advancedPageBtn")
sizePolicy2.setHeightForWidth(self.advancedPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.advancedPageBtn.sizePolicy().hasHeightForWidth())
@@ -787,12 +788,12 @@ class Ui_Nugget(object):
self.horizontalLayout_2.addWidget(self.disfordottieBtn) self.horizontalLayout_2.addWidget(self.disfordottieBtn)
self.lrdsnowBtn = QToolButton(self.horizontalWidget_21) self.mikasaBtn = QToolButton(self.horizontalWidget_21)
self.lrdsnowBtn.setObjectName(u"lrdsnowBtn") self.mikasaBtn.setObjectName(u"mikasaBtn")
sizePolicy2.setHeightForWidth(self.lrdsnowBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.mikasaBtn.sizePolicy().hasHeightForWidth())
self.lrdsnowBtn.setSizePolicy(sizePolicy2) self.mikasaBtn.setSizePolicy(sizePolicy2)
self.lrdsnowBtn.setMinimumSize(QSize(0, 37)) self.mikasaBtn.setMinimumSize(QSize(0, 37))
self.lrdsnowBtn.setStyleSheet(u"QToolButton {\n" self.mikasaBtn.setStyleSheet(u"QToolButton {\n"
" border-top-left-radius: 0px;\n" " border-top-left-radius: 0px;\n"
" border-bottom-left-radius: 0px;\n" " border-bottom-left-radius: 0px;\n"
" background: none;\n" " background: none;\n"
@@ -805,7 +806,7 @@ class Ui_Nugget(object):
" color: #FFFFFF;\n" " color: #FFFFFF;\n"
"}") "}")
self.horizontalLayout_2.addWidget(self.lrdsnowBtn) self.horizontalLayout_2.addWidget(self.mikasaBtn)
self.verticalLayout_25.addWidget(self.horizontalWidget_21) self.verticalLayout_25.addWidget(self.horizontalWidget_21)
@@ -869,11 +870,11 @@ class Ui_Nugget(object):
self.verticalLayout_2.addWidget(self.verticalWidget_2) self.verticalLayout_2.addWidget(self.verticalWidget_2)
self.label = QLabel(self.homePage) self.appVersionLbl = QLabel(self.homePage)
self.label.setObjectName(u"label") self.appVersionLbl.setObjectName(u"appVersionLbl")
self.label.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.appVersionLbl.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.verticalLayout_2.addWidget(self.label) self.verticalLayout_2.addWidget(self.appVersionLbl)
self.pages.addWidget(self.homePage) self.pages.addWidget(self.homePage)
self.gestaltPage = QWidget() self.gestaltPage = QWidget()
@@ -897,7 +898,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_8.setIcon(icon4) self.toolButton_8.setIcon(icon3)
self.toolButton_8.setIconSize(QSize(30, 30)) self.toolButton_8.setIconSize(QSize(30, 30))
self.horizontalLayout_5.addWidget(self.toolButton_8) self.horizontalLayout_5.addWidget(self.toolButton_8)
@@ -1141,6 +1142,11 @@ class Ui_Nugget(object):
self.verticalLayout_8.addWidget(self.aodChk) self.verticalLayout_8.addWidget(self.aodChk)
self.aodVibrancyChk = QCheckBox(self.gestaltPageContent)
self.aodVibrancyChk.setObjectName(u"aodVibrancyChk")
self.verticalLayout_8.addWidget(self.aodVibrancyChk)
self.line_22 = QFrame(self.gestaltPageContent) self.line_22 = QFrame(self.gestaltPageContent)
self.line_22.setObjectName(u"line_22") self.line_22.setObjectName(u"line_22")
self.line_22.setStyleSheet(u"QFrame {\n" self.line_22.setStyleSheet(u"QFrame {\n"
@@ -1235,7 +1241,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_10.setIcon(icon5) self.toolButton_10.setIcon(icon4)
self.horizontalLayout_20.addWidget(self.toolButton_10) self.horizontalLayout_20.addWidget(self.toolButton_10)
@@ -1341,7 +1347,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_11.setIcon(icon6) self.toolButton_11.setIcon(icon5)
self.horizontalLayout_21.addWidget(self.toolButton_11) self.horizontalLayout_21.addWidget(self.toolButton_11)
@@ -1381,7 +1387,18 @@ class Ui_Nugget(object):
self.verticalLayout_17.addWidget(self.line_13) self.verticalLayout_17.addWidget(self.line_13)
self.euEnablerPageContent = QWidget(self.euEnablerPage) self.scrollArea_2 = QScrollArea(self.euEnablerPage)
self.scrollArea_2.setObjectName(u"scrollArea_2")
self.scrollArea_2.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
self.scrollArea_2.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.scrollArea_2.setSizeAdjustPolicy(QAbstractScrollArea.AdjustIgnored)
self.scrollArea_2.setWidgetResizable(True)
self.scrollAreaWidgetContents_2 = QWidget()
self.scrollAreaWidgetContents_2.setObjectName(u"scrollAreaWidgetContents_2")
self.scrollAreaWidgetContents_2.setGeometry(QRect(0, 0, 660, 573))
self.verticalLayout_37 = QVBoxLayout(self.scrollAreaWidgetContents_2)
self.verticalLayout_37.setObjectName(u"verticalLayout_37")
self.euEnablerPageContent = QWidget(self.scrollAreaWidgetContents_2)
self.euEnablerPageContent.setObjectName(u"euEnablerPageContent") self.euEnablerPageContent.setObjectName(u"euEnablerPageContent")
self.euEnablerPageContent.setEnabled(False) self.euEnablerPageContent.setEnabled(False)
self.verticalLayout_16 = QVBoxLayout(self.euEnablerPageContent) self.verticalLayout_16 = QVBoxLayout(self.euEnablerPageContent)
@@ -1587,6 +1604,18 @@ class Ui_Nugget(object):
self.verticalLayout_34.addWidget(self.spoofedModelDrp) self.verticalLayout_34.addWidget(self.spoofedModelDrp)
self.spoofHardwareChk = QCheckBox(self.aiEnablerContent)
self.spoofHardwareChk.setObjectName(u"spoofHardwareChk")
self.spoofHardwareChk.setChecked(True)
self.verticalLayout_34.addWidget(self.spoofHardwareChk)
self.spoofCPUChk = QCheckBox(self.aiEnablerContent)
self.spoofCPUChk.setObjectName(u"spoofCPUChk")
self.spoofCPUChk.setChecked(True)
self.verticalLayout_34.addWidget(self.spoofCPUChk)
self.verticalLayout_16.addWidget(self.aiEnablerContent) self.verticalLayout_16.addWidget(self.aiEnablerContent)
@@ -1595,7 +1624,11 @@ class Ui_Nugget(object):
self.verticalLayout_16.addItem(self.verticalSpacer_7) self.verticalLayout_16.addItem(self.verticalSpacer_7)
self.verticalLayout_17.addWidget(self.euEnablerPageContent) self.verticalLayout_37.addWidget(self.euEnablerPageContent)
self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_2)
self.verticalLayout_17.addWidget(self.scrollArea_2)
self.pages.addWidget(self.euEnablerPage) self.pages.addWidget(self.euEnablerPage)
self.springboardOptionsPage = QWidget() self.springboardOptionsPage = QWidget()
@@ -1619,7 +1652,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_7.setIcon(icon7) self.toolButton_7.setIcon(icon6)
self.horizontalLayout_13.addWidget(self.toolButton_7) self.horizontalLayout_13.addWidget(self.toolButton_7)
@@ -1745,7 +1778,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_101.setIcon(icon8) self.toolButton_101.setIcon(icon7)
self.horizontalLayout_201.addWidget(self.toolButton_101) self.horizontalLayout_201.addWidget(self.toolButton_101)
@@ -1905,12 +1938,12 @@ class Ui_Nugget(object):
self.verticalLayout_141.addWidget(self.internalOptionsPageContent) self.verticalLayout_141.addWidget(self.internalOptionsPageContent)
self.pages.addWidget(self.internalOptionsPage) self.pages.addWidget(self.internalOptionsPage)
self.advancedOptionsPage = QWidget() self.daemonsPage = QWidget()
self.advancedOptionsPage.setObjectName(u"advancedOptionsPage") self.daemonsPage.setObjectName(u"daemonsPage")
self.verticalLayout_142 = QVBoxLayout(self.advancedOptionsPage) self.verticalLayout_142 = QVBoxLayout(self.daemonsPage)
self.verticalLayout_142.setObjectName(u"verticalLayout_142") self.verticalLayout_142.setObjectName(u"verticalLayout_142")
self.verticalLayout_142.setContentsMargins(0, 0, 0, 0) self.verticalLayout_142.setContentsMargins(0, 0, 0, 0)
self.horizontalWidget_52 = QWidget(self.advancedOptionsPage) self.horizontalWidget_52 = QWidget(self.daemonsPage)
self.horizontalWidget_52.setObjectName(u"horizontalWidget_52") self.horizontalWidget_52.setObjectName(u"horizontalWidget_52")
self.horizontalLayout_202 = QHBoxLayout(self.horizontalWidget_52) self.horizontalLayout_202 = QHBoxLayout(self.horizontalWidget_52)
self.horizontalLayout_202.setSpacing(10) self.horizontalLayout_202.setSpacing(10)
@@ -1918,7 +1951,7 @@ class Ui_Nugget(object):
self.horizontalLayout_202.setContentsMargins(0, 9, 0, 9) self.horizontalLayout_202.setContentsMargins(0, 9, 0, 9)
self.toolButton_102 = QToolButton(self.horizontalWidget_52) self.toolButton_102 = QToolButton(self.horizontalWidget_52)
self.toolButton_102.setObjectName(u"toolButton_102") self.toolButton_102.setObjectName(u"toolButton_102")
self.toolButton_102.setEnabled(False) self.toolButton_102.setEnabled(True)
self.toolButton_102.setStyleSheet(u"QToolButton {\n" self.toolButton_102.setStyleSheet(u"QToolButton {\n"
" icon-size: 24px;\n" " icon-size: 24px;\n"
" background-color: transparent;\n" " background-color: transparent;\n"
@@ -1926,7 +1959,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_102.setIcon(icon9) self.toolButton_102.setIcon(icon8)
self.horizontalLayout_202.addWidget(self.toolButton_102) self.horizontalLayout_202.addWidget(self.toolButton_102)
@@ -1936,15 +1969,16 @@ class Ui_Nugget(object):
self.verticalLayout_122.setSpacing(6) self.verticalLayout_122.setSpacing(6)
self.verticalLayout_122.setObjectName(u"verticalLayout_122") self.verticalLayout_122.setObjectName(u"verticalLayout_122")
self.verticalLayout_122.setContentsMargins(0, 0, 0, 0) self.verticalLayout_122.setContentsMargins(0, 0, 0, 0)
self.advancedOptionsLbl = QLabel(self.verticalWidget_42) self.daemonsLbl = QLabel(self.verticalWidget_42)
self.advancedOptionsLbl.setObjectName(u"advancedOptionsLbl") self.daemonsLbl.setObjectName(u"daemonsLbl")
self.advancedOptionsLbl.setFont(font1) self.daemonsLbl.setFont(font1)
self.verticalLayout_122.addWidget(self.advancedOptionsLbl) self.verticalLayout_122.addWidget(self.daemonsLbl)
self.verticalSpacer_181 = QSpacerItem(20, 16, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed) self.modifyDaemonsChk = QCheckBox(self.verticalWidget_42)
self.modifyDaemonsChk.setObjectName(u"modifyDaemonsChk")
self.verticalLayout_122.addItem(self.verticalSpacer_181) self.verticalLayout_122.addWidget(self.modifyDaemonsChk)
self.horizontalLayout_202.addWidget(self.verticalWidget_42) self.horizontalLayout_202.addWidget(self.verticalWidget_42)
@@ -1956,7 +1990,7 @@ class Ui_Nugget(object):
self.verticalLayout_142.addWidget(self.horizontalWidget_52) self.verticalLayout_142.addWidget(self.horizontalWidget_52)
self.line_122 = QFrame(self.advancedOptionsPage) self.line_122 = QFrame(self.daemonsPage)
self.line_122.setObjectName(u"line_122") self.line_122.setObjectName(u"line_122")
self.line_122.setStyleSheet(u"QFrame {\n" self.line_122.setStyleSheet(u"QFrame {\n"
" color: #414141;\n" " color: #414141;\n"
@@ -1966,16 +2000,161 @@ class Ui_Nugget(object):
self.verticalLayout_142.addWidget(self.line_122) self.verticalLayout_142.addWidget(self.line_122)
self.regularDomainsLbl = QLabel(self.daemonsPage)
self.regularDomainsLbl.setObjectName(u"regularDomainsLbl")
self.verticalLayout_142.addWidget(self.regularDomainsLbl)
self.daemonsPageContent = QWidget(self.daemonsPage)
self.daemonsPageContent.setObjectName(u"daemonsPageContent")
self.daemonsPageContent.setEnabled(False)
self.verticalLayout_132 = QVBoxLayout(self.daemonsPageContent)
self.verticalLayout_132.setObjectName(u"verticalLayout_132")
self.verticalLayout_132.setContentsMargins(0, 0, 0, 0)
self.otadChk = QCheckBox(self.daemonsPageContent)
self.otadChk.setObjectName(u"otadChk")
self.verticalLayout_132.addWidget(self.otadChk)
self.usageTrackingAgentChk = QCheckBox(self.daemonsPageContent)
self.usageTrackingAgentChk.setObjectName(u"usageTrackingAgentChk")
self.verticalLayout_132.addWidget(self.usageTrackingAgentChk)
self.screenTimeChk = QCheckBox(self.daemonsPageContent)
self.screenTimeChk.setObjectName(u"screenTimeChk")
self.verticalLayout_132.addWidget(self.screenTimeChk)
self.clearScreenTimeAgentChk = QCheckBox(self.daemonsPageContent)
self.clearScreenTimeAgentChk.setObjectName(u"clearScreenTimeAgentChk")
self.verticalLayout_132.addWidget(self.clearScreenTimeAgentChk)
self.crashReportsChk = QCheckBox(self.daemonsPageContent)
self.crashReportsChk.setObjectName(u"crashReportsChk")
self.verticalLayout_132.addWidget(self.crashReportsChk)
self.atwakeupChk = QCheckBox(self.daemonsPageContent)
self.atwakeupChk.setObjectName(u"atwakeupChk")
self.verticalLayout_132.addWidget(self.atwakeupChk)
self.line_25 = QFrame(self.daemonsPageContent)
self.line_25.setObjectName(u"line_25")
self.line_25.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_25.setFrameShadow(QFrame.Plain)
self.line_25.setFrameShape(QFrame.HLine)
self.verticalLayout_132.addWidget(self.line_25)
self.gameCenterChk = QCheckBox(self.daemonsPageContent)
self.gameCenterChk.setObjectName(u"gameCenterChk")
self.verticalLayout_132.addWidget(self.gameCenterChk)
self.tipsChk = QCheckBox(self.daemonsPageContent)
self.tipsChk.setObjectName(u"tipsChk")
self.verticalLayout_132.addWidget(self.tipsChk)
self.vpndChk = QCheckBox(self.daemonsPageContent)
self.vpndChk.setObjectName(u"vpndChk")
self.verticalLayout_132.addWidget(self.vpndChk)
self.wapicChk = QCheckBox(self.daemonsPageContent)
self.wapicChk.setObjectName(u"wapicChk")
self.verticalLayout_132.addWidget(self.wapicChk)
self.healthdChk = QCheckBox(self.daemonsPageContent)
self.healthdChk.setObjectName(u"healthdChk")
self.verticalLayout_132.addWidget(self.healthdChk)
self.verticalSpacer_62 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_132.addItem(self.verticalSpacer_62)
self.verticalLayout_142.addWidget(self.daemonsPageContent)
self.pages.addWidget(self.daemonsPage)
self.advancedOptionsPage = QWidget()
self.advancedOptionsPage.setObjectName(u"advancedOptionsPage")
self.verticalLayout_143 = QVBoxLayout(self.advancedOptionsPage)
self.verticalLayout_143.setObjectName(u"verticalLayout_143")
self.verticalLayout_143.setContentsMargins(0, 0, 0, 0)
self.horizontalWidget_53 = QWidget(self.advancedOptionsPage)
self.horizontalWidget_53.setObjectName(u"horizontalWidget_53")
self.horizontalLayout_203 = QHBoxLayout(self.horizontalWidget_53)
self.horizontalLayout_203.setSpacing(10)
self.horizontalLayout_203.setObjectName(u"horizontalLayout_203")
self.horizontalLayout_203.setContentsMargins(0, 9, 0, 9)
self.toolButton_103 = QToolButton(self.horizontalWidget_53)
self.toolButton_103.setObjectName(u"toolButton_103")
self.toolButton_103.setEnabled(False)
self.toolButton_103.setStyleSheet(u"QToolButton {\n"
" icon-size: 24px;\n"
" background-color: transparent;\n"
" padding-left: 0px;\n"
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_103.setIcon(icon9)
self.horizontalLayout_203.addWidget(self.toolButton_103)
self.verticalWidget_43 = QWidget(self.horizontalWidget_53)
self.verticalWidget_43.setObjectName(u"verticalWidget_43")
self.verticalLayout_123 = QVBoxLayout(self.verticalWidget_43)
self.verticalLayout_123.setSpacing(6)
self.verticalLayout_123.setObjectName(u"verticalLayout_123")
self.verticalLayout_123.setContentsMargins(0, 0, 0, 0)
self.advancedOptionsLbl = QLabel(self.verticalWidget_43)
self.advancedOptionsLbl.setObjectName(u"advancedOptionsLbl")
self.advancedOptionsLbl.setFont(font1)
self.verticalLayout_123.addWidget(self.advancedOptionsLbl)
self.verticalSpacer_181 = QSpacerItem(20, 16, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_123.addItem(self.verticalSpacer_181)
self.horizontalLayout_203.addWidget(self.verticalWidget_43)
self.horizontalSpacer_73 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_203.addItem(self.horizontalSpacer_73)
self.verticalLayout_143.addWidget(self.horizontalWidget_53)
self.line_123 = QFrame(self.advancedOptionsPage)
self.line_123.setObjectName(u"line_123")
self.line_123.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_123.setFrameShadow(QFrame.Plain)
self.line_123.setFrameShape(QFrame.HLine)
self.verticalLayout_143.addWidget(self.line_123)
self.advancedOptionsPageContent = QWidget(self.advancedOptionsPage) self.advancedOptionsPageContent = QWidget(self.advancedOptionsPage)
self.advancedOptionsPageContent.setObjectName(u"advancedOptionsPageContent") self.advancedOptionsPageContent.setObjectName(u"advancedOptionsPageContent")
self.advancedOptionsPageContent.setEnabled(True) self.advancedOptionsPageContent.setEnabled(True)
self.verticalLayout_132 = QVBoxLayout(self.advancedOptionsPageContent) self.verticalLayout_133 = QVBoxLayout(self.advancedOptionsPageContent)
self.verticalLayout_132.setObjectName(u"verticalLayout_132") self.verticalLayout_133.setObjectName(u"verticalLayout_133")
self.verticalLayout_132.setContentsMargins(0, 0, 0, 0) self.verticalLayout_133.setContentsMargins(0, 0, 0, 0)
self.label_17 = QLabel(self.advancedOptionsPageContent) self.label_17 = QLabel(self.advancedOptionsPageContent)
self.label_17.setObjectName(u"label_17") self.label_17.setObjectName(u"label_17")
self.verticalLayout_132.addWidget(self.label_17) self.verticalLayout_133.addWidget(self.label_17)
self.line_191 = QFrame(self.advancedOptionsPageContent) self.line_191 = QFrame(self.advancedOptionsPageContent)
self.line_191.setObjectName(u"line_191") self.line_191.setObjectName(u"line_191")
@@ -1985,12 +2164,17 @@ class Ui_Nugget(object):
self.line_191.setFrameShadow(QFrame.Plain) self.line_191.setFrameShadow(QFrame.Plain)
self.line_191.setFrameShape(QFrame.HLine) self.line_191.setFrameShape(QFrame.HLine)
self.verticalLayout_132.addWidget(self.line_191) self.verticalLayout_133.addWidget(self.line_191)
self.disableOTAChk = QCheckBox(self.advancedOptionsPageContent) self.disableOTAChk = QCheckBox(self.advancedOptionsPageContent)
self.disableOTAChk.setObjectName(u"disableOTAChk") self.disableOTAChk.setObjectName(u"disableOTAChk")
self.verticalLayout_132.addWidget(self.disableOTAChk) self.verticalLayout_133.addWidget(self.disableOTAChk)
self.thermalmonitordChk = QCheckBox(self.advancedOptionsPageContent)
self.thermalmonitordChk.setObjectName(u"thermalmonitordChk")
self.verticalLayout_133.addWidget(self.thermalmonitordChk)
self.line_181 = QFrame(self.advancedOptionsPageContent) self.line_181 = QFrame(self.advancedOptionsPageContent)
self.line_181.setObjectName(u"line_181") self.line_181.setObjectName(u"line_181")
@@ -2000,12 +2184,12 @@ class Ui_Nugget(object):
self.line_181.setFrameShadow(QFrame.Plain) self.line_181.setFrameShadow(QFrame.Plain)
self.line_181.setFrameShape(QFrame.HLine) self.line_181.setFrameShape(QFrame.HLine)
self.verticalLayout_132.addWidget(self.line_181) self.verticalLayout_133.addWidget(self.line_181)
self.enableResolutionChk = QCheckBox(self.advancedOptionsPageContent) self.enableResolutionChk = QCheckBox(self.advancedOptionsPageContent)
self.enableResolutionChk.setObjectName(u"enableResolutionChk") self.enableResolutionChk.setObjectName(u"enableResolutionChk")
self.verticalLayout_132.addWidget(self.enableResolutionChk) self.verticalLayout_133.addWidget(self.enableResolutionChk)
self.resChangerContent = QWidget(self.advancedOptionsPageContent) self.resChangerContent = QWidget(self.advancedOptionsPageContent)
self.resChangerContent.setObjectName(u"resChangerContent") self.resChangerContent.setObjectName(u"resChangerContent")
@@ -2081,14 +2265,14 @@ class Ui_Nugget(object):
self.verticalLayout_35.addLayout(self.resolutionContent) self.verticalLayout_35.addLayout(self.resolutionContent)
self.verticalLayout_132.addWidget(self.resChangerContent) self.verticalLayout_133.addWidget(self.resChangerContent)
self.verticalSpacer_62 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) self.verticalSpacer_63 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_132.addItem(self.verticalSpacer_62) self.verticalLayout_133.addItem(self.verticalSpacer_63)
self.verticalLayout_142.addWidget(self.advancedOptionsPageContent) self.verticalLayout_143.addWidget(self.advancedOptionsPageContent)
self.pages.addWidget(self.advancedOptionsPage) self.pages.addWidget(self.advancedOptionsPage)
self.applyPage = QWidget() self.applyPage = QWidget()
@@ -2220,6 +2404,13 @@ class Ui_Nugget(object):
self.verticalLayout_24.addWidget(self.restoreProgressBar, 0, Qt.AlignHCenter) self.verticalLayout_24.addWidget(self.restoreProgressBar, 0, Qt.AlignHCenter)
self.skipSetupOnLbl = QLabel(self.verticalWidget2)
self.skipSetupOnLbl.setObjectName(u"skipSetupOnLbl")
self.skipSetupOnLbl.setFont(font1)
self.skipSetupOnLbl.setAlignment(Qt.AlignCenter)
self.verticalLayout_24.addWidget(self.skipSetupOnLbl)
self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_24.addItem(self.verticalSpacer_2) self.verticalLayout_24.addItem(self.verticalSpacer_2)
@@ -2324,7 +2515,7 @@ class Ui_Nugget(object):
self._21.setContentsMargins(0, 0, 0, 0) self._21.setContentsMargins(0, 0, 0, 0)
self.allowWifiApplyingChk = QCheckBox(self.settingsPageContent) self.allowWifiApplyingChk = QCheckBox(self.settingsPageContent)
self.allowWifiApplyingChk.setObjectName(u"allowWifiApplyingChk") self.allowWifiApplyingChk.setObjectName(u"allowWifiApplyingChk")
self.allowWifiApplyingChk.setChecked(True) self.allowWifiApplyingChk.setChecked(False)
self._21.addWidget(self.allowWifiApplyingChk) self._21.addWidget(self.allowWifiApplyingChk)
@@ -2339,6 +2530,11 @@ class Ui_Nugget(object):
self._21.addWidget(self.showRiskyChk) self._21.addWidget(self.showRiskyChk)
self.showAllSpoofableChk = QCheckBox(self.settingsPageContent)
self.showAllSpoofableChk.setObjectName(u"showAllSpoofableChk")
self._21.addWidget(self.showAllSpoofableChk)
self.line_24 = QFrame(self.settingsPageContent) self.line_24 = QFrame(self.settingsPageContent)
self.line_24.setObjectName(u"line_24") self.line_24.setObjectName(u"line_24")
self.line_24.setStyleSheet(u"QFrame {\n" self.line_24.setStyleSheet(u"QFrame {\n"
@@ -2426,7 +2622,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_13.setIcon(icon6) self.toolButton_13.setIcon(icon5)
self.horizontalLayout_28.addWidget(self.toolButton_13) self.horizontalLayout_28.addWidget(self.toolButton_13)
@@ -2692,7 +2888,9 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_16.setIcon(icon3) icon22 = QIcon()
icon22.addFile(u":/icon/compass.svg", QSize(), QIcon.Normal, QIcon.Off)
self.toolButton_16.setIcon(icon22)
self.horizontalLayout_31.addWidget(self.toolButton_16) self.horizontalLayout_31.addWidget(self.toolButton_16)
@@ -2762,7 +2960,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.themesBtn.setIcon(icon4) self.themesBtn.setIcon(icon3)
self.themesBtn.setIconSize(QSize(30, 30)) self.themesBtn.setIconSize(QSize(30, 30))
self.horizontalLayout_23.addWidget(self.themesBtn) self.horizontalLayout_23.addWidget(self.themesBtn)
@@ -2808,9 +3006,9 @@ class Ui_Nugget(object):
self.importThemeZipBtn = QToolButton(self.horizontalWidget7) self.importThemeZipBtn = QToolButton(self.horizontalWidget7)
self.importThemeZipBtn.setObjectName(u"importThemeZipBtn") self.importThemeZipBtn.setObjectName(u"importThemeZipBtn")
icon22 = QIcon() icon23 = QIcon()
icon22.addFile(u":/icon/file-earmark-zip.svg", QSize(), QIcon.Normal, QIcon.Off) icon23.addFile(u":/icon/file-earmark-zip.svg", QSize(), QIcon.Normal, QIcon.Off)
self.importThemeZipBtn.setIcon(icon22) self.importThemeZipBtn.setIcon(icon23)
self.horizontalLayout_26.addWidget(self.importThemeZipBtn) self.horizontalLayout_26.addWidget(self.importThemeZipBtn)
@@ -2928,8 +3126,6 @@ class Ui_Nugget(object):
self.titleBar.setText(QCoreApplication.translate("Nugget", u"Nugget", None)) self.titleBar.setText(QCoreApplication.translate("Nugget", u"Nugget", None))
self.homePageBtn.setText(QCoreApplication.translate("Nugget", u" Home", None)) self.homePageBtn.setText(QCoreApplication.translate("Nugget", u" Home", None))
self.homePageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.homePageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.explorePageBtn.setText(QCoreApplication.translate("Nugget", u" Explore", None))
self.explorePageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.gestaltPageBtn.setText(QCoreApplication.translate("Nugget", u" Mobile Gestalt", None)) self.gestaltPageBtn.setText(QCoreApplication.translate("Nugget", u" Mobile Gestalt", None))
self.gestaltPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.gestaltPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.featureFlagsPageBtn.setText(QCoreApplication.translate("Nugget", u" Feature Flags", None)) self.featureFlagsPageBtn.setText(QCoreApplication.translate("Nugget", u" Feature Flags", None))
@@ -2940,6 +3136,8 @@ class Ui_Nugget(object):
self.springboardOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.springboardOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.internalOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Internal Options", None)) self.internalOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Internal Options", None))
self.internalOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.internalOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.daemonsPageBtn.setText(QCoreApplication.translate("Nugget", u" Daemons", None))
self.daemonsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.advancedPageBtn.setText(QCoreApplication.translate("Nugget", u" Risky Options", None)) self.advancedPageBtn.setText(QCoreApplication.translate("Nugget", u" Risky Options", None))
self.advancedPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.advancedPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.applyPageBtn.setText(QCoreApplication.translate("Nugget", u" Apply", None)) self.applyPageBtn.setText(QCoreApplication.translate("Nugget", u" Apply", None))
@@ -2951,7 +3149,10 @@ class Ui_Nugget(object):
self.bigNuggetBtn.setText(QCoreApplication.translate("Nugget", u"...", None)) self.bigNuggetBtn.setText(QCoreApplication.translate("Nugget", u"...", None))
self.label_2.setText(QCoreApplication.translate("Nugget", u"Nugget", None)) self.label_2.setText(QCoreApplication.translate("Nugget", u"Nugget", None))
self.discordBtn.setText(QCoreApplication.translate("Nugget", u" Join the Discord", None)) self.discordBtn.setText(QCoreApplication.translate("Nugget", u" Join the Discord", None))
self.starOnGithubBtn.setText(QCoreApplication.translate("Nugget", u"Star on Github", None)) self.starOnGithubBtn.setText(QCoreApplication.translate("Nugget", u" Star on Github", None))
#if QT_CONFIG(tooltip)
self.leminBtn.setToolTip("")
#endif // QT_CONFIG(tooltip)
self.leminBtn.setText(QCoreApplication.translate("Nugget", u" LeminLimez", None)) self.leminBtn.setText(QCoreApplication.translate("Nugget", u" LeminLimez", None))
self.leminTwitterBtn.setText(QCoreApplication.translate("Nugget", u"...", None)) self.leminTwitterBtn.setText(QCoreApplication.translate("Nugget", u"...", None))
self.leminGithubBtn.setText(QCoreApplication.translate("Nugget", u"...", None)) self.leminGithubBtn.setText(QCoreApplication.translate("Nugget", u"...", None))
@@ -2962,12 +3163,12 @@ class Ui_Nugget(object):
"Sparserestore", None)) "Sparserestore", None))
self.disfordottieBtn.setText(QCoreApplication.translate("Nugget", u"disfordottie\n" self.disfordottieBtn.setText(QCoreApplication.translate("Nugget", u"disfordottie\n"
"Clock Anim, Photos UI", None)) "Clock Anim, Photos UI", None))
self.lrdsnowBtn.setText(QCoreApplication.translate("Nugget", u"lrdsnow\n" self.mikasaBtn.setText(QCoreApplication.translate("Nugget", u"Mikasa\n"
"EU Enabler", None)) "Quiet Daemon", None))
self.toolButton_15.setText(QCoreApplication.translate("Nugget", u"Additional Thanks", None)) self.toolButton_15.setText(QCoreApplication.translate("Nugget", u"Additional Thanks", None))
self.libiBtn.setText(QCoreApplication.translate("Nugget", u"pymobiledevice3", None)) self.libiBtn.setText(QCoreApplication.translate("Nugget", u"pymobiledevice3", None))
self.qtBtn.setText(QCoreApplication.translate("Nugget", u"Qt Creator", None)) self.qtBtn.setText(QCoreApplication.translate("Nugget", u"Qt Creator", None))
self.label.setText(QCoreApplication.translate("Nugget", u"Nugget GUI - Version 4.1", None)) self.appVersionLbl.setText(QCoreApplication.translate("Nugget", u"Nugget GUI - Version %VERSION %BETATAG", None))
self.statusBarLbl.setText(QCoreApplication.translate("Nugget", u"Mobile Gestalt", None)) self.statusBarLbl.setText(QCoreApplication.translate("Nugget", u"Mobile Gestalt", None))
self.mgaWarningLbl.setText(QCoreApplication.translate("Nugget", u"! You will need a MobileGestalt file for this feature. Please select it in the Apply page !", None)) self.mgaWarningLbl.setText(QCoreApplication.translate("Nugget", u"! You will need a MobileGestalt file for this feature. Please select it in the Apply page !", None))
self.label_9.setText(QCoreApplication.translate("Nugget", u"Device Subtype Preset", None)) self.label_9.setText(QCoreApplication.translate("Nugget", u"Device Subtype Preset", None))
@@ -2980,33 +3181,93 @@ class Ui_Nugget(object):
self.dynamicIslandDrp.setItemText(6, QCoreApplication.translate("Nugget", u"2868 (iPhone 16 Pro Max Dynamic Island)", None)) self.dynamicIslandDrp.setItemText(6, QCoreApplication.translate("Nugget", u"2868 (iPhone 16 Pro Max Dynamic Island)", None))
self.dynamicIslandDrp.setCurrentText(QCoreApplication.translate("Nugget", u"None", None)) self.dynamicIslandDrp.setCurrentText(QCoreApplication.translate("Nugget", u"None", None))
#if QT_CONFIG(tooltip)
self.rdarFixChk.setToolTip(QCoreApplication.translate("Nugget", u"Modifies the resolution to improve functionality of the changed device subtype. May cause weird visual bugs.", None))
#endif // QT_CONFIG(tooltip)
self.rdarFixChk.setText(QCoreApplication.translate("Nugget", u"Fix RDAR (modifies resolution)", None)) self.rdarFixChk.setText(QCoreApplication.translate("Nugget", u"Fix RDAR (modifies resolution)", None))
#if QT_CONFIG(tooltip)
self.modelNameChk.setToolTip(QCoreApplication.translate("Nugget", u"Changes the model name in the 'About' page in the Settings app.", None))
#endif // QT_CONFIG(tooltip)
self.modelNameChk.setText(QCoreApplication.translate("Nugget", u"Change Device Model Name", None)) self.modelNameChk.setText(QCoreApplication.translate("Nugget", u"Change Device Model Name", None))
self.modelNameTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Model Name", None)) self.modelNameTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Model Name", None))
#if QT_CONFIG(tooltip)
self.bootChimeChk.setToolTip(QCoreApplication.translate("Nugget", u"Plays a sound when the device shuts down.\n"
"\n"
"After enabling, you can find the option to enable it in 'Accessibility' settings.", None))
#endif // QT_CONFIG(tooltip)
self.bootChimeChk.setText(QCoreApplication.translate("Nugget", u"Enable Boot Chime", None)) self.bootChimeChk.setText(QCoreApplication.translate("Nugget", u"Enable Boot Chime", None))
#if QT_CONFIG(tooltip)
self.chargeLimitChk.setToolTip(QCoreApplication.translate("Nugget", u"Shows the charge limit menu in Settings. Actual limiting may not be functional.", None))
#endif // QT_CONFIG(tooltip)
self.chargeLimitChk.setText(QCoreApplication.translate("Nugget", u"Enable Charge Limit", None)) self.chargeLimitChk.setText(QCoreApplication.translate("Nugget", u"Enable Charge Limit", None))
self.tapToWakeChk.setText(QCoreApplication.translate("Nugget", u"Enable Tap to Wake (for iPhone SEs)", None)) self.tapToWakeChk.setText(QCoreApplication.translate("Nugget", u"Enable Tap to Wake (for iPhone SEs)", None))
#if QT_CONFIG(tooltip)
self.iphone16SettingsChk.setToolTip(QCoreApplication.translate("Nugget", u"Enables Camera Control menu in Settings app and allows for downloading A17 Pro-exclusive apps (when spoofed).", None))
#endif // QT_CONFIG(tooltip)
self.iphone16SettingsChk.setText(QCoreApplication.translate("Nugget", u"Enable iPhone 16 Settings", None)) self.iphone16SettingsChk.setText(QCoreApplication.translate("Nugget", u"Enable iPhone 16 Settings", None))
#if QT_CONFIG(tooltip)
self.parallaxChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables the motion of the wallpaper.", None))
#endif // QT_CONFIG(tooltip)
self.parallaxChk.setText(QCoreApplication.translate("Nugget", u"Disable Wallpaper Parallax", None)) self.parallaxChk.setText(QCoreApplication.translate("Nugget", u"Disable Wallpaper Parallax", None))
self.stageManagerChk.setText(QCoreApplication.translate("Nugget", u"Enable Stage Manager Supported (WARNING: risky on some devices, mainly phones)", None)) self.stageManagerChk.setText(QCoreApplication.translate("Nugget", u"Enable Stage Manager Supported", None))
self.enableMedusaChk.setText(QCoreApplication.translate("Nugget", u"Enable Medusa (iPad Multitasking) (WARNING: may be risky on some phones)", None)) self.enableMedusaChk.setText(QCoreApplication.translate("Nugget", u"Enable Medusa (iPad Multitasking)", None))
self.ipadAppsChk.setText(QCoreApplication.translate("Nugget", u"Allow iPad Apps on iPhone", None)) self.ipadAppsChk.setText(QCoreApplication.translate("Nugget", u"Allow iPad Apps on iPhone", None))
#if QT_CONFIG(tooltip)
self.shutterChk.setToolTip(QCoreApplication.translate("Nugget", u"Sets the device's region to LL/A to bypass certain region restrictions like the forced shutter sound.", None))
#endif // QT_CONFIG(tooltip)
self.shutterChk.setText(QCoreApplication.translate("Nugget", u"Disable Region Restrictions (ie. Shutter Sound)", None)) self.shutterChk.setText(QCoreApplication.translate("Nugget", u"Disable Region Restrictions (ie. Shutter Sound)", None))
self.findMyFriendsChk.setText(QCoreApplication.translate("Nugget", u"Enable Find My Friends", None)) self.findMyFriendsChk.setText(QCoreApplication.translate("Nugget", u"Enable Find My Friends", None))
self.pencilChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Pencil Settings Tab", None)) self.pencilChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Pencil Settings Tab", None))
self.actionButtonChk.setText(QCoreApplication.translate("Nugget", u"Enable Action Button Settings Tab", None)) self.actionButtonChk.setText(QCoreApplication.translate("Nugget", u"Enable Action Button Settings Tab", None))
#if QT_CONFIG(tooltip)
self.internalInstallChk.setToolTip(QCoreApplication.translate("Nugget", u"Use the Metal HUD in any app. Enable Metal HUD through Springboard Options.\n"
"\n"
"Note: OTA updates will be broken until this is disabled.", None))
#endif // QT_CONFIG(tooltip)
self.internalInstallChk.setText(QCoreApplication.translate("Nugget", u"Set as Apple Internal Install (ie Metal HUD in any app)", None)) self.internalInstallChk.setText(QCoreApplication.translate("Nugget", u"Set as Apple Internal Install (ie Metal HUD in any app)", None))
#if QT_CONFIG(tooltip)
self.internalStorageChk.setToolTip(QCoreApplication.translate("Nugget", u"Shows internal files in storage settings.\n"
"\n"
"Note: OTA updates will be broken until this is disabled.", None))
#endif // QT_CONFIG(tooltip)
self.internalStorageChk.setText(QCoreApplication.translate("Nugget", u"Enable Internal Storage (WARNING: risky for some devices, mainly iPads)", None)) self.internalStorageChk.setText(QCoreApplication.translate("Nugget", u"Enable Internal Storage (WARNING: risky for some devices, mainly iPads)", None))
#if QT_CONFIG(tooltip)
self.collisionSOSChk.setToolTip(QCoreApplication.translate("Nugget", u"Shows collision detection in the SOS page in Settings.", None))
#endif // QT_CONFIG(tooltip)
self.collisionSOSChk.setText(QCoreApplication.translate("Nugget", u"Enable Collision SOS", None)) self.collisionSOSChk.setText(QCoreApplication.translate("Nugget", u"Enable Collision SOS", None))
#if QT_CONFIG(tooltip)
self.aodChk.setToolTip(QCoreApplication.translate("Nugget", u"Enable AOD on unsupported devices. May cause burn in, use with caution.", None))
#endif // QT_CONFIG(tooltip)
self.aodChk.setText(QCoreApplication.translate("Nugget", u"Enable Always On Display", None)) self.aodChk.setText(QCoreApplication.translate("Nugget", u"Enable Always On Display", None))
#if QT_CONFIG(tooltip)
self.aodVibrancyChk.setToolTip(QCoreApplication.translate("Nugget", u"Enable this if something is wonky when using the above toggle.", None))
#endif // QT_CONFIG(tooltip)
self.aodVibrancyChk.setText(QCoreApplication.translate("Nugget", u"Enable AOD Vibrancy", None))
self.label_10.setText(QCoreApplication.translate("Nugget", u"Custom Gestalt Keys", None)) self.label_10.setText(QCoreApplication.translate("Nugget", u"Custom Gestalt Keys", None))
self.addGestaltKeyBtn.setText(QCoreApplication.translate("Nugget", u" Add Key", None)) self.addGestaltKeyBtn.setText(QCoreApplication.translate("Nugget", u" Add Key", None))
self.label_12.setText(QCoreApplication.translate("Nugget", u"Warning: Using this feature incorrectly can lead to bootloops and data loss. Only use if you know\n" self.label_12.setText(QCoreApplication.translate("Nugget", u"Warning: Using this feature incorrectly can lead to bootloops and data loss. Only use if you know\n"
"what you are doing.", None)) "what you are doing.", None))
self.internalOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Feature Flags", None)) self.internalOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Feature Flags", None))
#if QT_CONFIG(tooltip)
self.clockAnimChk.setToolTip(QCoreApplication.translate("Nugget", u"Enables an animation when the lock screen clock changes time or style.", None))
#endif // QT_CONFIG(tooltip)
self.clockAnimChk.setText(QCoreApplication.translate("Nugget", u"Enable Lockscreen Clock Animation", None)) self.clockAnimChk.setText(QCoreApplication.translate("Nugget", u"Enable Lockscreen Clock Animation", None))
#if QT_CONFIG(tooltip)
self.lockscreenChk.setToolTip(QCoreApplication.translate("Nugget", u"Enables a button to duplicate the lock screen page in edit mode.\n"
"Enables quickly switching lock screens by holding down and swiping.", None))
#endif // QT_CONFIG(tooltip)
self.lockscreenChk.setText(QCoreApplication.translate("Nugget", u"Enable Duplicate Lockscreen Button and Lockscreen Quickswitch", None)) self.lockscreenChk.setText(QCoreApplication.translate("Nugget", u"Enable Duplicate Lockscreen Button and Lockscreen Quickswitch", None))
#if QT_CONFIG(tooltip)
self.photosChk.setToolTip(QCoreApplication.translate("Nugget", u"Revert the photos app to the iOS 17 style.\n"
"\n"
"Does not work on iOS 18.0 RC.", None))
#endif // QT_CONFIG(tooltip)
self.photosChk.setText(QCoreApplication.translate("Nugget", u"Enable Old Photo UI", None)) self.photosChk.setText(QCoreApplication.translate("Nugget", u"Enable Old Photo UI", None))
#if QT_CONFIG(tooltip)
self.aiChk.setToolTip(QCoreApplication.translate("Nugget", u"Enable the new Siri UI.\n"
"\n"
"Only works on iOS 18.0 beta 1-2.", None))
#endif // QT_CONFIG(tooltip)
self.aiChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Intelligence", None)) self.aiChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Intelligence", None))
self.eligibilityLbl.setText(QCoreApplication.translate("Nugget", u"Eligibility Tweaks", None)) self.eligibilityLbl.setText(QCoreApplication.translate("Nugget", u"Eligibility Tweaks", None))
self.euEnablerEnabledChk.setText(QCoreApplication.translate("Nugget", u"Enable EU Enabler", None)) self.euEnablerEnabledChk.setText(QCoreApplication.translate("Nugget", u"Enable EU Enabler", None))
@@ -3060,13 +3321,27 @@ class Ui_Nugget(object):
self.spoofedModelDrp.setItemText(26, QCoreApplication.translate("Nugget", u"iPad Air (M1) (C) (iPad13,17)", None)) self.spoofedModelDrp.setItemText(26, QCoreApplication.translate("Nugget", u"iPad Air (M1) (C) (iPad13,17)", None))
self.spoofedModelDrp.setCurrentText(QCoreApplication.translate("Nugget", u"Original", None)) self.spoofedModelDrp.setCurrentText(QCoreApplication.translate("Nugget", u"Original", None))
#if QT_CONFIG(tooltip)
self.spoofHardwareChk.setToolTip(QCoreApplication.translate("Nugget", u"Spoofs the device hardware model (ie D83AP)", None))
#endif // QT_CONFIG(tooltip)
self.spoofHardwareChk.setText(QCoreApplication.translate("Nugget", u"Spoof Hardware Model", None))
#if QT_CONFIG(tooltip)
self.spoofCPUChk.setToolTip(QCoreApplication.translate("Nugget", u"Spoofs the device CPU model (ie t8130)", None))
#endif // QT_CONFIG(tooltip)
self.spoofCPUChk.setText(QCoreApplication.translate("Nugget", u"Spoof CPU Model", None))
self.springboardOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Springboard Options", None)) self.springboardOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Springboard Options", None))
self.label_13.setText(QCoreApplication.translate("Nugget", u"Lock Screen Footnote Text", None)) self.label_13.setText(QCoreApplication.translate("Nugget", u"Lock Screen Footnote Text", None))
self.footnoteTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Footnote Text", None)) self.footnoteTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Footnote Text", None))
self.disableLockRespringChk.setText(QCoreApplication.translate("Nugget", u"Disable Lock After Respring", None)) self.disableLockRespringChk.setText(QCoreApplication.translate("Nugget", u"Disable Lock After Respring", None))
self.disableDimmingChk.setText(QCoreApplication.translate("Nugget", u"Disable Screen Dimming While Charging", None)) self.disableDimmingChk.setText(QCoreApplication.translate("Nugget", u"Disable Screen Dimming While Charging", None))
self.disableBatteryAlertsChk.setText(QCoreApplication.translate("Nugget", u"Disable Low Battery Alerts", None)) self.disableBatteryAlertsChk.setText(QCoreApplication.translate("Nugget", u"Disable Low Battery Alerts", None))
#if QT_CONFIG(tooltip)
self.disableCrumbChk.setToolTip(QCoreApplication.translate("Nugget", u"Removes '< PreviousAppName' glyph in Status Bar when being forwarded to another app.", None))
#endif // QT_CONFIG(tooltip)
self.disableCrumbChk.setText(QCoreApplication.translate("Nugget", u"Disable Breadcrumbs", None)) self.disableCrumbChk.setText(QCoreApplication.translate("Nugget", u"Disable Breadcrumbs", None))
#if QT_CONFIG(tooltip)
self.enableSupervisionTextChk.setToolTip(QCoreApplication.translate("Nugget", u"Shows info about the device supervision status and organization at the bottom of the lock screen.", None))
#endif // QT_CONFIG(tooltip)
self.enableSupervisionTextChk.setText(QCoreApplication.translate("Nugget", u"Show Supervision Text on Lock Screen", None)) self.enableSupervisionTextChk.setText(QCoreApplication.translate("Nugget", u"Show Supervision Text on Lock Screen", None))
self.enableAirPlayChk.setText(QCoreApplication.translate("Nugget", u"Enable AirPlay support for Stage Manager", None)) self.enableAirPlayChk.setText(QCoreApplication.translate("Nugget", u"Enable AirPlay support for Stage Manager", None))
self.internalOptionsLbl1.setText(QCoreApplication.translate("Nugget", u"Internal Options", None)) self.internalOptionsLbl1.setText(QCoreApplication.translate("Nugget", u"Internal Options", None))
@@ -3083,6 +3358,56 @@ class Ui_Nugget(object):
self.enableWakeVibrateChk.setText(QCoreApplication.translate("Nugget", u"Vibrate on Raise-to-Wake", None)) self.enableWakeVibrateChk.setText(QCoreApplication.translate("Nugget", u"Vibrate on Raise-to-Wake", None))
self.pasteSoundChk.setText(QCoreApplication.translate("Nugget", u"Play Sound on Paste", None)) self.pasteSoundChk.setText(QCoreApplication.translate("Nugget", u"Play Sound on Paste", None))
self.notifyPastesChk.setText(QCoreApplication.translate("Nugget", u"Show Notifications for System Pastes", None)) self.notifyPastesChk.setText(QCoreApplication.translate("Nugget", u"Show Notifications for System Pastes", None))
self.daemonsLbl.setText(QCoreApplication.translate("Nugget", u"Daemons", None))
self.modifyDaemonsChk.setText(QCoreApplication.translate("Nugget", u"Modify", None))
self.regularDomainsLbl.setText(QCoreApplication.translate("Nugget", u"Note: Even on Sparserestore versions, this uses regular domains. Skip Setup will be applied if you have\n"
"it enabled.", None))
#if QT_CONFIG(tooltip)
self.otadChk.setToolTip(QCoreApplication.translate("Nugget", u"Stops over-the-air updates to prevent auto-downloads.", None))
#endif // QT_CONFIG(tooltip)
self.otadChk.setText(QCoreApplication.translate("Nugget", u"Disable OTA", None))
#if QT_CONFIG(tooltip)
self.usageTrackingAgentChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables usage tracking for improved privacy.", None))
#endif // QT_CONFIG(tooltip)
self.usageTrackingAgentChk.setText(QCoreApplication.translate("Nugget", u"Disable UsageTrackingAgent", None))
#if QT_CONFIG(tooltip)
self.screenTimeChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables Screen Time monitoring features.", None))
#endif // QT_CONFIG(tooltip)
self.screenTimeChk.setText(QCoreApplication.translate("Nugget", u"Disable Screen Time Agent", None))
#if QT_CONFIG(tooltip)
self.clearScreenTimeAgentChk.setToolTip(QCoreApplication.translate("Nugget", u"Deletes the Screen Time Agent preferences file to prevent app lockout set via iCloud.\n"
"\n"
"To work properly, also disable the daemon using the toggle above.", None))
#endif // QT_CONFIG(tooltip)
self.clearScreenTimeAgentChk.setText(QCoreApplication.translate("Nugget", u"Clear ScreenTimeAgent.plist file", None))
#if QT_CONFIG(tooltip)
self.crashReportsChk.setToolTip(QCoreApplication.translate("Nugget", u"Stops logs, dumps, and crash reports collection.", None))
#endif // QT_CONFIG(tooltip)
self.crashReportsChk.setText(QCoreApplication.translate("Nugget", u"Disable Logs, Dumps, and Crash Reports", None))
#if QT_CONFIG(tooltip)
self.atwakeupChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables pinging to sleeping bluetooth devices for improved battery life.", None))
#endif // QT_CONFIG(tooltip)
self.atwakeupChk.setText(QCoreApplication.translate("Nugget", u"Disable ATWAKEUP", None))
#if QT_CONFIG(tooltip)
self.gameCenterChk.setToolTip(QCoreApplication.translate("Nugget", u"Turns off Game Center background services.", None))
#endif // QT_CONFIG(tooltip)
self.gameCenterChk.setText(QCoreApplication.translate("Nugget", u"Disable Game Center", None))
#if QT_CONFIG(tooltip)
self.tipsChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables the Tips service and notifications.", None))
#endif // QT_CONFIG(tooltip)
self.tipsChk.setText(QCoreApplication.translate("Nugget", u"Disable Tips Services", None))
#if QT_CONFIG(tooltip)
self.vpndChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables the Virtual Private Network service.", None))
#endif // QT_CONFIG(tooltip)
self.vpndChk.setText(QCoreApplication.translate("Nugget", u"Disable VPN Service", None))
#if QT_CONFIG(tooltip)
self.wapicChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables the service that deals with errors with WiFi networks with Chinese characters in the name.", None))
#endif // QT_CONFIG(tooltip)
self.wapicChk.setText(QCoreApplication.translate("Nugget", u"Disable Chinese WLAN Service", None))
#if QT_CONFIG(tooltip)
self.healthdChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables HealthKit services used by the health app.", None))
#endif // QT_CONFIG(tooltip)
self.healthdChk.setText(QCoreApplication.translate("Nugget", u"Disable HealthKit", None))
self.advancedOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Risky Options", None)) self.advancedOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Risky Options", None))
self.label_17.setText(QCoreApplication.translate("Nugget", u"Disclaimer:\n" self.label_17.setText(QCoreApplication.translate("Nugget", u"Disclaimer:\n"
"\n" "\n"
@@ -3090,7 +3415,19 @@ class Ui_Nugget(object):
"your device resolution has the potential to brick your device when used improperly.\n" "your device resolution has the potential to brick your device when used improperly.\n"
"\n" "\n"
"Nugget is not responsible if you mess up your device, especially with resolution changer.", None)) "Nugget is not responsible if you mess up your device, especially with resolution changer.", None))
self.disableOTAChk.setText(QCoreApplication.translate("Nugget", u"Disable OTA Updates", None)) #if QT_CONFIG(tooltip)
self.disableOTAChk.setToolTip(QCoreApplication.translate("Nugget", u"Uses the file method. Recommended to disable the daemon instead in the Daemons tab.", None))
#endif // QT_CONFIG(tooltip)
self.disableOTAChk.setText(QCoreApplication.translate("Nugget", u"Disable OTA Updates (file)", None))
#if QT_CONFIG(tooltip)
self.thermalmonitordChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables temperature monitoring daemon to reduce system checks.\n"
"\n"
"Warning: Disabling will cause the battery to show \"Unknown Part\" or \"Unverified\" in Settings.", None))
#endif // QT_CONFIG(tooltip)
self.thermalmonitordChk.setText(QCoreApplication.translate("Nugget", u"Disable thermalmonitord", None))
#if QT_CONFIG(tooltip)
self.enableResolutionChk.setToolTip(QCoreApplication.translate("Nugget", u"Set a custom device screen resolution.", None))
#endif // QT_CONFIG(tooltip)
self.enableResolutionChk.setText(QCoreApplication.translate("Nugget", u"Set a Custom Device Resolution", None)) self.enableResolutionChk.setText(QCoreApplication.translate("Nugget", u"Set a Custom Device Resolution", None))
self.resHeightLbl.setText(QCoreApplication.translate("Nugget", u"Height:", None)) self.resHeightLbl.setText(QCoreApplication.translate("Nugget", u"Height:", None))
self.resHeightTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Resolution Height", None)) self.resHeightTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Resolution Height", None))
@@ -3105,12 +3442,23 @@ class Ui_Nugget(object):
self.chooseGestaltBtn.setText(QCoreApplication.translate("Nugget", u" Choose Gestalt File", None)) self.chooseGestaltBtn.setText(QCoreApplication.translate("Nugget", u" Choose Gestalt File", None))
self.applyTweaksBtn.setText(QCoreApplication.translate("Nugget", u" Apply Changes", None)) self.applyTweaksBtn.setText(QCoreApplication.translate("Nugget", u" Apply Changes", None))
self.statusLbl.setText(QCoreApplication.translate("Nugget", u"Ready!", None)) self.statusLbl.setText(QCoreApplication.translate("Nugget", u"Ready!", None))
self.skipSetupOnLbl.setText(QCoreApplication.translate("Nugget", u"Note: Skip Setup is currently turned on.", None))
self.removeTweaksBtn.setText(QCoreApplication.translate("Nugget", u"Remove All Tweaks", None)) self.removeTweaksBtn.setText(QCoreApplication.translate("Nugget", u"Remove All Tweaks", None))
self.resetGestaltBtn.setText(QCoreApplication.translate("Nugget", u"Reset Mobile Gestalt", None)) self.resetGestaltBtn.setText(QCoreApplication.translate("Nugget", u"Reset Mobile Gestalt", None))
self.springboardOptionsLbl1.setText(QCoreApplication.translate("Nugget", u"Nugget Settings", None)) self.springboardOptionsLbl1.setText(QCoreApplication.translate("Nugget", u"Nugget Settings", None))
self.allowWifiApplyingChk.setText(QCoreApplication.translate("Nugget", u"Allow Applying Over WiFi", None)) self.allowWifiApplyingChk.setText(QCoreApplication.translate("Nugget", u"Allow Applying Over WiFi", None))
self.autoRebootChk.setText(QCoreApplication.translate("Nugget", u"Auto Reboot After Applying", None)) self.autoRebootChk.setText(QCoreApplication.translate("Nugget", u"Auto Reboot After Applying", None))
self.showRiskyChk.setText(QCoreApplication.translate("Nugget", u"Show Risky Tweak Options", None)) self.showRiskyChk.setText(QCoreApplication.translate("Nugget", u"Show Risky Tweak Options", None))
#if QT_CONFIG(tooltip)
self.showAllSpoofableChk.setToolTip(QCoreApplication.translate("Nugget", u"Show models for other device types in the AI device spoofing tab.", None))
#endif // QT_CONFIG(tooltip)
#if QT_CONFIG(statustip)
self.showAllSpoofableChk.setStatusTip("")
#endif // QT_CONFIG(statustip)
#if QT_CONFIG(whatsthis)
self.showAllSpoofableChk.setWhatsThis("")
#endif // QT_CONFIG(whatsthis)
self.showAllSpoofableChk.setText(QCoreApplication.translate("Nugget", u"Show All Spoofable Models", None))
self.skipSetupChk.setText(QCoreApplication.translate("Nugget", u"Skip Setup * (non-exploit files only)", None)) self.skipSetupChk.setText(QCoreApplication.translate("Nugget", u"Skip Setup * (non-exploit files only)", None))
self.supervisionChk.setText(QCoreApplication.translate("Nugget", u"Enable Supervision * (requires Skip Setup)", None)) self.supervisionChk.setText(QCoreApplication.translate("Nugget", u"Enable Supervision * (requires Skip Setup)", None))
self.supervisionOrganization.setPlaceholderText(QCoreApplication.translate("Nugget", u"Enter Organization Name", None)) self.supervisionOrganization.setPlaceholderText(QCoreApplication.translate("Nugget", u"Enter Organization Name", None))

View File

@@ -3,7 +3,7 @@
################################################################################ ################################################################################
## Form generated from reading UI file 'mainwindow.ui' ## Form generated from reading UI file 'mainwindow.ui'
## ##
## Created by: Qt User Interface Compiler version 6.7.2 ## Created by: Qt User Interface Compiler version 6.8.1
## ##
## WARNING! All changes made in this file will be lost when recompiling UI file! ## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################ ################################################################################
@@ -15,10 +15,11 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon, QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter, QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform) QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QFrame, from PySide6.QtWidgets import (QAbstractScrollArea, QApplication, QCheckBox, QComboBox,
QHBoxLayout, QLabel, QLineEdit, QMainWindow, QFrame, QHBoxLayout, QLabel, QLineEdit,
QProgressBar, QScrollArea, QSizePolicy, QSpacerItem, QMainWindow, QProgressBar, QScrollArea, QSizePolicy,
QStackedWidget, QToolButton, QVBoxLayout, QWidget) QSpacerItem, QStackedWidget, QToolButton, QVBoxLayout,
QWidget)
import resources_rc import resources_rc
class Ui_Nugget(object): class Ui_Nugget(object):
@@ -306,20 +307,6 @@ class Ui_Nugget(object):
self.verticalLayout.addWidget(self.homePageBtn) self.verticalLayout.addWidget(self.homePageBtn)
self.explorePageBtn = QToolButton(self.sidebar)
self.explorePageBtn.setObjectName(u"explorePageBtn")
self.explorePageBtn.setEnabled(True)
sizePolicy2.setHeightForWidth(self.explorePageBtn.sizePolicy().hasHeightForWidth())
self.explorePageBtn.setSizePolicy(sizePolicy2)
icon3 = QIcon()
icon3.addFile(u":/icon/compass.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.explorePageBtn.setIcon(icon3)
self.explorePageBtn.setCheckable(True)
self.explorePageBtn.setAutoExclusive(True)
self.explorePageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.explorePageBtn)
self.sidebarDiv1 = QFrame(self.sidebar) self.sidebarDiv1 = QFrame(self.sidebar)
self.sidebarDiv1.setObjectName(u"sidebarDiv1") self.sidebarDiv1.setObjectName(u"sidebarDiv1")
self.sidebarDiv1.setStyleSheet(u"QFrame {\n" self.sidebarDiv1.setStyleSheet(u"QFrame {\n"
@@ -334,9 +321,9 @@ class Ui_Nugget(object):
self.gestaltPageBtn.setObjectName(u"gestaltPageBtn") self.gestaltPageBtn.setObjectName(u"gestaltPageBtn")
sizePolicy2.setHeightForWidth(self.gestaltPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.gestaltPageBtn.sizePolicy().hasHeightForWidth())
self.gestaltPageBtn.setSizePolicy(sizePolicy2) self.gestaltPageBtn.setSizePolicy(sizePolicy2)
icon4 = QIcon() icon3 = QIcon()
icon4.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) icon3.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.gestaltPageBtn.setIcon(icon4) self.gestaltPageBtn.setIcon(icon3)
self.gestaltPageBtn.setIconSize(QSize(24, 28)) self.gestaltPageBtn.setIconSize(QSize(24, 28))
self.gestaltPageBtn.setCheckable(True) self.gestaltPageBtn.setCheckable(True)
self.gestaltPageBtn.setAutoExclusive(True) self.gestaltPageBtn.setAutoExclusive(True)
@@ -352,9 +339,9 @@ class Ui_Nugget(object):
font = QFont() font = QFont()
font.setFamilies([u".AppleSystemUIFont"]) font.setFamilies([u".AppleSystemUIFont"])
self.featureFlagsPageBtn.setFont(font) self.featureFlagsPageBtn.setFont(font)
icon5 = QIcon() icon4 = QIcon()
icon5.addFile(u":/icon/flag.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) icon4.addFile(u":/icon/flag.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.featureFlagsPageBtn.setIcon(icon5) self.featureFlagsPageBtn.setIcon(icon4)
self.featureFlagsPageBtn.setCheckable(True) self.featureFlagsPageBtn.setCheckable(True)
self.featureFlagsPageBtn.setAutoExclusive(True) self.featureFlagsPageBtn.setAutoExclusive(True)
self.featureFlagsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.featureFlagsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -365,9 +352,9 @@ class Ui_Nugget(object):
self.euEnablerPageBtn.setObjectName(u"euEnablerPageBtn") self.euEnablerPageBtn.setObjectName(u"euEnablerPageBtn")
sizePolicy2.setHeightForWidth(self.euEnablerPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.euEnablerPageBtn.sizePolicy().hasHeightForWidth())
self.euEnablerPageBtn.setSizePolicy(sizePolicy2) self.euEnablerPageBtn.setSizePolicy(sizePolicy2)
icon6 = QIcon() icon5 = QIcon()
icon6.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) icon5.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.euEnablerPageBtn.setIcon(icon6) self.euEnablerPageBtn.setIcon(icon5)
self.euEnablerPageBtn.setCheckable(True) self.euEnablerPageBtn.setCheckable(True)
self.euEnablerPageBtn.setAutoExclusive(True) self.euEnablerPageBtn.setAutoExclusive(True)
self.euEnablerPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.euEnablerPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -378,9 +365,9 @@ class Ui_Nugget(object):
self.springboardOptionsPageBtn.setObjectName(u"springboardOptionsPageBtn") self.springboardOptionsPageBtn.setObjectName(u"springboardOptionsPageBtn")
sizePolicy2.setHeightForWidth(self.springboardOptionsPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.springboardOptionsPageBtn.sizePolicy().hasHeightForWidth())
self.springboardOptionsPageBtn.setSizePolicy(sizePolicy2) self.springboardOptionsPageBtn.setSizePolicy(sizePolicy2)
icon7 = QIcon() icon6 = QIcon()
icon7.addFile(u":/icon/app-indicator.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) icon6.addFile(u":/icon/app-indicator.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.springboardOptionsPageBtn.setIcon(icon7) self.springboardOptionsPageBtn.setIcon(icon6)
self.springboardOptionsPageBtn.setCheckable(True) self.springboardOptionsPageBtn.setCheckable(True)
self.springboardOptionsPageBtn.setAutoExclusive(True) self.springboardOptionsPageBtn.setAutoExclusive(True)
self.springboardOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.springboardOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -391,15 +378,29 @@ class Ui_Nugget(object):
self.internalOptionsPageBtn.setObjectName(u"internalOptionsPageBtn") self.internalOptionsPageBtn.setObjectName(u"internalOptionsPageBtn")
sizePolicy2.setHeightForWidth(self.internalOptionsPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.internalOptionsPageBtn.sizePolicy().hasHeightForWidth())
self.internalOptionsPageBtn.setSizePolicy(sizePolicy2) self.internalOptionsPageBtn.setSizePolicy(sizePolicy2)
icon8 = QIcon() icon7 = QIcon()
icon8.addFile(u":/icon/hdd.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) icon7.addFile(u":/icon/hdd.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.internalOptionsPageBtn.setIcon(icon8) self.internalOptionsPageBtn.setIcon(icon7)
self.internalOptionsPageBtn.setCheckable(True) self.internalOptionsPageBtn.setCheckable(True)
self.internalOptionsPageBtn.setAutoExclusive(True) self.internalOptionsPageBtn.setAutoExclusive(True)
self.internalOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.internalOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.internalOptionsPageBtn) self.verticalLayout.addWidget(self.internalOptionsPageBtn)
self.daemonsPageBtn = QToolButton(self.sidebar)
self.daemonsPageBtn.setObjectName(u"daemonsPageBtn")
self.daemonsPageBtn.setEnabled(True)
sizePolicy2.setHeightForWidth(self.daemonsPageBtn.sizePolicy().hasHeightForWidth())
self.daemonsPageBtn.setSizePolicy(sizePolicy2)
icon8 = QIcon()
icon8.addFile(u":/icon/toggles.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.daemonsPageBtn.setIcon(icon8)
self.daemonsPageBtn.setCheckable(True)
self.daemonsPageBtn.setAutoExclusive(True)
self.daemonsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.daemonsPageBtn)
self.advancedPageBtn = QToolButton(self.sidebar) self.advancedPageBtn = QToolButton(self.sidebar)
self.advancedPageBtn.setObjectName(u"advancedPageBtn") self.advancedPageBtn.setObjectName(u"advancedPageBtn")
sizePolicy2.setHeightForWidth(self.advancedPageBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.advancedPageBtn.sizePolicy().hasHeightForWidth())
@@ -787,12 +788,12 @@ class Ui_Nugget(object):
self.horizontalLayout_2.addWidget(self.disfordottieBtn) self.horizontalLayout_2.addWidget(self.disfordottieBtn)
self.lrdsnowBtn = QToolButton(self.horizontalWidget_21) self.mikasaBtn = QToolButton(self.horizontalWidget_21)
self.lrdsnowBtn.setObjectName(u"lrdsnowBtn") self.mikasaBtn.setObjectName(u"mikasaBtn")
sizePolicy2.setHeightForWidth(self.lrdsnowBtn.sizePolicy().hasHeightForWidth()) sizePolicy2.setHeightForWidth(self.mikasaBtn.sizePolicy().hasHeightForWidth())
self.lrdsnowBtn.setSizePolicy(sizePolicy2) self.mikasaBtn.setSizePolicy(sizePolicy2)
self.lrdsnowBtn.setMinimumSize(QSize(0, 37)) self.mikasaBtn.setMinimumSize(QSize(0, 37))
self.lrdsnowBtn.setStyleSheet(u"QToolButton {\n" self.mikasaBtn.setStyleSheet(u"QToolButton {\n"
" border-top-left-radius: 0px;\n" " border-top-left-radius: 0px;\n"
" border-bottom-left-radius: 0px;\n" " border-bottom-left-radius: 0px;\n"
" background: none;\n" " background: none;\n"
@@ -805,7 +806,7 @@ class Ui_Nugget(object):
" color: #FFFFFF;\n" " color: #FFFFFF;\n"
"}") "}")
self.horizontalLayout_2.addWidget(self.lrdsnowBtn) self.horizontalLayout_2.addWidget(self.mikasaBtn)
self.verticalLayout_25.addWidget(self.horizontalWidget_21) self.verticalLayout_25.addWidget(self.horizontalWidget_21)
@@ -869,11 +870,11 @@ class Ui_Nugget(object):
self.verticalLayout_2.addWidget(self.verticalWidget_2) self.verticalLayout_2.addWidget(self.verticalWidget_2)
self.label = QLabel(self.homePage) self.appVersionLbl = QLabel(self.homePage)
self.label.setObjectName(u"label") self.appVersionLbl.setObjectName(u"appVersionLbl")
self.label.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.appVersionLbl.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.verticalLayout_2.addWidget(self.label) self.verticalLayout_2.addWidget(self.appVersionLbl)
self.pages.addWidget(self.homePage) self.pages.addWidget(self.homePage)
self.gestaltPage = QWidget() self.gestaltPage = QWidget()
@@ -897,7 +898,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_8.setIcon(icon4) self.toolButton_8.setIcon(icon3)
self.toolButton_8.setIconSize(QSize(30, 30)) self.toolButton_8.setIconSize(QSize(30, 30))
self.horizontalLayout_5.addWidget(self.toolButton_8) self.horizontalLayout_5.addWidget(self.toolButton_8)
@@ -1141,6 +1142,11 @@ class Ui_Nugget(object):
self.verticalLayout_8.addWidget(self.aodChk) self.verticalLayout_8.addWidget(self.aodChk)
self.aodVibrancyChk = QCheckBox(self.gestaltPageContent)
self.aodVibrancyChk.setObjectName(u"aodVibrancyChk")
self.verticalLayout_8.addWidget(self.aodVibrancyChk)
self.line_22 = QFrame(self.gestaltPageContent) self.line_22 = QFrame(self.gestaltPageContent)
self.line_22.setObjectName(u"line_22") self.line_22.setObjectName(u"line_22")
self.line_22.setStyleSheet(u"QFrame {\n" self.line_22.setStyleSheet(u"QFrame {\n"
@@ -1235,7 +1241,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_10.setIcon(icon5) self.toolButton_10.setIcon(icon4)
self.horizontalLayout_20.addWidget(self.toolButton_10) self.horizontalLayout_20.addWidget(self.toolButton_10)
@@ -1341,7 +1347,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_11.setIcon(icon6) self.toolButton_11.setIcon(icon5)
self.horizontalLayout_21.addWidget(self.toolButton_11) self.horizontalLayout_21.addWidget(self.toolButton_11)
@@ -1381,7 +1387,18 @@ class Ui_Nugget(object):
self.verticalLayout_17.addWidget(self.line_13) self.verticalLayout_17.addWidget(self.line_13)
self.euEnablerPageContent = QWidget(self.euEnablerPage) self.scrollArea_2 = QScrollArea(self.euEnablerPage)
self.scrollArea_2.setObjectName(u"scrollArea_2")
self.scrollArea_2.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
self.scrollArea_2.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.scrollArea_2.setSizeAdjustPolicy(QAbstractScrollArea.AdjustIgnored)
self.scrollArea_2.setWidgetResizable(True)
self.scrollAreaWidgetContents_2 = QWidget()
self.scrollAreaWidgetContents_2.setObjectName(u"scrollAreaWidgetContents_2")
self.scrollAreaWidgetContents_2.setGeometry(QRect(0, 0, 660, 573))
self.verticalLayout_37 = QVBoxLayout(self.scrollAreaWidgetContents_2)
self.verticalLayout_37.setObjectName(u"verticalLayout_37")
self.euEnablerPageContent = QWidget(self.scrollAreaWidgetContents_2)
self.euEnablerPageContent.setObjectName(u"euEnablerPageContent") self.euEnablerPageContent.setObjectName(u"euEnablerPageContent")
self.euEnablerPageContent.setEnabled(False) self.euEnablerPageContent.setEnabled(False)
self.verticalLayout_16 = QVBoxLayout(self.euEnablerPageContent) self.verticalLayout_16 = QVBoxLayout(self.euEnablerPageContent)
@@ -1587,6 +1604,18 @@ class Ui_Nugget(object):
self.verticalLayout_34.addWidget(self.spoofedModelDrp) self.verticalLayout_34.addWidget(self.spoofedModelDrp)
self.spoofHardwareChk = QCheckBox(self.aiEnablerContent)
self.spoofHardwareChk.setObjectName(u"spoofHardwareChk")
self.spoofHardwareChk.setChecked(True)
self.verticalLayout_34.addWidget(self.spoofHardwareChk)
self.spoofCPUChk = QCheckBox(self.aiEnablerContent)
self.spoofCPUChk.setObjectName(u"spoofCPUChk")
self.spoofCPUChk.setChecked(True)
self.verticalLayout_34.addWidget(self.spoofCPUChk)
self.verticalLayout_16.addWidget(self.aiEnablerContent) self.verticalLayout_16.addWidget(self.aiEnablerContent)
@@ -1595,7 +1624,11 @@ class Ui_Nugget(object):
self.verticalLayout_16.addItem(self.verticalSpacer_7) self.verticalLayout_16.addItem(self.verticalSpacer_7)
self.verticalLayout_17.addWidget(self.euEnablerPageContent) self.verticalLayout_37.addWidget(self.euEnablerPageContent)
self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_2)
self.verticalLayout_17.addWidget(self.scrollArea_2)
self.pages.addWidget(self.euEnablerPage) self.pages.addWidget(self.euEnablerPage)
self.springboardOptionsPage = QWidget() self.springboardOptionsPage = QWidget()
@@ -1619,7 +1652,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_7.setIcon(icon7) self.toolButton_7.setIcon(icon6)
self.horizontalLayout_13.addWidget(self.toolButton_7) self.horizontalLayout_13.addWidget(self.toolButton_7)
@@ -1745,7 +1778,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_101.setIcon(icon8) self.toolButton_101.setIcon(icon7)
self.horizontalLayout_201.addWidget(self.toolButton_101) self.horizontalLayout_201.addWidget(self.toolButton_101)
@@ -1905,12 +1938,12 @@ class Ui_Nugget(object):
self.verticalLayout_141.addWidget(self.internalOptionsPageContent) self.verticalLayout_141.addWidget(self.internalOptionsPageContent)
self.pages.addWidget(self.internalOptionsPage) self.pages.addWidget(self.internalOptionsPage)
self.advancedOptionsPage = QWidget() self.daemonsPage = QWidget()
self.advancedOptionsPage.setObjectName(u"advancedOptionsPage") self.daemonsPage.setObjectName(u"daemonsPage")
self.verticalLayout_142 = QVBoxLayout(self.advancedOptionsPage) self.verticalLayout_142 = QVBoxLayout(self.daemonsPage)
self.verticalLayout_142.setObjectName(u"verticalLayout_142") self.verticalLayout_142.setObjectName(u"verticalLayout_142")
self.verticalLayout_142.setContentsMargins(0, 0, 0, 0) self.verticalLayout_142.setContentsMargins(0, 0, 0, 0)
self.horizontalWidget_52 = QWidget(self.advancedOptionsPage) self.horizontalWidget_52 = QWidget(self.daemonsPage)
self.horizontalWidget_52.setObjectName(u"horizontalWidget_52") self.horizontalWidget_52.setObjectName(u"horizontalWidget_52")
self.horizontalLayout_202 = QHBoxLayout(self.horizontalWidget_52) self.horizontalLayout_202 = QHBoxLayout(self.horizontalWidget_52)
self.horizontalLayout_202.setSpacing(10) self.horizontalLayout_202.setSpacing(10)
@@ -1918,7 +1951,7 @@ class Ui_Nugget(object):
self.horizontalLayout_202.setContentsMargins(0, 9, 0, 9) self.horizontalLayout_202.setContentsMargins(0, 9, 0, 9)
self.toolButton_102 = QToolButton(self.horizontalWidget_52) self.toolButton_102 = QToolButton(self.horizontalWidget_52)
self.toolButton_102.setObjectName(u"toolButton_102") self.toolButton_102.setObjectName(u"toolButton_102")
self.toolButton_102.setEnabled(False) self.toolButton_102.setEnabled(True)
self.toolButton_102.setStyleSheet(u"QToolButton {\n" self.toolButton_102.setStyleSheet(u"QToolButton {\n"
" icon-size: 24px;\n" " icon-size: 24px;\n"
" background-color: transparent;\n" " background-color: transparent;\n"
@@ -1926,7 +1959,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_102.setIcon(icon9) self.toolButton_102.setIcon(icon8)
self.horizontalLayout_202.addWidget(self.toolButton_102) self.horizontalLayout_202.addWidget(self.toolButton_102)
@@ -1936,15 +1969,16 @@ class Ui_Nugget(object):
self.verticalLayout_122.setSpacing(6) self.verticalLayout_122.setSpacing(6)
self.verticalLayout_122.setObjectName(u"verticalLayout_122") self.verticalLayout_122.setObjectName(u"verticalLayout_122")
self.verticalLayout_122.setContentsMargins(0, 0, 0, 0) self.verticalLayout_122.setContentsMargins(0, 0, 0, 0)
self.advancedOptionsLbl = QLabel(self.verticalWidget_42) self.daemonsLbl = QLabel(self.verticalWidget_42)
self.advancedOptionsLbl.setObjectName(u"advancedOptionsLbl") self.daemonsLbl.setObjectName(u"daemonsLbl")
self.advancedOptionsLbl.setFont(font1) self.daemonsLbl.setFont(font1)
self.verticalLayout_122.addWidget(self.advancedOptionsLbl) self.verticalLayout_122.addWidget(self.daemonsLbl)
self.verticalSpacer_181 = QSpacerItem(20, 16, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed) self.modifyDaemonsChk = QCheckBox(self.verticalWidget_42)
self.modifyDaemonsChk.setObjectName(u"modifyDaemonsChk")
self.verticalLayout_122.addItem(self.verticalSpacer_181) self.verticalLayout_122.addWidget(self.modifyDaemonsChk)
self.horizontalLayout_202.addWidget(self.verticalWidget_42) self.horizontalLayout_202.addWidget(self.verticalWidget_42)
@@ -1956,7 +1990,7 @@ class Ui_Nugget(object):
self.verticalLayout_142.addWidget(self.horizontalWidget_52) self.verticalLayout_142.addWidget(self.horizontalWidget_52)
self.line_122 = QFrame(self.advancedOptionsPage) self.line_122 = QFrame(self.daemonsPage)
self.line_122.setObjectName(u"line_122") self.line_122.setObjectName(u"line_122")
self.line_122.setStyleSheet(u"QFrame {\n" self.line_122.setStyleSheet(u"QFrame {\n"
" color: #414141;\n" " color: #414141;\n"
@@ -1966,16 +2000,161 @@ class Ui_Nugget(object):
self.verticalLayout_142.addWidget(self.line_122) self.verticalLayout_142.addWidget(self.line_122)
self.regularDomainsLbl = QLabel(self.daemonsPage)
self.regularDomainsLbl.setObjectName(u"regularDomainsLbl")
self.verticalLayout_142.addWidget(self.regularDomainsLbl)
self.daemonsPageContent = QWidget(self.daemonsPage)
self.daemonsPageContent.setObjectName(u"daemonsPageContent")
self.daemonsPageContent.setEnabled(False)
self.verticalLayout_132 = QVBoxLayout(self.daemonsPageContent)
self.verticalLayout_132.setObjectName(u"verticalLayout_132")
self.verticalLayout_132.setContentsMargins(0, 0, 0, 0)
self.otadChk = QCheckBox(self.daemonsPageContent)
self.otadChk.setObjectName(u"otadChk")
self.verticalLayout_132.addWidget(self.otadChk)
self.usageTrackingAgentChk = QCheckBox(self.daemonsPageContent)
self.usageTrackingAgentChk.setObjectName(u"usageTrackingAgentChk")
self.verticalLayout_132.addWidget(self.usageTrackingAgentChk)
self.screenTimeChk = QCheckBox(self.daemonsPageContent)
self.screenTimeChk.setObjectName(u"screenTimeChk")
self.verticalLayout_132.addWidget(self.screenTimeChk)
self.clearScreenTimeAgentChk = QCheckBox(self.daemonsPageContent)
self.clearScreenTimeAgentChk.setObjectName(u"clearScreenTimeAgentChk")
self.verticalLayout_132.addWidget(self.clearScreenTimeAgentChk)
self.crashReportsChk = QCheckBox(self.daemonsPageContent)
self.crashReportsChk.setObjectName(u"crashReportsChk")
self.verticalLayout_132.addWidget(self.crashReportsChk)
self.atwakeupChk = QCheckBox(self.daemonsPageContent)
self.atwakeupChk.setObjectName(u"atwakeupChk")
self.verticalLayout_132.addWidget(self.atwakeupChk)
self.line_25 = QFrame(self.daemonsPageContent)
self.line_25.setObjectName(u"line_25")
self.line_25.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_25.setFrameShadow(QFrame.Plain)
self.line_25.setFrameShape(QFrame.Shape.HLine)
self.verticalLayout_132.addWidget(self.line_25)
self.gameCenterChk = QCheckBox(self.daemonsPageContent)
self.gameCenterChk.setObjectName(u"gameCenterChk")
self.verticalLayout_132.addWidget(self.gameCenterChk)
self.tipsChk = QCheckBox(self.daemonsPageContent)
self.tipsChk.setObjectName(u"tipsChk")
self.verticalLayout_132.addWidget(self.tipsChk)
self.vpndChk = QCheckBox(self.daemonsPageContent)
self.vpndChk.setObjectName(u"vpndChk")
self.verticalLayout_132.addWidget(self.vpndChk)
self.wapicChk = QCheckBox(self.daemonsPageContent)
self.wapicChk.setObjectName(u"wapicChk")
self.verticalLayout_132.addWidget(self.wapicChk)
self.healthdChk = QCheckBox(self.daemonsPageContent)
self.healthdChk.setObjectName(u"healthdChk")
self.verticalLayout_132.addWidget(self.healthdChk)
self.verticalSpacer_62 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_132.addItem(self.verticalSpacer_62)
self.verticalLayout_142.addWidget(self.daemonsPageContent)
self.pages.addWidget(self.daemonsPage)
self.advancedOptionsPage = QWidget()
self.advancedOptionsPage.setObjectName(u"advancedOptionsPage")
self.verticalLayout_143 = QVBoxLayout(self.advancedOptionsPage)
self.verticalLayout_143.setObjectName(u"verticalLayout_143")
self.verticalLayout_143.setContentsMargins(0, 0, 0, 0)
self.horizontalWidget_53 = QWidget(self.advancedOptionsPage)
self.horizontalWidget_53.setObjectName(u"horizontalWidget_53")
self.horizontalLayout_203 = QHBoxLayout(self.horizontalWidget_53)
self.horizontalLayout_203.setSpacing(10)
self.horizontalLayout_203.setObjectName(u"horizontalLayout_203")
self.horizontalLayout_203.setContentsMargins(0, 9, 0, 9)
self.toolButton_103 = QToolButton(self.horizontalWidget_53)
self.toolButton_103.setObjectName(u"toolButton_103")
self.toolButton_103.setEnabled(False)
self.toolButton_103.setStyleSheet(u"QToolButton {\n"
" icon-size: 24px;\n"
" background-color: transparent;\n"
" padding-left: 0px;\n"
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_103.setIcon(icon9)
self.horizontalLayout_203.addWidget(self.toolButton_103)
self.verticalWidget_43 = QWidget(self.horizontalWidget_53)
self.verticalWidget_43.setObjectName(u"verticalWidget_43")
self.verticalLayout_123 = QVBoxLayout(self.verticalWidget_43)
self.verticalLayout_123.setSpacing(6)
self.verticalLayout_123.setObjectName(u"verticalLayout_123")
self.verticalLayout_123.setContentsMargins(0, 0, 0, 0)
self.advancedOptionsLbl = QLabel(self.verticalWidget_43)
self.advancedOptionsLbl.setObjectName(u"advancedOptionsLbl")
self.advancedOptionsLbl.setFont(font1)
self.verticalLayout_123.addWidget(self.advancedOptionsLbl)
self.verticalSpacer_181 = QSpacerItem(20, 16, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_123.addItem(self.verticalSpacer_181)
self.horizontalLayout_203.addWidget(self.verticalWidget_43)
self.horizontalSpacer_73 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_203.addItem(self.horizontalSpacer_73)
self.verticalLayout_143.addWidget(self.horizontalWidget_53)
self.line_123 = QFrame(self.advancedOptionsPage)
self.line_123.setObjectName(u"line_123")
self.line_123.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_123.setFrameShadow(QFrame.Plain)
self.line_123.setFrameShape(QFrame.Shape.HLine)
self.verticalLayout_143.addWidget(self.line_123)
self.advancedOptionsPageContent = QWidget(self.advancedOptionsPage) self.advancedOptionsPageContent = QWidget(self.advancedOptionsPage)
self.advancedOptionsPageContent.setObjectName(u"advancedOptionsPageContent") self.advancedOptionsPageContent.setObjectName(u"advancedOptionsPageContent")
self.advancedOptionsPageContent.setEnabled(True) self.advancedOptionsPageContent.setEnabled(True)
self.verticalLayout_132 = QVBoxLayout(self.advancedOptionsPageContent) self.verticalLayout_133 = QVBoxLayout(self.advancedOptionsPageContent)
self.verticalLayout_132.setObjectName(u"verticalLayout_132") self.verticalLayout_133.setObjectName(u"verticalLayout_133")
self.verticalLayout_132.setContentsMargins(0, 0, 0, 0) self.verticalLayout_133.setContentsMargins(0, 0, 0, 0)
self.label_17 = QLabel(self.advancedOptionsPageContent) self.label_17 = QLabel(self.advancedOptionsPageContent)
self.label_17.setObjectName(u"label_17") self.label_17.setObjectName(u"label_17")
self.verticalLayout_132.addWidget(self.label_17) self.verticalLayout_133.addWidget(self.label_17)
self.line_191 = QFrame(self.advancedOptionsPageContent) self.line_191 = QFrame(self.advancedOptionsPageContent)
self.line_191.setObjectName(u"line_191") self.line_191.setObjectName(u"line_191")
@@ -1985,12 +2164,17 @@ class Ui_Nugget(object):
self.line_191.setFrameShadow(QFrame.Plain) self.line_191.setFrameShadow(QFrame.Plain)
self.line_191.setFrameShape(QFrame.Shape.HLine) self.line_191.setFrameShape(QFrame.Shape.HLine)
self.verticalLayout_132.addWidget(self.line_191) self.verticalLayout_133.addWidget(self.line_191)
self.disableOTAChk = QCheckBox(self.advancedOptionsPageContent) self.disableOTAChk = QCheckBox(self.advancedOptionsPageContent)
self.disableOTAChk.setObjectName(u"disableOTAChk") self.disableOTAChk.setObjectName(u"disableOTAChk")
self.verticalLayout_132.addWidget(self.disableOTAChk) self.verticalLayout_133.addWidget(self.disableOTAChk)
self.thermalmonitordChk = QCheckBox(self.advancedOptionsPageContent)
self.thermalmonitordChk.setObjectName(u"thermalmonitordChk")
self.verticalLayout_133.addWidget(self.thermalmonitordChk)
self.line_181 = QFrame(self.advancedOptionsPageContent) self.line_181 = QFrame(self.advancedOptionsPageContent)
self.line_181.setObjectName(u"line_181") self.line_181.setObjectName(u"line_181")
@@ -2000,12 +2184,12 @@ class Ui_Nugget(object):
self.line_181.setFrameShadow(QFrame.Plain) self.line_181.setFrameShadow(QFrame.Plain)
self.line_181.setFrameShape(QFrame.Shape.HLine) self.line_181.setFrameShape(QFrame.Shape.HLine)
self.verticalLayout_132.addWidget(self.line_181) self.verticalLayout_133.addWidget(self.line_181)
self.enableResolutionChk = QCheckBox(self.advancedOptionsPageContent) self.enableResolutionChk = QCheckBox(self.advancedOptionsPageContent)
self.enableResolutionChk.setObjectName(u"enableResolutionChk") self.enableResolutionChk.setObjectName(u"enableResolutionChk")
self.verticalLayout_132.addWidget(self.enableResolutionChk) self.verticalLayout_133.addWidget(self.enableResolutionChk)
self.resChangerContent = QWidget(self.advancedOptionsPageContent) self.resChangerContent = QWidget(self.advancedOptionsPageContent)
self.resChangerContent.setObjectName(u"resChangerContent") self.resChangerContent.setObjectName(u"resChangerContent")
@@ -2081,14 +2265,14 @@ class Ui_Nugget(object):
self.verticalLayout_35.addLayout(self.resolutionContent) self.verticalLayout_35.addLayout(self.resolutionContent)
self.verticalLayout_132.addWidget(self.resChangerContent) self.verticalLayout_133.addWidget(self.resChangerContent)
self.verticalSpacer_62 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) self.verticalSpacer_63 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_132.addItem(self.verticalSpacer_62) self.verticalLayout_133.addItem(self.verticalSpacer_63)
self.verticalLayout_142.addWidget(self.advancedOptionsPageContent) self.verticalLayout_143.addWidget(self.advancedOptionsPageContent)
self.pages.addWidget(self.advancedOptionsPage) self.pages.addWidget(self.advancedOptionsPage)
self.applyPage = QWidget() self.applyPage = QWidget()
@@ -2220,6 +2404,13 @@ class Ui_Nugget(object):
self.verticalLayout_24.addWidget(self.restoreProgressBar, 0, Qt.AlignHCenter) self.verticalLayout_24.addWidget(self.restoreProgressBar, 0, Qt.AlignHCenter)
self.skipSetupOnLbl = QLabel(self.verticalWidget2)
self.skipSetupOnLbl.setObjectName(u"skipSetupOnLbl")
self.skipSetupOnLbl.setFont(font1)
self.skipSetupOnLbl.setAlignment(Qt.AlignCenter)
self.verticalLayout_24.addWidget(self.skipSetupOnLbl)
self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_24.addItem(self.verticalSpacer_2) self.verticalLayout_24.addItem(self.verticalSpacer_2)
@@ -2324,7 +2515,7 @@ class Ui_Nugget(object):
self._21.setContentsMargins(0, 0, 0, 0) self._21.setContentsMargins(0, 0, 0, 0)
self.allowWifiApplyingChk = QCheckBox(self.settingsPageContent) self.allowWifiApplyingChk = QCheckBox(self.settingsPageContent)
self.allowWifiApplyingChk.setObjectName(u"allowWifiApplyingChk") self.allowWifiApplyingChk.setObjectName(u"allowWifiApplyingChk")
self.allowWifiApplyingChk.setChecked(True) self.allowWifiApplyingChk.setChecked(False)
self._21.addWidget(self.allowWifiApplyingChk) self._21.addWidget(self.allowWifiApplyingChk)
@@ -2339,6 +2530,11 @@ class Ui_Nugget(object):
self._21.addWidget(self.showRiskyChk) self._21.addWidget(self.showRiskyChk)
self.showAllSpoofableChk = QCheckBox(self.settingsPageContent)
self.showAllSpoofableChk.setObjectName(u"showAllSpoofableChk")
self._21.addWidget(self.showAllSpoofableChk)
self.line_24 = QFrame(self.settingsPageContent) self.line_24 = QFrame(self.settingsPageContent)
self.line_24.setObjectName(u"line_24") self.line_24.setObjectName(u"line_24")
self.line_24.setStyleSheet(u"QFrame {\n" self.line_24.setStyleSheet(u"QFrame {\n"
@@ -2426,7 +2622,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_13.setIcon(icon6) self.toolButton_13.setIcon(icon5)
self.horizontalLayout_28.addWidget(self.toolButton_13) self.horizontalLayout_28.addWidget(self.toolButton_13)
@@ -2692,7 +2888,9 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.toolButton_16.setIcon(icon3) icon22 = QIcon()
icon22.addFile(u":/icon/compass.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.toolButton_16.setIcon(icon22)
self.horizontalLayout_31.addWidget(self.toolButton_16) self.horizontalLayout_31.addWidget(self.toolButton_16)
@@ -2762,7 +2960,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n" " padding-right: 5px;\n"
" border-radius: 0px;\n" " border-radius: 0px;\n"
"}") "}")
self.themesBtn.setIcon(icon4) self.themesBtn.setIcon(icon3)
self.themesBtn.setIconSize(QSize(30, 30)) self.themesBtn.setIconSize(QSize(30, 30))
self.horizontalLayout_23.addWidget(self.themesBtn) self.horizontalLayout_23.addWidget(self.themesBtn)
@@ -2808,9 +3006,9 @@ class Ui_Nugget(object):
self.importThemeZipBtn = QToolButton(self.horizontalWidget7) self.importThemeZipBtn = QToolButton(self.horizontalWidget7)
self.importThemeZipBtn.setObjectName(u"importThemeZipBtn") self.importThemeZipBtn.setObjectName(u"importThemeZipBtn")
icon22 = QIcon() icon23 = QIcon()
icon22.addFile(u":/icon/file-earmark-zip.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off) icon23.addFile(u":/icon/file-earmark-zip.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.importThemeZipBtn.setIcon(icon22) self.importThemeZipBtn.setIcon(icon23)
self.horizontalLayout_26.addWidget(self.importThemeZipBtn) self.horizontalLayout_26.addWidget(self.importThemeZipBtn)
@@ -2922,36 +3120,39 @@ class Ui_Nugget(object):
def retranslateUi(self, Nugget): def retranslateUi(self, Nugget):
Nugget.setWindowTitle(QCoreApplication.translate("Nugget", u"Nugget", None)) Nugget.setWindowTitle(QCoreApplication.translate("Nugget", u"Nugget", None))
self.centralwidget.setProperty("cls", QCoreApplication.translate("Nugget", u"central", None)) self.centralwidget.setProperty(u"cls", QCoreApplication.translate("Nugget", u"central", None))
self.devicePicker.setPlaceholderText(QCoreApplication.translate("Nugget", u"None", None)) self.devicePicker.setPlaceholderText(QCoreApplication.translate("Nugget", u"None", None))
self.refreshBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"btn", None)) self.refreshBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"btn", None))
self.titleBar.setText(QCoreApplication.translate("Nugget", u"Nugget", None)) self.titleBar.setText(QCoreApplication.translate("Nugget", u"Nugget", None))
self.homePageBtn.setText(QCoreApplication.translate("Nugget", u" Home", None)) self.homePageBtn.setText(QCoreApplication.translate("Nugget", u" Home", None))
self.homePageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.homePageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.explorePageBtn.setText(QCoreApplication.translate("Nugget", u" Explore", None))
self.explorePageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.gestaltPageBtn.setText(QCoreApplication.translate("Nugget", u" Mobile Gestalt", None)) self.gestaltPageBtn.setText(QCoreApplication.translate("Nugget", u" Mobile Gestalt", None))
self.gestaltPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.gestaltPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.featureFlagsPageBtn.setText(QCoreApplication.translate("Nugget", u" Feature Flags", None)) self.featureFlagsPageBtn.setText(QCoreApplication.translate("Nugget", u" Feature Flags", None))
self.featureFlagsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.featureFlagsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.euEnablerPageBtn.setText(QCoreApplication.translate("Nugget", u" Eligibility", None)) self.euEnablerPageBtn.setText(QCoreApplication.translate("Nugget", u" Eligibility", None))
self.euEnablerPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.euEnablerPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.springboardOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Springboard Options", None)) self.springboardOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Springboard Options", None))
self.springboardOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.springboardOptionsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.internalOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Internal Options", None)) self.internalOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Internal Options", None))
self.internalOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.internalOptionsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.daemonsPageBtn.setText(QCoreApplication.translate("Nugget", u" Daemons", None))
self.daemonsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.advancedPageBtn.setText(QCoreApplication.translate("Nugget", u" Risky Options", None)) self.advancedPageBtn.setText(QCoreApplication.translate("Nugget", u" Risky Options", None))
self.advancedPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.advancedPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.applyPageBtn.setText(QCoreApplication.translate("Nugget", u" Apply", None)) self.applyPageBtn.setText(QCoreApplication.translate("Nugget", u" Apply", None))
self.applyPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.applyPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.settingsPageBtn.setText(QCoreApplication.translate("Nugget", u" Settings", None)) self.settingsPageBtn.setText(QCoreApplication.translate("Nugget", u" Settings", None))
self.settingsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None)) self.settingsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.phoneNameLbl.setText(QCoreApplication.translate("Nugget", u"Phone", None)) self.phoneNameLbl.setText(QCoreApplication.translate("Nugget", u"Phone", None))
self.phoneVersionLbl.setText(QCoreApplication.translate("Nugget", u"<a style=\"text-decoration:none; color: white\" href=\"#\">Version</a>", None)) self.phoneVersionLbl.setText(QCoreApplication.translate("Nugget", u"<a style=\"text-decoration:none; color: white\" href=\"#\">Version</a>", None))
self.bigNuggetBtn.setText(QCoreApplication.translate("Nugget", u"...", None)) self.bigNuggetBtn.setText(QCoreApplication.translate("Nugget", u"...", None))
self.label_2.setText(QCoreApplication.translate("Nugget", u"Nugget", None)) self.label_2.setText(QCoreApplication.translate("Nugget", u"Nugget", None))
self.discordBtn.setText(QCoreApplication.translate("Nugget", u" Join the Discord", None)) self.discordBtn.setText(QCoreApplication.translate("Nugget", u" Join the Discord", None))
self.starOnGithubBtn.setText(QCoreApplication.translate("Nugget", u"Star on Github", None)) self.starOnGithubBtn.setText(QCoreApplication.translate("Nugget", u" Star on Github", None))
#if QT_CONFIG(tooltip)
self.leminBtn.setToolTip("")
#endif // QT_CONFIG(tooltip)
self.leminBtn.setText(QCoreApplication.translate("Nugget", u" LeminLimez", None)) self.leminBtn.setText(QCoreApplication.translate("Nugget", u" LeminLimez", None))
self.leminTwitterBtn.setText(QCoreApplication.translate("Nugget", u"...", None)) self.leminTwitterBtn.setText(QCoreApplication.translate("Nugget", u"...", None))
self.leminGithubBtn.setText(QCoreApplication.translate("Nugget", u"...", None)) self.leminGithubBtn.setText(QCoreApplication.translate("Nugget", u"...", None))
@@ -2962,12 +3163,12 @@ class Ui_Nugget(object):
"Sparserestore", None)) "Sparserestore", None))
self.disfordottieBtn.setText(QCoreApplication.translate("Nugget", u"disfordottie\n" self.disfordottieBtn.setText(QCoreApplication.translate("Nugget", u"disfordottie\n"
"Clock Anim, Photos UI", None)) "Clock Anim, Photos UI", None))
self.lrdsnowBtn.setText(QCoreApplication.translate("Nugget", u"lrdsnow\n" self.mikasaBtn.setText(QCoreApplication.translate("Nugget", u"Mikasa\n"
"EU Enabler", None)) "Quiet Daemon", None))
self.toolButton_15.setText(QCoreApplication.translate("Nugget", u"Additional Thanks", None)) self.toolButton_15.setText(QCoreApplication.translate("Nugget", u"Additional Thanks", None))
self.libiBtn.setText(QCoreApplication.translate("Nugget", u"pymobiledevice3", None)) self.libiBtn.setText(QCoreApplication.translate("Nugget", u"pymobiledevice3", None))
self.qtBtn.setText(QCoreApplication.translate("Nugget", u"Qt Creator", None)) self.qtBtn.setText(QCoreApplication.translate("Nugget", u"Qt Creator", None))
self.label.setText(QCoreApplication.translate("Nugget", u"Nugget GUI - Version 4.1", None)) self.appVersionLbl.setText(QCoreApplication.translate("Nugget", u"Nugget GUI - Version %VERSION %BETATAG", None))
self.statusBarLbl.setText(QCoreApplication.translate("Nugget", u"Mobile Gestalt", None)) self.statusBarLbl.setText(QCoreApplication.translate("Nugget", u"Mobile Gestalt", None))
self.mgaWarningLbl.setText(QCoreApplication.translate("Nugget", u"! You will need a MobileGestalt file for this feature. Please select it in the Apply page !", None)) self.mgaWarningLbl.setText(QCoreApplication.translate("Nugget", u"! You will need a MobileGestalt file for this feature. Please select it in the Apply page !", None))
self.label_9.setText(QCoreApplication.translate("Nugget", u"Device Subtype Preset", None)) self.label_9.setText(QCoreApplication.translate("Nugget", u"Device Subtype Preset", None))
@@ -2980,33 +3181,93 @@ class Ui_Nugget(object):
self.dynamicIslandDrp.setItemText(6, QCoreApplication.translate("Nugget", u"2868 (iPhone 16 Pro Max Dynamic Island)", None)) self.dynamicIslandDrp.setItemText(6, QCoreApplication.translate("Nugget", u"2868 (iPhone 16 Pro Max Dynamic Island)", None))
self.dynamicIslandDrp.setCurrentText(QCoreApplication.translate("Nugget", u"None", None)) self.dynamicIslandDrp.setCurrentText(QCoreApplication.translate("Nugget", u"None", None))
#if QT_CONFIG(tooltip)
self.rdarFixChk.setToolTip(QCoreApplication.translate("Nugget", u"Modifies the resolution to improve functionality of the changed device subtype. May cause weird visual bugs.", None))
#endif // QT_CONFIG(tooltip)
self.rdarFixChk.setText(QCoreApplication.translate("Nugget", u"Fix RDAR (modifies resolution)", None)) self.rdarFixChk.setText(QCoreApplication.translate("Nugget", u"Fix RDAR (modifies resolution)", None))
#if QT_CONFIG(tooltip)
self.modelNameChk.setToolTip(QCoreApplication.translate("Nugget", u"Changes the model name in the 'About' page in the Settings app.", None))
#endif // QT_CONFIG(tooltip)
self.modelNameChk.setText(QCoreApplication.translate("Nugget", u"Change Device Model Name", None)) self.modelNameChk.setText(QCoreApplication.translate("Nugget", u"Change Device Model Name", None))
self.modelNameTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Model Name", None)) self.modelNameTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Model Name", None))
#if QT_CONFIG(tooltip)
self.bootChimeChk.setToolTip(QCoreApplication.translate("Nugget", u"Plays a sound when the device shuts down.\n"
"\n"
"After enabling, you can find the option to enable it in 'Accessibility' settings.", None))
#endif // QT_CONFIG(tooltip)
self.bootChimeChk.setText(QCoreApplication.translate("Nugget", u"Enable Boot Chime", None)) self.bootChimeChk.setText(QCoreApplication.translate("Nugget", u"Enable Boot Chime", None))
#if QT_CONFIG(tooltip)
self.chargeLimitChk.setToolTip(QCoreApplication.translate("Nugget", u"Shows the charge limit menu in Settings. Actual limiting may not be functional.", None))
#endif // QT_CONFIG(tooltip)
self.chargeLimitChk.setText(QCoreApplication.translate("Nugget", u"Enable Charge Limit", None)) self.chargeLimitChk.setText(QCoreApplication.translate("Nugget", u"Enable Charge Limit", None))
self.tapToWakeChk.setText(QCoreApplication.translate("Nugget", u"Enable Tap to Wake (for iPhone SEs)", None)) self.tapToWakeChk.setText(QCoreApplication.translate("Nugget", u"Enable Tap to Wake (for iPhone SEs)", None))
#if QT_CONFIG(tooltip)
self.iphone16SettingsChk.setToolTip(QCoreApplication.translate("Nugget", u"Enables Camera Control menu in Settings app and allows for downloading A17 Pro-exclusive apps (when spoofed).", None))
#endif // QT_CONFIG(tooltip)
self.iphone16SettingsChk.setText(QCoreApplication.translate("Nugget", u"Enable iPhone 16 Settings", None)) self.iphone16SettingsChk.setText(QCoreApplication.translate("Nugget", u"Enable iPhone 16 Settings", None))
#if QT_CONFIG(tooltip)
self.parallaxChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables the motion of the wallpaper.", None))
#endif // QT_CONFIG(tooltip)
self.parallaxChk.setText(QCoreApplication.translate("Nugget", u"Disable Wallpaper Parallax", None)) self.parallaxChk.setText(QCoreApplication.translate("Nugget", u"Disable Wallpaper Parallax", None))
self.stageManagerChk.setText(QCoreApplication.translate("Nugget", u"Enable Stage Manager Supported (WARNING: risky on some devices, mainly phones)", None)) self.stageManagerChk.setText(QCoreApplication.translate("Nugget", u"Enable Stage Manager Supported", None))
self.enableMedusaChk.setText(QCoreApplication.translate("Nugget", u"Enable Medusa (iPad Multitasking) (WARNING: may be risky on some phones)", None)) self.enableMedusaChk.setText(QCoreApplication.translate("Nugget", u"Enable Medusa (iPad Multitasking)", None))
self.ipadAppsChk.setText(QCoreApplication.translate("Nugget", u"Allow iPad Apps on iPhone", None)) self.ipadAppsChk.setText(QCoreApplication.translate("Nugget", u"Allow iPad Apps on iPhone", None))
#if QT_CONFIG(tooltip)
self.shutterChk.setToolTip(QCoreApplication.translate("Nugget", u"Sets the device's region to LL/A to bypass certain region restrictions like the forced shutter sound.", None))
#endif // QT_CONFIG(tooltip)
self.shutterChk.setText(QCoreApplication.translate("Nugget", u"Disable Region Restrictions (ie. Shutter Sound)", None)) self.shutterChk.setText(QCoreApplication.translate("Nugget", u"Disable Region Restrictions (ie. Shutter Sound)", None))
self.findMyFriendsChk.setText(QCoreApplication.translate("Nugget", u"Enable Find My Friends", None)) self.findMyFriendsChk.setText(QCoreApplication.translate("Nugget", u"Enable Find My Friends", None))
self.pencilChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Pencil Settings Tab", None)) self.pencilChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Pencil Settings Tab", None))
self.actionButtonChk.setText(QCoreApplication.translate("Nugget", u"Enable Action Button Settings Tab", None)) self.actionButtonChk.setText(QCoreApplication.translate("Nugget", u"Enable Action Button Settings Tab", None))
#if QT_CONFIG(tooltip)
self.internalInstallChk.setToolTip(QCoreApplication.translate("Nugget", u"Use the Metal HUD in any app. Enable Metal HUD through Springboard Options.\n"
"\n"
"Note: OTA updates will be broken until this is disabled.", None))
#endif // QT_CONFIG(tooltip)
self.internalInstallChk.setText(QCoreApplication.translate("Nugget", u"Set as Apple Internal Install (ie Metal HUD in any app)", None)) self.internalInstallChk.setText(QCoreApplication.translate("Nugget", u"Set as Apple Internal Install (ie Metal HUD in any app)", None))
#if QT_CONFIG(tooltip)
self.internalStorageChk.setToolTip(QCoreApplication.translate("Nugget", u"Shows internal files in storage settings.\n"
"\n"
"Note: OTA updates will be broken until this is disabled.", None))
#endif // QT_CONFIG(tooltip)
self.internalStorageChk.setText(QCoreApplication.translate("Nugget", u"Enable Internal Storage (WARNING: risky for some devices, mainly iPads)", None)) self.internalStorageChk.setText(QCoreApplication.translate("Nugget", u"Enable Internal Storage (WARNING: risky for some devices, mainly iPads)", None))
#if QT_CONFIG(tooltip)
self.collisionSOSChk.setToolTip(QCoreApplication.translate("Nugget", u"Shows collision detection in the SOS page in Settings.", None))
#endif // QT_CONFIG(tooltip)
self.collisionSOSChk.setText(QCoreApplication.translate("Nugget", u"Enable Collision SOS", None)) self.collisionSOSChk.setText(QCoreApplication.translate("Nugget", u"Enable Collision SOS", None))
#if QT_CONFIG(tooltip)
self.aodChk.setToolTip(QCoreApplication.translate("Nugget", u"Enable AOD on unsupported devices. May cause burn in, use with caution.", None))
#endif // QT_CONFIG(tooltip)
self.aodChk.setText(QCoreApplication.translate("Nugget", u"Enable Always On Display", None)) self.aodChk.setText(QCoreApplication.translate("Nugget", u"Enable Always On Display", None))
#if QT_CONFIG(tooltip)
self.aodVibrancyChk.setToolTip(QCoreApplication.translate("Nugget", u"Enable this if something is wonky when using the above toggle.", None))
#endif // QT_CONFIG(tooltip)
self.aodVibrancyChk.setText(QCoreApplication.translate("Nugget", u"Enable AOD Vibrancy", None))
self.label_10.setText(QCoreApplication.translate("Nugget", u"Custom Gestalt Keys", None)) self.label_10.setText(QCoreApplication.translate("Nugget", u"Custom Gestalt Keys", None))
self.addGestaltKeyBtn.setText(QCoreApplication.translate("Nugget", u" Add Key", None)) self.addGestaltKeyBtn.setText(QCoreApplication.translate("Nugget", u" Add Key", None))
self.label_12.setText(QCoreApplication.translate("Nugget", u"Warning: Using this feature incorrectly can lead to bootloops and data loss. Only use if you know\n" self.label_12.setText(QCoreApplication.translate("Nugget", u"Warning: Using this feature incorrectly can lead to bootloops and data loss. Only use if you know\n"
"what you are doing.", None)) "what you are doing.", None))
self.internalOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Feature Flags", None)) self.internalOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Feature Flags", None))
#if QT_CONFIG(tooltip)
self.clockAnimChk.setToolTip(QCoreApplication.translate("Nugget", u"Enables an animation when the lock screen clock changes time or style.", None))
#endif // QT_CONFIG(tooltip)
self.clockAnimChk.setText(QCoreApplication.translate("Nugget", u"Enable Lockscreen Clock Animation", None)) self.clockAnimChk.setText(QCoreApplication.translate("Nugget", u"Enable Lockscreen Clock Animation", None))
#if QT_CONFIG(tooltip)
self.lockscreenChk.setToolTip(QCoreApplication.translate("Nugget", u"Enables a button to duplicate the lock screen page in edit mode.\n"
"Enables quickly switching lock screens by holding down and swiping.", None))
#endif // QT_CONFIG(tooltip)
self.lockscreenChk.setText(QCoreApplication.translate("Nugget", u"Enable Duplicate Lockscreen Button and Lockscreen Quickswitch", None)) self.lockscreenChk.setText(QCoreApplication.translate("Nugget", u"Enable Duplicate Lockscreen Button and Lockscreen Quickswitch", None))
#if QT_CONFIG(tooltip)
self.photosChk.setToolTip(QCoreApplication.translate("Nugget", u"Revert the photos app to the iOS 17 style.\n"
"\n"
"Does not work on iOS 18.0 RC.", None))
#endif // QT_CONFIG(tooltip)
self.photosChk.setText(QCoreApplication.translate("Nugget", u"Enable Old Photo UI", None)) self.photosChk.setText(QCoreApplication.translate("Nugget", u"Enable Old Photo UI", None))
#if QT_CONFIG(tooltip)
self.aiChk.setToolTip(QCoreApplication.translate("Nugget", u"Enable the new Siri UI.\n"
"\n"
"Only works on iOS 18.0 beta 1-2.", None))
#endif // QT_CONFIG(tooltip)
self.aiChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Intelligence", None)) self.aiChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Intelligence", None))
self.eligibilityLbl.setText(QCoreApplication.translate("Nugget", u"Eligibility Tweaks", None)) self.eligibilityLbl.setText(QCoreApplication.translate("Nugget", u"Eligibility Tweaks", None))
self.euEnablerEnabledChk.setText(QCoreApplication.translate("Nugget", u"Enable EU Enabler", None)) self.euEnablerEnabledChk.setText(QCoreApplication.translate("Nugget", u"Enable EU Enabler", None))
@@ -3060,13 +3321,27 @@ class Ui_Nugget(object):
self.spoofedModelDrp.setItemText(26, QCoreApplication.translate("Nugget", u"iPad Air (M1) (C) (iPad13,17)", None)) self.spoofedModelDrp.setItemText(26, QCoreApplication.translate("Nugget", u"iPad Air (M1) (C) (iPad13,17)", None))
self.spoofedModelDrp.setCurrentText(QCoreApplication.translate("Nugget", u"Original", None)) self.spoofedModelDrp.setCurrentText(QCoreApplication.translate("Nugget", u"Original", None))
#if QT_CONFIG(tooltip)
self.spoofHardwareChk.setToolTip(QCoreApplication.translate("Nugget", u"Spoofs the device hardware model (ie D83AP)", None))
#endif // QT_CONFIG(tooltip)
self.spoofHardwareChk.setText(QCoreApplication.translate("Nugget", u"Spoof Hardware Model", None))
#if QT_CONFIG(tooltip)
self.spoofCPUChk.setToolTip(QCoreApplication.translate("Nugget", u"Spoofs the device CPU model (ie t8130)", None))
#endif // QT_CONFIG(tooltip)
self.spoofCPUChk.setText(QCoreApplication.translate("Nugget", u"Spoof CPU Model", None))
self.springboardOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Springboard Options", None)) self.springboardOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Springboard Options", None))
self.label_13.setText(QCoreApplication.translate("Nugget", u"Lock Screen Footnote Text", None)) self.label_13.setText(QCoreApplication.translate("Nugget", u"Lock Screen Footnote Text", None))
self.footnoteTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Footnote Text", None)) self.footnoteTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Footnote Text", None))
self.disableLockRespringChk.setText(QCoreApplication.translate("Nugget", u"Disable Lock After Respring", None)) self.disableLockRespringChk.setText(QCoreApplication.translate("Nugget", u"Disable Lock After Respring", None))
self.disableDimmingChk.setText(QCoreApplication.translate("Nugget", u"Disable Screen Dimming While Charging", None)) self.disableDimmingChk.setText(QCoreApplication.translate("Nugget", u"Disable Screen Dimming While Charging", None))
self.disableBatteryAlertsChk.setText(QCoreApplication.translate("Nugget", u"Disable Low Battery Alerts", None)) self.disableBatteryAlertsChk.setText(QCoreApplication.translate("Nugget", u"Disable Low Battery Alerts", None))
#if QT_CONFIG(tooltip)
self.disableCrumbChk.setToolTip(QCoreApplication.translate("Nugget", u"Removes '< PreviousAppName' glyph in Status Bar when being forwarded to another app.", None))
#endif // QT_CONFIG(tooltip)
self.disableCrumbChk.setText(QCoreApplication.translate("Nugget", u"Disable Breadcrumbs", None)) self.disableCrumbChk.setText(QCoreApplication.translate("Nugget", u"Disable Breadcrumbs", None))
#if QT_CONFIG(tooltip)
self.enableSupervisionTextChk.setToolTip(QCoreApplication.translate("Nugget", u"Shows info about the device supervision status and organization at the bottom of the lock screen.", None))
#endif // QT_CONFIG(tooltip)
self.enableSupervisionTextChk.setText(QCoreApplication.translate("Nugget", u"Show Supervision Text on Lock Screen", None)) self.enableSupervisionTextChk.setText(QCoreApplication.translate("Nugget", u"Show Supervision Text on Lock Screen", None))
self.enableAirPlayChk.setText(QCoreApplication.translate("Nugget", u"Enable AirPlay support for Stage Manager", None)) self.enableAirPlayChk.setText(QCoreApplication.translate("Nugget", u"Enable AirPlay support for Stage Manager", None))
self.internalOptionsLbl1.setText(QCoreApplication.translate("Nugget", u"Internal Options", None)) self.internalOptionsLbl1.setText(QCoreApplication.translate("Nugget", u"Internal Options", None))
@@ -3083,6 +3358,56 @@ class Ui_Nugget(object):
self.enableWakeVibrateChk.setText(QCoreApplication.translate("Nugget", u"Vibrate on Raise-to-Wake", None)) self.enableWakeVibrateChk.setText(QCoreApplication.translate("Nugget", u"Vibrate on Raise-to-Wake", None))
self.pasteSoundChk.setText(QCoreApplication.translate("Nugget", u"Play Sound on Paste", None)) self.pasteSoundChk.setText(QCoreApplication.translate("Nugget", u"Play Sound on Paste", None))
self.notifyPastesChk.setText(QCoreApplication.translate("Nugget", u"Show Notifications for System Pastes", None)) self.notifyPastesChk.setText(QCoreApplication.translate("Nugget", u"Show Notifications for System Pastes", None))
self.daemonsLbl.setText(QCoreApplication.translate("Nugget", u"Daemons", None))
self.modifyDaemonsChk.setText(QCoreApplication.translate("Nugget", u"Modify", None))
self.regularDomainsLbl.setText(QCoreApplication.translate("Nugget", u"Note: Even on Sparserestore versions, this uses regular domains. Skip Setup will be applied if you have\n"
"it enabled.", None))
#if QT_CONFIG(tooltip)
self.otadChk.setToolTip(QCoreApplication.translate("Nugget", u"Stops over-the-air updates to prevent auto-downloads.", None))
#endif // QT_CONFIG(tooltip)
self.otadChk.setText(QCoreApplication.translate("Nugget", u"Disable OTA", None))
#if QT_CONFIG(tooltip)
self.usageTrackingAgentChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables usage tracking for improved privacy.", None))
#endif // QT_CONFIG(tooltip)
self.usageTrackingAgentChk.setText(QCoreApplication.translate("Nugget", u"Disable UsageTrackingAgent", None))
#if QT_CONFIG(tooltip)
self.screenTimeChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables Screen Time monitoring features.", None))
#endif // QT_CONFIG(tooltip)
self.screenTimeChk.setText(QCoreApplication.translate("Nugget", u"Disable Screen Time Agent", None))
#if QT_CONFIG(tooltip)
self.clearScreenTimeAgentChk.setToolTip(QCoreApplication.translate("Nugget", u"Deletes the Screen Time Agent preferences file to prevent app lockout set via iCloud.\n"
"\n"
"To work properly, also disable the daemon using the toggle above.", None))
#endif // QT_CONFIG(tooltip)
self.clearScreenTimeAgentChk.setText(QCoreApplication.translate("Nugget", u"Clear ScreenTimeAgent.plist file", None))
#if QT_CONFIG(tooltip)
self.crashReportsChk.setToolTip(QCoreApplication.translate("Nugget", u"Stops logs, dumps, and crash reports collection.", None))
#endif // QT_CONFIG(tooltip)
self.crashReportsChk.setText(QCoreApplication.translate("Nugget", u"Disable Logs, Dumps, and Crash Reports", None))
#if QT_CONFIG(tooltip)
self.atwakeupChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables pinging to sleeping bluetooth devices for improved battery life.", None))
#endif // QT_CONFIG(tooltip)
self.atwakeupChk.setText(QCoreApplication.translate("Nugget", u"Disable ATWAKEUP", None))
#if QT_CONFIG(tooltip)
self.gameCenterChk.setToolTip(QCoreApplication.translate("Nugget", u"Turns off Game Center background services.", None))
#endif // QT_CONFIG(tooltip)
self.gameCenterChk.setText(QCoreApplication.translate("Nugget", u"Disable Game Center", None))
#if QT_CONFIG(tooltip)
self.tipsChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables the Tips service and notifications.", None))
#endif // QT_CONFIG(tooltip)
self.tipsChk.setText(QCoreApplication.translate("Nugget", u"Disable Tips Services", None))
#if QT_CONFIG(tooltip)
self.vpndChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables the Virtual Private Network service.", None))
#endif // QT_CONFIG(tooltip)
self.vpndChk.setText(QCoreApplication.translate("Nugget", u"Disable VPN Service", None))
#if QT_CONFIG(tooltip)
self.wapicChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables the service that deals with errors with WiFi networks with Chinese characters in the name.", None))
#endif // QT_CONFIG(tooltip)
self.wapicChk.setText(QCoreApplication.translate("Nugget", u"Disable Chinese WLAN Service", None))
#if QT_CONFIG(tooltip)
self.healthdChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables HealthKit services used by the health app.", None))
#endif // QT_CONFIG(tooltip)
self.healthdChk.setText(QCoreApplication.translate("Nugget", u"Disable HealthKit", None))
self.advancedOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Risky Options", None)) self.advancedOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Risky Options", None))
self.label_17.setText(QCoreApplication.translate("Nugget", u"Disclaimer:\n" self.label_17.setText(QCoreApplication.translate("Nugget", u"Disclaimer:\n"
"\n" "\n"
@@ -3090,7 +3415,19 @@ class Ui_Nugget(object):
"your device resolution has the potential to brick your device when used improperly.\n" "your device resolution has the potential to brick your device when used improperly.\n"
"\n" "\n"
"Nugget is not responsible if you mess up your device, especially with resolution changer.", None)) "Nugget is not responsible if you mess up your device, especially with resolution changer.", None))
self.disableOTAChk.setText(QCoreApplication.translate("Nugget", u"Disable OTA Updates", None)) #if QT_CONFIG(tooltip)
self.disableOTAChk.setToolTip(QCoreApplication.translate("Nugget", u"Uses the file method. Recommended to disable the daemon instead in the Daemons tab.", None))
#endif // QT_CONFIG(tooltip)
self.disableOTAChk.setText(QCoreApplication.translate("Nugget", u"Disable OTA Updates (file)", None))
#if QT_CONFIG(tooltip)
self.thermalmonitordChk.setToolTip(QCoreApplication.translate("Nugget", u"Disables temperature monitoring daemon to reduce system checks.\n"
"\n"
"Warning: Disabling will cause the battery to show \"Unknown Part\" or \"Unverified\" in Settings.", None))
#endif // QT_CONFIG(tooltip)
self.thermalmonitordChk.setText(QCoreApplication.translate("Nugget", u"Disable thermalmonitord", None))
#if QT_CONFIG(tooltip)
self.enableResolutionChk.setToolTip(QCoreApplication.translate("Nugget", u"Set a custom device screen resolution.", None))
#endif // QT_CONFIG(tooltip)
self.enableResolutionChk.setText(QCoreApplication.translate("Nugget", u"Set a Custom Device Resolution", None)) self.enableResolutionChk.setText(QCoreApplication.translate("Nugget", u"Set a Custom Device Resolution", None))
self.resHeightLbl.setText(QCoreApplication.translate("Nugget", u"Height:", None)) self.resHeightLbl.setText(QCoreApplication.translate("Nugget", u"Height:", None))
self.resHeightTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Resolution Height", None)) self.resHeightTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Resolution Height", None))
@@ -3105,12 +3442,23 @@ class Ui_Nugget(object):
self.chooseGestaltBtn.setText(QCoreApplication.translate("Nugget", u" Choose Gestalt File", None)) self.chooseGestaltBtn.setText(QCoreApplication.translate("Nugget", u" Choose Gestalt File", None))
self.applyTweaksBtn.setText(QCoreApplication.translate("Nugget", u" Apply Changes", None)) self.applyTweaksBtn.setText(QCoreApplication.translate("Nugget", u" Apply Changes", None))
self.statusLbl.setText(QCoreApplication.translate("Nugget", u"Ready!", None)) self.statusLbl.setText(QCoreApplication.translate("Nugget", u"Ready!", None))
self.skipSetupOnLbl.setText(QCoreApplication.translate("Nugget", u"Note: Skip Setup is currently turned on.", None))
self.removeTweaksBtn.setText(QCoreApplication.translate("Nugget", u"Remove All Tweaks", None)) self.removeTweaksBtn.setText(QCoreApplication.translate("Nugget", u"Remove All Tweaks", None))
self.resetGestaltBtn.setText(QCoreApplication.translate("Nugget", u"Reset Mobile Gestalt", None)) self.resetGestaltBtn.setText(QCoreApplication.translate("Nugget", u"Reset Mobile Gestalt", None))
self.springboardOptionsLbl1.setText(QCoreApplication.translate("Nugget", u"Nugget Settings", None)) self.springboardOptionsLbl1.setText(QCoreApplication.translate("Nugget", u"Nugget Settings", None))
self.allowWifiApplyingChk.setText(QCoreApplication.translate("Nugget", u"Allow Applying Over WiFi", None)) self.allowWifiApplyingChk.setText(QCoreApplication.translate("Nugget", u"Allow Applying Over WiFi", None))
self.autoRebootChk.setText(QCoreApplication.translate("Nugget", u"Auto Reboot After Applying", None)) self.autoRebootChk.setText(QCoreApplication.translate("Nugget", u"Auto Reboot After Applying", None))
self.showRiskyChk.setText(QCoreApplication.translate("Nugget", u"Show Risky Tweak Options", None)) self.showRiskyChk.setText(QCoreApplication.translate("Nugget", u"Show Risky Tweak Options", None))
#if QT_CONFIG(tooltip)
self.showAllSpoofableChk.setToolTip(QCoreApplication.translate("Nugget", u"Show models for other device types in the AI device spoofing tab.", None))
#endif // QT_CONFIG(tooltip)
#if QT_CONFIG(statustip)
self.showAllSpoofableChk.setStatusTip("")
#endif // QT_CONFIG(statustip)
#if QT_CONFIG(whatsthis)
self.showAllSpoofableChk.setWhatsThis("")
#endif // QT_CONFIG(whatsthis)
self.showAllSpoofableChk.setText(QCoreApplication.translate("Nugget", u"Show All Spoofable Models", None))
self.skipSetupChk.setText(QCoreApplication.translate("Nugget", u"Skip Setup * (non-exploit files only)", None)) self.skipSetupChk.setText(QCoreApplication.translate("Nugget", u"Skip Setup * (non-exploit files only)", None))
self.supervisionChk.setText(QCoreApplication.translate("Nugget", u"Enable Supervision * (requires Skip Setup)", None)) self.supervisionChk.setText(QCoreApplication.translate("Nugget", u"Enable Supervision * (requires Skip Setup)", None))
self.supervisionOrganization.setPlaceholderText(QCoreApplication.translate("Nugget", u"Enter Organization Name", None)) self.supervisionOrganization.setPlaceholderText(QCoreApplication.translate("Nugget", u"Enter Organization Name", None))

View File

@@ -1,3 +1,3 @@
pymobiledevice3 pymobiledevice3
pyside6 PySide6-Essentials
PyInstaller PyInstaller

View File

@@ -16,6 +16,10 @@ class FileLocation(Enum):
pasteboard = "/var/Managed Preferences/mobile/com.apple.Pasteboard.plist" pasteboard = "/var/Managed Preferences/mobile/com.apple.Pasteboard.plist"
notes = "/var/Managed Preferences/mobile/com.apple.mobilenotes.plist" notes = "/var/Managed Preferences/mobile/com.apple.mobilenotes.plist"
# Daemons
disabledDaemons = "/var/db/com.apple.xpc.launchd/disabled.plist"
screentime = "/var/mobile/Library/Preferences/ScreenTimeAgent.plist"
# Risky Options # Risky Options
ota = "/var/Managed Preferences/mobile/com.apple.MobileAsset.plist" ota = "/var/Managed Preferences/mobile/com.apple.MobileAsset.plist"

42
tweaks/daemons_tweak.py Normal file
View File

@@ -0,0 +1,42 @@
from enum import Enum
class Daemon(Enum):
thermalmonitord = ["com.apple.thermalmonitord"]
OTA = [
"com.apple.mobile.softwareupdated",
"com.apple.OTATaskingAgent",
"com.apple.softwareupdateservicesd"
]
UsageTrackingAgent = ["com.apple.UsageTrackingAgent"]
GameCenter = ["com.apple.gamed"]
ScreenTime = [
"com.apple.ScreenTimeAgent",
"com.apple.homed",
"com.apple.familycircled"
]
CrashReports = [
"com.apple.ReportCrash",
"com.apple.ReportCrash.Jetsam",
"com.apple.ReportMemoryException",
"com.apple.OTACrashCopier",
"com.apple.analyticsd",
"com.apple.aslmanager",
"com.apple.coresymbolicationd",
"com.apple.crash_mover",
"com.apple.crashreportcopymobile",
"com.apple.DumpBasebandCrash",
"com.apple.DumpPanic",
"com.apple.logd",
"com.apple.logd.admin",
"com.apple.logd.events",
"com.apple.logd.watchdog",
"com.apple.logd_reporter",
"com.apple.logd_reporter.report_statistics",
"com.apple.system.logger",
"com.apple.syslogd"
]
ATWAKEUP = ["com.apple.atc.atwakeup"]
Tips = ["com.apple.tipsd"]
VPN = ["com.apple.racoon"]
ChineseLAN = ["com.apple.wapic"]
HealthKit = ["com.apple.healthd"]

View File

@@ -23,11 +23,10 @@ def replace_region_code(plist_path: str, original_code: str = "US", new_code: st
class EligibilityTweak(Tweak): class EligibilityTweak(Tweak):
def __init__( def __init__(
self, label: str, self,
min_version: Version = Version("1.0"), min_version: Version = Version("1.0")
divider_below: bool = False
): ):
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.code = "US"
self.method = 0 # between 0 and 1 self.method = 0 # between 0 and 1
@@ -90,7 +89,7 @@ class EligibilityTweak(Tweak):
class AITweak(Tweak): class AITweak(Tweak):
def __init__(self): 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): def set_language_code(self, lang: str):
self.value = lang self.value = lang

View File

@@ -9,20 +9,19 @@ class TweakModifyType(Enum):
class Tweak: class Tweak:
def __init__( def __init__(
self, label: str, self,
key: str, subkey: str = None, key: str,
value: any = 1, value: any = 1,
edit_type: TweakModifyType = TweakModifyType.TOGGLE, edit_type: TweakModifyType = TweakModifyType.TOGGLE,
min_version: Version = Version("1.0"), min_version: Version = Version("1.0"),
divider_below: bool = False owner: int = 501, group: int = 501
): ):
self.label = label
self.key = key self.key = key
self.subkey = subkey
self.value = value self.value = value
self.min_version = min_version self.min_version = min_version
self.edit_type = edit_type self.edit_type = edit_type
self.divider_below = divider_below self.owner = owner
self.group = group
self.enabled = False self.enabled = False
def set_enabled(self, value: bool): def set_enabled(self, value: bool):
@@ -40,19 +39,33 @@ class Tweak:
def apply_tweak(self): def apply_tweak(self):
raise NotImplementedError raise NotImplementedError
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)
self.file_location = file_location
def apply_tweak(self, other_tweaks: dict):
if self.enabled:
other_tweaks[self.file_location] = b""
class BasicPlistTweak(Tweak): class BasicPlistTweak(Tweak):
def __init__( def __init__(
self, label: str, self,
file_location: FileLocation, file_location: FileLocation,
key: str, key: str,
value: any = True, value: any = True,
edit_type: TweakModifyType = TweakModifyType.TOGGLE, edit_type: TweakModifyType = TweakModifyType.TOGGLE,
min_version: Version = Version("1.0"), min_version: Version = Version("1.0"),
is_risky: bool = False, owner: int = 501, group: int = 501,
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, 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.file_location = file_location
self.is_risky = is_risky self.is_risky = is_risky
@@ -67,15 +80,19 @@ class BasicPlistTweak(Tweak):
class AdvancedPlistTweak(BasicPlistTweak): class AdvancedPlistTweak(BasicPlistTweak):
def __init__( def __init__(
self, label: str, self,
file_location: FileLocation, file_location: FileLocation,
keyValues: dict, keyValues: dict,
edit_type: TweakModifyType = TweakModifyType.TOGGLE, edit_type: TweakModifyType = TweakModifyType.TOGGLE,
min_version: Version = Version("1.0"), min_version: Version = Version("1.0"),
is_risky: bool = False, owner: int = 501, group: int = 501,
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, 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:
self.value[key] = value
def apply_tweak(self, other_tweaks: dict, risky_allowed: bool = False) -> dict: def apply_tweak(self, other_tweaks: dict, risky_allowed: bool = False) -> dict:
if not self.enabled or (self.is_risky and not risky_allowed): if not self.enabled or (self.is_risky and not risky_allowed):
@@ -88,8 +105,8 @@ class AdvancedPlistTweak(BasicPlistTweak):
class RdarFixTweak(BasicPlistTweak): class RdarFixTweak(BasicPlistTweak):
def __init__(self, divider_below: bool = False): def __init__(self):
super().__init__(label="Fix RDAR (modifies resolution)", file_location=FileLocation.resolution, key=None, divider_below=divider_below) super().__init__(file_location=FileLocation.resolution, key=None)
self.mode = 0 self.mode = 0
self.di_type = -1 self.di_type = -1
@@ -177,13 +194,13 @@ class MobileGestaltTweak(Tweak):
class MobileGestaltPickerTweak(Tweak): class MobileGestaltPickerTweak(Tweak):
def __init__( def __init__(
self, label: str, self,
key: str, subkey: str = None, key: str, subkey: str = None,
values: list = [1], values: list = [1],
min_version: Version = Version("1.0"), min_version: Version = Version("1.0")
divider_below: bool = False
): ):
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 self.selected_option = 0 # index of the selected option
def apply_tweak(self, plist: dict): def apply_tweak(self, plist: dict):
@@ -196,16 +213,16 @@ class MobileGestaltPickerTweak(Tweak):
plist["CacheExtra"][self.key][self.subkey] = new_value plist["CacheExtra"][self.key][self.subkey] = new_value
return plist return plist
def set_selected_option(self, new_option: int): def set_selected_option(self, new_option: int, is_enabled: bool = True):
self.selected_option = new_option self.selected_option = new_option
self.enabled = True self.enabled = is_enabled
def get_selected_option(self) -> int: def get_selected_option(self) -> int:
return self.selected_option return self.selected_option
class MobileGestaltMultiTweak(Tweak): class MobileGestaltMultiTweak(Tweak):
def __init__(self, label: str, keyValues: dict, min_version: Version = Version("1.0"), divider_below: bool = False): def __init__(self, keyValues: dict, 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.keyValues = keyValues self.keyValues = keyValues
# key values looks like ["key name" = value] # key values looks like ["key name" = value]
@@ -218,13 +235,12 @@ class MobileGestaltMultiTweak(Tweak):
class FeatureFlagTweak(Tweak): class FeatureFlagTweak(Tweak):
def __init__( def __init__(
self, label: str, self,
flag_category: str, flag_names: list, flag_category: str, flag_names: list,
is_list: bool=True, inverted: bool=False, is_list: bool=True, inverted: bool=False,
min_version: Version = Version("1.0"), min_version: Version = Version("1.0")
divider_below: bool = False
): ):
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_category = flag_category
self.flag_names = flag_names self.flag_names = flag_names
self.is_list = is_list self.is_list = is_list

View File

@@ -1,48 +1,48 @@
from devicemanagement.constants import Version from devicemanagement.constants import Version
from .tweak_classes import MobileGestaltTweak, MobileGestaltMultiTweak, MobileGestaltPickerTweak, FeatureFlagTweak, TweakModifyType, BasicPlistTweak, AdvancedPlistTweak, RdarFixTweak from .tweak_classes import MobileGestaltTweak, MobileGestaltMultiTweak, MobileGestaltPickerTweak, FeatureFlagTweak, TweakModifyType, BasicPlistTweak, AdvancedPlistTweak, RdarFixTweak, NullifyFileTweak
from .eligibility_tweak import EligibilityTweak, AITweak from .eligibility_tweak import EligibilityTweak, AITweak
from .basic_plist_locations import FileLocation from .basic_plist_locations import FileLocation
tweaks = { tweaks = {
## MobileGestalt 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(), "RdarFix": RdarFixTweak(),
"ModelName": MobileGestaltTweak("Set Device Model Name", "oPeik/9e8lQWMszEjbPzng", "ArtworkDeviceProductDescription", "", TweakModifyType.TEXT), "ModelName": MobileGestaltTweak("oPeik/9e8lQWMszEjbPzng", "ArtworkDeviceProductDescription", "", TweakModifyType.TEXT),
"BootChime": MobileGestaltTweak("Toggle Boot Chime", "QHxt+hGLaBPbQJbXiUJX3w"), "BootChime": MobileGestaltTweak("QHxt+hGLaBPbQJbXiUJX3w"),
"ChargeLimit": MobileGestaltTweak("Toggle Charge Limit", "37NVydb//GP/GrhuTN+exg"), "ChargeLimit": MobileGestaltTweak("37NVydb//GP/GrhuTN+exg"),
"CollisionSOS": MobileGestaltTweak("Toggle Collision SOS", "HCzWusHQwZDea6nNhaKndw"), "CollisionSOS": MobileGestaltTweak("HCzWusHQwZDea6nNhaKndw"),
"TapToWake": MobileGestaltTweak("Toggle Tap To Wake (iPhone SE)", "yZf3GTRMGTuwSV/lD7Cagw"), "TapToWake": MobileGestaltTweak("yZf3GTRMGTuwSV/lD7Cagw"),
"CameraButton": MobileGestaltMultiTweak("Toggle iPhone 16 Settings", {"CwvKxM2cEogD3p+HYgaW0Q": 1, "oOV1jhJbdV3AddkcCg0AEA": 1}, min_version=Version("18.0")), "CameraButton": MobileGestaltMultiTweak({"CwvKxM2cEogD3p+HYgaW0Q": 1, "oOV1jhJbdV3AddkcCg0AEA": 1}, min_version=Version("18.0")),
"Parallax": MobileGestaltTweak("Disable Wallpaper Parallax", "UIParallaxCapability", value=0), "Parallax": MobileGestaltTweak("UIParallaxCapability", value=0),
"StageManager": MobileGestaltTweak("Toggle Stage Manager Supported (WARNING: risky on some devices, mainly phones)", "qeaj75wk3HF4DwQ8qbIi7g", value=1), "StageManager": MobileGestaltTweak("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}), "Medusa": MobileGestaltMultiTweak({"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]), "iPadApps": MobileGestaltTweak("9MZ5AdH43csAUajl/dU+IQ", value=[1, 2]),
"Shutter": MobileGestaltMultiTweak("Disable Region Restrictions (ie. Shutter Sound)", {"h63QSdBCiT/z0WU6rdQv6Q": "US", "zHeENZu+wbg7PUprwNwBWg": "LL/A"}), "Shutter": MobileGestaltMultiTweak({"h63QSdBCiT/z0WU6rdQv6Q": "US", "zHeENZu+wbg7PUprwNwBWg": "LL/A"}),
"FindMyFriends": MobileGestaltTweak("Toggle Find My Friends", "Y2Y67z0Nq/XdDXgW2EeaVg"), "FindMyFriends": MobileGestaltTweak("Y2Y67z0Nq/XdDXgW2EeaVg"),
"Pencil": MobileGestaltTweak("Toggle Apple Pencil", "yhHcB0iH0d1XzPO/CFd3ow"), "Pencil": MobileGestaltTweak("yhHcB0iH0d1XzPO/CFd3ow"),
"ActionButton": MobileGestaltTweak("Toggle Action Button", "cT44WE1EohiwRzhsZ8xEsw"), "ActionButton": MobileGestaltTweak("cT44WE1EohiwRzhsZ8xEsw"),
"InternalStorage": MobileGestaltTweak("Toggle Internal Storage (WARNING: risky for some devices, mainly iPads)", "LBJfwOEzExRxzlAnSuI7eg"), "InternalStorage": MobileGestaltTweak("LBJfwOEzExRxzlAnSuI7eg"),
"InternalInstall": MobileGestaltTweak("Set as Apple Internal Install (ie Metal HUD in any app)", "EqrsVvjcYDdxHBiQmGhAWw", divider_below=True), "InternalInstall": MobileGestaltTweak("EqrsVvjcYDdxHBiQmGhAWw"),
"EUEnabler": EligibilityTweak("EU Enabler", divider_below=True), "EUEnabler": EligibilityTweak(),
"AOD": MobileGestaltMultiTweak("Always On Display", "AOD": MobileGestaltMultiTweak(
{"2OOJf1VhaM7NxfRok3HbWQ": 1, "j8/Omm6s1lsmTDFsXjsBfA": 1}, {"2OOJf1VhaM7NxfRok3HbWQ": 1, "j8/Omm6s1lsmTDFsXjsBfA": 1},
min_version=Version("18.0")), min_version=Version("18.0")),
"AODVibrancy": MobileGestaltTweak("ykpu7qyhqFweVMKtxNylWA", min_version=Version("18.0")),
## Feature Flag Tweaks ## Feature Flag Tweaks
"ClockAnim": FeatureFlagTweak("Toggle Lockscreen Clock Animation", flag_category='SpringBoard', "ClockAnim": FeatureFlagTweak(flag_category='SpringBoard',
flag_names=['SwiftUITimeAnimation'], flag_names=['SwiftUITimeAnimation'],
min_version=Version("18.0")), 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'], flag_names=['AutobahnQuickSwitchTransition', 'SlipSwitch', 'PosterEditorKashida'],
min_version=Version("18.0")), 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")), "PhotoUI": FeatureFlagTweak(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), "AI": FeatureFlagTweak(flag_category='SpringBoard', flag_names=['Domino', 'SuperDomino'], min_version=Version("18.1")),
## AI Enabler ## AI Enabler
"AIEligibility": AITweak(), "AIEligibility": AITweak(),
"AIGestalt": MobileGestaltTweak("Enable Apple Intelligence (for Unsupported Devices) (Gestalt)", "A62OafQ85EJAiiqKn4agtg", min_version=Version("18.1")), "AIGestalt": MobileGestaltTweak("A62OafQ85EJAiiqKn4agtg", min_version=Version("18.1")),
"SpoofModel": MobileGestaltPickerTweak("Spoofed Device Model", "h9jDsbgj7xIVeIQ8S3/X3Q", values=[ "SpoofModel": MobileGestaltPickerTweak("h9jDsbgj7xIVeIQ8S3/X3Q", values=[
# Default # Default
"Placeholder", # 0 | Original "Placeholder", # 0 | Original
@@ -82,7 +82,7 @@ tweaks = {
"iPad13,16", # 25 | iPad Air (M1) (W) "iPad13,16", # 25 | iPad Air (M1) (W)
"iPad13,17", # 26 | iPad Air (M1) (C) "iPad13,17", # 26 | iPad Air (M1) (C)
], min_version=Version("18.1")), ], min_version=Version("18.1")),
"SpoofHardware": MobileGestaltPickerTweak("Spoof Hardware Model", "oYicEKzVTz4/CxxE05pEgQ", values=[ "SpoofHardware": MobileGestaltPickerTweak("oYicEKzVTz4/CxxE05pEgQ", values=[
# Default # Default
"Placeholder", # 0 | Original "Placeholder", # 0 | Original
@@ -122,7 +122,7 @@ tweaks = {
"J407AP", # 25 | iPad Air (M1) (W) "J407AP", # 25 | iPad Air (M1) (W)
"J408AP", # 26 | iPad Air (M1) (C) "J408AP", # 26 | iPad Air (M1) (C)
], min_version=Version("18.1")), ], min_version=Version("18.1")),
"SpoofCPU": MobileGestaltPickerTweak("Spoof CPU Model", "5pYKlGnYYBzGvAlIU8RjEQ", values=[ "SpoofCPU": MobileGestaltPickerTweak("5pYKlGnYYBzGvAlIU8RjEQ", values=[
# Default # Default
"Placeholder", # 0 | Original "Placeholder", # 0 | Original
@@ -161,117 +161,110 @@ tweaks = {
"t8103", # 24 | iPad Pro (12.9-inch) (M1) (C) "t8103", # 24 | iPad Pro (12.9-inch) (M1) (C)
"t8103", # 25 | iPad Air (M1) (W) "t8103", # 25 | iPad Air (M1) (W)
"t8103", # 26 | iPad Air (M1) (C) "t8103", # 26 | iPad Air (M1) (C)
], min_version=Version("18.1"), divider_below=True), ], min_version=Version("18.1")),
## Springboard Tweaks ## Springboard Tweaks
"LockScreenFootnote": BasicPlistTweak( "LockScreenFootnote": BasicPlistTweak(
"Set Lock Screen Footnote Text",
FileLocation.footnote, FileLocation.footnote,
key="LockScreenFootnote", value="", key="LockScreenFootnote", value="",
edit_type=TweakModifyType.TEXT edit_type=TweakModifyType.TEXT
), ),
"SBDontLockAfterCrash": BasicPlistTweak( "SBDontLockAfterCrash": BasicPlistTweak(
"Disable Lock After Respring",
FileLocation.springboard, FileLocation.springboard,
"SBDontLockAfterCrash" "SBDontLockAfterCrash"
), ),
"SBDontDimOrLockOnAC": BasicPlistTweak( "SBDontDimOrLockOnAC": BasicPlistTweak(
"Disable Screen Dimming While Charging",
FileLocation.springboard, FileLocation.springboard,
"SBDontDimOrLockOnAC" "SBDontDimOrLockOnAC"
), ),
"SBHideLowPowerAlerts": BasicPlistTweak( "SBHideLowPowerAlerts": BasicPlistTweak(
"Disable Low Battery Alerts",
FileLocation.springboard, FileLocation.springboard,
"SBHideLowPowerAlerts" "SBHideLowPowerAlerts"
), ),
"SBNeverBreadcrumb": BasicPlistTweak( "SBNeverBreadcrumb": BasicPlistTweak(
"Disable Breadcrumb",
FileLocation.springboard, FileLocation.springboard,
"SBNeverBreadcrumb" "SBNeverBreadcrumb"
), ),
"SBShowSupervisionTextOnLockScreen": BasicPlistTweak( "SBShowSupervisionTextOnLockScreen": BasicPlistTweak(
"Show Supervision Text on Lock Screen",
FileLocation.springboard, FileLocation.springboard,
"SBShowSupervisionTextOnLockScreen" "SBShowSupervisionTextOnLockScreen"
), ),
"AirplaySupport": BasicPlistTweak( "AirplaySupport": BasicPlistTweak(
"Enable AirPlay support for Stage Manager",
FileLocation.springboard, FileLocation.springboard,
"SBExtendedDisplayOverrideSupportForAirPlayAndDontFileRadars", "SBExtendedDisplayOverrideSupportForAirPlayAndDontFileRadars"
divider_below=True
), ),
## Internal Options ## Internal Options
"SBBuildNumber": BasicPlistTweak( "SBBuildNumber": BasicPlistTweak(
"Show Build Version in Status Bar",
FileLocation.globalPreferences, FileLocation.globalPreferences,
"UIStatusBarShowBuildVersion" "UIStatusBarShowBuildVersion"
), ),
"RTL": BasicPlistTweak( "RTL": BasicPlistTweak(
"Force Right-to-Left Layout",
FileLocation.globalPreferences, FileLocation.globalPreferences,
"NSForceRightToLeftWritingDirection" "NSForceRightToLeftWritingDirection"
), ),
"MetalForceHudEnabled": BasicPlistTweak( "MetalForceHudEnabled": BasicPlistTweak(
"Enable Metal HUD Debug",
FileLocation.globalPreferences, FileLocation.globalPreferences,
"MetalForceHudEnabled" "MetalForceHudEnabled"
), ),
"iMessageDiagnosticsEnabled": BasicPlistTweak( "iMessageDiagnosticsEnabled": BasicPlistTweak(
"Enable iMessage Debugging",
FileLocation.globalPreferences, FileLocation.globalPreferences,
"iMessageDiagnosticsEnabled" "iMessageDiagnosticsEnabled"
), ),
"IDSDiagnosticsEnabled": BasicPlistTweak( "IDSDiagnosticsEnabled": BasicPlistTweak(
"Enable Continuity Debugging",
FileLocation.globalPreferences, FileLocation.globalPreferences,
"IDSDiagnosticsEnabled" "IDSDiagnosticsEnabled"
), ),
"VCDiagnosticsEnabled": BasicPlistTweak( "VCDiagnosticsEnabled": BasicPlistTweak(
"Enable FaceTime Debugging",
FileLocation.globalPreferences, FileLocation.globalPreferences,
"VCDiagnosticsEnabled" "VCDiagnosticsEnabled"
), ),
"AppStoreDebug": BasicPlistTweak( "AppStoreDebug": BasicPlistTweak(
"Enable App Store Debug Gesture",
FileLocation.appStore, FileLocation.appStore,
"debugGestureEnabled" "debugGestureEnabled"
), ),
"NotesDebugMode": BasicPlistTweak( "NotesDebugMode": BasicPlistTweak(
"Enable Notes App Debug Mode",
FileLocation.notes, FileLocation.notes,
"DebugModeEnabled" "DebugModeEnabled"
), ),
"BKDigitizerVisualizeTouches": BasicPlistTweak( "BKDigitizerVisualizeTouches": BasicPlistTweak(
"Show Touches With Debug Info",
FileLocation.backboardd, FileLocation.backboardd,
"BKDigitizerVisualizeTouches" "BKDigitizerVisualizeTouches"
), ),
"BKHideAppleLogoOnLaunch": BasicPlistTweak( "BKHideAppleLogoOnLaunch": BasicPlistTweak(
"Hide Respring Icon",
FileLocation.backboardd, FileLocation.backboardd,
"BKHideAppleLogoOnLaunch" "BKHideAppleLogoOnLaunch"
), ),
"EnableWakeGestureHaptic": BasicPlistTweak( "EnableWakeGestureHaptic": BasicPlistTweak(
"Vibrate on Raise-to-Wake",
FileLocation.coreMotion, FileLocation.coreMotion,
"EnableWakeGestureHaptic" "EnableWakeGestureHaptic"
), ),
"PlaySoundOnPaste": BasicPlistTweak( "PlaySoundOnPaste": BasicPlistTweak(
"Play Sound on Paste",
FileLocation.pasteboard, FileLocation.pasteboard,
"PlaySoundOnPaste" "PlaySoundOnPaste"
), ),
"AnnounceAllPastes": BasicPlistTweak( "AnnounceAllPastes": BasicPlistTweak(
"Show Notifications for System Pastes",
FileLocation.pasteboard, FileLocation.pasteboard,
"AnnounceAllPastes" "AnnounceAllPastes"
), ),
## Daemons
"Daemons": AdvancedPlistTweak(
FileLocation.disabledDaemons,
{
"com.apple.magicswitchd.companion": True,
"com.apple.security.otpaird": True,
"com.apple.dhcp6d": True,
"com.apple.bootpd": True,
"com.apple.ftp-proxy-embedded": False,
"com.apple.relevanced": True
},
owner=0, group=0
),
"ClearScreenTimeAgentPlist": NullifyFileTweak(FileLocation.screentime),
## Risky Options ## Risky Options
"DisableOTA": AdvancedPlistTweak( "DisableOTAFile": AdvancedPlistTweak(
"Disable OTA Updates",
FileLocation.ota, FileLocation.ota,
{ {
"MobileAssetServerURL-com.apple.MobileAsset.MobileSoftwareUpdate.UpdateBrain": "https://mesu.apple.com/assets/tvOS16DeveloperSeed", "MobileAssetServerURL-com.apple.MobileAsset.MobileSoftwareUpdate.UpdateBrain": "https://mesu.apple.com/assets/tvOS16DeveloperSeed",
@@ -284,7 +277,6 @@ tweaks = {
}, is_risky=True }, is_risky=True
), ),
"CustomResolution": AdvancedPlistTweak( "CustomResolution": AdvancedPlistTweak(
"Set Custom Resolution real",
FileLocation.resolution, FileLocation.resolution,
{}, # empty as to not cause issues when only 1 value is inputted {}, # empty as to not cause issues when only 1 value is inputted
is_risky=True is_risky=True