mirror of
https://github.com/leminlimez/Nugget.git
synced 2025-04-08 04:23:05 +08:00
51
README.md
51
README.md
@@ -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.**
|
||||
|
||||
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.
|
||||
|
||||
Note: I am not responsible if your device bootloops. Please back up your data before using!
|
||||
|
||||
## Features
|
||||
### iOS 17.0+
|
||||
- Enable Dynamic Island on any device
|
||||
- Enable iPhone X gestures on iPhone SEs
|
||||
- Change Device Model Name (ie what shows in the Settings app)
|
||||
- Enable Boot Chime
|
||||
- Enable Charge Limit
|
||||
- Enable Tap to Wake on unsupported devices (ie iPhone SEs)
|
||||
- Enable iPhone 16 Settings
|
||||
- Enable Collision SOS
|
||||
- Enable Stage Manager
|
||||
- Disable the Wallpaper Parallax
|
||||
- Disable Region Restrictions (ie. Shutter Sound)
|
||||
- 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 Action Button options in Settings app
|
||||
- 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!
|
||||
- Disabling the new iOS 18 Photos UI
|
||||
- EU Enabler
|
||||
- AI Enabler
|
||||
- Springboard Options (from Cowabunga Lite)
|
||||
- Internal Options (from Cowabunga Lite)
|
||||
- EU Enabler (iOS 17.6-)
|
||||
- Springboard Options (from [Cowabunga Lite](https://github.com/leminlimez/CowabungaLite))
|
||||
- Set Lock Screen Footnote
|
||||
- Disable Lock After Respring
|
||||
- Disable Screen Dimming While Charging
|
||||
- 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:
|
||||
- Disable thermalmonitord
|
||||
- OTA Killer
|
||||
- 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:**
|
||||
- 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:**
|
||||
@@ -48,6 +77,7 @@ Note: I am not responsible if your device bootloops. Please back up your data be
|
||||
- PySide6
|
||||
- Python 3.8 or newer
|
||||
|
||||
## Running the Python Program
|
||||
Note: It is highly recommended to use a virtual environment:
|
||||
```
|
||||
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
|
||||
- [JJTech](https://github.com/JJTech0130) for Sparserestore/[TrollRestore](https://github.com/JJTech0130/TrollRestore)
|
||||
- [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)
|
||||
- [lrdsnow](https://github.com/Lrdsnow) for [EU Enabler](https://github.com/Lrdsnow/EUEnabler)
|
||||
- [pymobiledevice3](https://github.com/doronz88/pymobiledevice3) for restoring and device algorithms.
|
||||
|
||||
@@ -27,14 +27,14 @@ def concat_exploit_file(file: FileToRestore, files_list: list[FileToRestore], la
|
||||
if last_domain != domain_path:
|
||||
files_list.append(backup.Directory(
|
||||
"",
|
||||
f"{domain_path}/",
|
||||
f"{domain_path}",
|
||||
owner=file.owner,
|
||||
group=file.group
|
||||
))
|
||||
new_last_domain = domain_path
|
||||
files_list.append(backup.ConcreteFile(
|
||||
"",
|
||||
f"{domain_path}/{name}",
|
||||
f"{domain_path}{name}",
|
||||
owner=file.owner,
|
||||
group=file.group,
|
||||
contents=file.contents
|
||||
|
||||
40
controllers/web_request_handler.py
Normal file
40
controllers/web_request_handler.py
Normal 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
|
||||
@@ -7,11 +7,12 @@ from PySide6.QtCore import QSettings
|
||||
|
||||
from pymobiledevice3 import usbmux
|
||||
from pymobiledevice3.lockdown import create_using_usbmux
|
||||
from pymobiledevice3.exceptions import MuxException, PasswordRequiredError
|
||||
|
||||
from devicemanagement.constants import Device, Version
|
||||
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.basic_plist_locations import FileLocationsList, RiskyFileLocationsList
|
||||
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!")
|
||||
elif "SessionInactive" in str(e):
|
||||
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.",
|
||||
detailed_txt="Unlock your device. On the popup, click \"Trust\", enter your password, then try again.")
|
||||
else:
|
||||
@@ -50,9 +51,11 @@ class DeviceManager:
|
||||
self.current_device_index = 0
|
||||
|
||||
# preferences
|
||||
self.apply_over_wifi = True
|
||||
# TODO: Move to its own class
|
||||
self.apply_over_wifi = False
|
||||
self.auto_reboot = True
|
||||
self.allow_risky_tweaks = False
|
||||
self.show_all_spoofable_models = False
|
||||
self.skip_setup = True
|
||||
self.supervised = False
|
||||
self.organization_name = ""
|
||||
@@ -116,14 +119,16 @@ class DeviceManager:
|
||||
)
|
||||
tweaks["RdarFix"].get_rdar_mode(model)
|
||||
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:
|
||||
print(f"ERROR with lockdown device with UUID {device.serial}")
|
||||
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)
|
||||
else:
|
||||
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.")
|
||||
|
||||
|
||||
def add_skip_setup(self, files_to_restore: list[FileToRestore]):
|
||||
if self.skip_setup and not self.get_current_device_supported():
|
||||
def add_skip_setup(self, files_to_restore: list[FileToRestore], restoring_domains: bool):
|
||||
if self.skip_setup and (not self.get_current_device_supported() or restoring_domains):
|
||||
# add the 2 skip setup files
|
||||
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"],
|
||||
@@ -220,8 +225,8 @@ class DeviceManager:
|
||||
cloud_config_plist["OrganizationName"] = self.organization_name
|
||||
files_to_restore.append(FileToRestore(
|
||||
contents=plistlib.dumps(cloud_config_plist),
|
||||
restore_path="systemgroup.com.apple.configurationprofiles/Library/ConfigurationProfiles/CloudConfigurationDetails.plist",
|
||||
domain="SysSharedContainerDomain-."
|
||||
restore_path="Library/ConfigurationProfiles/CloudConfigurationDetails.plist",
|
||||
domain="SysSharedContainerDomain-systemgroup.com.apple.configurationprofiles"
|
||||
))
|
||||
purplebuddy_plist: dict = {
|
||||
"SetupDone": True,
|
||||
@@ -234,7 +239,12 @@ class DeviceManager:
|
||||
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)
|
||||
sysSharedContainer = "SysSharedContainerDomain-"
|
||||
sysContainer = "SysContainerDomain-"
|
||||
@@ -260,22 +270,18 @@ class DeviceManager:
|
||||
parts = new_path.split("/")
|
||||
new_domain += parts[0]
|
||||
new_path = new_path.replace(parts[0] + "/", "")
|
||||
return new_domain, new_path
|
||||
return None, path
|
||||
return new_path, new_domain
|
||||
return path, None
|
||||
|
||||
def concat_file(self, contents: str, path: str, files_to_restore: list[FileToRestore]):
|
||||
if self.get_current_device_supported():
|
||||
files_to_restore.append(FileToRestore(
|
||||
contents=contents,
|
||||
restore_path=path
|
||||
))
|
||||
else:
|
||||
domain, file_path = self.get_domain_for_path(path, fully_patched=self.get_current_device_patched())
|
||||
files_to_restore.append(FileToRestore(
|
||||
contents=contents,
|
||||
restore_path=file_path,
|
||||
domain=domain
|
||||
))
|
||||
def concat_file(self, contents: str, path: str, files_to_restore: list[FileToRestore], owner: int = 501, group: int = 501):
|
||||
# TODO: try using inodes here instead
|
||||
file_path, domain = self.get_domain_for_path(path, owner=owner)
|
||||
files_to_restore.append(FileToRestore(
|
||||
contents=contents,
|
||||
restore_path=file_path,
|
||||
domain=domain,
|
||||
owner=owner, group=group
|
||||
))
|
||||
|
||||
## APPLYING OR REMOVING TWEAKS AND RESTORING
|
||||
def apply_changes(self, resetting: bool = False, update_label=lambda x: None):
|
||||
@@ -291,6 +297,9 @@ class DeviceManager:
|
||||
eligibility_files = None
|
||||
ai_file = None
|
||||
basic_plists: dict = {}
|
||||
basic_plists_ownership: dict = {}
|
||||
files_data: dict = {}
|
||||
uses_domains: bool = False
|
||||
|
||||
# set the plist keys
|
||||
if not resetting:
|
||||
@@ -304,6 +313,13 @@ class DeviceManager:
|
||||
ai_file = tweak.apply_tweak()
|
||||
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_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:
|
||||
if gestalt_plist != None:
|
||||
gestalt_plist = tweak.apply_tweak(gestalt_plist)
|
||||
@@ -327,7 +343,7 @@ class DeviceManager:
|
||||
path="/var/preferences/FeatureFlags/Global.plist",
|
||||
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:
|
||||
self.concat_file(
|
||||
contents=gestalt_data,
|
||||
@@ -354,10 +370,19 @@ class DeviceManager:
|
||||
files_to_restore=files_to_restore
|
||||
)
|
||||
for location, plist in basic_plists.items():
|
||||
ownership = basic_plists_ownership[location]
|
||||
self.concat_file(
|
||||
contents=plistlib.dumps(plist),
|
||||
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
|
||||
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 + "_hardware", "")
|
||||
settings.setValue(self.data_singleton.current_device.uuid + "_cpu", "")
|
||||
domain, file_path = self.get_domain_for_path(
|
||||
"/var/containers/Shared/SystemGroup/systemgroup.com.apple.mobilegestaltcache/Library/Caches/com.apple.MobileGestalt.plist",
|
||||
fully_patched=self.get_current_device_patched())
|
||||
file_path, domain = self.get_domain_for_path(
|
||||
"/var/containers/Shared/SystemGroup/systemgroup.com.apple.mobilegestaltcache/Library/Caches/com.apple.MobileGestalt.plist"
|
||||
)
|
||||
restore_files(files=[FileToRestore(
|
||||
contents=b"",
|
||||
restore_path=file_path,
|
||||
|
||||
68
gui/dialogs.py
Normal file
68
gui/dialogs.py
Normal 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()
|
||||
@@ -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()
|
||||
@@ -7,13 +7,19 @@ from pymobiledevice3.lockdown import create_using_usbmux
|
||||
|
||||
from qt.ui_mainwindow import Ui_Nugget
|
||||
|
||||
from controllers.web_request_handler import is_update_available
|
||||
|
||||
from devicemanagement.constants import Version
|
||||
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.custom_gestalt_tweaks import CustomGestaltTweaks, ValueTypeStrings
|
||||
from tweaks.daemons_tweak import Daemon
|
||||
|
||||
App_Version = "4.2"
|
||||
App_Build = 0
|
||||
|
||||
class Page(Enum):
|
||||
Home = 0
|
||||
@@ -22,9 +28,10 @@ class Page(Enum):
|
||||
EUEnabler = 3
|
||||
Springboard = 4
|
||||
InternalOptions = 5
|
||||
RiskyTweaks = 6
|
||||
Apply = 7
|
||||
Settings = 8
|
||||
Daemons = 6
|
||||
RiskyTweaks = 7
|
||||
Apply = 8
|
||||
Settings = 9
|
||||
|
||||
class MainWindow(QtWidgets.QMainWindow):
|
||||
def __init__(self, device_manager: DeviceManager):
|
||||
@@ -35,6 +42,13 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
self.show_uuid = False
|
||||
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
|
||||
self.refresh_devices()
|
||||
|
||||
@@ -48,6 +62,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
self.ui.euEnablerPageBtn.clicked.connect(self.on_euEnablerPageBtn_clicked)
|
||||
self.ui.springboardOptionsPageBtn.clicked.connect(self.on_springboardOptionsPageBtn_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.applyPageBtn.clicked.connect(self.on_applyPageBtn_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.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.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.languageTxt.textEdited.connect(self.on_languageTxt_textEdited)
|
||||
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
|
||||
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.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
|
||||
self.ui.disableOTAChk.toggled.connect(self.on_disableOTAChk_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.autoRebootChk.toggled.connect(self.on_autoRebootChk_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.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.collisionSOSChk.clicked.connect(self.on_collisionSOSChk_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.aiEnablerContent.hide()
|
||||
@@ -171,6 +205,15 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
def updateInterfaceForNewDevice(self):
|
||||
# update the home page
|
||||
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
|
||||
@@ -188,7 +231,6 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
self.ui.homePageBtn.setChecked(True)
|
||||
|
||||
# hide all pages
|
||||
self.ui.explorePageBtn.hide()
|
||||
self.ui.sidebarDiv1.hide()
|
||||
|
||||
self.ui.gestaltPageBtn.hide()
|
||||
@@ -196,12 +238,14 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
self.ui.euEnablerPageBtn.hide()
|
||||
self.ui.springboardOptionsPageBtn.hide()
|
||||
self.ui.internalOptionsPageBtn.hide()
|
||||
self.ui.daemonsPageBtn.hide()
|
||||
self.ui.advancedPageBtn.hide()
|
||||
|
||||
self.ui.sidebarDiv2.hide()
|
||||
self.ui.applyPageBtn.hide()
|
||||
|
||||
self.ui.resetPairBtn.hide()
|
||||
self.ui.showRiskyChk.hide()
|
||||
else:
|
||||
self.ui.devicePicker.setEnabled(True)
|
||||
# populate the ComboBox with device names
|
||||
@@ -209,10 +253,10 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
self.ui.devicePicker.addItem(device.name)
|
||||
|
||||
# show all pages
|
||||
self.ui.explorePageBtn.hide()
|
||||
self.ui.sidebarDiv1.show()
|
||||
self.ui.springboardOptionsPageBtn.show()
|
||||
self.ui.internalOptionsPageBtn.show()
|
||||
self.ui.daemonsPageBtn.show()
|
||||
|
||||
if self.device_manager.allow_risky_tweaks:
|
||||
self.ui.advancedPageBtn.show()
|
||||
@@ -230,6 +274,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
self.ui.advancedOptionsPageContent.setDisabled(False)
|
||||
|
||||
self.ui.resetPairBtn.show()
|
||||
self.ui.showRiskyChk.show()
|
||||
|
||||
# update the selected device
|
||||
self.ui.devicePicker.setCurrentIndex(0)
|
||||
@@ -245,26 +290,28 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
# indexes 1-6 for iPhones, 7-(len(values) - 1) for iPads
|
||||
# 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)"]
|
||||
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
|
||||
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
|
||||
self.ui.spoofedModelDrp.addItems(spoof_drp_options[6:])
|
||||
|
||||
def change_selected_device(self, index):
|
||||
self.ui.showAllSpoofableChk.hide()
|
||||
if len(self.device_manager.devices) > 0:
|
||||
self.device_manager.set_current_device(index=index)
|
||||
# hide options that are for newer versions
|
||||
# remove the new dynamic island options
|
||||
MinTweakVersions = {
|
||||
"no_patch": [self.ui.chooseGestaltBtn, self.ui.gestaltPageBtn, self.ui.resetGestaltBtn, self.ui.gestaltLocationLbl],
|
||||
"exploit": [("18.0", self.ui.featureFlagsPageBtn), ("18.1", self.ui.eligFileChk)],
|
||||
"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), ("1.0", self.ui.regularDomainsLbl)],
|
||||
"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 = {
|
||||
"17.7": [self.ui.euEnablerContent]
|
||||
"17.7": [self.ui.euEnablerContent],
|
||||
"18.0": [self.ui.photosChk, self.ui.aiChk]
|
||||
}
|
||||
|
||||
try:
|
||||
@@ -331,9 +378,10 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
self.settings = QtCore.QSettings()
|
||||
try:
|
||||
# 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)
|
||||
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)
|
||||
supervised = self.settings.value("supervised", False, type=bool)
|
||||
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.autoRebootChk.setChecked(auto_reboot)
|
||||
self.ui.showRiskyChk.setChecked(risky_tweaks)
|
||||
self.ui.showAllSpoofableChk.setChecked(show_all_spoofable)
|
||||
self.ui.skipSetupChk.setChecked(skip_setup)
|
||||
self.ui.supervisionChk.setChecked(supervised)
|
||||
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.auto_reboot = auto_reboot
|
||||
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.supervised = supervised
|
||||
self.device_manager.organization_name = organization_name
|
||||
@@ -374,6 +430,9 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
def on_internalOptionsPageBtn_clicked(self):
|
||||
self.ui.pages.setCurrentIndex(Page.InternalOptions.value)
|
||||
|
||||
def on_daemonsPageBtn_clicked(self):
|
||||
self.ui.pages.setCurrentIndex(Page.Daemons.value)
|
||||
|
||||
def on_advancedPageBtn_clicked(self):
|
||||
self.ui.pages.setCurrentIndex(Page.RiskyTweaks.value)
|
||||
|
||||
@@ -418,11 +477,11 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
|
||||
def show_version_text(self, version: str, build: str):
|
||||
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>"
|
||||
elif not self.device_manager.get_current_device_supported():
|
||||
# sparserestore partially patched
|
||||
support_str = "<span style=\"color: #ffff00;\">Supported, YMMV.</span></a>"
|
||||
elif self.device_manager.get_current_device_patched():
|
||||
# sparserestore fully patched
|
||||
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}")
|
||||
|
||||
## HOME PAGE LINKS
|
||||
@@ -440,8 +499,8 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
webbrowser.open_new_tab("https://github.com/JJTech0130/TrollRestore")
|
||||
def on_disfordottieBtn_clicked(self):
|
||||
webbrowser.open_new_tab("https://twitter.com/disfordottie")
|
||||
def on_lrdsnowBtn_clicked(self):
|
||||
webbrowser.open_new_tab("https://github.com/Lrdsnow/EUEnabler")
|
||||
def on_mikasaBtn_clicked(self):
|
||||
webbrowser.open_new_tab("https://github.com/Mikasa-san/QuietDaemon")
|
||||
|
||||
def on_libiBtn_clicked(self):
|
||||
webbrowser.open_new_tab("https://github.com/doronz88/pymobiledevice3")
|
||||
@@ -523,6 +582,8 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
tweaks["CollisionSOS"].set_enabled(checked)
|
||||
def on_aodChk_clicked(self, checked: bool):
|
||||
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):
|
||||
new_str = CustomGestaltTweaks.set_tweak_value_type(id, idx)
|
||||
@@ -628,16 +689,16 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
|
||||
def on_spoofedModelDrp_activated(self, index: int):
|
||||
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
|
||||
idx_to_apply += 6
|
||||
tweaks["SpoofModel"].set_selected_option(idx_to_apply)
|
||||
tweaks["SpoofHardware"].set_selected_option(idx_to_apply)
|
||||
tweaks["SpoofCPU"].set_selected_option(idx_to_apply)
|
||||
if idx_to_apply == 0:
|
||||
tweaks["SpoofModel"].set_enabled(False)
|
||||
tweaks["SpoofHardware"].set_enabled(False)
|
||||
tweaks["SpoofCPU"].set_enabled(False)
|
||||
tweaks["SpoofModel"].set_selected_option(idx_to_apply, is_enabled=(index != 0))
|
||||
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, is_enabled=(index != 0 and self.ui.spoofCPUChk.isChecked()))
|
||||
def on_spoofHardwareChk_toggled(self, checked: bool):
|
||||
tweaks["SpoofHardware"].set_enabled(checked and tweaks["SpoofHardware"].selected_option != 0)
|
||||
def on_spoofCPUChk_toggled(self, checked: bool):
|
||||
tweaks["SpoofCPU"].set_enabled(checked and tweaks["SpoofCPU"].selected_option != 0)
|
||||
|
||||
|
||||
## SPRINGBOARD OPTIONS PAGE
|
||||
@@ -688,9 +749,39 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
def on_notifyPastesChk_clicked(self, checked: bool):
|
||||
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
|
||||
def on_disableOTAChk_clicked(self, checked: bool):
|
||||
tweaks["DisableOTA"].set_enabled(checked)
|
||||
tweaks["DisableOTAFile"].set_enabled(checked)
|
||||
|
||||
def on_enableResolutionChk_clicked(self, checked: bool):
|
||||
tweaks["CustomResolution"].set_enabled(checked)
|
||||
@@ -739,6 +830,12 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
self.ui.advancedPageBtn.show()
|
||||
else:
|
||||
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):
|
||||
self.device_manager.auto_reboot = checked
|
||||
# save the setting
|
||||
@@ -747,6 +844,11 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
self.device_manager.skip_setup = checked
|
||||
# save the setting
|
||||
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):
|
||||
self.device_manager.organization_name = text
|
||||
self.settings.setValue("organization_name", text)
|
||||
@@ -782,9 +884,9 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
return
|
||||
if (
|
||||
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"]["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(
|
||||
device_manager=self.device_manager,
|
||||
@@ -792,8 +894,9 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
selected_file=selected_file
|
||||
)
|
||||
dialog.exec()
|
||||
self.device_manager.data_singleton.gestalt_path = selected_file
|
||||
self.ui.gestaltLocationLbl.setText(selected_file)
|
||||
else:
|
||||
self.device_manager.data_singleton.gestalt_path = selected_file
|
||||
self.ui.gestaltLocationLbl.setText(selected_file)
|
||||
# hide the warning labels
|
||||
self.ui.mgaWarningLbl.hide()
|
||||
self.ui.mgaWarningLbl2.hide()
|
||||
|
||||
356
mainwindow_ui.py
356
mainwindow_ui.py
@@ -306,20 +306,6 @@ class Ui_Nugget(object):
|
||||
|
||||
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.setObjectName(u"sidebarDiv1")
|
||||
self.sidebarDiv1.setStyleSheet(u"QFrame {\n"
|
||||
@@ -334,9 +320,9 @@ class Ui_Nugget(object):
|
||||
self.gestaltPageBtn.setObjectName(u"gestaltPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.gestaltPageBtn.sizePolicy().hasHeightForWidth())
|
||||
self.gestaltPageBtn.setSizePolicy(sizePolicy2)
|
||||
icon4 = QIcon()
|
||||
icon4.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.gestaltPageBtn.setIcon(icon4)
|
||||
icon3 = QIcon()
|
||||
icon3.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.gestaltPageBtn.setIcon(icon3)
|
||||
self.gestaltPageBtn.setIconSize(QSize(24, 28))
|
||||
self.gestaltPageBtn.setCheckable(True)
|
||||
self.gestaltPageBtn.setAutoExclusive(True)
|
||||
@@ -352,9 +338,9 @@ class Ui_Nugget(object):
|
||||
font = QFont()
|
||||
font.setFamilies([u".AppleSystemUIFont"])
|
||||
self.featureFlagsPageBtn.setFont(font)
|
||||
icon5 = QIcon()
|
||||
icon5.addFile(u":/icon/flag.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.featureFlagsPageBtn.setIcon(icon5)
|
||||
icon4 = QIcon()
|
||||
icon4.addFile(u":/icon/flag.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.featureFlagsPageBtn.setIcon(icon4)
|
||||
self.featureFlagsPageBtn.setCheckable(True)
|
||||
self.featureFlagsPageBtn.setAutoExclusive(True)
|
||||
self.featureFlagsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
|
||||
@@ -365,9 +351,9 @@ class Ui_Nugget(object):
|
||||
self.euEnablerPageBtn.setObjectName(u"euEnablerPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.euEnablerPageBtn.sizePolicy().hasHeightForWidth())
|
||||
self.euEnablerPageBtn.setSizePolicy(sizePolicy2)
|
||||
icon6 = QIcon()
|
||||
icon6.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.euEnablerPageBtn.setIcon(icon6)
|
||||
icon5 = QIcon()
|
||||
icon5.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.euEnablerPageBtn.setIcon(icon5)
|
||||
self.euEnablerPageBtn.setCheckable(True)
|
||||
self.euEnablerPageBtn.setAutoExclusive(True)
|
||||
self.euEnablerPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
|
||||
@@ -378,9 +364,9 @@ class Ui_Nugget(object):
|
||||
self.springboardOptionsPageBtn.setObjectName(u"springboardOptionsPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.springboardOptionsPageBtn.sizePolicy().hasHeightForWidth())
|
||||
self.springboardOptionsPageBtn.setSizePolicy(sizePolicy2)
|
||||
icon7 = QIcon()
|
||||
icon7.addFile(u":/icon/app-indicator.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.springboardOptionsPageBtn.setIcon(icon7)
|
||||
icon6 = QIcon()
|
||||
icon6.addFile(u":/icon/app-indicator.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.springboardOptionsPageBtn.setIcon(icon6)
|
||||
self.springboardOptionsPageBtn.setCheckable(True)
|
||||
self.springboardOptionsPageBtn.setAutoExclusive(True)
|
||||
self.springboardOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
|
||||
@@ -391,15 +377,29 @@ class Ui_Nugget(object):
|
||||
self.internalOptionsPageBtn.setObjectName(u"internalOptionsPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.internalOptionsPageBtn.sizePolicy().hasHeightForWidth())
|
||||
self.internalOptionsPageBtn.setSizePolicy(sizePolicy2)
|
||||
icon8 = QIcon()
|
||||
icon8.addFile(u":/icon/hdd.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.internalOptionsPageBtn.setIcon(icon8)
|
||||
icon7 = QIcon()
|
||||
icon7.addFile(u":/icon/hdd.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.internalOptionsPageBtn.setIcon(icon7)
|
||||
self.internalOptionsPageBtn.setCheckable(True)
|
||||
self.internalOptionsPageBtn.setAutoExclusive(True)
|
||||
self.internalOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
|
||||
|
||||
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.setObjectName(u"advancedPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.advancedPageBtn.sizePolicy().hasHeightForWidth())
|
||||
@@ -787,12 +787,12 @@ class Ui_Nugget(object):
|
||||
|
||||
self.horizontalLayout_2.addWidget(self.disfordottieBtn)
|
||||
|
||||
self.lrdsnowBtn = QToolButton(self.horizontalWidget_21)
|
||||
self.lrdsnowBtn.setObjectName(u"lrdsnowBtn")
|
||||
sizePolicy2.setHeightForWidth(self.lrdsnowBtn.sizePolicy().hasHeightForWidth())
|
||||
self.lrdsnowBtn.setSizePolicy(sizePolicy2)
|
||||
self.lrdsnowBtn.setMinimumSize(QSize(0, 37))
|
||||
self.lrdsnowBtn.setStyleSheet(u"QToolButton {\n"
|
||||
self.mikasaBtn = QToolButton(self.horizontalWidget_21)
|
||||
self.mikasaBtn.setObjectName(u"mikasaBtn")
|
||||
sizePolicy2.setHeightForWidth(self.mikasaBtn.sizePolicy().hasHeightForWidth())
|
||||
self.mikasaBtn.setSizePolicy(sizePolicy2)
|
||||
self.mikasaBtn.setMinimumSize(QSize(0, 37))
|
||||
self.mikasaBtn.setStyleSheet(u"QToolButton {\n"
|
||||
" border-top-left-radius: 0px;\n"
|
||||
" border-bottom-left-radius: 0px;\n"
|
||||
" background: none;\n"
|
||||
@@ -805,7 +805,7 @@ class Ui_Nugget(object):
|
||||
" color: #FFFFFF;\n"
|
||||
"}")
|
||||
|
||||
self.horizontalLayout_2.addWidget(self.lrdsnowBtn)
|
||||
self.horizontalLayout_2.addWidget(self.mikasaBtn)
|
||||
|
||||
|
||||
self.verticalLayout_25.addWidget(self.horizontalWidget_21)
|
||||
@@ -897,7 +897,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_8.setIcon(icon4)
|
||||
self.toolButton_8.setIcon(icon3)
|
||||
self.toolButton_8.setIconSize(QSize(30, 30))
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.toolButton_8)
|
||||
@@ -1235,7 +1235,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_10.setIcon(icon5)
|
||||
self.toolButton_10.setIcon(icon4)
|
||||
|
||||
self.horizontalLayout_20.addWidget(self.toolButton_10)
|
||||
|
||||
@@ -1341,7 +1341,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_11.setIcon(icon6)
|
||||
self.toolButton_11.setIcon(icon5)
|
||||
|
||||
self.horizontalLayout_21.addWidget(self.toolButton_11)
|
||||
|
||||
@@ -1619,7 +1619,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_7.setIcon(icon7)
|
||||
self.toolButton_7.setIcon(icon6)
|
||||
|
||||
self.horizontalLayout_13.addWidget(self.toolButton_7)
|
||||
|
||||
@@ -1745,7 +1745,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_101.setIcon(icon8)
|
||||
self.toolButton_101.setIcon(icon7)
|
||||
|
||||
self.horizontalLayout_201.addWidget(self.toolButton_101)
|
||||
|
||||
@@ -1905,12 +1905,12 @@ class Ui_Nugget(object):
|
||||
self.verticalLayout_141.addWidget(self.internalOptionsPageContent)
|
||||
|
||||
self.pages.addWidget(self.internalOptionsPage)
|
||||
self.advancedOptionsPage = QWidget()
|
||||
self.advancedOptionsPage.setObjectName(u"advancedOptionsPage")
|
||||
self.verticalLayout_142 = QVBoxLayout(self.advancedOptionsPage)
|
||||
self.daemonsPage = QWidget()
|
||||
self.daemonsPage.setObjectName(u"daemonsPage")
|
||||
self.verticalLayout_142 = QVBoxLayout(self.daemonsPage)
|
||||
self.verticalLayout_142.setObjectName(u"verticalLayout_142")
|
||||
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.horizontalLayout_202 = QHBoxLayout(self.horizontalWidget_52)
|
||||
self.horizontalLayout_202.setSpacing(10)
|
||||
@@ -1918,7 +1918,7 @@ class Ui_Nugget(object):
|
||||
self.horizontalLayout_202.setContentsMargins(0, 9, 0, 9)
|
||||
self.toolButton_102 = QToolButton(self.horizontalWidget_52)
|
||||
self.toolButton_102.setObjectName(u"toolButton_102")
|
||||
self.toolButton_102.setEnabled(False)
|
||||
self.toolButton_102.setEnabled(True)
|
||||
self.toolButton_102.setStyleSheet(u"QToolButton {\n"
|
||||
" icon-size: 24px;\n"
|
||||
" background-color: transparent;\n"
|
||||
@@ -1926,7 +1926,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_102.setIcon(icon9)
|
||||
self.toolButton_102.setIcon(icon8)
|
||||
|
||||
self.horizontalLayout_202.addWidget(self.toolButton_102)
|
||||
|
||||
@@ -1936,11 +1936,11 @@ class Ui_Nugget(object):
|
||||
self.verticalLayout_122.setSpacing(6)
|
||||
self.verticalLayout_122.setObjectName(u"verticalLayout_122")
|
||||
self.verticalLayout_122.setContentsMargins(0, 0, 0, 0)
|
||||
self.advancedOptionsLbl = QLabel(self.verticalWidget_42)
|
||||
self.advancedOptionsLbl.setObjectName(u"advancedOptionsLbl")
|
||||
self.advancedOptionsLbl.setFont(font1)
|
||||
self.daemonsLbl = QLabel(self.verticalWidget_42)
|
||||
self.daemonsLbl.setObjectName(u"daemonsLbl")
|
||||
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)
|
||||
|
||||
@@ -1956,7 +1956,7 @@ class Ui_Nugget(object):
|
||||
|
||||
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.setStyleSheet(u"QFrame {\n"
|
||||
" color: #414141;\n"
|
||||
@@ -1966,16 +1966,126 @@ class Ui_Nugget(object):
|
||||
|
||||
self.verticalLayout_142.addWidget(self.line_122)
|
||||
|
||||
self.advancedOptionsPageContent = QWidget(self.advancedOptionsPage)
|
||||
self.advancedOptionsPageContent.setObjectName(u"advancedOptionsPageContent")
|
||||
self.advancedOptionsPageContent.setEnabled(False)
|
||||
self.verticalLayout_132 = QVBoxLayout(self.advancedOptionsPageContent)
|
||||
self.daemonsPageContent = QWidget(self.daemonsPage)
|
||||
self.daemonsPageContent.setObjectName(u"daemonsPageContent")
|
||||
self.daemonsPageContent.setEnabled(True)
|
||||
self.verticalLayout_132 = QVBoxLayout(self.daemonsPageContent)
|
||||
self.verticalLayout_132.setObjectName(u"verticalLayout_132")
|
||||
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.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.setObjectName(u"line_191")
|
||||
@@ -1985,12 +2095,12 @@ class Ui_Nugget(object):
|
||||
self.line_191.setFrameShadow(QFrame.Plain)
|
||||
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.setObjectName(u"disableOTAChk")
|
||||
|
||||
self.verticalLayout_132.addWidget(self.disableOTAChk)
|
||||
self.verticalLayout_133.addWidget(self.disableOTAChk)
|
||||
|
||||
self.line_181 = QFrame(self.advancedOptionsPageContent)
|
||||
self.line_181.setObjectName(u"line_181")
|
||||
@@ -2000,47 +2110,95 @@ class Ui_Nugget(object):
|
||||
self.line_181.setFrameShadow(QFrame.Plain)
|
||||
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.setObjectName(u"enableResolutionChk")
|
||||
|
||||
self.verticalLayout_132.addWidget(self.enableResolutionChk)
|
||||
self.verticalLayout_133.addWidget(self.enableResolutionChk)
|
||||
|
||||
self.resolutionContent = QVBoxLayout()
|
||||
self.resolutionContent.setObjectName(u"resolutionContent")
|
||||
self.resolutionContent.setContentsMargins(-1, -1, -1, 10)
|
||||
self.resHeightLbl = QLabel(self.advancedOptionsPageContent)
|
||||
self.resChangerContent = QWidget(self.advancedOptionsPageContent)
|
||||
self.resChangerContent.setObjectName(u"resChangerContent")
|
||||
self.resChangerContent.setEnabled(True)
|
||||
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.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.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.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.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.verticalSpacer_62 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
||||
|
||||
self.verticalLayout_132.addItem(self.verticalSpacer_62)
|
||||
self.resolutionContent.addLayout(self.horizontalLayout_10)
|
||||
|
||||
|
||||
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.applyPage = QWidget()
|
||||
@@ -2378,7 +2536,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_13.setIcon(icon6)
|
||||
self.toolButton_13.setIcon(icon5)
|
||||
|
||||
self.horizontalLayout_28.addWidget(self.toolButton_13)
|
||||
|
||||
@@ -2644,7 +2802,9 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\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)
|
||||
|
||||
@@ -2714,7 +2874,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.themesBtn.setIcon(icon4)
|
||||
self.themesBtn.setIcon(icon3)
|
||||
self.themesBtn.setIconSize(QSize(30, 30))
|
||||
|
||||
self.horizontalLayout_23.addWidget(self.themesBtn)
|
||||
@@ -2760,9 +2920,9 @@ class Ui_Nugget(object):
|
||||
|
||||
self.importThemeZipBtn = QToolButton(self.horizontalWidget7)
|
||||
self.importThemeZipBtn.setObjectName(u"importThemeZipBtn")
|
||||
icon22 = QIcon()
|
||||
icon22.addFile(u":/icon/file-earmark-zip.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.importThemeZipBtn.setIcon(icon22)
|
||||
icon23 = QIcon()
|
||||
icon23.addFile(u":/icon/file-earmark-zip.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.importThemeZipBtn.setIcon(icon23)
|
||||
|
||||
self.horizontalLayout_26.addWidget(self.importThemeZipBtn)
|
||||
|
||||
@@ -2864,7 +3024,7 @@ class Ui_Nugget(object):
|
||||
self.retranslateUi(Nugget)
|
||||
|
||||
self.devicePicker.setCurrentIndex(-1)
|
||||
self.pages.setCurrentIndex(8)
|
||||
self.pages.setCurrentIndex(0)
|
||||
self.dynamicIslandDrp.setCurrentIndex(0)
|
||||
self.spoofedModelDrp.setCurrentIndex(0)
|
||||
|
||||
@@ -2880,8 +3040,6 @@ class Ui_Nugget(object):
|
||||
self.titleBar.setText(QCoreApplication.translate("Nugget", u"Nugget", None))
|
||||
self.homePageBtn.setText(QCoreApplication.translate("Nugget", u" Home", 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.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", 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.internalOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Internal Options", 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.applyPageBtn.setText(QCoreApplication.translate("Nugget", u" Apply", None))
|
||||
self.applyPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
|
||||
@@ -2914,12 +3074,12 @@ class Ui_Nugget(object):
|
||||
"Sparserestore", None))
|
||||
self.disfordottieBtn.setText(QCoreApplication.translate("Nugget", u"disfordottie\n"
|
||||
"Clock Anim, Photos UI", None))
|
||||
self.lrdsnowBtn.setText(QCoreApplication.translate("Nugget", u"lrdsnow\n"
|
||||
"EU Enabler", None))
|
||||
self.mikasaBtn.setText(QCoreApplication.translate("Nugget", u"Mikasa\n"
|
||||
"Quiet Daemon", None))
|
||||
self.toolButton_15.setText(QCoreApplication.translate("Nugget", u"Additional Thanks", None))
|
||||
self.libiBtn.setText(QCoreApplication.translate("Nugget", u"pymobiledevice3", 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.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))
|
||||
@@ -3035,7 +3195,15 @@ class Ui_Nugget(object):
|
||||
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.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"
|
||||
"\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.resHeightLbl.setText(QCoreApplication.translate("Nugget", u"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.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.label_16.setText("")
|
||||
self.modifiedTweaksLbl.setText(QCoreApplication.translate("Nugget", u"Current gestalt file location:", None))
|
||||
|
||||
1296
qt/mainwindow.ui
1296
qt/mainwindow.ui
File diff suppressed because it is too large
Load Diff
@@ -15,10 +15,11 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
|
||||
QFont, QFontDatabase, QGradient, QIcon,
|
||||
QImage, QKeySequence, QLinearGradient, QPainter,
|
||||
QPalette, QPixmap, QRadialGradient, QTransform)
|
||||
from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QFrame,
|
||||
QHBoxLayout, QLabel, QLineEdit, QMainWindow,
|
||||
QProgressBar, QScrollArea, QSizePolicy, QSpacerItem,
|
||||
QStackedWidget, QToolButton, QVBoxLayout, QWidget)
|
||||
from PySide6.QtWidgets import (QAbstractScrollArea, QApplication, QCheckBox, QComboBox,
|
||||
QFrame, QHBoxLayout, QLabel, QLineEdit,
|
||||
QMainWindow, QProgressBar, QScrollArea, QSizePolicy,
|
||||
QSpacerItem, QStackedWidget, QToolButton, QVBoxLayout,
|
||||
QWidget)
|
||||
import resources_rc
|
||||
|
||||
class Ui_Nugget(object):
|
||||
@@ -306,20 +307,6 @@ class Ui_Nugget(object):
|
||||
|
||||
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.setObjectName(u"sidebarDiv1")
|
||||
self.sidebarDiv1.setStyleSheet(u"QFrame {\n"
|
||||
@@ -334,9 +321,9 @@ class Ui_Nugget(object):
|
||||
self.gestaltPageBtn.setObjectName(u"gestaltPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.gestaltPageBtn.sizePolicy().hasHeightForWidth())
|
||||
self.gestaltPageBtn.setSizePolicy(sizePolicy2)
|
||||
icon4 = QIcon()
|
||||
icon4.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.gestaltPageBtn.setIcon(icon4)
|
||||
icon3 = QIcon()
|
||||
icon3.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.gestaltPageBtn.setIcon(icon3)
|
||||
self.gestaltPageBtn.setIconSize(QSize(24, 28))
|
||||
self.gestaltPageBtn.setCheckable(True)
|
||||
self.gestaltPageBtn.setAutoExclusive(True)
|
||||
@@ -352,9 +339,9 @@ class Ui_Nugget(object):
|
||||
font = QFont()
|
||||
font.setFamilies([u".AppleSystemUIFont"])
|
||||
self.featureFlagsPageBtn.setFont(font)
|
||||
icon5 = QIcon()
|
||||
icon5.addFile(u":/icon/flag.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.featureFlagsPageBtn.setIcon(icon5)
|
||||
icon4 = QIcon()
|
||||
icon4.addFile(u":/icon/flag.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.featureFlagsPageBtn.setIcon(icon4)
|
||||
self.featureFlagsPageBtn.setCheckable(True)
|
||||
self.featureFlagsPageBtn.setAutoExclusive(True)
|
||||
self.featureFlagsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
|
||||
@@ -365,9 +352,9 @@ class Ui_Nugget(object):
|
||||
self.euEnablerPageBtn.setObjectName(u"euEnablerPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.euEnablerPageBtn.sizePolicy().hasHeightForWidth())
|
||||
self.euEnablerPageBtn.setSizePolicy(sizePolicy2)
|
||||
icon6 = QIcon()
|
||||
icon6.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.euEnablerPageBtn.setIcon(icon6)
|
||||
icon5 = QIcon()
|
||||
icon5.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.euEnablerPageBtn.setIcon(icon5)
|
||||
self.euEnablerPageBtn.setCheckable(True)
|
||||
self.euEnablerPageBtn.setAutoExclusive(True)
|
||||
self.euEnablerPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
|
||||
@@ -378,9 +365,9 @@ class Ui_Nugget(object):
|
||||
self.springboardOptionsPageBtn.setObjectName(u"springboardOptionsPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.springboardOptionsPageBtn.sizePolicy().hasHeightForWidth())
|
||||
self.springboardOptionsPageBtn.setSizePolicy(sizePolicy2)
|
||||
icon7 = QIcon()
|
||||
icon7.addFile(u":/icon/app-indicator.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.springboardOptionsPageBtn.setIcon(icon7)
|
||||
icon6 = QIcon()
|
||||
icon6.addFile(u":/icon/app-indicator.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.springboardOptionsPageBtn.setIcon(icon6)
|
||||
self.springboardOptionsPageBtn.setCheckable(True)
|
||||
self.springboardOptionsPageBtn.setAutoExclusive(True)
|
||||
self.springboardOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
|
||||
@@ -391,15 +378,29 @@ class Ui_Nugget(object):
|
||||
self.internalOptionsPageBtn.setObjectName(u"internalOptionsPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.internalOptionsPageBtn.sizePolicy().hasHeightForWidth())
|
||||
self.internalOptionsPageBtn.setSizePolicy(sizePolicy2)
|
||||
icon8 = QIcon()
|
||||
icon8.addFile(u":/icon/hdd.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.internalOptionsPageBtn.setIcon(icon8)
|
||||
icon7 = QIcon()
|
||||
icon7.addFile(u":/icon/hdd.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.internalOptionsPageBtn.setIcon(icon7)
|
||||
self.internalOptionsPageBtn.setCheckable(True)
|
||||
self.internalOptionsPageBtn.setAutoExclusive(True)
|
||||
self.internalOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
|
||||
|
||||
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.setObjectName(u"advancedPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.advancedPageBtn.sizePolicy().hasHeightForWidth())
|
||||
@@ -787,12 +788,12 @@ class Ui_Nugget(object):
|
||||
|
||||
self.horizontalLayout_2.addWidget(self.disfordottieBtn)
|
||||
|
||||
self.lrdsnowBtn = QToolButton(self.horizontalWidget_21)
|
||||
self.lrdsnowBtn.setObjectName(u"lrdsnowBtn")
|
||||
sizePolicy2.setHeightForWidth(self.lrdsnowBtn.sizePolicy().hasHeightForWidth())
|
||||
self.lrdsnowBtn.setSizePolicy(sizePolicy2)
|
||||
self.lrdsnowBtn.setMinimumSize(QSize(0, 37))
|
||||
self.lrdsnowBtn.setStyleSheet(u"QToolButton {\n"
|
||||
self.mikasaBtn = QToolButton(self.horizontalWidget_21)
|
||||
self.mikasaBtn.setObjectName(u"mikasaBtn")
|
||||
sizePolicy2.setHeightForWidth(self.mikasaBtn.sizePolicy().hasHeightForWidth())
|
||||
self.mikasaBtn.setSizePolicy(sizePolicy2)
|
||||
self.mikasaBtn.setMinimumSize(QSize(0, 37))
|
||||
self.mikasaBtn.setStyleSheet(u"QToolButton {\n"
|
||||
" border-top-left-radius: 0px;\n"
|
||||
" border-bottom-left-radius: 0px;\n"
|
||||
" background: none;\n"
|
||||
@@ -805,7 +806,7 @@ class Ui_Nugget(object):
|
||||
" color: #FFFFFF;\n"
|
||||
"}")
|
||||
|
||||
self.horizontalLayout_2.addWidget(self.lrdsnowBtn)
|
||||
self.horizontalLayout_2.addWidget(self.mikasaBtn)
|
||||
|
||||
|
||||
self.verticalLayout_25.addWidget(self.horizontalWidget_21)
|
||||
@@ -869,11 +870,11 @@ class Ui_Nugget(object):
|
||||
|
||||
self.verticalLayout_2.addWidget(self.verticalWidget_2)
|
||||
|
||||
self.label = QLabel(self.homePage)
|
||||
self.label.setObjectName(u"label")
|
||||
self.label.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
|
||||
self.appVersionLbl = QLabel(self.homePage)
|
||||
self.appVersionLbl.setObjectName(u"appVersionLbl")
|
||||
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.gestaltPage = QWidget()
|
||||
@@ -897,7 +898,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_8.setIcon(icon4)
|
||||
self.toolButton_8.setIcon(icon3)
|
||||
self.toolButton_8.setIconSize(QSize(30, 30))
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.toolButton_8)
|
||||
@@ -1141,6 +1142,11 @@ class Ui_Nugget(object):
|
||||
|
||||
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.setObjectName(u"line_22")
|
||||
self.line_22.setStyleSheet(u"QFrame {\n"
|
||||
@@ -1235,7 +1241,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_10.setIcon(icon5)
|
||||
self.toolButton_10.setIcon(icon4)
|
||||
|
||||
self.horizontalLayout_20.addWidget(self.toolButton_10)
|
||||
|
||||
@@ -1341,7 +1347,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_11.setIcon(icon6)
|
||||
self.toolButton_11.setIcon(icon5)
|
||||
|
||||
self.horizontalLayout_21.addWidget(self.toolButton_11)
|
||||
|
||||
@@ -1381,7 +1387,18 @@ class Ui_Nugget(object):
|
||||
|
||||
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.setEnabled(False)
|
||||
self.verticalLayout_16 = QVBoxLayout(self.euEnablerPageContent)
|
||||
@@ -1587,6 +1604,18 @@ class Ui_Nugget(object):
|
||||
|
||||
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)
|
||||
|
||||
@@ -1595,7 +1624,11 @@ class Ui_Nugget(object):
|
||||
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.springboardOptionsPage = QWidget()
|
||||
@@ -1619,7 +1652,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_7.setIcon(icon7)
|
||||
self.toolButton_7.setIcon(icon6)
|
||||
|
||||
self.horizontalLayout_13.addWidget(self.toolButton_7)
|
||||
|
||||
@@ -1745,7 +1778,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_101.setIcon(icon8)
|
||||
self.toolButton_101.setIcon(icon7)
|
||||
|
||||
self.horizontalLayout_201.addWidget(self.toolButton_101)
|
||||
|
||||
@@ -1905,12 +1938,12 @@ class Ui_Nugget(object):
|
||||
self.verticalLayout_141.addWidget(self.internalOptionsPageContent)
|
||||
|
||||
self.pages.addWidget(self.internalOptionsPage)
|
||||
self.advancedOptionsPage = QWidget()
|
||||
self.advancedOptionsPage.setObjectName(u"advancedOptionsPage")
|
||||
self.verticalLayout_142 = QVBoxLayout(self.advancedOptionsPage)
|
||||
self.daemonsPage = QWidget()
|
||||
self.daemonsPage.setObjectName(u"daemonsPage")
|
||||
self.verticalLayout_142 = QVBoxLayout(self.daemonsPage)
|
||||
self.verticalLayout_142.setObjectName(u"verticalLayout_142")
|
||||
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.horizontalLayout_202 = QHBoxLayout(self.horizontalWidget_52)
|
||||
self.horizontalLayout_202.setSpacing(10)
|
||||
@@ -1918,7 +1951,7 @@ class Ui_Nugget(object):
|
||||
self.horizontalLayout_202.setContentsMargins(0, 9, 0, 9)
|
||||
self.toolButton_102 = QToolButton(self.horizontalWidget_52)
|
||||
self.toolButton_102.setObjectName(u"toolButton_102")
|
||||
self.toolButton_102.setEnabled(False)
|
||||
self.toolButton_102.setEnabled(True)
|
||||
self.toolButton_102.setStyleSheet(u"QToolButton {\n"
|
||||
" icon-size: 24px;\n"
|
||||
" background-color: transparent;\n"
|
||||
@@ -1926,7 +1959,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_102.setIcon(icon9)
|
||||
self.toolButton_102.setIcon(icon8)
|
||||
|
||||
self.horizontalLayout_202.addWidget(self.toolButton_102)
|
||||
|
||||
@@ -1936,15 +1969,16 @@ class Ui_Nugget(object):
|
||||
self.verticalLayout_122.setSpacing(6)
|
||||
self.verticalLayout_122.setObjectName(u"verticalLayout_122")
|
||||
self.verticalLayout_122.setContentsMargins(0, 0, 0, 0)
|
||||
self.advancedOptionsLbl = QLabel(self.verticalWidget_42)
|
||||
self.advancedOptionsLbl.setObjectName(u"advancedOptionsLbl")
|
||||
self.advancedOptionsLbl.setFont(font1)
|
||||
self.daemonsLbl = QLabel(self.verticalWidget_42)
|
||||
self.daemonsLbl.setObjectName(u"daemonsLbl")
|
||||
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)
|
||||
@@ -1956,7 +1990,7 @@ class Ui_Nugget(object):
|
||||
|
||||
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.setStyleSheet(u"QFrame {\n"
|
||||
" color: #414141;\n"
|
||||
@@ -1966,16 +2000,161 @@ class Ui_Nugget(object):
|
||||
|
||||
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.setObjectName(u"advancedOptionsPageContent")
|
||||
self.advancedOptionsPageContent.setEnabled(True)
|
||||
self.verticalLayout_132 = QVBoxLayout(self.advancedOptionsPageContent)
|
||||
self.verticalLayout_132.setObjectName(u"verticalLayout_132")
|
||||
self.verticalLayout_132.setContentsMargins(0, 0, 0, 0)
|
||||
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.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.setObjectName(u"line_191")
|
||||
@@ -1985,12 +2164,17 @@ class Ui_Nugget(object):
|
||||
self.line_191.setFrameShadow(QFrame.Plain)
|
||||
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.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.setObjectName(u"line_181")
|
||||
@@ -2000,12 +2184,12 @@ class Ui_Nugget(object):
|
||||
self.line_181.setFrameShadow(QFrame.Plain)
|
||||
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.setObjectName(u"enableResolutionChk")
|
||||
|
||||
self.verticalLayout_132.addWidget(self.enableResolutionChk)
|
||||
self.verticalLayout_133.addWidget(self.enableResolutionChk)
|
||||
|
||||
self.resChangerContent = QWidget(self.advancedOptionsPageContent)
|
||||
self.resChangerContent.setObjectName(u"resChangerContent")
|
||||
@@ -2081,14 +2265,14 @@ class Ui_Nugget(object):
|
||||
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.applyPage = QWidget()
|
||||
@@ -2220,6 +2404,13 @@ class Ui_Nugget(object):
|
||||
|
||||
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.verticalLayout_24.addItem(self.verticalSpacer_2)
|
||||
@@ -2324,7 +2515,7 @@ class Ui_Nugget(object):
|
||||
self._21.setContentsMargins(0, 0, 0, 0)
|
||||
self.allowWifiApplyingChk = QCheckBox(self.settingsPageContent)
|
||||
self.allowWifiApplyingChk.setObjectName(u"allowWifiApplyingChk")
|
||||
self.allowWifiApplyingChk.setChecked(True)
|
||||
self.allowWifiApplyingChk.setChecked(False)
|
||||
|
||||
self._21.addWidget(self.allowWifiApplyingChk)
|
||||
|
||||
@@ -2339,6 +2530,11 @@ class Ui_Nugget(object):
|
||||
|
||||
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.setObjectName(u"line_24")
|
||||
self.line_24.setStyleSheet(u"QFrame {\n"
|
||||
@@ -2426,7 +2622,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_13.setIcon(icon6)
|
||||
self.toolButton_13.setIcon(icon5)
|
||||
|
||||
self.horizontalLayout_28.addWidget(self.toolButton_13)
|
||||
|
||||
@@ -2692,7 +2888,9 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\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)
|
||||
|
||||
@@ -2762,7 +2960,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.themesBtn.setIcon(icon4)
|
||||
self.themesBtn.setIcon(icon3)
|
||||
self.themesBtn.setIconSize(QSize(30, 30))
|
||||
|
||||
self.horizontalLayout_23.addWidget(self.themesBtn)
|
||||
@@ -2808,9 +3006,9 @@ class Ui_Nugget(object):
|
||||
|
||||
self.importThemeZipBtn = QToolButton(self.horizontalWidget7)
|
||||
self.importThemeZipBtn.setObjectName(u"importThemeZipBtn")
|
||||
icon22 = QIcon()
|
||||
icon22.addFile(u":/icon/file-earmark-zip.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.importThemeZipBtn.setIcon(icon22)
|
||||
icon23 = QIcon()
|
||||
icon23.addFile(u":/icon/file-earmark-zip.svg", QSize(), QIcon.Normal, QIcon.Off)
|
||||
self.importThemeZipBtn.setIcon(icon23)
|
||||
|
||||
self.horizontalLayout_26.addWidget(self.importThemeZipBtn)
|
||||
|
||||
@@ -2928,8 +3126,6 @@ class Ui_Nugget(object):
|
||||
self.titleBar.setText(QCoreApplication.translate("Nugget", u"Nugget", None))
|
||||
self.homePageBtn.setText(QCoreApplication.translate("Nugget", u" Home", 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.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", 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.internalOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Internal Options", 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.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", 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.label_2.setText(QCoreApplication.translate("Nugget", u"Nugget", 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.leminTwitterBtn.setText(QCoreApplication.translate("Nugget", u"...", None))
|
||||
self.leminGithubBtn.setText(QCoreApplication.translate("Nugget", u"...", None))
|
||||
@@ -2962,12 +3163,12 @@ class Ui_Nugget(object):
|
||||
"Sparserestore", None))
|
||||
self.disfordottieBtn.setText(QCoreApplication.translate("Nugget", u"disfordottie\n"
|
||||
"Clock Anim, Photos UI", None))
|
||||
self.lrdsnowBtn.setText(QCoreApplication.translate("Nugget", u"lrdsnow\n"
|
||||
"EU Enabler", None))
|
||||
self.mikasaBtn.setText(QCoreApplication.translate("Nugget", u"Mikasa\n"
|
||||
"Quiet Daemon", None))
|
||||
self.toolButton_15.setText(QCoreApplication.translate("Nugget", u"Additional Thanks", None))
|
||||
self.libiBtn.setText(QCoreApplication.translate("Nugget", u"pymobiledevice3", 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.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))
|
||||
@@ -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.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))
|
||||
#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.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))
|
||||
#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.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))
|
||||
#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.stageManagerChk.setText(QCoreApplication.translate("Nugget", u"Enable Stage Manager Supported (WARNING: risky on some devices, mainly phones)", None))
|
||||
self.enableMedusaChk.setText(QCoreApplication.translate("Nugget", u"Enable Medusa (iPad Multitasking) (WARNING: may be risky on some 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)", 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.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.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))
|
||||
#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))
|
||||
#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))
|
||||
#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))
|
||||
#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.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"
|
||||
"what you are doing.", 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))
|
||||
#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))
|
||||
#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))
|
||||
#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.eligibilityLbl.setText(QCoreApplication.translate("Nugget", u"Eligibility Tweaks", 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.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.label_13.setText(QCoreApplication.translate("Nugget", u"Lock Screen 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.disableDimmingChk.setText(QCoreApplication.translate("Nugget", u"Disable Screen Dimming While Charging", 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))
|
||||
#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.enableAirPlayChk.setText(QCoreApplication.translate("Nugget", u"Enable AirPlay support for Stage Manager", 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.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.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.label_17.setText(QCoreApplication.translate("Nugget", u"Disclaimer:\n"
|
||||
"\n"
|
||||
@@ -3090,7 +3415,19 @@ class Ui_Nugget(object):
|
||||
"your device resolution has the potential to brick your device when used improperly.\n"
|
||||
"\n"
|
||||
"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.resHeightLbl.setText(QCoreApplication.translate("Nugget", u"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.applyTweaksBtn.setText(QCoreApplication.translate("Nugget", u" Apply Changes", 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.resetGestaltBtn.setText(QCoreApplication.translate("Nugget", u"Reset Mobile Gestalt", None))
|
||||
self.springboardOptionsLbl1.setText(QCoreApplication.translate("Nugget", u"Nugget Settings", 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.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.supervisionChk.setText(QCoreApplication.translate("Nugget", u"Enable Supervision * (requires Skip Setup)", None))
|
||||
self.supervisionOrganization.setPlaceholderText(QCoreApplication.translate("Nugget", u"Enter Organization Name", None))
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
################################################################################
|
||||
## 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!
|
||||
################################################################################
|
||||
@@ -15,10 +15,11 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
|
||||
QFont, QFontDatabase, QGradient, QIcon,
|
||||
QImage, QKeySequence, QLinearGradient, QPainter,
|
||||
QPalette, QPixmap, QRadialGradient, QTransform)
|
||||
from PySide6.QtWidgets import (QApplication, QCheckBox, QComboBox, QFrame,
|
||||
QHBoxLayout, QLabel, QLineEdit, QMainWindow,
|
||||
QProgressBar, QScrollArea, QSizePolicy, QSpacerItem,
|
||||
QStackedWidget, QToolButton, QVBoxLayout, QWidget)
|
||||
from PySide6.QtWidgets import (QAbstractScrollArea, QApplication, QCheckBox, QComboBox,
|
||||
QFrame, QHBoxLayout, QLabel, QLineEdit,
|
||||
QMainWindow, QProgressBar, QScrollArea, QSizePolicy,
|
||||
QSpacerItem, QStackedWidget, QToolButton, QVBoxLayout,
|
||||
QWidget)
|
||||
import resources_rc
|
||||
|
||||
class Ui_Nugget(object):
|
||||
@@ -306,20 +307,6 @@ class Ui_Nugget(object):
|
||||
|
||||
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.setObjectName(u"sidebarDiv1")
|
||||
self.sidebarDiv1.setStyleSheet(u"QFrame {\n"
|
||||
@@ -334,9 +321,9 @@ class Ui_Nugget(object):
|
||||
self.gestaltPageBtn.setObjectName(u"gestaltPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.gestaltPageBtn.sizePolicy().hasHeightForWidth())
|
||||
self.gestaltPageBtn.setSizePolicy(sizePolicy2)
|
||||
icon4 = QIcon()
|
||||
icon4.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
||||
self.gestaltPageBtn.setIcon(icon4)
|
||||
icon3 = QIcon()
|
||||
icon3.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
||||
self.gestaltPageBtn.setIcon(icon3)
|
||||
self.gestaltPageBtn.setIconSize(QSize(24, 28))
|
||||
self.gestaltPageBtn.setCheckable(True)
|
||||
self.gestaltPageBtn.setAutoExclusive(True)
|
||||
@@ -352,9 +339,9 @@ class Ui_Nugget(object):
|
||||
font = QFont()
|
||||
font.setFamilies([u".AppleSystemUIFont"])
|
||||
self.featureFlagsPageBtn.setFont(font)
|
||||
icon5 = QIcon()
|
||||
icon5.addFile(u":/icon/flag.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
||||
self.featureFlagsPageBtn.setIcon(icon5)
|
||||
icon4 = QIcon()
|
||||
icon4.addFile(u":/icon/flag.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
||||
self.featureFlagsPageBtn.setIcon(icon4)
|
||||
self.featureFlagsPageBtn.setCheckable(True)
|
||||
self.featureFlagsPageBtn.setAutoExclusive(True)
|
||||
self.featureFlagsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
|
||||
@@ -365,9 +352,9 @@ class Ui_Nugget(object):
|
||||
self.euEnablerPageBtn.setObjectName(u"euEnablerPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.euEnablerPageBtn.sizePolicy().hasHeightForWidth())
|
||||
self.euEnablerPageBtn.setSizePolicy(sizePolicy2)
|
||||
icon6 = QIcon()
|
||||
icon6.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
||||
self.euEnablerPageBtn.setIcon(icon6)
|
||||
icon5 = QIcon()
|
||||
icon5.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
||||
self.euEnablerPageBtn.setIcon(icon5)
|
||||
self.euEnablerPageBtn.setCheckable(True)
|
||||
self.euEnablerPageBtn.setAutoExclusive(True)
|
||||
self.euEnablerPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
|
||||
@@ -378,9 +365,9 @@ class Ui_Nugget(object):
|
||||
self.springboardOptionsPageBtn.setObjectName(u"springboardOptionsPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.springboardOptionsPageBtn.sizePolicy().hasHeightForWidth())
|
||||
self.springboardOptionsPageBtn.setSizePolicy(sizePolicy2)
|
||||
icon7 = QIcon()
|
||||
icon7.addFile(u":/icon/app-indicator.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
||||
self.springboardOptionsPageBtn.setIcon(icon7)
|
||||
icon6 = QIcon()
|
||||
icon6.addFile(u":/icon/app-indicator.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
||||
self.springboardOptionsPageBtn.setIcon(icon6)
|
||||
self.springboardOptionsPageBtn.setCheckable(True)
|
||||
self.springboardOptionsPageBtn.setAutoExclusive(True)
|
||||
self.springboardOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
|
||||
@@ -391,15 +378,29 @@ class Ui_Nugget(object):
|
||||
self.internalOptionsPageBtn.setObjectName(u"internalOptionsPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.internalOptionsPageBtn.sizePolicy().hasHeightForWidth())
|
||||
self.internalOptionsPageBtn.setSizePolicy(sizePolicy2)
|
||||
icon8 = QIcon()
|
||||
icon8.addFile(u":/icon/hdd.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
||||
self.internalOptionsPageBtn.setIcon(icon8)
|
||||
icon7 = QIcon()
|
||||
icon7.addFile(u":/icon/hdd.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
||||
self.internalOptionsPageBtn.setIcon(icon7)
|
||||
self.internalOptionsPageBtn.setCheckable(True)
|
||||
self.internalOptionsPageBtn.setAutoExclusive(True)
|
||||
self.internalOptionsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
|
||||
|
||||
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.setObjectName(u"advancedPageBtn")
|
||||
sizePolicy2.setHeightForWidth(self.advancedPageBtn.sizePolicy().hasHeightForWidth())
|
||||
@@ -787,12 +788,12 @@ class Ui_Nugget(object):
|
||||
|
||||
self.horizontalLayout_2.addWidget(self.disfordottieBtn)
|
||||
|
||||
self.lrdsnowBtn = QToolButton(self.horizontalWidget_21)
|
||||
self.lrdsnowBtn.setObjectName(u"lrdsnowBtn")
|
||||
sizePolicy2.setHeightForWidth(self.lrdsnowBtn.sizePolicy().hasHeightForWidth())
|
||||
self.lrdsnowBtn.setSizePolicy(sizePolicy2)
|
||||
self.lrdsnowBtn.setMinimumSize(QSize(0, 37))
|
||||
self.lrdsnowBtn.setStyleSheet(u"QToolButton {\n"
|
||||
self.mikasaBtn = QToolButton(self.horizontalWidget_21)
|
||||
self.mikasaBtn.setObjectName(u"mikasaBtn")
|
||||
sizePolicy2.setHeightForWidth(self.mikasaBtn.sizePolicy().hasHeightForWidth())
|
||||
self.mikasaBtn.setSizePolicy(sizePolicy2)
|
||||
self.mikasaBtn.setMinimumSize(QSize(0, 37))
|
||||
self.mikasaBtn.setStyleSheet(u"QToolButton {\n"
|
||||
" border-top-left-radius: 0px;\n"
|
||||
" border-bottom-left-radius: 0px;\n"
|
||||
" background: none;\n"
|
||||
@@ -805,7 +806,7 @@ class Ui_Nugget(object):
|
||||
" color: #FFFFFF;\n"
|
||||
"}")
|
||||
|
||||
self.horizontalLayout_2.addWidget(self.lrdsnowBtn)
|
||||
self.horizontalLayout_2.addWidget(self.mikasaBtn)
|
||||
|
||||
|
||||
self.verticalLayout_25.addWidget(self.horizontalWidget_21)
|
||||
@@ -869,11 +870,11 @@ class Ui_Nugget(object):
|
||||
|
||||
self.verticalLayout_2.addWidget(self.verticalWidget_2)
|
||||
|
||||
self.label = QLabel(self.homePage)
|
||||
self.label.setObjectName(u"label")
|
||||
self.label.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
|
||||
self.appVersionLbl = QLabel(self.homePage)
|
||||
self.appVersionLbl.setObjectName(u"appVersionLbl")
|
||||
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.gestaltPage = QWidget()
|
||||
@@ -897,7 +898,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_8.setIcon(icon4)
|
||||
self.toolButton_8.setIcon(icon3)
|
||||
self.toolButton_8.setIconSize(QSize(30, 30))
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.toolButton_8)
|
||||
@@ -1141,6 +1142,11 @@ class Ui_Nugget(object):
|
||||
|
||||
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.setObjectName(u"line_22")
|
||||
self.line_22.setStyleSheet(u"QFrame {\n"
|
||||
@@ -1235,7 +1241,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_10.setIcon(icon5)
|
||||
self.toolButton_10.setIcon(icon4)
|
||||
|
||||
self.horizontalLayout_20.addWidget(self.toolButton_10)
|
||||
|
||||
@@ -1341,7 +1347,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_11.setIcon(icon6)
|
||||
self.toolButton_11.setIcon(icon5)
|
||||
|
||||
self.horizontalLayout_21.addWidget(self.toolButton_11)
|
||||
|
||||
@@ -1381,7 +1387,18 @@ class Ui_Nugget(object):
|
||||
|
||||
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.setEnabled(False)
|
||||
self.verticalLayout_16 = QVBoxLayout(self.euEnablerPageContent)
|
||||
@@ -1587,6 +1604,18 @@ class Ui_Nugget(object):
|
||||
|
||||
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)
|
||||
|
||||
@@ -1595,7 +1624,11 @@ class Ui_Nugget(object):
|
||||
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.springboardOptionsPage = QWidget()
|
||||
@@ -1619,7 +1652,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_7.setIcon(icon7)
|
||||
self.toolButton_7.setIcon(icon6)
|
||||
|
||||
self.horizontalLayout_13.addWidget(self.toolButton_7)
|
||||
|
||||
@@ -1745,7 +1778,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_101.setIcon(icon8)
|
||||
self.toolButton_101.setIcon(icon7)
|
||||
|
||||
self.horizontalLayout_201.addWidget(self.toolButton_101)
|
||||
|
||||
@@ -1905,12 +1938,12 @@ class Ui_Nugget(object):
|
||||
self.verticalLayout_141.addWidget(self.internalOptionsPageContent)
|
||||
|
||||
self.pages.addWidget(self.internalOptionsPage)
|
||||
self.advancedOptionsPage = QWidget()
|
||||
self.advancedOptionsPage.setObjectName(u"advancedOptionsPage")
|
||||
self.verticalLayout_142 = QVBoxLayout(self.advancedOptionsPage)
|
||||
self.daemonsPage = QWidget()
|
||||
self.daemonsPage.setObjectName(u"daemonsPage")
|
||||
self.verticalLayout_142 = QVBoxLayout(self.daemonsPage)
|
||||
self.verticalLayout_142.setObjectName(u"verticalLayout_142")
|
||||
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.horizontalLayout_202 = QHBoxLayout(self.horizontalWidget_52)
|
||||
self.horizontalLayout_202.setSpacing(10)
|
||||
@@ -1918,7 +1951,7 @@ class Ui_Nugget(object):
|
||||
self.horizontalLayout_202.setContentsMargins(0, 9, 0, 9)
|
||||
self.toolButton_102 = QToolButton(self.horizontalWidget_52)
|
||||
self.toolButton_102.setObjectName(u"toolButton_102")
|
||||
self.toolButton_102.setEnabled(False)
|
||||
self.toolButton_102.setEnabled(True)
|
||||
self.toolButton_102.setStyleSheet(u"QToolButton {\n"
|
||||
" icon-size: 24px;\n"
|
||||
" background-color: transparent;\n"
|
||||
@@ -1926,7 +1959,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_102.setIcon(icon9)
|
||||
self.toolButton_102.setIcon(icon8)
|
||||
|
||||
self.horizontalLayout_202.addWidget(self.toolButton_102)
|
||||
|
||||
@@ -1936,15 +1969,16 @@ class Ui_Nugget(object):
|
||||
self.verticalLayout_122.setSpacing(6)
|
||||
self.verticalLayout_122.setObjectName(u"verticalLayout_122")
|
||||
self.verticalLayout_122.setContentsMargins(0, 0, 0, 0)
|
||||
self.advancedOptionsLbl = QLabel(self.verticalWidget_42)
|
||||
self.advancedOptionsLbl.setObjectName(u"advancedOptionsLbl")
|
||||
self.advancedOptionsLbl.setFont(font1)
|
||||
self.daemonsLbl = QLabel(self.verticalWidget_42)
|
||||
self.daemonsLbl.setObjectName(u"daemonsLbl")
|
||||
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)
|
||||
@@ -1956,7 +1990,7 @@ class Ui_Nugget(object):
|
||||
|
||||
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.setStyleSheet(u"QFrame {\n"
|
||||
" color: #414141;\n"
|
||||
@@ -1966,16 +2000,161 @@ class Ui_Nugget(object):
|
||||
|
||||
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.setObjectName(u"advancedOptionsPageContent")
|
||||
self.advancedOptionsPageContent.setEnabled(True)
|
||||
self.verticalLayout_132 = QVBoxLayout(self.advancedOptionsPageContent)
|
||||
self.verticalLayout_132.setObjectName(u"verticalLayout_132")
|
||||
self.verticalLayout_132.setContentsMargins(0, 0, 0, 0)
|
||||
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.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.setObjectName(u"line_191")
|
||||
@@ -1985,12 +2164,17 @@ class Ui_Nugget(object):
|
||||
self.line_191.setFrameShadow(QFrame.Plain)
|
||||
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.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.setObjectName(u"line_181")
|
||||
@@ -2000,12 +2184,12 @@ class Ui_Nugget(object):
|
||||
self.line_181.setFrameShadow(QFrame.Plain)
|
||||
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.setObjectName(u"enableResolutionChk")
|
||||
|
||||
self.verticalLayout_132.addWidget(self.enableResolutionChk)
|
||||
self.verticalLayout_133.addWidget(self.enableResolutionChk)
|
||||
|
||||
self.resChangerContent = QWidget(self.advancedOptionsPageContent)
|
||||
self.resChangerContent.setObjectName(u"resChangerContent")
|
||||
@@ -2081,14 +2265,14 @@ class Ui_Nugget(object):
|
||||
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.applyPage = QWidget()
|
||||
@@ -2220,6 +2404,13 @@ class Ui_Nugget(object):
|
||||
|
||||
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.verticalLayout_24.addItem(self.verticalSpacer_2)
|
||||
@@ -2324,7 +2515,7 @@ class Ui_Nugget(object):
|
||||
self._21.setContentsMargins(0, 0, 0, 0)
|
||||
self.allowWifiApplyingChk = QCheckBox(self.settingsPageContent)
|
||||
self.allowWifiApplyingChk.setObjectName(u"allowWifiApplyingChk")
|
||||
self.allowWifiApplyingChk.setChecked(True)
|
||||
self.allowWifiApplyingChk.setChecked(False)
|
||||
|
||||
self._21.addWidget(self.allowWifiApplyingChk)
|
||||
|
||||
@@ -2339,6 +2530,11 @@ class Ui_Nugget(object):
|
||||
|
||||
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.setObjectName(u"line_24")
|
||||
self.line_24.setStyleSheet(u"QFrame {\n"
|
||||
@@ -2426,7 +2622,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.toolButton_13.setIcon(icon6)
|
||||
self.toolButton_13.setIcon(icon5)
|
||||
|
||||
self.horizontalLayout_28.addWidget(self.toolButton_13)
|
||||
|
||||
@@ -2692,7 +2888,9 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\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)
|
||||
|
||||
@@ -2762,7 +2960,7 @@ class Ui_Nugget(object):
|
||||
" padding-right: 5px;\n"
|
||||
" border-radius: 0px;\n"
|
||||
"}")
|
||||
self.themesBtn.setIcon(icon4)
|
||||
self.themesBtn.setIcon(icon3)
|
||||
self.themesBtn.setIconSize(QSize(30, 30))
|
||||
|
||||
self.horizontalLayout_23.addWidget(self.themesBtn)
|
||||
@@ -2808,9 +3006,9 @@ class Ui_Nugget(object):
|
||||
|
||||
self.importThemeZipBtn = QToolButton(self.horizontalWidget7)
|
||||
self.importThemeZipBtn.setObjectName(u"importThemeZipBtn")
|
||||
icon22 = QIcon()
|
||||
icon22.addFile(u":/icon/file-earmark-zip.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
||||
self.importThemeZipBtn.setIcon(icon22)
|
||||
icon23 = QIcon()
|
||||
icon23.addFile(u":/icon/file-earmark-zip.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
|
||||
self.importThemeZipBtn.setIcon(icon23)
|
||||
|
||||
self.horizontalLayout_26.addWidget(self.importThemeZipBtn)
|
||||
|
||||
@@ -2922,36 +3120,39 @@ class Ui_Nugget(object):
|
||||
|
||||
def retranslateUi(self, Nugget):
|
||||
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.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.homePageBtn.setText(QCoreApplication.translate("Nugget", u" Home", 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.homePageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", 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.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.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.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.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.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.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.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.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.label_2.setText(QCoreApplication.translate("Nugget", u"Nugget", 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.leminTwitterBtn.setText(QCoreApplication.translate("Nugget", u"...", None))
|
||||
self.leminGithubBtn.setText(QCoreApplication.translate("Nugget", u"...", None))
|
||||
@@ -2962,12 +3163,12 @@ class Ui_Nugget(object):
|
||||
"Sparserestore", None))
|
||||
self.disfordottieBtn.setText(QCoreApplication.translate("Nugget", u"disfordottie\n"
|
||||
"Clock Anim, Photos UI", None))
|
||||
self.lrdsnowBtn.setText(QCoreApplication.translate("Nugget", u"lrdsnow\n"
|
||||
"EU Enabler", None))
|
||||
self.mikasaBtn.setText(QCoreApplication.translate("Nugget", u"Mikasa\n"
|
||||
"Quiet Daemon", None))
|
||||
self.toolButton_15.setText(QCoreApplication.translate("Nugget", u"Additional Thanks", None))
|
||||
self.libiBtn.setText(QCoreApplication.translate("Nugget", u"pymobiledevice3", 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.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))
|
||||
@@ -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.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))
|
||||
#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.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))
|
||||
#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.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))
|
||||
#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.stageManagerChk.setText(QCoreApplication.translate("Nugget", u"Enable Stage Manager Supported (WARNING: risky on some devices, mainly phones)", None))
|
||||
self.enableMedusaChk.setText(QCoreApplication.translate("Nugget", u"Enable Medusa (iPad Multitasking) (WARNING: may be risky on some 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)", 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.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.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))
|
||||
#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))
|
||||
#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))
|
||||
#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))
|
||||
#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.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"
|
||||
"what you are doing.", 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))
|
||||
#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))
|
||||
#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))
|
||||
#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.eligibilityLbl.setText(QCoreApplication.translate("Nugget", u"Eligibility Tweaks", 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.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.label_13.setText(QCoreApplication.translate("Nugget", u"Lock Screen 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.disableDimmingChk.setText(QCoreApplication.translate("Nugget", u"Disable Screen Dimming While Charging", 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))
|
||||
#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.enableAirPlayChk.setText(QCoreApplication.translate("Nugget", u"Enable AirPlay support for Stage Manager", 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.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.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.label_17.setText(QCoreApplication.translate("Nugget", u"Disclaimer:\n"
|
||||
"\n"
|
||||
@@ -3090,7 +3415,19 @@ class Ui_Nugget(object):
|
||||
"your device resolution has the potential to brick your device when used improperly.\n"
|
||||
"\n"
|
||||
"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.resHeightLbl.setText(QCoreApplication.translate("Nugget", u"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.applyTweaksBtn.setText(QCoreApplication.translate("Nugget", u" Apply Changes", 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.resetGestaltBtn.setText(QCoreApplication.translate("Nugget", u"Reset Mobile Gestalt", None))
|
||||
self.springboardOptionsLbl1.setText(QCoreApplication.translate("Nugget", u"Nugget Settings", 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.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.supervisionChk.setText(QCoreApplication.translate("Nugget", u"Enable Supervision * (requires Skip Setup)", None))
|
||||
self.supervisionOrganization.setPlaceholderText(QCoreApplication.translate("Nugget", u"Enter Organization Name", None))
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
pymobiledevice3
|
||||
pyside6
|
||||
PySide6-Essentials
|
||||
PyInstaller
|
||||
|
||||
@@ -16,6 +16,10 @@ class FileLocation(Enum):
|
||||
pasteboard = "/var/Managed Preferences/mobile/com.apple.Pasteboard.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
|
||||
ota = "/var/Managed Preferences/mobile/com.apple.MobileAsset.plist"
|
||||
|
||||
|
||||
42
tweaks/daemons_tweak.py
Normal file
42
tweaks/daemons_tweak.py
Normal 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"]
|
||||
@@ -23,11 +23,10 @@ def replace_region_code(plist_path: str, original_code: str = "US", new_code: st
|
||||
|
||||
class EligibilityTweak(Tweak):
|
||||
def __init__(
|
||||
self, label: str,
|
||||
min_version: Version = Version("1.0"),
|
||||
divider_below: bool = False
|
||||
self,
|
||||
min_version: Version = Version("1.0")
|
||||
):
|
||||
super().__init__(label=label, key=None, value=["Method 1", "Method 2"], edit_type=TweakModifyType.PICKER, min_version=min_version, divider_below=divider_below)
|
||||
super().__init__(key=None, value=["Method 1", "Method 2"], edit_type=TweakModifyType.PICKER, min_version=min_version)
|
||||
self.code = "US"
|
||||
self.method = 0 # between 0 and 1
|
||||
|
||||
@@ -90,7 +89,7 @@ class EligibilityTweak(Tweak):
|
||||
|
||||
class AITweak(Tweak):
|
||||
def __init__(self):
|
||||
super().__init__(label="Enable Apple Intelligence (for Unsupported Devices) (Eligibility)", key=None, value="", min_version=Version("18.1"))
|
||||
super().__init__(key=None, value="", min_version=Version("18.1"))
|
||||
|
||||
def set_language_code(self, lang: str):
|
||||
self.value = lang
|
||||
|
||||
@@ -9,20 +9,19 @@ class TweakModifyType(Enum):
|
||||
|
||||
class Tweak:
|
||||
def __init__(
|
||||
self, label: str,
|
||||
key: str, subkey: str = None,
|
||||
self,
|
||||
key: str,
|
||||
value: any = 1,
|
||||
edit_type: TweakModifyType = TweakModifyType.TOGGLE,
|
||||
min_version: Version = Version("1.0"),
|
||||
divider_below: bool = False
|
||||
owner: int = 501, group: int = 501
|
||||
):
|
||||
self.label = label
|
||||
self.key = key
|
||||
self.subkey = subkey
|
||||
self.value = value
|
||||
self.min_version = min_version
|
||||
self.edit_type = edit_type
|
||||
self.divider_below = divider_below
|
||||
self.owner = owner
|
||||
self.group = group
|
||||
self.enabled = False
|
||||
|
||||
def set_enabled(self, value: bool):
|
||||
@@ -40,19 +39,33 @@ class Tweak:
|
||||
def apply_tweak(self):
|
||||
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):
|
||||
def __init__(
|
||||
self, label: str,
|
||||
self,
|
||||
file_location: FileLocation,
|
||||
key: str,
|
||||
value: any = True,
|
||||
edit_type: TweakModifyType = TweakModifyType.TOGGLE,
|
||||
min_version: Version = Version("1.0"),
|
||||
is_risky: bool = False,
|
||||
divider_below: bool = False
|
||||
owner: int = 501, group: int = 501,
|
||||
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.is_risky = is_risky
|
||||
|
||||
@@ -67,15 +80,19 @@ class BasicPlistTweak(Tweak):
|
||||
|
||||
class AdvancedPlistTweak(BasicPlistTweak):
|
||||
def __init__(
|
||||
self, label: str,
|
||||
self,
|
||||
file_location: FileLocation,
|
||||
keyValues: dict,
|
||||
edit_type: TweakModifyType = TweakModifyType.TOGGLE,
|
||||
min_version: Version = Version("1.0"),
|
||||
is_risky: bool = False,
|
||||
divider_below: bool = False
|
||||
owner: int = 501, group: int = 501,
|
||||
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:
|
||||
if not self.enabled or (self.is_risky and not risky_allowed):
|
||||
@@ -88,8 +105,8 @@ class AdvancedPlistTweak(BasicPlistTweak):
|
||||
|
||||
|
||||
class RdarFixTweak(BasicPlistTweak):
|
||||
def __init__(self, divider_below: bool = False):
|
||||
super().__init__(label="Fix RDAR (modifies resolution)", file_location=FileLocation.resolution, key=None, divider_below=divider_below)
|
||||
def __init__(self):
|
||||
super().__init__(file_location=FileLocation.resolution, key=None)
|
||||
self.mode = 0
|
||||
self.di_type = -1
|
||||
|
||||
@@ -177,13 +194,13 @@ class MobileGestaltTweak(Tweak):
|
||||
|
||||
class MobileGestaltPickerTweak(Tweak):
|
||||
def __init__(
|
||||
self, label: str,
|
||||
self,
|
||||
key: str, subkey: str = None,
|
||||
values: list = [1],
|
||||
min_version: Version = Version("1.0"),
|
||||
divider_below: bool = False
|
||||
min_version: Version = Version("1.0")
|
||||
):
|
||||
super().__init__(label=label, key=key, subkey=subkey, value=values, edit_type=TweakModifyType.PICKER, min_version=min_version, divider_below=divider_below)
|
||||
super().__init__(key=key, value=values, edit_type=TweakModifyType.PICKER, min_version=min_version)
|
||||
self.subkey = subkey
|
||||
self.selected_option = 0 # index of the selected option
|
||||
|
||||
def apply_tweak(self, plist: dict):
|
||||
@@ -196,16 +213,16 @@ class MobileGestaltPickerTweak(Tweak):
|
||||
plist["CacheExtra"][self.key][self.subkey] = new_value
|
||||
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.enabled = True
|
||||
self.enabled = is_enabled
|
||||
|
||||
def get_selected_option(self) -> int:
|
||||
return self.selected_option
|
||||
|
||||
class MobileGestaltMultiTweak(Tweak):
|
||||
def __init__(self, label: str, keyValues: dict, min_version: Version = Version("1.0"), divider_below: bool = False):
|
||||
super().__init__(label=label, key=None, min_version=min_version, divider_below=divider_below)
|
||||
def __init__(self, keyValues: dict, min_version: Version = Version("1.0")):
|
||||
super().__init__(key=None, min_version=min_version)
|
||||
self.keyValues = keyValues
|
||||
# key values looks like ["key name" = value]
|
||||
|
||||
@@ -218,13 +235,12 @@ class MobileGestaltMultiTweak(Tweak):
|
||||
|
||||
class FeatureFlagTweak(Tweak):
|
||||
def __init__(
|
||||
self, label: str,
|
||||
self,
|
||||
flag_category: str, flag_names: list,
|
||||
is_list: bool=True, inverted: bool=False,
|
||||
min_version: Version = Version("1.0"),
|
||||
divider_below: bool = False
|
||||
min_version: Version = Version("1.0")
|
||||
):
|
||||
super().__init__(label=label, key=None, min_version=min_version, divider_below=divider_below)
|
||||
super().__init__(key=None, min_version=min_version)
|
||||
self.flag_category = flag_category
|
||||
self.flag_names = flag_names
|
||||
self.is_list = is_list
|
||||
|
||||
102
tweaks/tweaks.py
102
tweaks/tweaks.py
@@ -1,48 +1,48 @@
|
||||
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 .basic_plist_locations import FileLocation
|
||||
|
||||
|
||||
tweaks = {
|
||||
## MobileGestalt Tweaks
|
||||
"DynamicIsland": MobileGestaltPickerTweak("Toggle Dynamic Island", "oPeik/9e8lQWMszEjbPzng", "ArtworkDeviceSubType", [2436, 2556, 2796, 2976, 2622, 2868]),
|
||||
"DynamicIsland": MobileGestaltPickerTweak("oPeik/9e8lQWMszEjbPzng", "ArtworkDeviceSubType", [2436, 2556, 2796, 2976, 2622, 2868]),
|
||||
"RdarFix": RdarFixTweak(),
|
||||
"ModelName": MobileGestaltTweak("Set Device Model Name", "oPeik/9e8lQWMszEjbPzng", "ArtworkDeviceProductDescription", "", TweakModifyType.TEXT),
|
||||
"BootChime": MobileGestaltTweak("Toggle Boot Chime", "QHxt+hGLaBPbQJbXiUJX3w"),
|
||||
"ChargeLimit": MobileGestaltTweak("Toggle Charge Limit", "37NVydb//GP/GrhuTN+exg"),
|
||||
"CollisionSOS": MobileGestaltTweak("Toggle Collision SOS", "HCzWusHQwZDea6nNhaKndw"),
|
||||
"TapToWake": MobileGestaltTweak("Toggle Tap To Wake (iPhone SE)", "yZf3GTRMGTuwSV/lD7Cagw"),
|
||||
"CameraButton": MobileGestaltMultiTweak("Toggle iPhone 16 Settings", {"CwvKxM2cEogD3p+HYgaW0Q": 1, "oOV1jhJbdV3AddkcCg0AEA": 1}, min_version=Version("18.0")),
|
||||
"Parallax": MobileGestaltTweak("Disable Wallpaper Parallax", "UIParallaxCapability", value=0),
|
||||
"StageManager": MobileGestaltTweak("Toggle Stage Manager Supported (WARNING: risky on some devices, mainly phones)", "qeaj75wk3HF4DwQ8qbIi7g", value=1),
|
||||
"Medusa": MobileGestaltMultiTweak("Toggle Medusa (iPad Multitasking) (WARNING: may be risky on some phones)", {"mG0AnH/Vy1veoqoLRAIgTA": 1, "UCG5MkVahJxG1YULbbd5Bg": 1, "ZYqko/XM5zD3XBfN5RmaXA": 1, "nVh/gwNpy7Jv1NOk00CMrw": 1, "uKc7FPnEO++lVhHWHFlGbQ": 1}),
|
||||
"iPadApps": MobileGestaltTweak("Allow iPad Apps on iPhone", "9MZ5AdH43csAUajl/dU+IQ", value=[1, 2]),
|
||||
"Shutter": MobileGestaltMultiTweak("Disable Region Restrictions (ie. Shutter Sound)", {"h63QSdBCiT/z0WU6rdQv6Q": "US", "zHeENZu+wbg7PUprwNwBWg": "LL/A"}),
|
||||
"FindMyFriends": MobileGestaltTweak("Toggle Find My Friends", "Y2Y67z0Nq/XdDXgW2EeaVg"),
|
||||
"Pencil": MobileGestaltTweak("Toggle Apple Pencil", "yhHcB0iH0d1XzPO/CFd3ow"),
|
||||
"ActionButton": MobileGestaltTweak("Toggle Action Button", "cT44WE1EohiwRzhsZ8xEsw"),
|
||||
"InternalStorage": MobileGestaltTweak("Toggle Internal Storage (WARNING: risky for some devices, mainly iPads)", "LBJfwOEzExRxzlAnSuI7eg"),
|
||||
"InternalInstall": MobileGestaltTweak("Set as Apple Internal Install (ie Metal HUD in any app)", "EqrsVvjcYDdxHBiQmGhAWw", divider_below=True),
|
||||
"EUEnabler": EligibilityTweak("EU Enabler", divider_below=True),
|
||||
"AOD": MobileGestaltMultiTweak("Always On Display",
|
||||
"ModelName": MobileGestaltTweak("oPeik/9e8lQWMszEjbPzng", "ArtworkDeviceProductDescription", "", TweakModifyType.TEXT),
|
||||
"BootChime": MobileGestaltTweak("QHxt+hGLaBPbQJbXiUJX3w"),
|
||||
"ChargeLimit": MobileGestaltTweak("37NVydb//GP/GrhuTN+exg"),
|
||||
"CollisionSOS": MobileGestaltTweak("HCzWusHQwZDea6nNhaKndw"),
|
||||
"TapToWake": MobileGestaltTweak("yZf3GTRMGTuwSV/lD7Cagw"),
|
||||
"CameraButton": MobileGestaltMultiTweak({"CwvKxM2cEogD3p+HYgaW0Q": 1, "oOV1jhJbdV3AddkcCg0AEA": 1}, min_version=Version("18.0")),
|
||||
"Parallax": MobileGestaltTweak("UIParallaxCapability", value=0),
|
||||
"StageManager": MobileGestaltTweak("qeaj75wk3HF4DwQ8qbIi7g", value=1),
|
||||
"Medusa": MobileGestaltMultiTweak({"mG0AnH/Vy1veoqoLRAIgTA": 1, "UCG5MkVahJxG1YULbbd5Bg": 1, "ZYqko/XM5zD3XBfN5RmaXA": 1, "nVh/gwNpy7Jv1NOk00CMrw": 1, "uKc7FPnEO++lVhHWHFlGbQ": 1}),
|
||||
"iPadApps": MobileGestaltTweak("9MZ5AdH43csAUajl/dU+IQ", value=[1, 2]),
|
||||
"Shutter": MobileGestaltMultiTweak({"h63QSdBCiT/z0WU6rdQv6Q": "US", "zHeENZu+wbg7PUprwNwBWg": "LL/A"}),
|
||||
"FindMyFriends": MobileGestaltTweak("Y2Y67z0Nq/XdDXgW2EeaVg"),
|
||||
"Pencil": MobileGestaltTweak("yhHcB0iH0d1XzPO/CFd3ow"),
|
||||
"ActionButton": MobileGestaltTweak("cT44WE1EohiwRzhsZ8xEsw"),
|
||||
"InternalStorage": MobileGestaltTweak("LBJfwOEzExRxzlAnSuI7eg"),
|
||||
"InternalInstall": MobileGestaltTweak("EqrsVvjcYDdxHBiQmGhAWw"),
|
||||
"EUEnabler": EligibilityTweak(),
|
||||
"AOD": MobileGestaltMultiTweak(
|
||||
{"2OOJf1VhaM7NxfRok3HbWQ": 1, "j8/Omm6s1lsmTDFsXjsBfA": 1},
|
||||
min_version=Version("18.0")),
|
||||
"AODVibrancy": MobileGestaltTweak("ykpu7qyhqFweVMKtxNylWA", min_version=Version("18.0")),
|
||||
|
||||
## Feature Flag Tweaks
|
||||
"ClockAnim": FeatureFlagTweak("Toggle Lockscreen Clock Animation", flag_category='SpringBoard',
|
||||
"ClockAnim": FeatureFlagTweak(flag_category='SpringBoard',
|
||||
flag_names=['SwiftUITimeAnimation'],
|
||||
min_version=Version("18.0")),
|
||||
"Lockscreen": FeatureFlagTweak("Toggle Duplicate Lockscreen Button and Lockscreen Quickswitch", flag_category="SpringBoard",
|
||||
"Lockscreen": FeatureFlagTweak(flag_category="SpringBoard",
|
||||
flag_names=['AutobahnQuickSwitchTransition', 'SlipSwitch', 'PosterEditorKashida'],
|
||||
min_version=Version("18.0")),
|
||||
"PhotoUI": FeatureFlagTweak("Enable Old Photo UI", flag_category='Photos', flag_names=['Lemonade'], is_list=False, inverted=True, min_version=Version("18.0")),
|
||||
"AI": FeatureFlagTweak("Enable Apple Intelligence", flag_category='SpringBoard', flag_names=['Domino', 'SuperDomino'], min_version=Version("18.1"), divider_below=True),
|
||||
"PhotoUI": FeatureFlagTweak(flag_category='Photos', flag_names=['Lemonade'], is_list=False, inverted=True, min_version=Version("18.0")),
|
||||
"AI": FeatureFlagTweak(flag_category='SpringBoard', flag_names=['Domino', 'SuperDomino'], min_version=Version("18.1")),
|
||||
|
||||
## AI Enabler
|
||||
"AIEligibility": AITweak(),
|
||||
"AIGestalt": MobileGestaltTweak("Enable Apple Intelligence (for Unsupported Devices) (Gestalt)", "A62OafQ85EJAiiqKn4agtg", min_version=Version("18.1")),
|
||||
"SpoofModel": MobileGestaltPickerTweak("Spoofed Device Model", "h9jDsbgj7xIVeIQ8S3/X3Q", values=[
|
||||
"AIGestalt": MobileGestaltTweak("A62OafQ85EJAiiqKn4agtg", min_version=Version("18.1")),
|
||||
"SpoofModel": MobileGestaltPickerTweak("h9jDsbgj7xIVeIQ8S3/X3Q", values=[
|
||||
# Default
|
||||
"Placeholder", # 0 | Original
|
||||
|
||||
@@ -82,7 +82,7 @@ tweaks = {
|
||||
"iPad13,16", # 25 | iPad Air (M1) (W)
|
||||
"iPad13,17", # 26 | iPad Air (M1) (C)
|
||||
], min_version=Version("18.1")),
|
||||
"SpoofHardware": MobileGestaltPickerTweak("Spoof Hardware Model", "oYicEKzVTz4/CxxE05pEgQ", values=[
|
||||
"SpoofHardware": MobileGestaltPickerTweak("oYicEKzVTz4/CxxE05pEgQ", values=[
|
||||
# Default
|
||||
"Placeholder", # 0 | Original
|
||||
|
||||
@@ -122,7 +122,7 @@ tweaks = {
|
||||
"J407AP", # 25 | iPad Air (M1) (W)
|
||||
"J408AP", # 26 | iPad Air (M1) (C)
|
||||
], min_version=Version("18.1")),
|
||||
"SpoofCPU": MobileGestaltPickerTweak("Spoof CPU Model", "5pYKlGnYYBzGvAlIU8RjEQ", values=[
|
||||
"SpoofCPU": MobileGestaltPickerTweak("5pYKlGnYYBzGvAlIU8RjEQ", values=[
|
||||
# Default
|
||||
"Placeholder", # 0 | Original
|
||||
|
||||
@@ -161,117 +161,110 @@ tweaks = {
|
||||
"t8103", # 24 | iPad Pro (12.9-inch) (M1) (C)
|
||||
"t8103", # 25 | iPad Air (M1) (W)
|
||||
"t8103", # 26 | iPad Air (M1) (C)
|
||||
], min_version=Version("18.1"), divider_below=True),
|
||||
], min_version=Version("18.1")),
|
||||
|
||||
## Springboard Tweaks
|
||||
"LockScreenFootnote": BasicPlistTweak(
|
||||
"Set Lock Screen Footnote Text",
|
||||
FileLocation.footnote,
|
||||
key="LockScreenFootnote", value="",
|
||||
edit_type=TweakModifyType.TEXT
|
||||
),
|
||||
"SBDontLockAfterCrash": BasicPlistTweak(
|
||||
"Disable Lock After Respring",
|
||||
FileLocation.springboard,
|
||||
"SBDontLockAfterCrash"
|
||||
),
|
||||
"SBDontDimOrLockOnAC": BasicPlistTweak(
|
||||
"Disable Screen Dimming While Charging",
|
||||
FileLocation.springboard,
|
||||
"SBDontDimOrLockOnAC"
|
||||
),
|
||||
"SBHideLowPowerAlerts": BasicPlistTweak(
|
||||
"Disable Low Battery Alerts",
|
||||
FileLocation.springboard,
|
||||
"SBHideLowPowerAlerts"
|
||||
),
|
||||
"SBNeverBreadcrumb": BasicPlistTweak(
|
||||
"Disable Breadcrumb",
|
||||
FileLocation.springboard,
|
||||
"SBNeverBreadcrumb"
|
||||
),
|
||||
"SBShowSupervisionTextOnLockScreen": BasicPlistTweak(
|
||||
"Show Supervision Text on Lock Screen",
|
||||
FileLocation.springboard,
|
||||
"SBShowSupervisionTextOnLockScreen"
|
||||
),
|
||||
"AirplaySupport": BasicPlistTweak(
|
||||
"Enable AirPlay support for Stage Manager",
|
||||
FileLocation.springboard,
|
||||
"SBExtendedDisplayOverrideSupportForAirPlayAndDontFileRadars",
|
||||
divider_below=True
|
||||
"SBExtendedDisplayOverrideSupportForAirPlayAndDontFileRadars"
|
||||
),
|
||||
|
||||
## Internal Options
|
||||
"SBBuildNumber": BasicPlistTweak(
|
||||
"Show Build Version in Status Bar",
|
||||
FileLocation.globalPreferences,
|
||||
"UIStatusBarShowBuildVersion"
|
||||
),
|
||||
"RTL": BasicPlistTweak(
|
||||
"Force Right-to-Left Layout",
|
||||
FileLocation.globalPreferences,
|
||||
"NSForceRightToLeftWritingDirection"
|
||||
),
|
||||
"MetalForceHudEnabled": BasicPlistTweak(
|
||||
"Enable Metal HUD Debug",
|
||||
FileLocation.globalPreferences,
|
||||
"MetalForceHudEnabled"
|
||||
),
|
||||
"iMessageDiagnosticsEnabled": BasicPlistTweak(
|
||||
"Enable iMessage Debugging",
|
||||
FileLocation.globalPreferences,
|
||||
"iMessageDiagnosticsEnabled"
|
||||
),
|
||||
"IDSDiagnosticsEnabled": BasicPlistTweak(
|
||||
"Enable Continuity Debugging",
|
||||
FileLocation.globalPreferences,
|
||||
"IDSDiagnosticsEnabled"
|
||||
),
|
||||
"VCDiagnosticsEnabled": BasicPlistTweak(
|
||||
"Enable FaceTime Debugging",
|
||||
FileLocation.globalPreferences,
|
||||
"VCDiagnosticsEnabled"
|
||||
),
|
||||
"AppStoreDebug": BasicPlistTweak(
|
||||
"Enable App Store Debug Gesture",
|
||||
FileLocation.appStore,
|
||||
"debugGestureEnabled"
|
||||
),
|
||||
"NotesDebugMode": BasicPlistTweak(
|
||||
"Enable Notes App Debug Mode",
|
||||
FileLocation.notes,
|
||||
"DebugModeEnabled"
|
||||
),
|
||||
"BKDigitizerVisualizeTouches": BasicPlistTweak(
|
||||
"Show Touches With Debug Info",
|
||||
FileLocation.backboardd,
|
||||
"BKDigitizerVisualizeTouches"
|
||||
),
|
||||
"BKHideAppleLogoOnLaunch": BasicPlistTweak(
|
||||
"Hide Respring Icon",
|
||||
FileLocation.backboardd,
|
||||
"BKHideAppleLogoOnLaunch"
|
||||
),
|
||||
"EnableWakeGestureHaptic": BasicPlistTweak(
|
||||
"Vibrate on Raise-to-Wake",
|
||||
FileLocation.coreMotion,
|
||||
"EnableWakeGestureHaptic"
|
||||
),
|
||||
"PlaySoundOnPaste": BasicPlistTweak(
|
||||
"Play Sound on Paste",
|
||||
FileLocation.pasteboard,
|
||||
"PlaySoundOnPaste"
|
||||
),
|
||||
"AnnounceAllPastes": BasicPlistTweak(
|
||||
"Show Notifications for System Pastes",
|
||||
FileLocation.pasteboard,
|
||||
"AnnounceAllPastes"
|
||||
),
|
||||
|
||||
## Daemons
|
||||
"Daemons": AdvancedPlistTweak(
|
||||
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
|
||||
"DisableOTA": AdvancedPlistTweak(
|
||||
"Disable OTA Updates",
|
||||
"DisableOTAFile": AdvancedPlistTweak(
|
||||
FileLocation.ota,
|
||||
{
|
||||
"MobileAssetServerURL-com.apple.MobileAsset.MobileSoftwareUpdate.UpdateBrain": "https://mesu.apple.com/assets/tvOS16DeveloperSeed",
|
||||
@@ -284,7 +277,6 @@ tweaks = {
|
||||
}, is_risky=True
|
||||
),
|
||||
"CustomResolution": AdvancedPlistTweak(
|
||||
"Set Custom Resolution real",
|
||||
FileLocation.resolution,
|
||||
{}, # empty as to not cause issues when only 1 value is inputted
|
||||
is_risky=True
|
||||
|
||||
Reference in New Issue
Block a user