Merge pull request #191 from leminlimez/v4.1

v4.1
This commit is contained in:
leminlimez
2024-11-16 18:11:10 -05:00
committed by GitHub
12 changed files with 1624 additions and 488 deletions

View File

@@ -5,7 +5,7 @@ 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.**
This uses the sparserestore exploit to write to files outside of the intended restore location, like mobilegestalt.
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!
@@ -32,17 +32,22 @@ Note: I am not responsible if your device bootloops. Please back up your data be
- AI Enabler
- Springboard Options (from Cowabunga Lite)
- Internal Options (from Cowabunga Lite)
- Risky (Hidden) Options:
- OTA Killer
- Custom Resolution
## Running the Program
**Requirements:**
- pymobiledevice3
- Python 3.8 or newer
- **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:**
- [usbmuxd](https://github.com/libimobiledevice/usbmuxd) and [libimobiledevice](https://github.com/libimobiledevice/libimobiledevice)
- **For Running Python:**
- pymobiledevice3
- PySide6
- Python 3.8 or newer
Note: It is highly recommended to use a virtual environment:
```
python3 -m venv .env # only needed once
@@ -73,7 +78,8 @@ The application itself can be compiled by running `compile.py`.
## Credits
- [JJTech](https://github.com/JJTech0130) for Sparserestore/[TrollRestore](https://github.com/JJTech0130/TrollRestore)
- [pymobiledevice3](https://github.com/doronz88/pymobiledevice3)
- [disfordottie](https://x.com/disfordottie) for some global flag features
- [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.
- [PySide6](https://doc.qt.io/qtforpython-6/) for the GUI library.

View File

@@ -14,7 +14,8 @@ args = [
'--onedir',
'--noconfirm',
'--name=Nugget',
'--icon=nugget.ico'
'--icon=nugget.ico',
'--optimize=2'
]
if platform == "darwin":

View File

@@ -13,6 +13,14 @@ class Device:
self.locale = locale
self.ld = ld
def is_exploit_fully_patched(self) -> bool:
parsed_ver: Version = Version(self.version)
# mobile gestalt methods are completely patched on iOS 18.2 dev beta 3+
if (parsed_ver < Version("18.2")
or self.build == "22C5109p" or self.build == "22C5125e"):
return False
return True
def has_exploit(self) -> bool:
parsed_ver: Version = Version(self.version)
# make sure versions past 17.7.1 but before 18.0 aren't supported

View File

@@ -11,19 +11,37 @@ from pymobiledevice3.lockdown import create_using_usbmux
from devicemanagement.constants import Device, Version
from devicemanagement.data_singleton import DataSingleton
from tweaks.tweaks import tweaks, FeatureFlagTweak, EligibilityTweak, AITweak, BasicPlistTweak, RdarFixTweak
from tweaks.tweaks import tweaks, FeatureFlagTweak, EligibilityTweak, AITweak, BasicPlistTweak, AdvancedPlistTweak, RdarFixTweak
from tweaks.custom_gestalt_tweaks import CustomGestaltTweaks
from tweaks.basic_plist_locations import FileLocationsList
from tweaks.basic_plist_locations import FileLocationsList, RiskyFileLocationsList
from Sparserestore.restore import restore_files, FileToRestore
def show_error_msg(txt: str):
def show_error_msg(txt: str, detailed_txt: str = None):
detailsBox = QMessageBox()
detailsBox.setIcon(QMessageBox.Critical)
detailsBox.setWindowTitle("Error!")
detailsBox.setText(txt)
detailsBox.setDetailedText(str(traceback.format_exc()))
if detailed_txt != None:
detailsBox.setDetailedText(detailed_txt)
detailsBox.exec()
def show_apply_error(e: Exception, update_label=lambda x: None):
if "Find My" in str(e):
show_error_msg("Find My must be disabled in order to use this tool.",
detailed_txt="Disable Find My from Settings (Settings -> [Your Name] -> Find My) and then try again.")
elif "Encrypted Backup MDM" in str(e):
show_error_msg("Nugget cannot be used on this device. Click Show Details for more info.",
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):
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:
show_error_msg(type(e).__name__ + ": " + repr(e), detailed_txt=str(traceback.format_exc()))
print(traceback.format_exc())
update_label("Failed to restore")
class DeviceManager:
## Class Functions
def __init__(self):
@@ -33,8 +51,9 @@ class DeviceManager:
# preferences
self.apply_over_wifi = True
self.skip_setup = True
self.auto_reboot = True
self.allow_risky_tweaks = False
self.skip_setup = True
self.supervised = False
self.organization_name = ""
@@ -50,7 +69,7 @@ class DeviceManager:
If you are on Windows, make sure you have the \"Apple Devices\" app from the Microsoft Store or iTunes from Apple's website.
If you are on Linux, make sure you have usbmuxd and libimobiledevice installed.
"""
""", detailed_txt=str(traceback.format_exc())
)
self.set_current_device(index=None)
return
@@ -99,7 +118,7 @@ class DeviceManager:
self.devices.append(dev)
except Exception as e:
print(f"ERROR with lockdown device with UUID {device.serial}")
show_error_msg(type(e).__name__ + ": " + repr(e))
show_error_msg(type(e).__name__ + ": " + repr(e), detailed_txt=str(traceback.format_exc()))
connected_devices.remove(device)
else:
connected_devices.remove(device)
@@ -155,11 +174,23 @@ class DeviceManager:
else:
return self.data_singleton.current_device.uuid
def get_current_device_model(self) -> str:
if self.data_singleton.current_device == None:
return ""
else:
return self.data_singleton.current_device.model
def get_current_device_supported(self) -> bool:
if self.data_singleton.current_device == None:
return False
else:
return self.data_singleton.current_device.supported()
def get_current_device_patched(self) -> bool:
if self.data_singleton.current_device == None:
return True
else:
return self.data_singleton.current_device.is_exploit_fully_patched()
def reset_device_pairing(self):
@@ -203,7 +234,13 @@ class DeviceManager:
domain="ManagedPreferencesDomain"
))
def get_domain_for_path(self, path: str) -> str:
def get_domain_for_path(self, path: str, fully_patched: bool = False) -> str:
# just make the Sys Containers to use the regular way (won't work for mga)
sysSharedContainer = "SysSharedContainerDomain-"
sysContainer = "SysContainerDomain-"
if not fully_patched:
sysSharedContainer += "."
sysContainer += "."
mappings: dict = {
"/var/Managed Preferences/": "ManagedPreferencesDomain",
"/var/root/": "RootDomain",
@@ -211,13 +248,19 @@ class DeviceManager:
"/var/MobileDevice/": "MobileDeviceDomain",
"/var/mobile/": "HomeDomain",
"/var/db/": "DatabaseDomain",
"/var/containers/Shared/SystemGroup/": "SysSharedContainerDomain-.",
"/var/containers/Data/SystemGroup/": "SysContainerDomain-."
"/var/containers/Shared/SystemGroup/": sysSharedContainer,
"/var/containers/Data/SystemGroup/": sysContainer
}
for mapping in mappings.keys():
if path.startswith(mapping):
new_path = path.replace(mapping, "")
return mappings[mapping], new_path
new_domain = mappings[mapping]
# if patched, include the next part of the path in the domain
if fully_patched and (new_domain == sysSharedContainer or new_domain == sysContainer):
parts = new_path.split("/")
new_domain += parts[0]
new_path = new_path.replace(parts[0] + "/", "")
return new_domain, new_path
return None, path
def concat_file(self, contents: str, path: str, files_to_restore: list[FileToRestore]):
@@ -227,7 +270,7 @@ class DeviceManager:
restore_path=path
))
else:
domain, file_path = self.get_domain_for_path(path)
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,
@@ -259,8 +302,8 @@ class DeviceManager:
eligibility_files = tweak.apply_tweak()
elif isinstance(tweak, AITweak):
ai_file = tweak.apply_tweak()
elif isinstance(tweak, BasicPlistTweak) or isinstance(tweak, RdarFixTweak):
basic_plists = tweak.apply_tweak(basic_plists)
elif isinstance(tweak, BasicPlistTweak) or isinstance(tweak, RdarFixTweak) or isinstance(tweak, AdvancedPlistTweak):
basic_plists = tweak.apply_tweak(basic_plists, self.allow_risky_tweaks)
else:
if gestalt_plist != None:
gestalt_plist = tweak.apply_tweak(gestalt_plist)
@@ -325,6 +368,13 @@ class DeviceManager:
path=location.value,
files_to_restore=files_to_restore
)
if self.allow_risky_tweaks:
for location in RiskyFileLocationsList:
self.concat_file(
contents=empty_data,
path=location.value,
files_to_restore=files_to_restore
)
# restore to the device
update_label("Restoring to device...")
@@ -336,23 +386,7 @@ class DeviceManager:
QMessageBox.information(None, "Success!", "All done! " + msg)
update_label("Success!")
except Exception as e:
if "Find My" in str(e):
detailsBox = QMessageBox()
detailsBox.setIcon(QMessageBox.Critical)
detailsBox.setWindowTitle("Error!")
detailsBox.setText("Find My must be disabled in order to use this tool.")
detailsBox.setDetailedText("Disable Find My from Settings (Settings -> [Your Name] -> Find My) and then try again.")
detailsBox.exec()
elif "SessionInactive" in str(e):
detailsBox = QMessageBox()
detailsBox.setIcon(QMessageBox.Critical)
detailsBox.setWindowTitle("Error!")
detailsBox.setText("The session was terminated. Refresh the device list and try again.")
detailsBox.exec()
else:
print(traceback.format_exc())
update_label("Failed to restore")
show_error_msg(type(e).__name__ + ": " + repr(e))
show_apply_error(e, update_label)
## RESETTING MOBILE GESTALT
def reset_mobilegestalt(self, settings: QSettings, update_label=lambda x: None):
@@ -363,7 +397,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")
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())
restore_files(files=[FileToRestore(
contents=b"",
restore_path=file_path,
@@ -375,14 +411,4 @@ class DeviceManager:
QMessageBox.information(None, "Success!", "All done! " + msg)
update_label("Success!")
except Exception as e:
if "Find My" in str(e):
detailsBox = QMessageBox()
detailsBox.setIcon(QMessageBox.Critical)
detailsBox.setWindowTitle("Error!")
detailsBox.setText("Find My must be disabled in order to use this tool.")
detailsBox.setDetailedText("Disable Find My from Settings (Settings -> [Your Name] -> Find My) and then try again.")
detailsBox.exec()
else:
print(traceback.format_exc())
update_label("Failed to restore")
show_error_msg(type(e).__name__ + ": " + repr(e))
show_apply_error(e)

View File

@@ -22,8 +22,9 @@ class Page(Enum):
EUEnabler = 3
Springboard = 4
InternalOptions = 5
Apply = 6
Settings = 7
RiskyTweaks = 6
Apply = 7
Settings = 8
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, device_manager: DeviceManager):
@@ -47,6 +48,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.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)
@@ -77,7 +79,6 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.enableAIChk.toggled.connect(self.on_enableAIChk_toggled)
self.ui.eligFileChk.toggled.connect(self.on_eligFileChk_toggled)
self.ui.experimentalChk.toggled.connect(self.on_experimentalChk_toggled)
self.ui.languageTxt.hide() # to be removed later
self.ui.languageLbl.hide() # to be removed later
self.ui.languageTxt.textEdited.connect(self.on_languageTxt_textEdited)
@@ -102,7 +103,6 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.buildVersionChk.toggled.connect(self.on_buildVersionChk_clicked)
self.ui.RTLChk.toggled.connect(self.on_RTLChk_clicked)
self.ui.metalHUDChk.toggled.connect(self.on_metalHUDChk_clicked)
self.ui.accessoryChk.toggled.connect(self.on_accessoryChk_clicked)
self.ui.iMessageChk.toggled.connect(self.on_iMessageChk_clicked)
self.ui.IDSChk.toggled.connect(self.on_IDSChk_clicked)
self.ui.VCChk.toggled.connect(self.on_VCChk_clicked)
@@ -114,6 +114,12 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.pasteSoundChk.toggled.connect(self.on_pasteSoundChk_clicked)
self.ui.notifyPastesChk.toggled.connect(self.on_notifyPastesChk_clicked)
## RISKY OPTIONS PAGE ACTIONS
self.ui.disableOTAChk.toggled.connect(self.on_disableOTAChk_clicked)
self.ui.enableResolutionChk.toggled.connect(self.on_enableResolutionChk_clicked)
self.ui.resHeightTxt.textEdited.connect(self.on_resHeightTxt_textEdited)
self.ui.resWidthTxt.textEdited.connect(self.on_resWidthTxt_textEdited)
## APPLY PAGE ACTIONS
self.ui.applyTweaksBtn.clicked.connect(self.on_applyPageBtn_clicked)
self.ui.removeTweaksBtn.clicked.connect(self.on_removeTweaksBtn_clicked)
@@ -122,8 +128,10 @@ class MainWindow(QtWidgets.QMainWindow):
## SETTINGS PAGE ACTIONS
self.ui.allowWifiApplyingChk.toggled.connect(self.on_allowWifiApplyingChk_toggled)
self.ui.skipSetupChk.toggled.connect(self.on_skipSetupChk_toggled)
self.ui.autoRebootChk.toggled.connect(self.on_autoRebootChk_toggled)
self.ui.showRiskyChk.toggled.connect(self.on_showRiskyChk_toggled)
self.ui.skipSetupChk.toggled.connect(self.on_skipSetupChk_toggled)
self.ui.supervisionChk.toggled.connect(self.on_supervisionChk_toggled)
self.ui.supervisionOrganization.textEdited.connect(self.on_supervisionOrgTxt_textEdited)
self.ui.resetPairBtn.clicked.connect(self.on_resetPairBtn_clicked)
@@ -154,6 +162,9 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.addGestaltKeyBtn.clicked.connect(self.on_addGestaltKeyBtn_clicked)
self.ui.aiEnablerContent.hide()
self.ui.resChangerContent.hide()
self.ui.resHeightWarningLbl.hide()
self.ui.resWidthWarningLbl.hide()
## GENERAL INTERFACE FUNCTIONS
@@ -178,7 +189,6 @@ class MainWindow(QtWidgets.QMainWindow):
# hide all pages
self.ui.explorePageBtn.hide()
self.ui.locSimPageBtn.hide()
self.ui.sidebarDiv1.hide()
self.ui.gestaltPageBtn.hide()
@@ -186,6 +196,7 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.euEnablerPageBtn.hide()
self.ui.springboardOptionsPageBtn.hide()
self.ui.internalOptionsPageBtn.hide()
self.ui.advancedPageBtn.hide()
self.ui.sidebarDiv2.hide()
self.ui.applyPageBtn.hide()
@@ -199,11 +210,14 @@ class MainWindow(QtWidgets.QMainWindow):
# show all pages
self.ui.explorePageBtn.hide()
self.ui.locSimPageBtn.hide()
self.ui.sidebarDiv1.show()
self.ui.gestaltPageBtn.show()
self.ui.springboardOptionsPageBtn.show()
self.ui.internalOptionsPageBtn.show()
if self.device_manager.allow_risky_tweaks:
self.ui.advancedPageBtn.show()
else:
self.ui.advancedPageBtn.hide()
self.ui.sidebarDiv2.show()
self.ui.applyPageBtn.show()
@@ -213,6 +227,7 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.euEnablerPageContent.setDisabled(False)
self.ui.springboardOptionsPageContent.setDisabled(False)
self.ui.internalOptionsPageContent.setDisabled(False)
self.ui.advancedOptionsPageContent.setDisabled(False)
self.ui.resetPairBtn.show()
@@ -220,13 +235,31 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.devicePicker.setCurrentIndex(0)
self.change_selected_device(0)
def setup_spoofedModelDrp_models(self):
# hide all the models first
for i in range(1, self.ui.spoofedModelDrp.count()):
try:
self.ui.spoofedModelDrp.removeItem(1)
except:
pass
# 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"):
# re-enable iPhone spoof models
self.ui.spoofedModelDrp.addItems(spoof_drp_options[:6])
else:
# re-enable iPad spoof models
self.ui.spoofedModelDrp.addItems(spoof_drp_options[6:])
def change_selected_device(self, index):
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 = {
"exploit": [("18.0", self.ui.featureFlagsPageBtn)],
"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)],
"18.1": [self.ui.enableAIChk, self.ui.aiEnablerContent],
"18.0": [self.ui.aodChk, self.ui.iphone16SettingsChk]
}
@@ -241,6 +274,7 @@ class MainWindow(QtWidgets.QMainWindow):
pass
self.set_rdar_fix_label()
device_ver = Version(self.device_manager.data_singleton.current_device.version)
patched: bool = self.device_manager.get_current_device_patched()
# toggle option visibility for the minimum versions
for version in MinTweakVersions.keys():
if version == "exploit":
@@ -250,6 +284,13 @@ class MainWindow(QtWidgets.QMainWindow):
pair[1].show()
else:
pair[1].hide()
elif version == "no_patch":
# hide patched version items
for view in MinTweakVersions[version]:
if patched:
view.hide()
else:
view.show()
else:
# show views if the version is higher
parsed_ver = Version(version)
@@ -271,7 +312,7 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.dynamicIslandDrp.addItem("2622 (iPhone 16 Pro Dynamic Island)")
self.ui.dynamicIslandDrp.addItem("2868 (iPhone 16 Pro Max Dynamic Island)")
# eligibility page button
if device_ver >= Version("17.4") and (device_ver <= Version("17.7") or device_ver >= Version("18.1")):
if not patched and device_ver >= Version("17.4") and (device_ver <= Version("17.7") or device_ver >= Version("18.1")):
self.ui.euEnablerPageBtn.show()
else:
self.ui.euEnablerPageBtn.hide()
@@ -279,6 +320,7 @@ class MainWindow(QtWidgets.QMainWindow):
# hide the ai content if not on
if device_ver >= Version("18.1") and not tweaks["AIGestalt"].enabled:
self.ui.aiEnablerContent.hide()
self.setup_spoofedModelDrp_models()
else:
self.device_manager.set_current_device(index=None)
@@ -290,20 +332,23 @@ class MainWindow(QtWidgets.QMainWindow):
try:
# load the settings
apply_over_wifi = self.settings.value("apply_over_wifi", True, type=bool)
skip_setup = self.settings.value("skip_setup", True, type=bool)
auto_reboot = self.settings.value("auto_reboot", True, type=bool)
risky_tweaks = self.settings.value("show_risky_tweaks", 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)
self.ui.allowWifiApplyingChk.setChecked(apply_over_wifi)
self.ui.skipSetupChk.setChecked(skip_setup)
self.ui.autoRebootChk.setChecked(auto_reboot)
self.ui.showRiskyChk.setChecked(risky_tweaks)
self.ui.skipSetupChk.setChecked(skip_setup)
self.ui.supervisionChk.setChecked(supervised)
self.ui.supervisionOrganization.setText(organization_name)
self.device_manager.apply_over_wifi = apply_over_wifi
self.device_manager.skip_setup = skip_setup
self.device_manager.auto_reboot = auto_reboot
self.device_manager.allow_risky_tweaks = risky_tweaks
self.device_manager.skip_setup = skip_setup
self.device_manager.supervised = supervised
self.device_manager.organization_name = organization_name
except:
@@ -329,6 +374,9 @@ class MainWindow(QtWidgets.QMainWindow):
def on_internalOptionsPageBtn_clicked(self):
self.ui.pages.setCurrentIndex(Page.InternalOptions.value)
def on_advancedPageBtn_clicked(self):
self.ui.pages.setCurrentIndex(Page.RiskyTweaks.value)
def on_applyPageBtn_clicked(self):
self.ui.pages.setCurrentIndex(Page.Apply.value)
@@ -370,7 +418,7 @@ 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"):
if Version(version) < Version("17.0") or self.device_manager.get_current_device_patched():
support_str = "<span style=\"color: #ff0000;\">Not Supported.</span></a>"
elif not self.device_manager.get_current_device_supported():
# sparserestore partially patched
@@ -422,7 +470,13 @@ class MainWindow(QtWidgets.QMainWindow):
tweaks["DynamicIsland"].set_enabled(False)
tweaks["RdarFix"].set_di_type(-1)
else:
tweaks["DynamicIsland"].set_selected_option(index - 1)
# disable X gestures on devices other than iPhone SEs
# the lazy way, better option would be to remove it from the menu but I didn't want to rework all that
model = self.device_manager.get_current_device_model()
if index != 1 or (model == "iPhone12,8" or model == "iPhone14,6"):
tweaks["DynamicIsland"].set_selected_option(index - 1)
else:
tweaks["DynamicIsland"].set_enabled(False)
tweaks["RdarFix"].set_di_type(tweaks["DynamicIsland"].value[tweaks["DynamicIsland"].get_selected_option()])
self.set_rdar_fix_label()
def on_rdarFixChk_clicked(self, checked: bool):
@@ -568,16 +622,22 @@ class MainWindow(QtWidgets.QMainWindow):
else:
self.ui.languageTxt.hide()
self.ui.languageLbl.hide()
def on_experimentalChk_toggled(self, checked: bool):
tweaks["AIExperiment"].set_enabled(checked)
def on_languageTxt_textEdited(self, text: str):
tweaks["AIEligibility"].set_language_code(text)
def on_spoofedModelDrp_activated(self, index: int):
tweaks["SpoofModel"].set_selected_option(index)
tweaks["SpoofHardware"].set_selected_option(index)
tweaks["SpoofCPU"].set_selected_option(index)
idx_to_apply = index
if index > 0 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)
## SPRINGBOARD OPTIONS PAGE
@@ -605,8 +665,6 @@ class MainWindow(QtWidgets.QMainWindow):
tweaks["RTL"].set_enabled(checked)
def on_metalHUDChk_clicked(self, checked: bool):
tweaks["MetalForceHudEnabled"].set_enabled(checked)
def on_accessoryChk_clicked(self, checked: bool):
tweaks["AccessoryDeveloperEnabled"].set_enabled(checked)
def on_iMessageChk_clicked(self, checked: bool):
tweaks["iMessageDiagnosticsEnabled"].set_enabled(checked)
def on_IDSChk_clicked(self, checked: bool):
@@ -630,20 +688,65 @@ class MainWindow(QtWidgets.QMainWindow):
def on_notifyPastesChk_clicked(self, checked: bool):
tweaks["AnnounceAllPastes"].set_enabled(checked)
## Risky Options Page
def on_disableOTAChk_clicked(self, checked: bool):
tweaks["DisableOTA"].set_enabled(checked)
def on_enableResolutionChk_clicked(self, checked: bool):
tweaks["CustomResolution"].set_enabled(checked)
# toggle the ui content
if checked:
self.ui.resChangerContent.show()
else:
self.ui.resChangerContent.hide()
def on_resHeightTxt_textEdited(self, txt: str):
if txt == "":
# remove the canvas_height value
tweaks["CustomResolution"].value.pop("canvas_height", None)
self.ui.resHeightWarningLbl.hide()
return
try:
val = int(txt)
tweaks["CustomResolution"].value["canvas_height"] = val
self.ui.resHeightWarningLbl.hide()
except:
self.ui.resHeightWarningLbl.show()
def on_resWidthTxt_textEdited(self, txt: str):
if txt == "":
# remove the canvas_width value
tweaks["CustomResolution"].value.pop("canvas_width", None)
self.ui.resWidthWarningLbl.hide()
return
try:
val = int(txt)
tweaks["CustomResolution"].value["canvas_width"] = val
self.ui.resWidthWarningLbl.hide()
except:
self.ui.resWidthWarningLbl.show()
## SETTINGS PAGE
def on_allowWifiApplyingChk_toggled(self, checked: bool):
self.device_manager.apply_over_wifi = checked
# save the setting
self.settings.setValue("apply_over_wifi", checked)
def on_skipSetupChk_toggled(self, checked: bool):
self.device_manager.skip_setup = checked
def on_showRiskyChk_toggled(self, checked: bool):
self.device_manager.allow_risky_tweaks = checked
# save the setting
self.settings.setValue("skip_setup", checked)
self.settings.setValue("show_risky_tweaks", checked)
# toggle the button visibility
if checked:
self.ui.advancedPageBtn.show()
else:
self.ui.advancedPageBtn.hide()
def on_autoRebootChk_toggled(self, checked: bool):
self.device_manager.auto_reboot = checked
# save the setting
self.settings.setValue("auto_reboot", checked)
def on_skipSetupChk_toggled(self, checked: bool):
self.device_manager.skip_setup = checked
# save the setting
self.settings.setValue("skip_setup", checked)
def on_supervisionOrgTxt_textEdited(self, text: str):
self.device_manager.organization_name = text
self.settings.setValue("organization_name", text)

View File

@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'mainwindow.ui'
##
## Created by: Qt User Interface Compiler version 6.8.0
## Created by: Qt User Interface Compiler version 6.6.3
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -190,7 +190,7 @@ class Ui_Nugget(object):
" border-bottom-right-radius: 0px;\n"
"}")
icon = QIcon()
icon.addFile(u":/icon/phone.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon.addFile(u":/icon/phone.svg", QSize(), QIcon.Normal, QIcon.Off)
self.toolButton_6.setIcon(icon)
self.horizontalLayout_15.addWidget(self.toolButton_6)
@@ -244,7 +244,7 @@ class Ui_Nugget(object):
" border-radius: 0px;\n"
"}")
icon1 = QIcon()
icon1.addFile(u":/icon/arrow-clockwise.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon1.addFile(u":/icon/arrow-clockwise.svg", QSize(), QIcon.Normal, QIcon.Off)
self.refreshBtn.setIcon(icon1)
self.refreshBtn.setCheckable(False)
self.refreshBtn.setToolButtonStyle(Qt.ToolButtonIconOnly)
@@ -297,7 +297,7 @@ class Ui_Nugget(object):
sizePolicy2.setHeightForWidth(self.homePageBtn.sizePolicy().hasHeightForWidth())
self.homePageBtn.setSizePolicy(sizePolicy2)
icon2 = QIcon()
icon2.addFile(u":/icon/house.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon2.addFile(u":/icon/house.svg", QSize(), QIcon.Normal, QIcon.Off)
self.homePageBtn.setIcon(icon2)
self.homePageBtn.setCheckable(True)
self.homePageBtn.setChecked(True)
@@ -312,7 +312,7 @@ class Ui_Nugget(object):
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)
icon3.addFile(u":/icon/compass.svg", QSize(), QIcon.Normal, QIcon.Off)
self.explorePageBtn.setIcon(icon3)
self.explorePageBtn.setCheckable(True)
self.explorePageBtn.setAutoExclusive(True)
@@ -320,26 +320,13 @@ class Ui_Nugget(object):
self.verticalLayout.addWidget(self.explorePageBtn)
self.locSimPageBtn = QToolButton(self.sidebar)
self.locSimPageBtn.setObjectName(u"locSimPageBtn")
sizePolicy2.setHeightForWidth(self.locSimPageBtn.sizePolicy().hasHeightForWidth())
self.locSimPageBtn.setSizePolicy(sizePolicy2)
icon4 = QIcon()
icon4.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.locSimPageBtn.setIcon(icon4)
self.locSimPageBtn.setCheckable(True)
self.locSimPageBtn.setAutoExclusive(True)
self.locSimPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.locSimPageBtn)
self.sidebarDiv1 = QFrame(self.sidebar)
self.sidebarDiv1.setObjectName(u"sidebarDiv1")
self.sidebarDiv1.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.sidebarDiv1.setFrameShadow(QFrame.Plain)
self.sidebarDiv1.setFrameShape(QFrame.Shape.HLine)
self.sidebarDiv1.setFrameShape(QFrame.HLine)
self.verticalLayout.addWidget(self.sidebarDiv1)
@@ -347,9 +334,9 @@ class Ui_Nugget(object):
self.gestaltPageBtn.setObjectName(u"gestaltPageBtn")
sizePolicy2.setHeightForWidth(self.gestaltPageBtn.sizePolicy().hasHeightForWidth())
self.gestaltPageBtn.setSizePolicy(sizePolicy2)
icon5 = QIcon()
icon5.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.gestaltPageBtn.setIcon(icon5)
icon4 = QIcon()
icon4.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Normal, QIcon.Off)
self.gestaltPageBtn.setIcon(icon4)
self.gestaltPageBtn.setIconSize(QSize(24, 28))
self.gestaltPageBtn.setCheckable(True)
self.gestaltPageBtn.setAutoExclusive(True)
@@ -365,9 +352,9 @@ class Ui_Nugget(object):
font = QFont()
font.setFamilies([u".AppleSystemUIFont"])
self.featureFlagsPageBtn.setFont(font)
icon6 = QIcon()
icon6.addFile(u":/icon/flag.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.featureFlagsPageBtn.setIcon(icon6)
icon5 = QIcon()
icon5.addFile(u":/icon/flag.svg", QSize(), QIcon.Normal, QIcon.Off)
self.featureFlagsPageBtn.setIcon(icon5)
self.featureFlagsPageBtn.setCheckable(True)
self.featureFlagsPageBtn.setAutoExclusive(True)
self.featureFlagsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -378,7 +365,9 @@ class Ui_Nugget(object):
self.euEnablerPageBtn.setObjectName(u"euEnablerPageBtn")
sizePolicy2.setHeightForWidth(self.euEnablerPageBtn.sizePolicy().hasHeightForWidth())
self.euEnablerPageBtn.setSizePolicy(sizePolicy2)
self.euEnablerPageBtn.setIcon(icon4)
icon6 = QIcon()
icon6.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Normal, QIcon.Off)
self.euEnablerPageBtn.setIcon(icon6)
self.euEnablerPageBtn.setCheckable(True)
self.euEnablerPageBtn.setAutoExclusive(True)
self.euEnablerPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -390,7 +379,7 @@ class Ui_Nugget(object):
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)
icon7.addFile(u":/icon/app-indicator.svg", QSize(), QIcon.Normal, QIcon.Off)
self.springboardOptionsPageBtn.setIcon(icon7)
self.springboardOptionsPageBtn.setCheckable(True)
self.springboardOptionsPageBtn.setAutoExclusive(True)
@@ -403,7 +392,7 @@ class Ui_Nugget(object):
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)
icon8.addFile(u":/icon/hdd.svg", QSize(), QIcon.Normal, QIcon.Off)
self.internalOptionsPageBtn.setIcon(icon8)
self.internalOptionsPageBtn.setCheckable(True)
self.internalOptionsPageBtn.setAutoExclusive(True)
@@ -411,13 +400,26 @@ class Ui_Nugget(object):
self.verticalLayout.addWidget(self.internalOptionsPageBtn)
self.advancedPageBtn = QToolButton(self.sidebar)
self.advancedPageBtn.setObjectName(u"advancedPageBtn")
sizePolicy2.setHeightForWidth(self.advancedPageBtn.sizePolicy().hasHeightForWidth())
self.advancedPageBtn.setSizePolicy(sizePolicy2)
icon9 = QIcon()
icon9.addFile(u":/icon/star.svg", QSize(), QIcon.Normal, QIcon.Off)
self.advancedPageBtn.setIcon(icon9)
self.advancedPageBtn.setCheckable(True)
self.advancedPageBtn.setAutoExclusive(True)
self.advancedPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.advancedPageBtn)
self.sidebarDiv2 = QFrame(self.sidebar)
self.sidebarDiv2.setObjectName(u"sidebarDiv2")
self.sidebarDiv2.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.sidebarDiv2.setFrameShadow(QFrame.Plain)
self.sidebarDiv2.setFrameShape(QFrame.Shape.HLine)
self.sidebarDiv2.setFrameShape(QFrame.HLine)
self.verticalLayout.addWidget(self.sidebarDiv2)
@@ -425,9 +427,9 @@ class Ui_Nugget(object):
self.applyPageBtn.setObjectName(u"applyPageBtn")
sizePolicy2.setHeightForWidth(self.applyPageBtn.sizePolicy().hasHeightForWidth())
self.applyPageBtn.setSizePolicy(sizePolicy2)
icon9 = QIcon()
icon9.addFile(u":/icon/check-circle.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.applyPageBtn.setIcon(icon9)
icon10 = QIcon()
icon10.addFile(u":/icon/check-circle.svg", QSize(), QIcon.Normal, QIcon.Off)
self.applyPageBtn.setIcon(icon10)
self.applyPageBtn.setCheckable(True)
self.applyPageBtn.setAutoExclusive(True)
self.applyPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -438,9 +440,9 @@ class Ui_Nugget(object):
self.settingsPageBtn.setObjectName(u"settingsPageBtn")
sizePolicy2.setHeightForWidth(self.settingsPageBtn.sizePolicy().hasHeightForWidth())
self.settingsPageBtn.setSizePolicy(sizePolicy2)
icon10 = QIcon()
icon10.addFile(u":/icon/gear.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.settingsPageBtn.setIcon(icon10)
icon11 = QIcon()
icon11.addFile(u":/icon/gear.svg", QSize(), QIcon.Normal, QIcon.Off)
self.settingsPageBtn.setIcon(icon11)
self.settingsPageBtn.setCheckable(True)
self.settingsPageBtn.setAutoExclusive(True)
self.settingsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -509,7 +511,7 @@ class Ui_Nugget(object):
self.phoneVersionLbl = QLabel(self.verticalWidget)
self.phoneVersionLbl.setObjectName(u"phoneVersionLbl")
self.phoneVersionLbl.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
self.phoneVersionLbl.setCursor(QCursor(Qt.PointingHandCursor))
self.phoneVersionLbl.setTextFormat(Qt.RichText)
self.phoneVersionLbl.setOpenExternalLinks(False)
@@ -531,7 +533,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_4.setFrameShadow(QFrame.Plain)
self.line_4.setFrameShape(QFrame.Shape.HLine)
self.line_4.setFrameShape(QFrame.HLine)
self.verticalLayout_2.addWidget(self.line_4)
@@ -551,9 +553,9 @@ class Ui_Nugget(object):
" background-color: transparent;\n"
" padding: 0px;\n"
"}")
icon11 = QIcon()
icon11.addFile(u":/credits/big_nugget.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.bigNuggetBtn.setIcon(icon11)
icon12 = QIcon()
icon12.addFile(u":/credits/big_nugget.png", QSize(), QIcon.Normal, QIcon.Off)
self.bigNuggetBtn.setIcon(icon12)
self.bigNuggetBtn.setIconSize(QSize(150, 200))
self.horizontalLayout_27.addWidget(self.bigNuggetBtn)
@@ -588,18 +590,16 @@ class Ui_Nugget(object):
self.horizontalLayout_8.setContentsMargins(-1, -1, 0, 0)
self.discordBtn = QToolButton(self.verticalWidget1)
self.discordBtn.setObjectName(u"discordBtn")
icon12 = QIcon()
icon12.addFile(u":/icon/discord.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.discordBtn.setIcon(icon12)
icon13 = QIcon()
icon13.addFile(u":/icon/discord.svg", QSize(), QIcon.Normal, QIcon.Off)
self.discordBtn.setIcon(icon13)
self.discordBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.horizontalLayout_8.addWidget(self.discordBtn)
self.starOnGithubBtn = QToolButton(self.verticalWidget1)
self.starOnGithubBtn.setObjectName(u"starOnGithubBtn")
icon13 = QIcon()
icon13.addFile(u":/icon/star.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.starOnGithubBtn.setIcon(icon13)
self.starOnGithubBtn.setIcon(icon9)
self.starOnGithubBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.horizontalLayout_8.addWidget(self.starOnGithubBtn)
@@ -642,7 +642,7 @@ class Ui_Nugget(object):
" background: none;\n"
"}")
icon14 = QIcon()
icon14.addFile(u":/credits/LeminLimez.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon14.addFile(u":/credits/LeminLimez.png", QSize(), QIcon.Normal, QIcon.Off)
self.leminBtn.setIcon(icon14)
self.leminBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -662,7 +662,7 @@ class Ui_Nugget(object):
" color: #FFFFFF;\n"
"}")
icon15 = QIcon()
icon15.addFile(u":/icon/twitter.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon15.addFile(u":/icon/twitter.svg", QSize(), QIcon.Normal, QIcon.Off)
self.leminTwitterBtn.setIcon(icon15)
self.horizontalLayout_6.addWidget(self.leminTwitterBtn)
@@ -681,7 +681,7 @@ class Ui_Nugget(object):
" color: #FFFFFF;\n"
"}")
icon16 = QIcon()
icon16.addFile(u":/icon/github.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon16.addFile(u":/icon/github.svg", QSize(), QIcon.Normal, QIcon.Off)
self.leminGithubBtn.setIcon(icon16)
self.horizontalLayout_6.addWidget(self.leminGithubBtn)
@@ -701,7 +701,7 @@ class Ui_Nugget(object):
" color: #FFFFFF;\n"
"}")
icon17 = QIcon()
icon17.addFile(u":/icon/currency-dollar.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon17.addFile(u":/icon/currency-dollar.svg", QSize(), QIcon.Normal, QIcon.Off)
self.leminKoFiBtn.setIcon(icon17)
self.horizontalLayout_6.addWidget(self.leminKoFiBtn)
@@ -897,7 +897,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_8.setIcon(icon5)
self.toolButton_8.setIcon(icon4)
self.toolButton_8.setIconSize(QSize(30, 30))
self.horizontalLayout_5.addWidget(self.toolButton_8)
@@ -934,7 +934,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_8.setFrameShadow(QFrame.Plain)
self.line_8.setFrameShape(QFrame.Shape.HLine)
self.line_8.setFrameShape(QFrame.HLine)
self.verticalLayout_4.addWidget(self.line_8)
@@ -1062,7 +1062,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_7.setFrameShadow(QFrame.Plain)
self.line_7.setFrameShape(QFrame.Shape.HLine)
self.line_7.setFrameShape(QFrame.HLine)
self.verticalLayout_8.addWidget(self.line_7)
@@ -1107,7 +1107,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_9.setFrameShadow(QFrame.Plain)
self.line_9.setFrameShape(QFrame.Shape.HLine)
self.line_9.setFrameShape(QFrame.HLine)
self.verticalLayout_8.addWidget(self.line_9)
@@ -1127,7 +1127,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_10.setFrameShadow(QFrame.Plain)
self.line_10.setFrameShape(QFrame.Shape.HLine)
self.line_10.setFrameShape(QFrame.HLine)
self.verticalLayout_8.addWidget(self.line_10)
@@ -1147,7 +1147,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_22.setFrameShadow(QFrame.Plain)
self.line_22.setFrameShape(QFrame.Shape.HLine)
self.line_22.setFrameShape(QFrame.HLine)
self.verticalLayout_8.addWidget(self.line_22)
@@ -1164,7 +1164,7 @@ class Ui_Nugget(object):
self.addGestaltKeyBtn.setObjectName(u"addGestaltKeyBtn")
self.addGestaltKeyBtn.setEnabled(True)
icon18 = QIcon()
icon18.addFile(u":/icon/plus.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon18.addFile(u":/icon/plus.svg", QSize(), QIcon.Normal, QIcon.Off)
self.addGestaltKeyBtn.setIcon(icon18)
self.addGestaltKeyBtn.setCheckable(False)
self.addGestaltKeyBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -1185,7 +1185,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_23.setFrameShadow(QFrame.Plain)
self.line_23.setFrameShape(QFrame.Shape.HLine)
self.line_23.setFrameShape(QFrame.HLine)
self.verticalLayout_8.addWidget(self.line_23)
@@ -1235,7 +1235,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_10.setIcon(icon6)
self.toolButton_10.setIcon(icon5)
self.horizontalLayout_20.addWidget(self.toolButton_10)
@@ -1271,7 +1271,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_12.setFrameShadow(QFrame.Plain)
self.line_12.setFrameShape(QFrame.Shape.HLine)
self.line_12.setFrameShape(QFrame.HLine)
self.verticalLayout_14.addWidget(self.line_12)
@@ -1298,7 +1298,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.div.setFrameShadow(QFrame.Plain)
self.div.setFrameShape(QFrame.Shape.HLine)
self.div.setFrameShape(QFrame.HLine)
self.verticalLayout_13.addWidget(self.div)
@@ -1341,7 +1341,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_11.setIcon(icon4)
self.toolButton_11.setIcon(icon6)
self.horizontalLayout_21.addWidget(self.toolButton_11)
@@ -1377,7 +1377,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_13.setFrameShadow(QFrame.Plain)
self.line_13.setFrameShape(QFrame.Shape.HLine)
self.line_13.setFrameShape(QFrame.HLine)
self.verticalLayout_17.addWidget(self.line_13)
@@ -1459,7 +1459,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_16.setFrameShadow(QFrame.Plain)
self.line_16.setFrameShape(QFrame.Shape.HLine)
self.line_16.setFrameShape(QFrame.HLine)
self.verticalLayout_36.addWidget(self.line_16)
@@ -1487,11 +1487,6 @@ class Ui_Nugget(object):
self.verticalLayout_34.addWidget(self.eligFileChk)
self.experimentalChk = QCheckBox(self.aiEnablerContent)
self.experimentalChk.setObjectName(u"experimentalChk")
self.verticalLayout_34.addWidget(self.experimentalChk)
self.languageLbl = QLabel(self.aiEnablerContent)
self.languageLbl.setObjectName(u"languageLbl")
@@ -1508,7 +1503,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_21.setFrameShadow(QFrame.Plain)
self.line_21.setFrameShape(QFrame.Shape.HLine)
self.line_21.setFrameShape(QFrame.HLine)
self.verticalLayout_34.addWidget(self.line_21)
@@ -1660,7 +1655,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_11.setFrameShadow(QFrame.Plain)
self.line_11.setFrameShape(QFrame.Shape.HLine)
self.line_11.setFrameShape(QFrame.HLine)
self.verticalLayout_10.addWidget(self.line_11)
@@ -1687,7 +1682,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_6.setFrameShadow(QFrame.Plain)
self.line_6.setFrameShape(QFrame.Shape.HLine)
self.line_6.setFrameShape(QFrame.HLine)
self._2.addWidget(self.line_6)
@@ -1786,7 +1781,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_121.setFrameShadow(QFrame.Plain)
self.line_121.setFrameShape(QFrame.Shape.HLine)
self.line_121.setFrameShape(QFrame.HLine)
self.verticalLayout_141.addWidget(self.line_121)
@@ -1813,7 +1808,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.div1.setFrameShadow(QFrame.Plain)
self.div1.setFrameShape(QFrame.Shape.HLine)
self.div1.setFrameShape(QFrame.HLine)
self.verticalLayout_131.addWidget(self.div1)
@@ -1822,11 +1817,6 @@ class Ui_Nugget(object):
self.verticalLayout_131.addWidget(self.metalHUDChk)
self.accessoryChk = QCheckBox(self.internalOptionsPageContent)
self.accessoryChk.setObjectName(u"accessoryChk")
self.verticalLayout_131.addWidget(self.accessoryChk)
self.iMessageChk = QCheckBox(self.internalOptionsPageContent)
self.iMessageChk.setObjectName(u"iMessageChk")
@@ -1848,7 +1838,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_17.setFrameShadow(QFrame.Plain)
self.line_17.setFrameShape(QFrame.Shape.HLine)
self.line_17.setFrameShape(QFrame.HLine)
self.verticalLayout_131.addWidget(self.line_17)
@@ -1868,7 +1858,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_18.setFrameShadow(QFrame.Plain)
self.line_18.setFrameShape(QFrame.Shape.HLine)
self.line_18.setFrameShape(QFrame.HLine)
self.verticalLayout_131.addWidget(self.line_18)
@@ -1893,7 +1883,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_19.setFrameShadow(QFrame.Plain)
self.line_19.setFrameShape(QFrame.Shape.HLine)
self.line_19.setFrameShape(QFrame.HLine)
self.verticalLayout_131.addWidget(self.line_19)
@@ -1915,6 +1905,144 @@ 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.verticalLayout_142.setObjectName(u"verticalLayout_142")
self.verticalLayout_142.setContentsMargins(0, 0, 0, 0)
self.horizontalWidget_52 = QWidget(self.advancedOptionsPage)
self.horizontalWidget_52.setObjectName(u"horizontalWidget_52")
self.horizontalLayout_202 = QHBoxLayout(self.horizontalWidget_52)
self.horizontalLayout_202.setSpacing(10)
self.horizontalLayout_202.setObjectName(u"horizontalLayout_202")
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.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_102.setIcon(icon9)
self.horizontalLayout_202.addWidget(self.toolButton_102)
self.verticalWidget_42 = QWidget(self.horizontalWidget_52)
self.verticalWidget_42.setObjectName(u"verticalWidget_42")
self.verticalLayout_122 = QVBoxLayout(self.verticalWidget_42)
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.verticalLayout_122.addWidget(self.advancedOptionsLbl)
self.verticalSpacer_181 = QSpacerItem(20, 16, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_122.addItem(self.verticalSpacer_181)
self.horizontalLayout_202.addWidget(self.verticalWidget_42)
self.horizontalSpacer_72 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_202.addItem(self.horizontalSpacer_72)
self.verticalLayout_142.addWidget(self.horizontalWidget_52)
self.line_122 = QFrame(self.advancedOptionsPage)
self.line_122.setObjectName(u"line_122")
self.line_122.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_122.setFrameShadow(QFrame.Plain)
self.line_122.setFrameShape(QFrame.HLine)
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.verticalLayout_132.setObjectName(u"verticalLayout_132")
self.verticalLayout_132.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.line_191 = QFrame(self.advancedOptionsPageContent)
self.line_191.setObjectName(u"line_191")
self.line_191.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_191.setFrameShadow(QFrame.Plain)
self.line_191.setFrameShape(QFrame.HLine)
self.verticalLayout_132.addWidget(self.line_191)
self.disableOTAChk = QCheckBox(self.advancedOptionsPageContent)
self.disableOTAChk.setObjectName(u"disableOTAChk")
self.verticalLayout_132.addWidget(self.disableOTAChk)
self.line_181 = QFrame(self.advancedOptionsPageContent)
self.line_181.setObjectName(u"line_181")
self.line_181.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_181.setFrameShadow(QFrame.Plain)
self.line_181.setFrameShape(QFrame.HLine)
self.verticalLayout_132.addWidget(self.line_181)
self.enableResolutionChk = QCheckBox(self.advancedOptionsPageContent)
self.enableResolutionChk.setObjectName(u"enableResolutionChk")
self.verticalLayout_132.addWidget(self.enableResolutionChk)
self.resolutionContent = QVBoxLayout()
self.resolutionContent.setObjectName(u"resolutionContent")
self.resolutionContent.setContentsMargins(-1, -1, -1, 10)
self.resHeightLbl = QLabel(self.advancedOptionsPageContent)
self.resHeightLbl.setObjectName(u"resHeightLbl")
self.resHeightLbl.setEnabled(False)
self.resolutionContent.addWidget(self.resHeightLbl)
self.resHeightTxt = QLineEdit(self.advancedOptionsPageContent)
self.resHeightTxt.setObjectName(u"resHeightTxt")
self.resHeightTxt.setEnabled(False)
self.resolutionContent.addWidget(self.resHeightTxt)
self.resWidthLbl = QLabel(self.advancedOptionsPageContent)
self.resWidthLbl.setObjectName(u"resWidthLbl")
self.resolutionContent.addWidget(self.resWidthLbl)
self.resWidthTxt = QLineEdit(self.advancedOptionsPageContent)
self.resWidthTxt.setObjectName(u"resWidthTxt")
self.resolutionContent.addWidget(self.resWidthTxt)
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.verticalLayout_142.addWidget(self.advancedOptionsPageContent)
self.pages.addWidget(self.advancedOptionsPage)
self.applyPage = QWidget()
self.applyPage.setObjectName(u"applyPage")
self.verticalLayout_6 = QVBoxLayout(self.applyPage)
@@ -1941,7 +2069,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_18.setIcon(icon9)
self.toolButton_18.setIcon(icon10)
self.horizontalLayout_33.addWidget(self.toolButton_18)
@@ -1978,7 +2106,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_5.setFrameShadow(QFrame.Plain)
self.line_5.setFrameShape(QFrame.Shape.HLine)
self.line_5.setFrameShape(QFrame.HLine)
self.verticalLayout_24.addWidget(self.line_5)
@@ -2004,7 +2132,7 @@ class Ui_Nugget(object):
self.chooseGestaltBtn = QToolButton(self.verticalWidget2)
self.chooseGestaltBtn.setObjectName(u"chooseGestaltBtn")
icon19 = QIcon()
icon19.addFile(u":/icon/folder.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon19.addFile(u":/icon/folder.svg", QSize(), QIcon.Normal, QIcon.Off)
self.chooseGestaltBtn.setIcon(icon19)
self.chooseGestaltBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -2020,7 +2148,7 @@ class Ui_Nugget(object):
self.horizontalLayout_17.setContentsMargins(0, 0, 0, 0)
self.applyTweaksBtn = QToolButton(self.horizontalWidget4)
self.applyTweaksBtn.setObjectName(u"applyTweaksBtn")
self.applyTweaksBtn.setIcon(icon9)
self.applyTweaksBtn.setIcon(icon10)
self.applyTweaksBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.horizontalLayout_17.addWidget(self.applyTweaksBtn)
@@ -2099,7 +2227,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_71.setIcon(icon10)
self.toolButton_71.setIcon(icon11)
self.horizontalLayout_131.addWidget(self.toolButton_71)
@@ -2135,7 +2263,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_111.setFrameShadow(QFrame.Plain)
self.line_111.setFrameShape(QFrame.Shape.HLine)
self.line_111.setFrameShape(QFrame.HLine)
self.verticalLayout_101.addWidget(self.line_111)
@@ -2152,21 +2280,37 @@ class Ui_Nugget(object):
self._21.addWidget(self.allowWifiApplyingChk)
self.skipSetupChk = QCheckBox(self.settingsPageContent)
self.skipSetupChk.setObjectName(u"skipSetupChk")
self.skipSetupChk.setChecked(True)
self._21.addWidget(self.skipSetupChk)
self.autoRebootChk = QCheckBox(self.settingsPageContent)
self.autoRebootChk.setObjectName(u"autoRebootChk")
self.autoRebootChk.setChecked(True)
self._21.addWidget(self.autoRebootChk)
self.showRiskyChk = QCheckBox(self.settingsPageContent)
self.showRiskyChk.setObjectName(u"showRiskyChk")
self._21.addWidget(self.showRiskyChk)
self.line_24 = QFrame(self.settingsPageContent)
self.line_24.setObjectName(u"line_24")
self.line_24.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_24.setFrameShadow(QFrame.Plain)
self.line_24.setFrameShape(QFrame.HLine)
self._21.addWidget(self.line_24)
self.skipSetupChk = QCheckBox(self.settingsPageContent)
self.skipSetupChk.setObjectName(u"skipSetupChk")
self.skipSetupChk.setChecked(True)
self._21.addWidget(self.skipSetupChk)
self.supervisionChk = QCheckBox(self.settingsPageContent)
self.supervisionChk.setObjectName(u"supervisionChk")
self.supervisionChk.setChecked(True)
self.supervisionChk.setEnabled(True)
self.supervisionChk.setChecked(False)
self._21.addWidget(self.supervisionChk)
@@ -2190,7 +2334,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_20.setFrameShadow(QFrame.Plain)
self.line_20.setFrameShape(QFrame.Shape.HLine)
self.line_20.setFrameShape(QFrame.HLine)
self._21.addWidget(self.line_20)
@@ -2234,7 +2378,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_13.setIcon(icon4)
self.toolButton_13.setIcon(icon6)
self.horizontalLayout_28.addWidget(self.toolButton_13)
@@ -2276,7 +2420,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_2.setFrameShadow(QFrame.Plain)
self.line_2.setFrameShape(QFrame.Shape.HLine)
self.line_2.setFrameShape(QFrame.HLine)
self.verticalLayout_28.addWidget(self.line_2)
@@ -2377,7 +2521,7 @@ class Ui_Nugget(object):
" border-radius: 0px;\n"
"}")
icon20 = QIcon()
icon20.addFile(u":/icon/pencil.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon20.addFile(u":/icon/pencil.svg", QSize(), QIcon.Normal, QIcon.Off)
self.toolButton_12.setIcon(icon20)
self.toolButton_12.setIconSize(QSize(25, 25))
@@ -2416,7 +2560,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_14.setFrameShadow(QFrame.Plain)
self.line_14.setFrameShape(QFrame.Shape.HLine)
self.line_14.setFrameShape(QFrame.HLine)
self.verticalLayout_20.addWidget(self.line_14)
@@ -2440,7 +2584,7 @@ class Ui_Nugget(object):
self.importOperationBtn.setObjectName(u"importOperationBtn")
self.importOperationBtn.setEnabled(True)
icon21 = QIcon()
icon21.addFile(u":/icon/import.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon21.addFile(u":/icon/import.svg", QSize(), QIcon.Normal, QIcon.Off)
self.importOperationBtn.setIcon(icon21)
self.importOperationBtn.setIconSize(QSize(20, 20))
self.importOperationBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -2537,7 +2681,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_3.setFrameShadow(QFrame.Plain)
self.line_3.setFrameShape(QFrame.Shape.HLine)
self.line_3.setFrameShape(QFrame.HLine)
self.verticalLayout_31.addWidget(self.line_3)
@@ -2570,7 +2714,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.themesBtn.setIcon(icon5)
self.themesBtn.setIcon(icon4)
self.themesBtn.setIconSize(QSize(30, 30))
self.horizontalLayout_23.addWidget(self.themesBtn)
@@ -2617,7 +2761,7 @@ 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)
icon22.addFile(u":/icon/file-earmark-zip.svg", QSize(), QIcon.Normal, QIcon.Off)
self.importThemeZipBtn.setIcon(icon22)
self.horizontalLayout_26.addWidget(self.importThemeZipBtn)
@@ -2634,7 +2778,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_15.setFrameShadow(QFrame.Plain)
self.line_15.setFrameShape(QFrame.Shape.HLine)
self.line_15.setFrameShape(QFrame.HLine)
self.verticalLayout_23.addWidget(self.line_15)
@@ -2655,7 +2799,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line.setFrameShadow(QFrame.Plain)
self.line.setFrameShape(QFrame.Shape.HLine)
self.line.setFrameShape(QFrame.HLine)
self.verticalLayout_22.addWidget(self.line)
@@ -2720,7 +2864,7 @@ class Ui_Nugget(object):
self.retranslateUi(Nugget)
self.devicePicker.setCurrentIndex(-1)
self.pages.setCurrentIndex(0)
self.pages.setCurrentIndex(8)
self.dynamicIslandDrp.setCurrentIndex(0)
self.spoofedModelDrp.setCurrentIndex(0)
@@ -2730,30 +2874,30 @@ class Ui_Nugget(object):
def retranslateUi(self, Nugget):
Nugget.setWindowTitle(QCoreApplication.translate("Nugget", u"Nugget", None))
self.centralwidget.setProperty(u"cls", QCoreApplication.translate("Nugget", u"central", None))
self.centralwidget.setProperty("cls", QCoreApplication.translate("Nugget", u"central", None))
self.devicePicker.setPlaceholderText(QCoreApplication.translate("Nugget", u"None", None))
self.refreshBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"btn", None))
self.refreshBtn.setProperty("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(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.homePageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.explorePageBtn.setText(QCoreApplication.translate("Nugget", u" Explore", None))
self.explorePageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.locSimPageBtn.setText(QCoreApplication.translate("Nugget", u" Location Simulation", None))
self.locSimPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.explorePageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.gestaltPageBtn.setText(QCoreApplication.translate("Nugget", u" Mobile Gestalt", None))
self.gestaltPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.gestaltPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.featureFlagsPageBtn.setText(QCoreApplication.translate("Nugget", u" Feature Flags", None))
self.featureFlagsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.featureFlagsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.euEnablerPageBtn.setText(QCoreApplication.translate("Nugget", u" Eligibility", None))
self.euEnablerPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.euEnablerPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.springboardOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Springboard Options", None))
self.springboardOptionsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.springboardOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.internalOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Internal Options", None))
self.internalOptionsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.internalOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.advancedPageBtn.setText(QCoreApplication.translate("Nugget", u" Advanced Options", None))
self.advancedPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.applyPageBtn.setText(QCoreApplication.translate("Nugget", u" Apply", None))
self.applyPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.applyPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.settingsPageBtn.setText(QCoreApplication.translate("Nugget", u" Settings", None))
self.settingsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.settingsPageBtn.setProperty("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))
@@ -2775,7 +2919,7 @@ class Ui_Nugget(object):
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.0.1", None))
self.label.setText(QCoreApplication.translate("Nugget", u"Nugget GUI - Version 4.1 (beta 2)", 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))
@@ -2826,17 +2970,17 @@ class Ui_Nugget(object):
self.regionCodeTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Region Code (Default: US)", None))
self.mgaWarningLbl2.setText(QCoreApplication.translate("Nugget", u"! You will need a MobileGestalt file for this feature. Please select it in the Apply page !", None))
self.enableAIChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Intelligence (for Unsupported Devices)", None))
self.eligFileChk.setText(QCoreApplication.translate("Nugget", u"Enable Eligibility File (test)", None))
self.experimentalChk.setText(QCoreApplication.translate("Nugget", u"Experimental Toggle", None))
self.eligFileChk.setText(QCoreApplication.translate("Nugget", u"Enable Eligibility File", None))
self.languageLbl.setText(QCoreApplication.translate("Nugget", u"Language Code (not needed for English)", None))
self.languageTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Language Code (i.e. en)", None))
self.aiInfoLabel.setText(QCoreApplication.translate("Nugget", u"In order to download the AI models, you must spoof your device model. However, this may break \n"
"Face ID until you revert back. \n"
"\n"
"WARNING: If your original device model does not support Apple Intelligence, please disable the \n"
"AI models before unspoofing! Returning to your original device model without disabling is going to \n"
"cause a re-download and may require a full restore to fix. Furthermore, if you switch between model \n"
"groups, like spoofing from the iPhone 16s to the iPhone 15 Pro series, a re-download may also occur. \n"
"WARNING: Do not go to the Apple Intelligence menu in the Settings app after unspoofing.\n"
"\n"
"Entering the menu on your original device model will cause a re-download and may require a full\n"
"restore to fix. Furthermore, if you switch between model groups, like spoofing from the iPhone 16s\n"
"to the iPhone 15 Pro series, a re-download may also occur. \n"
"Please be careful!", None))
self.label_8.setText(QCoreApplication.translate("Nugget", u"Spoofed Device Model", None))
self.spoofedModelDrp.setItemText(0, QCoreApplication.translate("Nugget", u"Original", None))
@@ -2881,7 +3025,6 @@ class Ui_Nugget(object):
self.buildVersionChk.setText(QCoreApplication.translate("Nugget", u"Show Build Version in Status Bar", None))
self.RTLChk.setText(QCoreApplication.translate("Nugget", u"Force Right-to-Left Layout", None))
self.metalHUDChk.setText(QCoreApplication.translate("Nugget", u"Enable Metal HUD Debug", None))
self.accessoryChk.setText(QCoreApplication.translate("Nugget", u"Enable Accessory Developer", None))
self.iMessageChk.setText(QCoreApplication.translate("Nugget", u"Enable iMessage Debugging", None))
self.IDSChk.setText(QCoreApplication.translate("Nugget", u"Enable Continuity Debugging", None))
self.VCChk.setText(QCoreApplication.translate("Nugget", u"Enable FaceTime Debugging", None))
@@ -2892,6 +3035,19 @@ 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.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"
"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))
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.resWidthLbl.setText(QCoreApplication.translate("Nugget", u"Width:", None))
self.resWidthTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Resolution Width", 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))
@@ -2903,8 +3059,9 @@ class Ui_Nugget(object):
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.skipSetupChk.setText(QCoreApplication.translate("Nugget", u"Skip Setup * (non-exploit files only)", None))
self.autoRebootChk.setText(QCoreApplication.translate("Nugget", u"Auto Reboot After Applying", None))
self.showRiskyChk.setText(QCoreApplication.translate("Nugget", u"Show Risky Tweak Options", None))
self.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))
self.label_15.setText(QCoreApplication.translate("Nugget", u"* Note: Skip Setup may cause issues with configuration profiles. Turn it off if you need that.", None))

View File

@@ -467,35 +467,6 @@ QSlider::tick:horizontal {
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="locSimPageBtn">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string> Location Simulation</string>
</property>
<property name="icon">
<iconset>
<normaloff>:/icon/geo-alt.svg</normaloff>:/icon/geo-alt.svg</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="autoExclusive">
<bool>true</bool>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
<property name="cls" stdset="0">
<string>sidebarBtn</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="sidebarDiv1">
<property name="styleSheet">
@@ -671,6 +642,35 @@ QSlider::tick:horizontal {
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="advancedPageBtn">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string> Risky Options</string>
</property>
<property name="icon">
<iconset>
<normaloff>:/icon/star.svg</normaloff>:/icon/star.svg</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="autoExclusive">
<bool>true</bool>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
<property name="cls" stdset="0">
<string>sidebarBtn</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="sidebarDiv2">
<property name="styleSheet">
@@ -1571,7 +1571,7 @@ QToolButton:pressed {
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Nugget GUI - Version 4.0.1</string>
<string>Nugget GUI - Version 4.1</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
@@ -2702,14 +2702,7 @@ QComboBox QAbstractItemView::item:hover {
<item>
<widget class="QCheckBox" name="eligFileChk">
<property name="text">
<string>Enable Eligibility File (test)</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="experimentalChk">
<property name="text">
<string>Experimental Toggle</string>
<string>Enable Eligibility File</string>
</property>
</widget>
</item>
@@ -2760,10 +2753,11 @@ QComboBox QAbstractItemView::item:hover {
<string>In order to download the AI models, you must spoof your device model. However, this may break
Face ID until you revert back.
WARNING: If your original device model does not support Apple Intelligence, please disable the
AI models before unspoofing! Returning to your original device model without disabling is going to
cause a re-download and may require a full restore to fix. Furthermore, if you switch between model
groups, like spoofing from the iPhone 16s to the iPhone 15 Pro series, a re-download may also occur.
WARNING: Do not go to the Apple Intelligence menu in the Settings app after unspoofing.
Entering the menu on your original device model will cause a re-download and may require a full
restore to fix. Furthermore, if you switch between model groups, like spoofing from the iPhone 16s
to the iPhone 15 Pro series, a re-download may also occur.
Please be careful!</string>
</property>
<property name="textFormat">
@@ -3423,13 +3417,6 @@ QComboBox QAbstractItemView::item:hover {
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="accessoryChk">
<property name="text">
<string>Enable Accessory Developer</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="iMessageChk">
<property name="text">
@@ -3563,6 +3550,362 @@ QComboBox QAbstractItemView::item:hover {
</item>
</layout>
</widget>
<widget class="QWidget" name="advancedOptionsPage">
<layout class="QVBoxLayout" name="verticalLayout_14">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="horizontalWidget_5" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_20">
<property name="spacing">
<number>10</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item>
<widget class="QToolButton" name="toolButton_10">
<property name="enabled">
<bool>false</bool>
</property>
<property name="styleSheet">
<string notr="true">QToolButton {
icon-size: 24px;
background-color: transparent;
padding-left: 0px;
padding-right: 5px;
border-radius: 0px;
}</string>
</property>
<property name="icon">
<iconset>
<normaloff>:/icon/star.svg</normaloff>:/icon/star.svg</iconset>
</property>
</widget>
</item>
<item>
<widget class="QWidget" name="verticalWidget_4" native="true">
<layout class="QVBoxLayout" name="verticalLayout_12">
<property name="spacing">
<number>6</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="advancedOptionsLbl">
<property name="font">
<font>
<pointsize>-1</pointsize>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Risky Options</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_18">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>16</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="Line" name="line_12">
<property name="styleSheet">
<string notr="true">QFrame {
color: #414141;
}</string>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QWidget" name="advancedOptionsPageContent" native="true">
<property name="enabled">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_13">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_17">
<property name="text">
<string>Disclaimer:
The options on this page may be unsafe for your device. Use these options at your own risk. Changing
your device resolution has the potential to brick your device when used improperly.
Nugget is not responsible if you mess up your device, especially with resolution changer.</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_19">
<property name="styleSheet">
<string notr="true">QFrame {
color: #414141;
}</string>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="disableOTAChk">
<property name="text">
<string>Disable OTA Updates</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_18">
<property name="styleSheet">
<string notr="true">QFrame {
color: #414141;
}</string>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="enableResolutionChk">
<property name="text">
<string>Set a Custom Device Resolution</string>
</property>
</widget>
</item>
<item>
<widget class="QWidget" name="resChangerContent" native="true">
<property name="enabled">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_35">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="resHeightLbl">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Height:</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_9">
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QLineEdit" name="resHeightTxt">
<property name="enabled">
<bool>true</bool>
</property>
<property name="placeholderText">
<string>Resolution Height</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="resHeightWarningLbl">
<property name="minimumSize">
<size>
<width>22</width>
<height>0</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">QLabel {
border: 2px solid red;
border-radius: 25px;
color: red;
}</string>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="text">
<string>!</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="resWidthLbl">
<property name="text">
<string>Width:</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="resolutionContent">
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_10">
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QLineEdit" name="resWidthTxt">
<property name="placeholderText">
<string>Resolution Width</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="resWidthWarningLbl">
<property name="minimumSize">
<size>
<width>22</width>
<height>0</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">QLabel {
border: 2px solid red;
border-radius: 25px;
color: red;
}</string>
</property>
<property name="text">
<string>!</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_6">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="applyPage">
<layout class="QVBoxLayout" name="verticalLayout_6">
<property name="leftMargin">
@@ -4060,16 +4403,6 @@ QComboBox QAbstractItemView::item:hover {
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="skipSetupChk">
<property name="text">
<string>Skip Setup * (non-exploit files only)</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="autoRebootChk">
<property name="text">
@@ -4080,13 +4413,48 @@ QComboBox QAbstractItemView::item:hover {
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="showRiskyChk">
<property name="text">
<string>Show Risky Tweak Options</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_24">
<property name="styleSheet">
<string notr="true">QFrame {
color: #414141;
}</string>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="skipSetupChk">
<property name="text">
<string>Skip Setup * (non-exploit files only)</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="supervisionChk">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Enable Supervision * (requires Skip Setup)</string>
</property>
<property name="checked">
<bool>true</bool>
<bool>false</bool>
</property>
</widget>
</item>

View File

@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'mainwindow.ui'
##
## Created by: Qt User Interface Compiler version 6.8.0
## Created by: Qt User Interface Compiler version 6.6.3
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -190,7 +190,7 @@ class Ui_Nugget(object):
" border-bottom-right-radius: 0px;\n"
"}")
icon = QIcon()
icon.addFile(u":/icon/phone.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon.addFile(u":/icon/phone.svg", QSize(), QIcon.Normal, QIcon.Off)
self.toolButton_6.setIcon(icon)
self.horizontalLayout_15.addWidget(self.toolButton_6)
@@ -244,7 +244,7 @@ class Ui_Nugget(object):
" border-radius: 0px;\n"
"}")
icon1 = QIcon()
icon1.addFile(u":/icon/arrow-clockwise.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon1.addFile(u":/icon/arrow-clockwise.svg", QSize(), QIcon.Normal, QIcon.Off)
self.refreshBtn.setIcon(icon1)
self.refreshBtn.setCheckable(False)
self.refreshBtn.setToolButtonStyle(Qt.ToolButtonIconOnly)
@@ -297,7 +297,7 @@ class Ui_Nugget(object):
sizePolicy2.setHeightForWidth(self.homePageBtn.sizePolicy().hasHeightForWidth())
self.homePageBtn.setSizePolicy(sizePolicy2)
icon2 = QIcon()
icon2.addFile(u":/icon/house.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon2.addFile(u":/icon/house.svg", QSize(), QIcon.Normal, QIcon.Off)
self.homePageBtn.setIcon(icon2)
self.homePageBtn.setCheckable(True)
self.homePageBtn.setChecked(True)
@@ -312,7 +312,7 @@ class Ui_Nugget(object):
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)
icon3.addFile(u":/icon/compass.svg", QSize(), QIcon.Normal, QIcon.Off)
self.explorePageBtn.setIcon(icon3)
self.explorePageBtn.setCheckable(True)
self.explorePageBtn.setAutoExclusive(True)
@@ -320,26 +320,13 @@ class Ui_Nugget(object):
self.verticalLayout.addWidget(self.explorePageBtn)
self.locSimPageBtn = QToolButton(self.sidebar)
self.locSimPageBtn.setObjectName(u"locSimPageBtn")
sizePolicy2.setHeightForWidth(self.locSimPageBtn.sizePolicy().hasHeightForWidth())
self.locSimPageBtn.setSizePolicy(sizePolicy2)
icon4 = QIcon()
icon4.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.locSimPageBtn.setIcon(icon4)
self.locSimPageBtn.setCheckable(True)
self.locSimPageBtn.setAutoExclusive(True)
self.locSimPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.locSimPageBtn)
self.sidebarDiv1 = QFrame(self.sidebar)
self.sidebarDiv1.setObjectName(u"sidebarDiv1")
self.sidebarDiv1.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.sidebarDiv1.setFrameShadow(QFrame.Plain)
self.sidebarDiv1.setFrameShape(QFrame.Shape.HLine)
self.sidebarDiv1.setFrameShape(QFrame.HLine)
self.verticalLayout.addWidget(self.sidebarDiv1)
@@ -347,9 +334,9 @@ class Ui_Nugget(object):
self.gestaltPageBtn.setObjectName(u"gestaltPageBtn")
sizePolicy2.setHeightForWidth(self.gestaltPageBtn.sizePolicy().hasHeightForWidth())
self.gestaltPageBtn.setSizePolicy(sizePolicy2)
icon5 = QIcon()
icon5.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.gestaltPageBtn.setIcon(icon5)
icon4 = QIcon()
icon4.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Normal, QIcon.Off)
self.gestaltPageBtn.setIcon(icon4)
self.gestaltPageBtn.setIconSize(QSize(24, 28))
self.gestaltPageBtn.setCheckable(True)
self.gestaltPageBtn.setAutoExclusive(True)
@@ -365,9 +352,9 @@ class Ui_Nugget(object):
font = QFont()
font.setFamilies([u".AppleSystemUIFont"])
self.featureFlagsPageBtn.setFont(font)
icon6 = QIcon()
icon6.addFile(u":/icon/flag.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.featureFlagsPageBtn.setIcon(icon6)
icon5 = QIcon()
icon5.addFile(u":/icon/flag.svg", QSize(), QIcon.Normal, QIcon.Off)
self.featureFlagsPageBtn.setIcon(icon5)
self.featureFlagsPageBtn.setCheckable(True)
self.featureFlagsPageBtn.setAutoExclusive(True)
self.featureFlagsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -378,7 +365,9 @@ class Ui_Nugget(object):
self.euEnablerPageBtn.setObjectName(u"euEnablerPageBtn")
sizePolicy2.setHeightForWidth(self.euEnablerPageBtn.sizePolicy().hasHeightForWidth())
self.euEnablerPageBtn.setSizePolicy(sizePolicy2)
self.euEnablerPageBtn.setIcon(icon4)
icon6 = QIcon()
icon6.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Normal, QIcon.Off)
self.euEnablerPageBtn.setIcon(icon6)
self.euEnablerPageBtn.setCheckable(True)
self.euEnablerPageBtn.setAutoExclusive(True)
self.euEnablerPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -390,7 +379,7 @@ class Ui_Nugget(object):
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)
icon7.addFile(u":/icon/app-indicator.svg", QSize(), QIcon.Normal, QIcon.Off)
self.springboardOptionsPageBtn.setIcon(icon7)
self.springboardOptionsPageBtn.setCheckable(True)
self.springboardOptionsPageBtn.setAutoExclusive(True)
@@ -403,7 +392,7 @@ class Ui_Nugget(object):
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)
icon8.addFile(u":/icon/hdd.svg", QSize(), QIcon.Normal, QIcon.Off)
self.internalOptionsPageBtn.setIcon(icon8)
self.internalOptionsPageBtn.setCheckable(True)
self.internalOptionsPageBtn.setAutoExclusive(True)
@@ -411,13 +400,26 @@ class Ui_Nugget(object):
self.verticalLayout.addWidget(self.internalOptionsPageBtn)
self.advancedPageBtn = QToolButton(self.sidebar)
self.advancedPageBtn.setObjectName(u"advancedPageBtn")
sizePolicy2.setHeightForWidth(self.advancedPageBtn.sizePolicy().hasHeightForWidth())
self.advancedPageBtn.setSizePolicy(sizePolicy2)
icon9 = QIcon()
icon9.addFile(u":/icon/star.svg", QSize(), QIcon.Normal, QIcon.Off)
self.advancedPageBtn.setIcon(icon9)
self.advancedPageBtn.setCheckable(True)
self.advancedPageBtn.setAutoExclusive(True)
self.advancedPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.advancedPageBtn)
self.sidebarDiv2 = QFrame(self.sidebar)
self.sidebarDiv2.setObjectName(u"sidebarDiv2")
self.sidebarDiv2.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.sidebarDiv2.setFrameShadow(QFrame.Plain)
self.sidebarDiv2.setFrameShape(QFrame.Shape.HLine)
self.sidebarDiv2.setFrameShape(QFrame.HLine)
self.verticalLayout.addWidget(self.sidebarDiv2)
@@ -425,9 +427,9 @@ class Ui_Nugget(object):
self.applyPageBtn.setObjectName(u"applyPageBtn")
sizePolicy2.setHeightForWidth(self.applyPageBtn.sizePolicy().hasHeightForWidth())
self.applyPageBtn.setSizePolicy(sizePolicy2)
icon9 = QIcon()
icon9.addFile(u":/icon/check-circle.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.applyPageBtn.setIcon(icon9)
icon10 = QIcon()
icon10.addFile(u":/icon/check-circle.svg", QSize(), QIcon.Normal, QIcon.Off)
self.applyPageBtn.setIcon(icon10)
self.applyPageBtn.setCheckable(True)
self.applyPageBtn.setAutoExclusive(True)
self.applyPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -438,9 +440,9 @@ class Ui_Nugget(object):
self.settingsPageBtn.setObjectName(u"settingsPageBtn")
sizePolicy2.setHeightForWidth(self.settingsPageBtn.sizePolicy().hasHeightForWidth())
self.settingsPageBtn.setSizePolicy(sizePolicy2)
icon10 = QIcon()
icon10.addFile(u":/icon/gear.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.settingsPageBtn.setIcon(icon10)
icon11 = QIcon()
icon11.addFile(u":/icon/gear.svg", QSize(), QIcon.Normal, QIcon.Off)
self.settingsPageBtn.setIcon(icon11)
self.settingsPageBtn.setCheckable(True)
self.settingsPageBtn.setAutoExclusive(True)
self.settingsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -509,7 +511,7 @@ class Ui_Nugget(object):
self.phoneVersionLbl = QLabel(self.verticalWidget)
self.phoneVersionLbl.setObjectName(u"phoneVersionLbl")
self.phoneVersionLbl.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
self.phoneVersionLbl.setCursor(QCursor(Qt.PointingHandCursor))
self.phoneVersionLbl.setTextFormat(Qt.RichText)
self.phoneVersionLbl.setOpenExternalLinks(False)
@@ -531,7 +533,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_4.setFrameShadow(QFrame.Plain)
self.line_4.setFrameShape(QFrame.Shape.HLine)
self.line_4.setFrameShape(QFrame.HLine)
self.verticalLayout_2.addWidget(self.line_4)
@@ -551,9 +553,9 @@ class Ui_Nugget(object):
" background-color: transparent;\n"
" padding: 0px;\n"
"}")
icon11 = QIcon()
icon11.addFile(u":/credits/big_nugget.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.bigNuggetBtn.setIcon(icon11)
icon12 = QIcon()
icon12.addFile(u":/credits/big_nugget.png", QSize(), QIcon.Normal, QIcon.Off)
self.bigNuggetBtn.setIcon(icon12)
self.bigNuggetBtn.setIconSize(QSize(150, 200))
self.horizontalLayout_27.addWidget(self.bigNuggetBtn)
@@ -588,18 +590,16 @@ class Ui_Nugget(object):
self.horizontalLayout_8.setContentsMargins(-1, -1, 0, 0)
self.discordBtn = QToolButton(self.verticalWidget1)
self.discordBtn.setObjectName(u"discordBtn")
icon12 = QIcon()
icon12.addFile(u":/icon/discord.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.discordBtn.setIcon(icon12)
icon13 = QIcon()
icon13.addFile(u":/icon/discord.svg", QSize(), QIcon.Normal, QIcon.Off)
self.discordBtn.setIcon(icon13)
self.discordBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.horizontalLayout_8.addWidget(self.discordBtn)
self.starOnGithubBtn = QToolButton(self.verticalWidget1)
self.starOnGithubBtn.setObjectName(u"starOnGithubBtn")
icon13 = QIcon()
icon13.addFile(u":/icon/star.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.starOnGithubBtn.setIcon(icon13)
self.starOnGithubBtn.setIcon(icon9)
self.starOnGithubBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.horizontalLayout_8.addWidget(self.starOnGithubBtn)
@@ -642,7 +642,7 @@ class Ui_Nugget(object):
" background: none;\n"
"}")
icon14 = QIcon()
icon14.addFile(u":/credits/LeminLimez.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon14.addFile(u":/credits/LeminLimez.png", QSize(), QIcon.Normal, QIcon.Off)
self.leminBtn.setIcon(icon14)
self.leminBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -662,7 +662,7 @@ class Ui_Nugget(object):
" color: #FFFFFF;\n"
"}")
icon15 = QIcon()
icon15.addFile(u":/icon/twitter.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon15.addFile(u":/icon/twitter.svg", QSize(), QIcon.Normal, QIcon.Off)
self.leminTwitterBtn.setIcon(icon15)
self.horizontalLayout_6.addWidget(self.leminTwitterBtn)
@@ -681,7 +681,7 @@ class Ui_Nugget(object):
" color: #FFFFFF;\n"
"}")
icon16 = QIcon()
icon16.addFile(u":/icon/github.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon16.addFile(u":/icon/github.svg", QSize(), QIcon.Normal, QIcon.Off)
self.leminGithubBtn.setIcon(icon16)
self.horizontalLayout_6.addWidget(self.leminGithubBtn)
@@ -701,7 +701,7 @@ class Ui_Nugget(object):
" color: #FFFFFF;\n"
"}")
icon17 = QIcon()
icon17.addFile(u":/icon/currency-dollar.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon17.addFile(u":/icon/currency-dollar.svg", QSize(), QIcon.Normal, QIcon.Off)
self.leminKoFiBtn.setIcon(icon17)
self.horizontalLayout_6.addWidget(self.leminKoFiBtn)
@@ -897,7 +897,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_8.setIcon(icon5)
self.toolButton_8.setIcon(icon4)
self.toolButton_8.setIconSize(QSize(30, 30))
self.horizontalLayout_5.addWidget(self.toolButton_8)
@@ -934,7 +934,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_8.setFrameShadow(QFrame.Plain)
self.line_8.setFrameShape(QFrame.Shape.HLine)
self.line_8.setFrameShape(QFrame.HLine)
self.verticalLayout_4.addWidget(self.line_8)
@@ -1062,7 +1062,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_7.setFrameShadow(QFrame.Plain)
self.line_7.setFrameShape(QFrame.Shape.HLine)
self.line_7.setFrameShape(QFrame.HLine)
self.verticalLayout_8.addWidget(self.line_7)
@@ -1107,7 +1107,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_9.setFrameShadow(QFrame.Plain)
self.line_9.setFrameShape(QFrame.Shape.HLine)
self.line_9.setFrameShape(QFrame.HLine)
self.verticalLayout_8.addWidget(self.line_9)
@@ -1127,7 +1127,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_10.setFrameShadow(QFrame.Plain)
self.line_10.setFrameShape(QFrame.Shape.HLine)
self.line_10.setFrameShape(QFrame.HLine)
self.verticalLayout_8.addWidget(self.line_10)
@@ -1147,7 +1147,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_22.setFrameShadow(QFrame.Plain)
self.line_22.setFrameShape(QFrame.Shape.HLine)
self.line_22.setFrameShape(QFrame.HLine)
self.verticalLayout_8.addWidget(self.line_22)
@@ -1164,7 +1164,7 @@ class Ui_Nugget(object):
self.addGestaltKeyBtn.setObjectName(u"addGestaltKeyBtn")
self.addGestaltKeyBtn.setEnabled(True)
icon18 = QIcon()
icon18.addFile(u":/icon/plus.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon18.addFile(u":/icon/plus.svg", QSize(), QIcon.Normal, QIcon.Off)
self.addGestaltKeyBtn.setIcon(icon18)
self.addGestaltKeyBtn.setCheckable(False)
self.addGestaltKeyBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -1185,7 +1185,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_23.setFrameShadow(QFrame.Plain)
self.line_23.setFrameShape(QFrame.Shape.HLine)
self.line_23.setFrameShape(QFrame.HLine)
self.verticalLayout_8.addWidget(self.line_23)
@@ -1235,7 +1235,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_10.setIcon(icon6)
self.toolButton_10.setIcon(icon5)
self.horizontalLayout_20.addWidget(self.toolButton_10)
@@ -1271,7 +1271,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_12.setFrameShadow(QFrame.Plain)
self.line_12.setFrameShape(QFrame.Shape.HLine)
self.line_12.setFrameShape(QFrame.HLine)
self.verticalLayout_14.addWidget(self.line_12)
@@ -1298,7 +1298,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.div.setFrameShadow(QFrame.Plain)
self.div.setFrameShape(QFrame.Shape.HLine)
self.div.setFrameShape(QFrame.HLine)
self.verticalLayout_13.addWidget(self.div)
@@ -1341,7 +1341,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_11.setIcon(icon4)
self.toolButton_11.setIcon(icon6)
self.horizontalLayout_21.addWidget(self.toolButton_11)
@@ -1377,7 +1377,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_13.setFrameShadow(QFrame.Plain)
self.line_13.setFrameShape(QFrame.Shape.HLine)
self.line_13.setFrameShape(QFrame.HLine)
self.verticalLayout_17.addWidget(self.line_13)
@@ -1459,7 +1459,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_16.setFrameShadow(QFrame.Plain)
self.line_16.setFrameShape(QFrame.Shape.HLine)
self.line_16.setFrameShape(QFrame.HLine)
self.verticalLayout_36.addWidget(self.line_16)
@@ -1487,11 +1487,6 @@ class Ui_Nugget(object):
self.verticalLayout_34.addWidget(self.eligFileChk)
self.experimentalChk = QCheckBox(self.aiEnablerContent)
self.experimentalChk.setObjectName(u"experimentalChk")
self.verticalLayout_34.addWidget(self.experimentalChk)
self.languageLbl = QLabel(self.aiEnablerContent)
self.languageLbl.setObjectName(u"languageLbl")
@@ -1508,7 +1503,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_21.setFrameShadow(QFrame.Plain)
self.line_21.setFrameShape(QFrame.Shape.HLine)
self.line_21.setFrameShape(QFrame.HLine)
self.verticalLayout_34.addWidget(self.line_21)
@@ -1660,7 +1655,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_11.setFrameShadow(QFrame.Plain)
self.line_11.setFrameShape(QFrame.Shape.HLine)
self.line_11.setFrameShape(QFrame.HLine)
self.verticalLayout_10.addWidget(self.line_11)
@@ -1687,7 +1682,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_6.setFrameShadow(QFrame.Plain)
self.line_6.setFrameShape(QFrame.Shape.HLine)
self.line_6.setFrameShape(QFrame.HLine)
self._2.addWidget(self.line_6)
@@ -1786,7 +1781,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_121.setFrameShadow(QFrame.Plain)
self.line_121.setFrameShape(QFrame.Shape.HLine)
self.line_121.setFrameShape(QFrame.HLine)
self.verticalLayout_141.addWidget(self.line_121)
@@ -1813,7 +1808,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.div1.setFrameShadow(QFrame.Plain)
self.div1.setFrameShape(QFrame.Shape.HLine)
self.div1.setFrameShape(QFrame.HLine)
self.verticalLayout_131.addWidget(self.div1)
@@ -1822,11 +1817,6 @@ class Ui_Nugget(object):
self.verticalLayout_131.addWidget(self.metalHUDChk)
self.accessoryChk = QCheckBox(self.internalOptionsPageContent)
self.accessoryChk.setObjectName(u"accessoryChk")
self.verticalLayout_131.addWidget(self.accessoryChk)
self.iMessageChk = QCheckBox(self.internalOptionsPageContent)
self.iMessageChk.setObjectName(u"iMessageChk")
@@ -1848,7 +1838,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_17.setFrameShadow(QFrame.Plain)
self.line_17.setFrameShape(QFrame.Shape.HLine)
self.line_17.setFrameShape(QFrame.HLine)
self.verticalLayout_131.addWidget(self.line_17)
@@ -1868,7 +1858,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_18.setFrameShadow(QFrame.Plain)
self.line_18.setFrameShape(QFrame.Shape.HLine)
self.line_18.setFrameShape(QFrame.HLine)
self.verticalLayout_131.addWidget(self.line_18)
@@ -1893,7 +1883,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_19.setFrameShadow(QFrame.Plain)
self.line_19.setFrameShape(QFrame.Shape.HLine)
self.line_19.setFrameShape(QFrame.HLine)
self.verticalLayout_131.addWidget(self.line_19)
@@ -1915,6 +1905,192 @@ 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.verticalLayout_142.setObjectName(u"verticalLayout_142")
self.verticalLayout_142.setContentsMargins(0, 0, 0, 0)
self.horizontalWidget_52 = QWidget(self.advancedOptionsPage)
self.horizontalWidget_52.setObjectName(u"horizontalWidget_52")
self.horizontalLayout_202 = QHBoxLayout(self.horizontalWidget_52)
self.horizontalLayout_202.setSpacing(10)
self.horizontalLayout_202.setObjectName(u"horizontalLayout_202")
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.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_102.setIcon(icon9)
self.horizontalLayout_202.addWidget(self.toolButton_102)
self.verticalWidget_42 = QWidget(self.horizontalWidget_52)
self.verticalWidget_42.setObjectName(u"verticalWidget_42")
self.verticalLayout_122 = QVBoxLayout(self.verticalWidget_42)
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.verticalLayout_122.addWidget(self.advancedOptionsLbl)
self.verticalSpacer_181 = QSpacerItem(20, 16, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_122.addItem(self.verticalSpacer_181)
self.horizontalLayout_202.addWidget(self.verticalWidget_42)
self.horizontalSpacer_72 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_202.addItem(self.horizontalSpacer_72)
self.verticalLayout_142.addWidget(self.horizontalWidget_52)
self.line_122 = QFrame(self.advancedOptionsPage)
self.line_122.setObjectName(u"line_122")
self.line_122.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_122.setFrameShadow(QFrame.Plain)
self.line_122.setFrameShape(QFrame.HLine)
self.verticalLayout_142.addWidget(self.line_122)
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.label_17 = QLabel(self.advancedOptionsPageContent)
self.label_17.setObjectName(u"label_17")
self.verticalLayout_132.addWidget(self.label_17)
self.line_191 = QFrame(self.advancedOptionsPageContent)
self.line_191.setObjectName(u"line_191")
self.line_191.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_191.setFrameShadow(QFrame.Plain)
self.line_191.setFrameShape(QFrame.HLine)
self.verticalLayout_132.addWidget(self.line_191)
self.disableOTAChk = QCheckBox(self.advancedOptionsPageContent)
self.disableOTAChk.setObjectName(u"disableOTAChk")
self.verticalLayout_132.addWidget(self.disableOTAChk)
self.line_181 = QFrame(self.advancedOptionsPageContent)
self.line_181.setObjectName(u"line_181")
self.line_181.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_181.setFrameShadow(QFrame.Plain)
self.line_181.setFrameShape(QFrame.HLine)
self.verticalLayout_132.addWidget(self.line_181)
self.enableResolutionChk = QCheckBox(self.advancedOptionsPageContent)
self.enableResolutionChk.setObjectName(u"enableResolutionChk")
self.verticalLayout_132.addWidget(self.enableResolutionChk)
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.verticalLayout_35.addWidget(self.resHeightLbl)
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(True)
self.horizontalLayout_9.addWidget(self.resHeightTxt)
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.verticalLayout_35.addWidget(self.resWidthLbl)
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.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.resolutionContent.addLayout(self.horizontalLayout_10)
self.verticalLayout_35.addLayout(self.resolutionContent)
self.verticalLayout_132.addWidget(self.resChangerContent)
self.verticalSpacer_62 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_132.addItem(self.verticalSpacer_62)
self.verticalLayout_142.addWidget(self.advancedOptionsPageContent)
self.pages.addWidget(self.advancedOptionsPage)
self.applyPage = QWidget()
self.applyPage.setObjectName(u"applyPage")
self.verticalLayout_6 = QVBoxLayout(self.applyPage)
@@ -1941,7 +2117,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_18.setIcon(icon9)
self.toolButton_18.setIcon(icon10)
self.horizontalLayout_33.addWidget(self.toolButton_18)
@@ -1978,7 +2154,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_5.setFrameShadow(QFrame.Plain)
self.line_5.setFrameShape(QFrame.Shape.HLine)
self.line_5.setFrameShape(QFrame.HLine)
self.verticalLayout_24.addWidget(self.line_5)
@@ -2004,7 +2180,7 @@ class Ui_Nugget(object):
self.chooseGestaltBtn = QToolButton(self.verticalWidget2)
self.chooseGestaltBtn.setObjectName(u"chooseGestaltBtn")
icon19 = QIcon()
icon19.addFile(u":/icon/folder.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon19.addFile(u":/icon/folder.svg", QSize(), QIcon.Normal, QIcon.Off)
self.chooseGestaltBtn.setIcon(icon19)
self.chooseGestaltBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -2020,7 +2196,7 @@ class Ui_Nugget(object):
self.horizontalLayout_17.setContentsMargins(0, 0, 0, 0)
self.applyTweaksBtn = QToolButton(self.horizontalWidget4)
self.applyTweaksBtn.setObjectName(u"applyTweaksBtn")
self.applyTweaksBtn.setIcon(icon9)
self.applyTweaksBtn.setIcon(icon10)
self.applyTweaksBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.horizontalLayout_17.addWidget(self.applyTweaksBtn)
@@ -2099,7 +2275,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_71.setIcon(icon10)
self.toolButton_71.setIcon(icon11)
self.horizontalLayout_131.addWidget(self.toolButton_71)
@@ -2135,7 +2311,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_111.setFrameShadow(QFrame.Plain)
self.line_111.setFrameShape(QFrame.Shape.HLine)
self.line_111.setFrameShape(QFrame.HLine)
self.verticalLayout_101.addWidget(self.line_111)
@@ -2152,21 +2328,37 @@ class Ui_Nugget(object):
self._21.addWidget(self.allowWifiApplyingChk)
self.skipSetupChk = QCheckBox(self.settingsPageContent)
self.skipSetupChk.setObjectName(u"skipSetupChk")
self.skipSetupChk.setChecked(True)
self._21.addWidget(self.skipSetupChk)
self.autoRebootChk = QCheckBox(self.settingsPageContent)
self.autoRebootChk.setObjectName(u"autoRebootChk")
self.autoRebootChk.setChecked(True)
self._21.addWidget(self.autoRebootChk)
self.showRiskyChk = QCheckBox(self.settingsPageContent)
self.showRiskyChk.setObjectName(u"showRiskyChk")
self._21.addWidget(self.showRiskyChk)
self.line_24 = QFrame(self.settingsPageContent)
self.line_24.setObjectName(u"line_24")
self.line_24.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_24.setFrameShadow(QFrame.Plain)
self.line_24.setFrameShape(QFrame.HLine)
self._21.addWidget(self.line_24)
self.skipSetupChk = QCheckBox(self.settingsPageContent)
self.skipSetupChk.setObjectName(u"skipSetupChk")
self.skipSetupChk.setChecked(True)
self._21.addWidget(self.skipSetupChk)
self.supervisionChk = QCheckBox(self.settingsPageContent)
self.supervisionChk.setObjectName(u"supervisionChk")
self.supervisionChk.setChecked(True)
self.supervisionChk.setEnabled(True)
self.supervisionChk.setChecked(False)
self._21.addWidget(self.supervisionChk)
@@ -2190,7 +2382,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_20.setFrameShadow(QFrame.Plain)
self.line_20.setFrameShape(QFrame.Shape.HLine)
self.line_20.setFrameShape(QFrame.HLine)
self._21.addWidget(self.line_20)
@@ -2234,7 +2426,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_13.setIcon(icon4)
self.toolButton_13.setIcon(icon6)
self.horizontalLayout_28.addWidget(self.toolButton_13)
@@ -2276,7 +2468,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_2.setFrameShadow(QFrame.Plain)
self.line_2.setFrameShape(QFrame.Shape.HLine)
self.line_2.setFrameShape(QFrame.HLine)
self.verticalLayout_28.addWidget(self.line_2)
@@ -2377,7 +2569,7 @@ class Ui_Nugget(object):
" border-radius: 0px;\n"
"}")
icon20 = QIcon()
icon20.addFile(u":/icon/pencil.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon20.addFile(u":/icon/pencil.svg", QSize(), QIcon.Normal, QIcon.Off)
self.toolButton_12.setIcon(icon20)
self.toolButton_12.setIconSize(QSize(25, 25))
@@ -2416,7 +2608,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_14.setFrameShadow(QFrame.Plain)
self.line_14.setFrameShape(QFrame.Shape.HLine)
self.line_14.setFrameShape(QFrame.HLine)
self.verticalLayout_20.addWidget(self.line_14)
@@ -2440,7 +2632,7 @@ class Ui_Nugget(object):
self.importOperationBtn.setObjectName(u"importOperationBtn")
self.importOperationBtn.setEnabled(True)
icon21 = QIcon()
icon21.addFile(u":/icon/import.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
icon21.addFile(u":/icon/import.svg", QSize(), QIcon.Normal, QIcon.Off)
self.importOperationBtn.setIcon(icon21)
self.importOperationBtn.setIconSize(QSize(20, 20))
self.importOperationBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -2537,7 +2729,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_3.setFrameShadow(QFrame.Plain)
self.line_3.setFrameShape(QFrame.Shape.HLine)
self.line_3.setFrameShape(QFrame.HLine)
self.verticalLayout_31.addWidget(self.line_3)
@@ -2570,7 +2762,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.themesBtn.setIcon(icon5)
self.themesBtn.setIcon(icon4)
self.themesBtn.setIconSize(QSize(30, 30))
self.horizontalLayout_23.addWidget(self.themesBtn)
@@ -2617,7 +2809,7 @@ 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)
icon22.addFile(u":/icon/file-earmark-zip.svg", QSize(), QIcon.Normal, QIcon.Off)
self.importThemeZipBtn.setIcon(icon22)
self.horizontalLayout_26.addWidget(self.importThemeZipBtn)
@@ -2634,7 +2826,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line_15.setFrameShadow(QFrame.Plain)
self.line_15.setFrameShape(QFrame.Shape.HLine)
self.line_15.setFrameShape(QFrame.HLine)
self.verticalLayout_23.addWidget(self.line_15)
@@ -2655,7 +2847,7 @@ class Ui_Nugget(object):
" color: #414141;\n"
"}")
self.line.setFrameShadow(QFrame.Plain)
self.line.setFrameShape(QFrame.Shape.HLine)
self.line.setFrameShape(QFrame.HLine)
self.verticalLayout_22.addWidget(self.line)
@@ -2730,30 +2922,30 @@ class Ui_Nugget(object):
def retranslateUi(self, Nugget):
Nugget.setWindowTitle(QCoreApplication.translate("Nugget", u"Nugget", None))
self.centralwidget.setProperty(u"cls", QCoreApplication.translate("Nugget", u"central", None))
self.centralwidget.setProperty("cls", QCoreApplication.translate("Nugget", u"central", None))
self.devicePicker.setPlaceholderText(QCoreApplication.translate("Nugget", u"None", None))
self.refreshBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"btn", None))
self.refreshBtn.setProperty("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(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.homePageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.explorePageBtn.setText(QCoreApplication.translate("Nugget", u" Explore", None))
self.explorePageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.locSimPageBtn.setText(QCoreApplication.translate("Nugget", u" Location Simulation", None))
self.locSimPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.explorePageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.gestaltPageBtn.setText(QCoreApplication.translate("Nugget", u" Mobile Gestalt", None))
self.gestaltPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.gestaltPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.featureFlagsPageBtn.setText(QCoreApplication.translate("Nugget", u" Feature Flags", None))
self.featureFlagsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.featureFlagsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.euEnablerPageBtn.setText(QCoreApplication.translate("Nugget", u" Eligibility", None))
self.euEnablerPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.euEnablerPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.springboardOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Springboard Options", None))
self.springboardOptionsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.springboardOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.internalOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Internal Options", None))
self.internalOptionsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.internalOptionsPageBtn.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(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.applyPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.settingsPageBtn.setText(QCoreApplication.translate("Nugget", u" Settings", None))
self.settingsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.settingsPageBtn.setProperty("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))
@@ -2775,7 +2967,7 @@ class Ui_Nugget(object):
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.0.1", None))
self.label.setText(QCoreApplication.translate("Nugget", u"Nugget GUI - Version 4.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))
@@ -2826,17 +3018,17 @@ class Ui_Nugget(object):
self.regionCodeTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Region Code (Default: US)", None))
self.mgaWarningLbl2.setText(QCoreApplication.translate("Nugget", u"! You will need a MobileGestalt file for this feature. Please select it in the Apply page !", None))
self.enableAIChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Intelligence (for Unsupported Devices)", None))
self.eligFileChk.setText(QCoreApplication.translate("Nugget", u"Enable Eligibility File (test)", None))
self.experimentalChk.setText(QCoreApplication.translate("Nugget", u"Experimental Toggle", None))
self.eligFileChk.setText(QCoreApplication.translate("Nugget", u"Enable Eligibility File", None))
self.languageLbl.setText(QCoreApplication.translate("Nugget", u"Language Code (not needed for English)", None))
self.languageTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Language Code (i.e. en)", None))
self.aiInfoLabel.setText(QCoreApplication.translate("Nugget", u"In order to download the AI models, you must spoof your device model. However, this may break \n"
"Face ID until you revert back. \n"
"\n"
"WARNING: If your original device model does not support Apple Intelligence, please disable the \n"
"AI models before unspoofing! Returning to your original device model without disabling is going to \n"
"cause a re-download and may require a full restore to fix. Furthermore, if you switch between model \n"
"groups, like spoofing from the iPhone 16s to the iPhone 15 Pro series, a re-download may also occur. \n"
"WARNING: Do not go to the Apple Intelligence menu in the Settings app after unspoofing.\n"
"\n"
"Entering the menu on your original device model will cause a re-download and may require a full\n"
"restore to fix. Furthermore, if you switch between model groups, like spoofing from the iPhone 16s\n"
"to the iPhone 15 Pro series, a re-download may also occur. \n"
"Please be careful!", None))
self.label_8.setText(QCoreApplication.translate("Nugget", u"Spoofed Device Model", None))
self.spoofedModelDrp.setItemText(0, QCoreApplication.translate("Nugget", u"Original", None))
@@ -2881,7 +3073,6 @@ class Ui_Nugget(object):
self.buildVersionChk.setText(QCoreApplication.translate("Nugget", u"Show Build Version in Status Bar", None))
self.RTLChk.setText(QCoreApplication.translate("Nugget", u"Force Right-to-Left Layout", None))
self.metalHUDChk.setText(QCoreApplication.translate("Nugget", u"Enable Metal HUD Debug", None))
self.accessoryChk.setText(QCoreApplication.translate("Nugget", u"Enable Accessory Developer", None))
self.iMessageChk.setText(QCoreApplication.translate("Nugget", u"Enable iMessage Debugging", None))
self.IDSChk.setText(QCoreApplication.translate("Nugget", u"Enable Continuity Debugging", None))
self.VCChk.setText(QCoreApplication.translate("Nugget", u"Enable FaceTime Debugging", None))
@@ -2892,6 +3083,21 @@ 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"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"
"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))
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))
@@ -2903,8 +3109,9 @@ class Ui_Nugget(object):
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.skipSetupChk.setText(QCoreApplication.translate("Nugget", u"Skip Setup * (non-exploit files only)", None))
self.autoRebootChk.setText(QCoreApplication.translate("Nugget", u"Auto Reboot After Applying", None))
self.showRiskyChk.setText(QCoreApplication.translate("Nugget", u"Show Risky Tweak Options", None))
self.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))
self.label_15.setText(QCoreApplication.translate("Nugget", u"* Note: Skip Setup may cause issues with configuration profiles. Turn it off if you need that.", None))

View File

@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'mainwindow.ui'
##
## Created by: Qt User Interface Compiler version 6.8.0
## Created by: Qt User Interface Compiler version 6.7.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -320,19 +320,6 @@ class Ui_Nugget(object):
self.verticalLayout.addWidget(self.explorePageBtn)
self.locSimPageBtn = QToolButton(self.sidebar)
self.locSimPageBtn.setObjectName(u"locSimPageBtn")
sizePolicy2.setHeightForWidth(self.locSimPageBtn.sizePolicy().hasHeightForWidth())
self.locSimPageBtn.setSizePolicy(sizePolicy2)
icon4 = QIcon()
icon4.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.locSimPageBtn.setIcon(icon4)
self.locSimPageBtn.setCheckable(True)
self.locSimPageBtn.setAutoExclusive(True)
self.locSimPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.locSimPageBtn)
self.sidebarDiv1 = QFrame(self.sidebar)
self.sidebarDiv1.setObjectName(u"sidebarDiv1")
self.sidebarDiv1.setStyleSheet(u"QFrame {\n"
@@ -347,9 +334,9 @@ class Ui_Nugget(object):
self.gestaltPageBtn.setObjectName(u"gestaltPageBtn")
sizePolicy2.setHeightForWidth(self.gestaltPageBtn.sizePolicy().hasHeightForWidth())
self.gestaltPageBtn.setSizePolicy(sizePolicy2)
icon5 = QIcon()
icon5.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.gestaltPageBtn.setIcon(icon5)
icon4 = QIcon()
icon4.addFile(u":/icon/iphone-island.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.gestaltPageBtn.setIcon(icon4)
self.gestaltPageBtn.setIconSize(QSize(24, 28))
self.gestaltPageBtn.setCheckable(True)
self.gestaltPageBtn.setAutoExclusive(True)
@@ -365,9 +352,9 @@ class Ui_Nugget(object):
font = QFont()
font.setFamilies([u".AppleSystemUIFont"])
self.featureFlagsPageBtn.setFont(font)
icon6 = QIcon()
icon6.addFile(u":/icon/flag.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.featureFlagsPageBtn.setIcon(icon6)
icon5 = QIcon()
icon5.addFile(u":/icon/flag.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.featureFlagsPageBtn.setIcon(icon5)
self.featureFlagsPageBtn.setCheckable(True)
self.featureFlagsPageBtn.setAutoExclusive(True)
self.featureFlagsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -378,7 +365,9 @@ class Ui_Nugget(object):
self.euEnablerPageBtn.setObjectName(u"euEnablerPageBtn")
sizePolicy2.setHeightForWidth(self.euEnablerPageBtn.sizePolicy().hasHeightForWidth())
self.euEnablerPageBtn.setSizePolicy(sizePolicy2)
self.euEnablerPageBtn.setIcon(icon4)
icon6 = QIcon()
icon6.addFile(u":/icon/geo-alt.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.euEnablerPageBtn.setIcon(icon6)
self.euEnablerPageBtn.setCheckable(True)
self.euEnablerPageBtn.setAutoExclusive(True)
self.euEnablerPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -411,6 +400,19 @@ class Ui_Nugget(object):
self.verticalLayout.addWidget(self.internalOptionsPageBtn)
self.advancedPageBtn = QToolButton(self.sidebar)
self.advancedPageBtn.setObjectName(u"advancedPageBtn")
sizePolicy2.setHeightForWidth(self.advancedPageBtn.sizePolicy().hasHeightForWidth())
self.advancedPageBtn.setSizePolicy(sizePolicy2)
icon9 = QIcon()
icon9.addFile(u":/icon/star.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.advancedPageBtn.setIcon(icon9)
self.advancedPageBtn.setCheckable(True)
self.advancedPageBtn.setAutoExclusive(True)
self.advancedPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout.addWidget(self.advancedPageBtn)
self.sidebarDiv2 = QFrame(self.sidebar)
self.sidebarDiv2.setObjectName(u"sidebarDiv2")
self.sidebarDiv2.setStyleSheet(u"QFrame {\n"
@@ -425,9 +427,9 @@ class Ui_Nugget(object):
self.applyPageBtn.setObjectName(u"applyPageBtn")
sizePolicy2.setHeightForWidth(self.applyPageBtn.sizePolicy().hasHeightForWidth())
self.applyPageBtn.setSizePolicy(sizePolicy2)
icon9 = QIcon()
icon9.addFile(u":/icon/check-circle.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.applyPageBtn.setIcon(icon9)
icon10 = QIcon()
icon10.addFile(u":/icon/check-circle.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.applyPageBtn.setIcon(icon10)
self.applyPageBtn.setCheckable(True)
self.applyPageBtn.setAutoExclusive(True)
self.applyPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -438,9 +440,9 @@ class Ui_Nugget(object):
self.settingsPageBtn.setObjectName(u"settingsPageBtn")
sizePolicy2.setHeightForWidth(self.settingsPageBtn.sizePolicy().hasHeightForWidth())
self.settingsPageBtn.setSizePolicy(sizePolicy2)
icon10 = QIcon()
icon10.addFile(u":/icon/gear.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.settingsPageBtn.setIcon(icon10)
icon11 = QIcon()
icon11.addFile(u":/icon/gear.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.settingsPageBtn.setIcon(icon11)
self.settingsPageBtn.setCheckable(True)
self.settingsPageBtn.setAutoExclusive(True)
self.settingsPageBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -551,9 +553,9 @@ class Ui_Nugget(object):
" background-color: transparent;\n"
" padding: 0px;\n"
"}")
icon11 = QIcon()
icon11.addFile(u":/credits/big_nugget.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.bigNuggetBtn.setIcon(icon11)
icon12 = QIcon()
icon12.addFile(u":/credits/big_nugget.png", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.bigNuggetBtn.setIcon(icon12)
self.bigNuggetBtn.setIconSize(QSize(150, 200))
self.horizontalLayout_27.addWidget(self.bigNuggetBtn)
@@ -588,18 +590,16 @@ class Ui_Nugget(object):
self.horizontalLayout_8.setContentsMargins(-1, -1, 0, 0)
self.discordBtn = QToolButton(self.verticalWidget1)
self.discordBtn.setObjectName(u"discordBtn")
icon12 = QIcon()
icon12.addFile(u":/icon/discord.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.discordBtn.setIcon(icon12)
icon13 = QIcon()
icon13.addFile(u":/icon/discord.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.discordBtn.setIcon(icon13)
self.discordBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.horizontalLayout_8.addWidget(self.discordBtn)
self.starOnGithubBtn = QToolButton(self.verticalWidget1)
self.starOnGithubBtn.setObjectName(u"starOnGithubBtn")
icon13 = QIcon()
icon13.addFile(u":/icon/star.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.starOnGithubBtn.setIcon(icon13)
self.starOnGithubBtn.setIcon(icon9)
self.starOnGithubBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.horizontalLayout_8.addWidget(self.starOnGithubBtn)
@@ -897,7 +897,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_8.setIcon(icon5)
self.toolButton_8.setIcon(icon4)
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(icon6)
self.toolButton_10.setIcon(icon5)
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(icon4)
self.toolButton_11.setIcon(icon6)
self.horizontalLayout_21.addWidget(self.toolButton_11)
@@ -1487,11 +1487,6 @@ class Ui_Nugget(object):
self.verticalLayout_34.addWidget(self.eligFileChk)
self.experimentalChk = QCheckBox(self.aiEnablerContent)
self.experimentalChk.setObjectName(u"experimentalChk")
self.verticalLayout_34.addWidget(self.experimentalChk)
self.languageLbl = QLabel(self.aiEnablerContent)
self.languageLbl.setObjectName(u"languageLbl")
@@ -1822,11 +1817,6 @@ class Ui_Nugget(object):
self.verticalLayout_131.addWidget(self.metalHUDChk)
self.accessoryChk = QCheckBox(self.internalOptionsPageContent)
self.accessoryChk.setObjectName(u"accessoryChk")
self.verticalLayout_131.addWidget(self.accessoryChk)
self.iMessageChk = QCheckBox(self.internalOptionsPageContent)
self.iMessageChk.setObjectName(u"iMessageChk")
@@ -1915,6 +1905,192 @@ 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.verticalLayout_142.setObjectName(u"verticalLayout_142")
self.verticalLayout_142.setContentsMargins(0, 0, 0, 0)
self.horizontalWidget_52 = QWidget(self.advancedOptionsPage)
self.horizontalWidget_52.setObjectName(u"horizontalWidget_52")
self.horizontalLayout_202 = QHBoxLayout(self.horizontalWidget_52)
self.horizontalLayout_202.setSpacing(10)
self.horizontalLayout_202.setObjectName(u"horizontalLayout_202")
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.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_102.setIcon(icon9)
self.horizontalLayout_202.addWidget(self.toolButton_102)
self.verticalWidget_42 = QWidget(self.horizontalWidget_52)
self.verticalWidget_42.setObjectName(u"verticalWidget_42")
self.verticalLayout_122 = QVBoxLayout(self.verticalWidget_42)
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.verticalLayout_122.addWidget(self.advancedOptionsLbl)
self.verticalSpacer_181 = QSpacerItem(20, 16, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_122.addItem(self.verticalSpacer_181)
self.horizontalLayout_202.addWidget(self.verticalWidget_42)
self.horizontalSpacer_72 = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
self.horizontalLayout_202.addItem(self.horizontalSpacer_72)
self.verticalLayout_142.addWidget(self.horizontalWidget_52)
self.line_122 = QFrame(self.advancedOptionsPage)
self.line_122.setObjectName(u"line_122")
self.line_122.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_122.setFrameShadow(QFrame.Plain)
self.line_122.setFrameShape(QFrame.Shape.HLine)
self.verticalLayout_142.addWidget(self.line_122)
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.label_17 = QLabel(self.advancedOptionsPageContent)
self.label_17.setObjectName(u"label_17")
self.verticalLayout_132.addWidget(self.label_17)
self.line_191 = QFrame(self.advancedOptionsPageContent)
self.line_191.setObjectName(u"line_191")
self.line_191.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_191.setFrameShadow(QFrame.Plain)
self.line_191.setFrameShape(QFrame.Shape.HLine)
self.verticalLayout_132.addWidget(self.line_191)
self.disableOTAChk = QCheckBox(self.advancedOptionsPageContent)
self.disableOTAChk.setObjectName(u"disableOTAChk")
self.verticalLayout_132.addWidget(self.disableOTAChk)
self.line_181 = QFrame(self.advancedOptionsPageContent)
self.line_181.setObjectName(u"line_181")
self.line_181.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_181.setFrameShadow(QFrame.Plain)
self.line_181.setFrameShape(QFrame.Shape.HLine)
self.verticalLayout_132.addWidget(self.line_181)
self.enableResolutionChk = QCheckBox(self.advancedOptionsPageContent)
self.enableResolutionChk.setObjectName(u"enableResolutionChk")
self.verticalLayout_132.addWidget(self.enableResolutionChk)
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.verticalLayout_35.addWidget(self.resHeightLbl)
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(True)
self.horizontalLayout_9.addWidget(self.resHeightTxt)
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.verticalLayout_35.addWidget(self.resWidthLbl)
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.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.resolutionContent.addLayout(self.horizontalLayout_10)
self.verticalLayout_35.addLayout(self.resolutionContent)
self.verticalLayout_132.addWidget(self.resChangerContent)
self.verticalSpacer_62 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_132.addItem(self.verticalSpacer_62)
self.verticalLayout_142.addWidget(self.advancedOptionsPageContent)
self.pages.addWidget(self.advancedOptionsPage)
self.applyPage = QWidget()
self.applyPage.setObjectName(u"applyPage")
self.verticalLayout_6 = QVBoxLayout(self.applyPage)
@@ -1941,7 +2117,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_18.setIcon(icon9)
self.toolButton_18.setIcon(icon10)
self.horizontalLayout_33.addWidget(self.toolButton_18)
@@ -2020,7 +2196,7 @@ class Ui_Nugget(object):
self.horizontalLayout_17.setContentsMargins(0, 0, 0, 0)
self.applyTweaksBtn = QToolButton(self.horizontalWidget4)
self.applyTweaksBtn.setObjectName(u"applyTweaksBtn")
self.applyTweaksBtn.setIcon(icon9)
self.applyTweaksBtn.setIcon(icon10)
self.applyTweaksBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.horizontalLayout_17.addWidget(self.applyTweaksBtn)
@@ -2099,7 +2275,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_71.setIcon(icon10)
self.toolButton_71.setIcon(icon11)
self.horizontalLayout_131.addWidget(self.toolButton_71)
@@ -2152,21 +2328,37 @@ class Ui_Nugget(object):
self._21.addWidget(self.allowWifiApplyingChk)
self.skipSetupChk = QCheckBox(self.settingsPageContent)
self.skipSetupChk.setObjectName(u"skipSetupChk")
self.skipSetupChk.setChecked(True)
self._21.addWidget(self.skipSetupChk)
self.autoRebootChk = QCheckBox(self.settingsPageContent)
self.autoRebootChk.setObjectName(u"autoRebootChk")
self.autoRebootChk.setChecked(True)
self._21.addWidget(self.autoRebootChk)
self.showRiskyChk = QCheckBox(self.settingsPageContent)
self.showRiskyChk.setObjectName(u"showRiskyChk")
self._21.addWidget(self.showRiskyChk)
self.line_24 = QFrame(self.settingsPageContent)
self.line_24.setObjectName(u"line_24")
self.line_24.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_24.setFrameShadow(QFrame.Plain)
self.line_24.setFrameShape(QFrame.Shape.HLine)
self._21.addWidget(self.line_24)
self.skipSetupChk = QCheckBox(self.settingsPageContent)
self.skipSetupChk.setObjectName(u"skipSetupChk")
self.skipSetupChk.setChecked(True)
self._21.addWidget(self.skipSetupChk)
self.supervisionChk = QCheckBox(self.settingsPageContent)
self.supervisionChk.setObjectName(u"supervisionChk")
self.supervisionChk.setChecked(True)
self.supervisionChk.setEnabled(True)
self.supervisionChk.setChecked(False)
self._21.addWidget(self.supervisionChk)
@@ -2234,7 +2426,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.toolButton_13.setIcon(icon4)
self.toolButton_13.setIcon(icon6)
self.horizontalLayout_28.addWidget(self.toolButton_13)
@@ -2570,7 +2762,7 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
self.themesBtn.setIcon(icon5)
self.themesBtn.setIcon(icon4)
self.themesBtn.setIconSize(QSize(30, 30))
self.horizontalLayout_23.addWidget(self.themesBtn)
@@ -2730,30 +2922,30 @@ class Ui_Nugget(object):
def retranslateUi(self, Nugget):
Nugget.setWindowTitle(QCoreApplication.translate("Nugget", u"Nugget", None))
self.centralwidget.setProperty(u"cls", QCoreApplication.translate("Nugget", u"central", None))
self.centralwidget.setProperty("cls", QCoreApplication.translate("Nugget", u"central", None))
self.devicePicker.setPlaceholderText(QCoreApplication.translate("Nugget", u"None", None))
self.refreshBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"btn", None))
self.refreshBtn.setProperty("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(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.homePageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.explorePageBtn.setText(QCoreApplication.translate("Nugget", u" Explore", None))
self.explorePageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.locSimPageBtn.setText(QCoreApplication.translate("Nugget", u" Location Simulation", None))
self.locSimPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.explorePageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.gestaltPageBtn.setText(QCoreApplication.translate("Nugget", u" Mobile Gestalt", None))
self.gestaltPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.gestaltPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.featureFlagsPageBtn.setText(QCoreApplication.translate("Nugget", u" Feature Flags", None))
self.featureFlagsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.featureFlagsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.euEnablerPageBtn.setText(QCoreApplication.translate("Nugget", u" Eligibility", None))
self.euEnablerPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.euEnablerPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.springboardOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Springboard Options", None))
self.springboardOptionsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.springboardOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.internalOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Internal Options", None))
self.internalOptionsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.internalOptionsPageBtn.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(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.applyPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.settingsPageBtn.setText(QCoreApplication.translate("Nugget", u" Settings", None))
self.settingsPageBtn.setProperty(u"cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.settingsPageBtn.setProperty("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))
@@ -2775,7 +2967,7 @@ class Ui_Nugget(object):
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.0.1", None))
self.label.setText(QCoreApplication.translate("Nugget", u"Nugget GUI - Version 4.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))
@@ -2826,17 +3018,17 @@ class Ui_Nugget(object):
self.regionCodeTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Region Code (Default: US)", None))
self.mgaWarningLbl2.setText(QCoreApplication.translate("Nugget", u"! You will need a MobileGestalt file for this feature. Please select it in the Apply page !", None))
self.enableAIChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Intelligence (for Unsupported Devices)", None))
self.eligFileChk.setText(QCoreApplication.translate("Nugget", u"Enable Eligibility File (test)", None))
self.experimentalChk.setText(QCoreApplication.translate("Nugget", u"Experimental Toggle", None))
self.eligFileChk.setText(QCoreApplication.translate("Nugget", u"Enable Eligibility File", None))
self.languageLbl.setText(QCoreApplication.translate("Nugget", u"Language Code (not needed for English)", None))
self.languageTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Language Code (i.e. en)", None))
self.aiInfoLabel.setText(QCoreApplication.translate("Nugget", u"In order to download the AI models, you must spoof your device model. However, this may break \n"
"Face ID until you revert back. \n"
"\n"
"WARNING: If your original device model does not support Apple Intelligence, please disable the \n"
"AI models before unspoofing! Returning to your original device model without disabling is going to \n"
"cause a re-download and may require a full restore to fix. Furthermore, if you switch between model \n"
"groups, like spoofing from the iPhone 16s to the iPhone 15 Pro series, a re-download may also occur. \n"
"WARNING: Do not go to the Apple Intelligence menu in the Settings app after unspoofing.\n"
"\n"
"Entering the menu on your original device model will cause a re-download and may require a full\n"
"restore to fix. Furthermore, if you switch between model groups, like spoofing from the iPhone 16s\n"
"to the iPhone 15 Pro series, a re-download may also occur. \n"
"Please be careful!", None))
self.label_8.setText(QCoreApplication.translate("Nugget", u"Spoofed Device Model", None))
self.spoofedModelDrp.setItemText(0, QCoreApplication.translate("Nugget", u"Original", None))
@@ -2881,7 +3073,6 @@ class Ui_Nugget(object):
self.buildVersionChk.setText(QCoreApplication.translate("Nugget", u"Show Build Version in Status Bar", None))
self.RTLChk.setText(QCoreApplication.translate("Nugget", u"Force Right-to-Left Layout", None))
self.metalHUDChk.setText(QCoreApplication.translate("Nugget", u"Enable Metal HUD Debug", None))
self.accessoryChk.setText(QCoreApplication.translate("Nugget", u"Enable Accessory Developer", None))
self.iMessageChk.setText(QCoreApplication.translate("Nugget", u"Enable iMessage Debugging", None))
self.IDSChk.setText(QCoreApplication.translate("Nugget", u"Enable Continuity Debugging", None))
self.VCChk.setText(QCoreApplication.translate("Nugget", u"Enable FaceTime Debugging", None))
@@ -2892,6 +3083,21 @@ 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"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"
"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))
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))
@@ -2903,8 +3109,9 @@ class Ui_Nugget(object):
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.skipSetupChk.setText(QCoreApplication.translate("Nugget", u"Skip Setup * (non-exploit files only)", None))
self.autoRebootChk.setText(QCoreApplication.translate("Nugget", u"Auto Reboot After Applying", None))
self.showRiskyChk.setText(QCoreApplication.translate("Nugget", u"Show Risky Tweak Options", None))
self.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))
self.label_15.setText(QCoreApplication.translate("Nugget", u"* Note: Skip Setup may cause issues with configuration profiles. Turn it off if you need that.", None))

View File

@@ -16,9 +16,15 @@ class FileLocation(Enum):
pasteboard = "/var/Managed Preferences/mobile/com.apple.Pasteboard.plist"
notes = "/var/Managed Preferences/mobile/com.apple.mobilenotes.plist"
# Risky Options
ota = "/var/Managed Preferences/mobile/com.apple.MobileAsset.plist"
# support for older versions of python that cannot enumerate over enums
FileLocationsList: list[FileLocation] = [
FileLocation.resolution,
FileLocation.springboard, FileLocation.footnote,
FileLocation.globalPreferences, FileLocation.appStore, FileLocation.backboardd, FileLocation.coreMotion, FileLocation.pasteboard, FileLocation.notes
]
RiskyFileLocationsList: list[FileLocation] = [
FileLocation.ota
]

View File

@@ -49,13 +49,15 @@ class BasicPlistTweak(Tweak):
value: any = True,
edit_type: TweakModifyType = TweakModifyType.TOGGLE,
min_version: Version = Version("1.0"),
is_risky: bool = False,
divider_below: bool = False
):
super().__init__(label=label, key=key, subkey=None, value=value, edit_type=edit_type, min_version=min_version, divider_below=divider_below)
self.file_location = file_location
self.is_risky = is_risky
def apply_tweak(self, other_tweaks: dict) -> dict:
if not self.enabled:
def apply_tweak(self, other_tweaks: dict, risky_allowed: bool = False) -> dict:
if not self.enabled or (self.is_risky and not risky_allowed):
return other_tweaks
if self.file_location in other_tweaks:
other_tweaks[self.file_location][self.key] = self.value
@@ -63,6 +65,27 @@ class BasicPlistTweak(Tweak):
other_tweaks[self.file_location] = {self.key: self.value}
return other_tweaks
class AdvancedPlistTweak(BasicPlistTweak):
def __init__(
self, label: str,
file_location: FileLocation,
keyValues: dict,
edit_type: TweakModifyType = TweakModifyType.TOGGLE,
min_version: Version = Version("1.0"),
is_risky: bool = False,
divider_below: 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)
def apply_tweak(self, other_tweaks: dict, risky_allowed: bool = False) -> dict:
if not self.enabled or (self.is_risky and not risky_allowed):
return other_tweaks
plist = {}
for key in self.value:
plist[key] = self.value[key]
other_tweaks[self.file_location] = plist
return other_tweaks
class RdarFixTweak(BasicPlistTweak):
def __init__(self, divider_below: bool = False):
@@ -75,8 +98,8 @@ class RdarFixTweak(BasicPlistTweak):
or model == "iPhone11,8"
or model == "iPhone12,1" or model == "iPhone12,3" or model == "iPhone12,5"):
self.mode = 1
elif (model == "iPhone13,1" or model == "iPhone13,2" or model == "iPhone13,3" or model == "iPhone13,4"
or model == "iPhone14,4" or model == "iPhone14,5" or model == "iPhone14,2" or model == "iPhone14,3"
elif (model == "iPhone13,2" or model == "iPhone13,3" or model == "iPhone13,4"
or model == "iPhone14,5" or model == "iPhone14,2" or model == "iPhone14,3"
or model == "iPhone14,7" or model == "iPhone14,8"):
self.mode = 2
elif (model == "iPhone12,8" or model == "iPhone14,6"):
@@ -97,19 +120,28 @@ class RdarFixTweak(BasicPlistTweak):
def set_di_type(self, type: int):
self.di_type = type
def apply_tweak(self, other_tweaks: dict) -> dict:
def apply_tweak(self, other_tweaks: dict, risky_allowed: bool = False) -> dict:
if not self.enabled:
return other_tweaks
if self.di_type == -1:
# revert the fix
other_tweaks[self.file_location] = {}
elif self.mode == 1 or self.mode == 3:
elif self.mode == 1:
# iPhone XR, XS, and 11
plist = {
"canvas_height": 1791,
"canvas_width": 828
}
other_tweaks[self.file_location] = plist
elif self.mode == 3:
# iPhone SEs
plist = {
"canvas_height": 1779,
"canvas_width": 1000
}
other_tweaks[self.file_location] = plist
elif self.mode == 2:
# Status bar fix (iPhone 12+)
width = 2868
height = 1320
if self.di_type == 2556:

View File

@@ -1,5 +1,5 @@
from devicemanagement.constants import Version
from .tweak_classes import MobileGestaltTweak, MobileGestaltMultiTweak, MobileGestaltPickerTweak, FeatureFlagTweak, TweakModifyType, BasicPlistTweak, RdarFixTweak
from .tweak_classes import MobileGestaltTweak, MobileGestaltMultiTweak, MobileGestaltPickerTweak, FeatureFlagTweak, TweakModifyType, BasicPlistTweak, AdvancedPlistTweak, RdarFixTweak
from .eligibility_tweak import EligibilityTweak, AITweak
from .basic_plist_locations import FileLocation
@@ -42,7 +42,6 @@ tweaks = {
## AI Enabler
"AIEligibility": AITweak(),
"AIGestalt": MobileGestaltTweak("Enable Apple Intelligence (for Unsupported Devices) (Gestalt)", "A62OafQ85EJAiiqKn4agtg", min_version=Version("18.1")),
"AIExperiment": MobileGestaltTweak("Enable AI Experiment", "I3lidq+FVH2CeOi/ARa0tg", min_version=Version("18.1")),
"SpoofModel": MobileGestaltPickerTweak("Spoofed Device Model", "h9jDsbgj7xIVeIQ8S3/X3Q", values=[
# Default
"Placeholder", # 0 | Original
@@ -219,11 +218,6 @@ tweaks = {
FileLocation.globalPreferences,
"MetalForceHudEnabled"
),
"AccessoryDeveloperEnabled": BasicPlistTweak(
"Enable Accessory Debugging",
FileLocation.globalPreferences,
"AccessoryDeveloperEnabled"
),
"iMessageDiagnosticsEnabled": BasicPlistTweak(
"Enable iMessage Debugging",
FileLocation.globalPreferences,
@@ -273,5 +267,26 @@ tweaks = {
"Show Notifications for System Pastes",
FileLocation.pasteboard,
"AnnounceAllPastes"
),
## Risky Options
"DisableOTA": AdvancedPlistTweak(
"Disable OTA Updates",
FileLocation.ota,
{
"MobileAssetServerURL-com.apple.MobileAsset.MobileSoftwareUpdate.UpdateBrain": "https://mesu.apple.com/assets/tvOS16DeveloperSeed",
"MobileAssetSUAllowOSVersionChange": False,
"MobileAssetSUAllowSameVersionFullReplacement": False,
"MobileAssetServerURL-com.apple.MobileAsset.RecoveryOSUpdate": "https://mesu.apple.com/assets/tvOS16DeveloperSeed",
"MobileAssetServerURL-com.apple.MobileAsset.RecoveryOSUpdateBrain": "https://mesu.apple.com/assets/tvOS16DeveloperSeed",
"MobileAssetServerURL-com.apple.MobileAsset.SoftwareUpdate": "https://mesu.apple.com/assets/tvOS16DeveloperSeed",
"MobileAssetAssetAudience": "65254ac3-f331-4c19-8559-cbe22f5bc1a6"
}, 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
)
}