ai enabler

This commit is contained in:
leminlimez
2024-09-27 20:23:49 -04:00
parent a543f8cb9b
commit 8a5966fdbb
9 changed files with 306 additions and 34 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -1,5 +1,5 @@
from Sparserestore.restore import restore_files, FileToRestore, restore_file
from tweaks.tweaks import tweaks, TweakModifyType, FeatureFlagTweak, EligibilityTweak, BasicPlistTweak
from tweaks.tweaks import tweaks, TweakModifyType, FeatureFlagTweak, EligibilityTweak, AITweak, BasicPlistTweak
from tweaks.basic_plist_locations import FileLocation
from devicemanagement.constants import Device
@@ -103,6 +103,7 @@ while running:
# create the other plists
flag_plist: dict = {}
eligibility_files = None
ai_file = None
basic_plists: dict = {}
# verify the device credentials before continuing
@@ -122,6 +123,8 @@ while running:
elif isinstance(tweak, EligibilityTweak):
tweak.set_region_code(device.locale[-2:])
eligibility_files = tweak.apply_tweak()
elif isinstance(tweak, AITweak):
ai_file = tweak.apply_tweak()
elif isinstance(tweak, BasicPlistTweak):
basic_plists = tweak.apply_tweak(basic_plists)
else:
@@ -142,6 +145,8 @@ while running:
]
if eligibility_files != None:
files_to_restore += eligibility_files
if ai_file != None:
files_to_restore.append(ai_file)
for location, plist in basic_plists:
files_to_restore.append(FileToRestore(
contents=plistlib.dumps(plist),

View File

@@ -10,7 +10,7 @@ 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, BasicPlistTweak
from tweaks.tweaks import tweaks, FeatureFlagTweak, EligibilityTweak, AITweak, BasicPlistTweak
from tweaks.basic_plist_locations import FileLocation
from Sparserestore.restore import restore_files, FileToRestore
@@ -106,6 +106,7 @@ class DeviceManager:
# create the other plists
flag_plist: dict = {}
eligibility_files = None
ai_file = None
basic_plists: dict = {}
# set the plist keys
@@ -116,6 +117,8 @@ class DeviceManager:
flag_plist = tweak.apply_tweak(flag_plist)
elif isinstance(tweak, EligibilityTweak):
eligibility_files = tweak.apply_tweak()
elif isinstance(tweak, AITweak):
ai_file = tweak.apply_tweak()
elif isinstance(tweak, BasicPlistTweak):
basic_plists = tweak.apply_tweak(basic_plists)
else:
@@ -146,6 +149,8 @@ class DeviceManager:
))
if eligibility_files:
files_to_restore += eligibility_files
if ai_file != None:
files_to_restore.append(ai_file)
for location, plist in basic_plists:
files_to_restore.append(FileToRestore(
contents=plistlib.dumps(plist),

View File

@@ -68,11 +68,15 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.discordBtn.clicked.connect(self.on_discordBtn_clicked)
## EU ENABLER PAGE ACTIONS
## ELIGIBILITY PAGE ACTIONS
self.ui.euEnablerEnabledChk.toggled.connect(self.on_euEnablerEnabledChk_toggled)
self.ui.methodChoiceDrp.activated.connect(self.on_methodChoiceDrp_activated)
self.ui.regionCodeTxt.textEdited.connect(self.on_regionCodeTxt_textEdited)
self.ui.enableAIChk.toggled.connect(self.on_enableAIChk_toggled)
self.ui.languageTxt.textEdited.connect(self.on_languageTxt_textEdited)
self.ui.spoofModelChk.toggled.connect(self.on_spoofModelChk_toggled)
## FEATURE FLAGS PAGE
self.ui.clockAnimChk.toggled.connect(self.on_clockAnimChk_toggled)
self.ui.lockscreenChk.toggled.connect(self.on_lockscreenChk_clicked)
@@ -188,6 +192,7 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.gestaltPageContent.setDisabled(False)
self.ui.featureFlagsPageContent.setDisabled(False)
self.ui.euEnablerPageContent.setDisabled(False)
self.ui.springboardOptionsPageContent.setDisabled(False)
self.ui.internalOptionsPageContent.setDisabled(False)
@@ -208,6 +213,14 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.dynamicIslandDrp.removeItem(5)
except:
pass
if Version(self.device_manager.data_singleton.current_device.version) >= Version("18.0"):
self.ui.enableAIChk.show()
else:
self.ui.enableAIChk.hide()
self.ui.languageLbl.hide()
self.ui.languageTxt.hide()
self.ui.aiInfoLabel.hide()
self.ui.spoofModelChk.hide()
if Version(self.device_manager.data_singleton.current_device.version) >= Version("18.0"):
self.ui.aodChk.show()
self.ui.sleepApneaChk.show()
@@ -388,15 +401,33 @@ class MainWindow(QtWidgets.QMainWindow):
tweaks["AI"].set_enabled(checked)
## EU ENABLER PAGE
## ELIGIBILITY PAGE
def on_euEnablerEnabledChk_toggled(self, checked: bool):
tweaks["EUEnabler"].set_enabled(checked)
self.ui.euEnablerPageContent.setDisabled(not checked)
def on_methodChoiceDrp_activated(self, index: int):
tweaks["EUEnabler"].set_selected_option(index)
def on_regionCodeTxt_textEdited(self, text: str):
tweaks["EUEnabler"].set_region_code(text)
def on_enableAIChk_toggled(self, checked: bool):
tweaks["AIEligibility"].set_enabled(checked)
tweaks["AIGestalt"].set_enabled(checked)
# change the visibility of stuff
if checked:
self.ui.languageLbl.show()
self.ui.languageTxt.show()
self.ui.aiInfoLabel.show()
self.ui.spoofModelChk.show()
else:
self.ui.languageLbl.hide()
self.ui.languageTxt.hide()
self.ui.aiInfoLabel.hide()
self.ui.spoofModelChk.hide()
def on_languageTxt_textEdited(self, text: str):
tweaks["AIEligibility"].set_language_code(text)
def on_spoofModelChk_toggled(self, checked: bool):
tweaks["SpoofModel"].set_enabled(checked)
## SPRINGBOARD OPTIONS PAGE
def on_footnoteTxt_textEdited(self, text: str):

View File

@@ -593,7 +593,7 @@ QSlider::tick:horizontal {
</sizepolicy>
</property>
<property name="text">
<string> EU Enabler</string>
<string> Eligibility</string>
</property>
<property name="icon">
<iconset>
@@ -2372,7 +2372,7 @@ QComboBox QAbstractItemView::item:hover {
<number>0</number>
</property>
<item>
<widget class="QLabel" name="setupOptionsLbl">
<widget class="QLabel" name="eligibilityLbl">
<property name="font">
<font>
<pointsize>-1</pointsize>
@@ -2380,16 +2380,25 @@ QComboBox QAbstractItemView::item:hover {
</font>
</property>
<property name="text">
<string>EU Enabler</string>
<string>Eligibility Tweaks</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="euEnablerEnabledChk">
<property name="text">
<string>Enabled</string>
<spacer name="verticalSpacer_20">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
<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>
@@ -2425,6 +2434,13 @@ QComboBox QAbstractItemView::item:hover {
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="euEnablerEnabledChk">
<property name="text">
<string>Enable EU Enabler</string>
</property>
</widget>
</item>
<item>
<widget class="QWidget" name="euEnablerPageContent" native="true">
<property name="enabled">
@@ -2518,6 +2534,72 @@ QComboBox QAbstractItemView::item:hover {
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_16">
<property name="enabled">
<bool>false</bool>
</property>
<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="enableAIChk">
<property name="text">
<string>Enable Apple Intelligence (for Unsupported Devices)</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="languageLbl">
<property name="text">
<string>Language Code (not needed for English)</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="languageTxt">
<property name="placeholderText">
<string>Language Code (i.e. en)</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="aiInfoLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>In order to download the AI model, you must spoof the device model. This will break Face ID until
you revert.
Once the model has downloaded, disable &quot;Spoof Device Model&quot; and click the &quot;Apply Tweaks&quot;
button on the &quot;Apply&quot; page again to fix Face ID.</string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="spoofModelChk">
<property name="text">
<string>Spoof Device Model</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_7">
<property name="orientation">

View File

@@ -1286,16 +1286,15 @@ class Ui_Nugget(object):
self.verticalLayout_15.setSpacing(6)
self.verticalLayout_15.setObjectName(u"verticalLayout_15")
self.verticalLayout_15.setContentsMargins(0, 0, 0, 0)
self.setupOptionsLbl = QLabel(self.verticalWidget_5)
self.setupOptionsLbl.setObjectName(u"setupOptionsLbl")
self.setupOptionsLbl.setFont(font1)
self.eligibilityLbl = QLabel(self.verticalWidget_5)
self.eligibilityLbl.setObjectName(u"eligibilityLbl")
self.eligibilityLbl.setFont(font1)
self.verticalLayout_15.addWidget(self.setupOptionsLbl)
self.verticalLayout_15.addWidget(self.eligibilityLbl)
self.euEnablerEnabledChk = QCheckBox(self.verticalWidget_5)
self.euEnablerEnabledChk.setObjectName(u"euEnablerEnabledChk")
self.verticalSpacer_20 = QSpacerItem(20, 16, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_15.addWidget(self.euEnablerEnabledChk)
self.verticalLayout_15.addItem(self.verticalSpacer_20)
self.horizontalLayout_21.addWidget(self.verticalWidget_5)
@@ -1317,6 +1316,11 @@ class Ui_Nugget(object):
self.verticalLayout_17.addWidget(self.line_13)
self.euEnablerEnabledChk = QCheckBox(self.euEnablerPage)
self.euEnablerEnabledChk.setObjectName(u"euEnablerEnabledChk")
self.verticalLayout_17.addWidget(self.euEnablerEnabledChk)
self.euEnablerPageContent = QWidget(self.euEnablerPage)
self.euEnablerPageContent.setObjectName(u"euEnablerPageContent")
self.euEnablerPageContent.setEnabled(False)
@@ -1378,6 +1382,45 @@ class Ui_Nugget(object):
self.verticalLayout_16.addWidget(self.regionCodeTxt)
self.line_16 = QFrame(self.euEnablerPageContent)
self.line_16.setObjectName(u"line_16")
self.line_16.setEnabled(False)
self.line_16.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_16.setFrameShadow(QFrame.Plain)
self.line_16.setFrameShape(QFrame.HLine)
self.verticalLayout_16.addWidget(self.line_16)
self.enableAIChk = QCheckBox(self.euEnablerPageContent)
self.enableAIChk.setObjectName(u"enableAIChk")
self.verticalLayout_16.addWidget(self.enableAIChk)
self.languageLbl = QLabel(self.euEnablerPageContent)
self.languageLbl.setObjectName(u"languageLbl")
self.verticalLayout_16.addWidget(self.languageLbl)
self.languageTxt = QLineEdit(self.euEnablerPageContent)
self.languageTxt.setObjectName(u"languageTxt")
self.verticalLayout_16.addWidget(self.languageTxt)
self.aiInfoLabel = QLabel(self.euEnablerPageContent)
self.aiInfoLabel.setObjectName(u"aiInfoLabel")
sizePolicy1.setHeightForWidth(self.aiInfoLabel.sizePolicy().hasHeightForWidth())
self.aiInfoLabel.setSizePolicy(sizePolicy1)
self.aiInfoLabel.setTextFormat(Qt.AutoText)
self.verticalLayout_16.addWidget(self.aiInfoLabel)
self.spoofModelChk = QCheckBox(self.euEnablerPageContent)
self.spoofModelChk.setObjectName(u"spoofModelChk")
self.verticalLayout_16.addWidget(self.spoofModelChk)
self.verticalSpacer_7 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_16.addItem(self.verticalSpacer_7)
@@ -2475,7 +2518,7 @@ class Ui_Nugget(object):
self.gestaltPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.featureFlagsPageBtn.setText(QCoreApplication.translate("Nugget", u" Feature Flags", None))
self.featureFlagsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.euEnablerPageBtn.setText(QCoreApplication.translate("Nugget", u" EU Enabler", None))
self.euEnablerPageBtn.setText(QCoreApplication.translate("Nugget", u" Eligibility", None))
self.euEnablerPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.springboardOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Springboard Options", None))
self.springboardOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
@@ -2541,14 +2584,23 @@ class Ui_Nugget(object):
self.lockscreenChk.setText(QCoreApplication.translate("Nugget", u"Enable Duplicate Lockscreen Button and Lockscreen Quickswitch", None))
self.photosChk.setText(QCoreApplication.translate("Nugget", u"Enable Old Photo UI", None))
self.aiChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Intelligence", None))
self.setupOptionsLbl.setText(QCoreApplication.translate("Nugget", u"EU Enabler", None))
self.euEnablerEnabledChk.setText(QCoreApplication.translate("Nugget", u"Enabled", None))
self.eligibilityLbl.setText(QCoreApplication.translate("Nugget", u"Eligibility Tweaks", None))
self.euEnablerEnabledChk.setText(QCoreApplication.translate("Nugget", u"Enable EU Enabler", None))
self.label_5.setText(QCoreApplication.translate("Nugget", u"Method Type", None))
self.methodChoiceDrp.setItemText(0, QCoreApplication.translate("Nugget", u"Method 1", None))
self.methodChoiceDrp.setItemText(1, QCoreApplication.translate("Nugget", u"Method 2", None))
self.label_6.setText(QCoreApplication.translate("Nugget", u"Region Code (Should be 2 letters)", None))
self.regionCodeTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Region Code (Default: US)", None))
self.enableAIChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Intelligence (for Unsupported Devices)", 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 model, you must spoof the device model. This will break Face ID until\n"
"you revert.\n"
"\n"
"Once the model has downloaded, disable \"Spoof Device Model\" and click the \"Apply Tweaks\"\n"
"button on the \"Apply\" page again to fix Face ID.", None))
self.spoofModelChk.setText(QCoreApplication.translate("Nugget", u"Spoof Device Model", None))
self.springboardOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Springboard Options", None))
self.label_13.setText(QCoreApplication.translate("Nugget", u"Lock Screen Footnote Text", None))
self.footnoteTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Footnote Text", None))

View File

@@ -1286,16 +1286,15 @@ class Ui_Nugget(object):
self.verticalLayout_15.setSpacing(6)
self.verticalLayout_15.setObjectName(u"verticalLayout_15")
self.verticalLayout_15.setContentsMargins(0, 0, 0, 0)
self.setupOptionsLbl = QLabel(self.verticalWidget_5)
self.setupOptionsLbl.setObjectName(u"setupOptionsLbl")
self.setupOptionsLbl.setFont(font1)
self.eligibilityLbl = QLabel(self.verticalWidget_5)
self.eligibilityLbl.setObjectName(u"eligibilityLbl")
self.eligibilityLbl.setFont(font1)
self.verticalLayout_15.addWidget(self.setupOptionsLbl)
self.verticalLayout_15.addWidget(self.eligibilityLbl)
self.euEnablerEnabledChk = QCheckBox(self.verticalWidget_5)
self.euEnablerEnabledChk.setObjectName(u"euEnablerEnabledChk")
self.verticalSpacer_20 = QSpacerItem(20, 16, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
self.verticalLayout_15.addWidget(self.euEnablerEnabledChk)
self.verticalLayout_15.addItem(self.verticalSpacer_20)
self.horizontalLayout_21.addWidget(self.verticalWidget_5)
@@ -1317,6 +1316,11 @@ class Ui_Nugget(object):
self.verticalLayout_17.addWidget(self.line_13)
self.euEnablerEnabledChk = QCheckBox(self.euEnablerPage)
self.euEnablerEnabledChk.setObjectName(u"euEnablerEnabledChk")
self.verticalLayout_17.addWidget(self.euEnablerEnabledChk)
self.euEnablerPageContent = QWidget(self.euEnablerPage)
self.euEnablerPageContent.setObjectName(u"euEnablerPageContent")
self.euEnablerPageContent.setEnabled(False)
@@ -1378,6 +1382,45 @@ class Ui_Nugget(object):
self.verticalLayout_16.addWidget(self.regionCodeTxt)
self.line_16 = QFrame(self.euEnablerPageContent)
self.line_16.setObjectName(u"line_16")
self.line_16.setEnabled(False)
self.line_16.setStyleSheet(u"QFrame {\n"
" color: #414141;\n"
"}")
self.line_16.setFrameShadow(QFrame.Plain)
self.line_16.setFrameShape(QFrame.Shape.HLine)
self.verticalLayout_16.addWidget(self.line_16)
self.enableAIChk = QCheckBox(self.euEnablerPageContent)
self.enableAIChk.setObjectName(u"enableAIChk")
self.verticalLayout_16.addWidget(self.enableAIChk)
self.languageLbl = QLabel(self.euEnablerPageContent)
self.languageLbl.setObjectName(u"languageLbl")
self.verticalLayout_16.addWidget(self.languageLbl)
self.languageTxt = QLineEdit(self.euEnablerPageContent)
self.languageTxt.setObjectName(u"languageTxt")
self.verticalLayout_16.addWidget(self.languageTxt)
self.aiInfoLabel = QLabel(self.euEnablerPageContent)
self.aiInfoLabel.setObjectName(u"aiInfoLabel")
sizePolicy1.setHeightForWidth(self.aiInfoLabel.sizePolicy().hasHeightForWidth())
self.aiInfoLabel.setSizePolicy(sizePolicy1)
self.aiInfoLabel.setTextFormat(Qt.AutoText)
self.verticalLayout_16.addWidget(self.aiInfoLabel)
self.spoofModelChk = QCheckBox(self.euEnablerPageContent)
self.spoofModelChk.setObjectName(u"spoofModelChk")
self.verticalLayout_16.addWidget(self.spoofModelChk)
self.verticalSpacer_7 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_16.addItem(self.verticalSpacer_7)
@@ -2475,7 +2518,7 @@ class Ui_Nugget(object):
self.gestaltPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.featureFlagsPageBtn.setText(QCoreApplication.translate("Nugget", u" Feature Flags", None))
self.featureFlagsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.euEnablerPageBtn.setText(QCoreApplication.translate("Nugget", u" EU Enabler", None))
self.euEnablerPageBtn.setText(QCoreApplication.translate("Nugget", u" Eligibility", None))
self.euEnablerPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
self.springboardOptionsPageBtn.setText(QCoreApplication.translate("Nugget", u" Springboard Options", None))
self.springboardOptionsPageBtn.setProperty("cls", QCoreApplication.translate("Nugget", u"sidebarBtn", None))
@@ -2541,14 +2584,23 @@ class Ui_Nugget(object):
self.lockscreenChk.setText(QCoreApplication.translate("Nugget", u"Enable Duplicate Lockscreen Button and Lockscreen Quickswitch", None))
self.photosChk.setText(QCoreApplication.translate("Nugget", u"Enable Old Photo UI", None))
self.aiChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Intelligence", None))
self.setupOptionsLbl.setText(QCoreApplication.translate("Nugget", u"EU Enabler", None))
self.euEnablerEnabledChk.setText(QCoreApplication.translate("Nugget", u"Enabled", None))
self.eligibilityLbl.setText(QCoreApplication.translate("Nugget", u"Eligibility Tweaks", None))
self.euEnablerEnabledChk.setText(QCoreApplication.translate("Nugget", u"Enable EU Enabler", None))
self.label_5.setText(QCoreApplication.translate("Nugget", u"Method Type", None))
self.methodChoiceDrp.setItemText(0, QCoreApplication.translate("Nugget", u"Method 1", None))
self.methodChoiceDrp.setItemText(1, QCoreApplication.translate("Nugget", u"Method 2", None))
self.label_6.setText(QCoreApplication.translate("Nugget", u"Region Code (Should be 2 letters)", None))
self.regionCodeTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Region Code (Default: US)", None))
self.enableAIChk.setText(QCoreApplication.translate("Nugget", u"Enable Apple Intelligence (for Unsupported Devices)", 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 model, you must spoof the device model. This will break Face ID until\n"
"you revert.\n"
"\n"
"Once the model has downloaded, disable \"Spoof Device Model\" and click the \"Apply Tweaks\"\n"
"button on the \"Apply\" page again to fix Face ID.", None))
self.spoofModelChk.setText(QCoreApplication.translate("Nugget", u"Spoof Device Model", None))
self.springboardOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Springboard Options", None))
self.label_13.setText(QCoreApplication.translate("Nugget", u"Lock Screen Footnote Text", None))
self.footnoteTxt.setPlaceholderText(QCoreApplication.translate("Nugget", u"Footnote Text", None))

View File

@@ -90,3 +90,43 @@ class EligibilityTweak(Tweak):
# return the new files to restore
return files_to_restore
class AITweak(Tweak):
def __init__(self):
super().__init__(label="Enable Apple Intelligence (for Unsupported Devices) (Eligibility)", key=None, value="", min_version=Version("18.1"))
def set_language_code(self, lang: str):
self.value = lang
def apply_tweak(self) -> FileToRestore:
if not self.enabled:
return None
langs = ["en"]
if self.value != "":
langs.append(self.value)
plist = {
"OS_ELIGIBILITY_DOMAIN_CALCIUM": {
"os_eligibility_answer_source_t": 1,
"os_eligibility_answer_t": 2,
"status": {
"OS_ELIGIBILITY_INPUT_CHINA_CELLULAR": 2
}
},
"OS_ELIGIBILITY_DOMAIN_GREYMATTER": {
"context": {
"OS_ELIGIBILITY_CONTEXT_ELIGIBLE_DEVICE_LANGUAGES": langs
},
"os_eligibility_answer_source_t": 1,
"os_eligibility_answer_t": 4,
"status": {
"OS_ELIGIBILITY_INPUT_DEVICE_LANGUAGE": 3,
"OS_ELIGIBILITY_INPUT_DEVICE_REGION_CODE": 3,
"OS_ELIGIBILITY_INPUT_EXTERNAL_BOOT_DRIVE": 3,
"OS_ELIGIBILITY_INPUT_GENERATIVE_MODEL_SYSTEM": 3,
"OS_ELIGIBILITY_INPUT_SHARED_IPAD": 3,
"OS_ELIGIBILITY_INPUT_SIRI_LANGUAGE": 3
}
}
}
return FileToRestore(contents=plistlib.dumps(plist), restore_path="/var/db/eligibilityd/eligibility.plist")

View File

@@ -1,6 +1,6 @@
from devicemanagement.constants import Version
from .tweak_classes import MobileGestaltTweak, MobileGestaltMultiTweak, MobileGestaltPickerTweak, FeatureFlagTweak, TweakModifyType, BasicPlistTweak
from .eligibility_tweak import EligibilityTweak
from .eligibility_tweak import EligibilityTweak, AITweak
from .basic_plist_locations import FileLocation
@@ -37,6 +37,11 @@ tweaks = {
"PhotoUI": FeatureFlagTweak("Enable Old Photo UI", flag_category='Photos', flag_names=['Lemonade'], is_list=False, inverted=True, min_version=Version("18.0")),
"AI": FeatureFlagTweak("Enable Apple Intelligence", flag_category='SpringBoard', flag_names=['Domino', 'SuperDomino'], min_version=Version("18.1"), divider_below=True),
## AI Enabler
"AIEligibility": AITweak(),
"AIGestalt": MobileGestaltTweak("Enable Apple Intelligence (for Unsupported Devices) (Gestalt)", "A62OafQ85EJAiiqKn4agtg", min_version=Version("18.1")),
"SpoofModel": MobileGestaltTweak("Spoof Device Model", "h9jDsbgj7xIVeIQ8S3/X3Q", value="iPhone17,3", min_version=Version("18.1"), divider_below=True),
## Springboard Tweaks
"LockScreenFootnote": BasicPlistTweak(
"Set Lock Screen Footnote Text",