reset prb extensions button

This commit is contained in:
leminlimez
2025-03-13 12:33:27 -04:00
parent 7bcd4b8c81
commit 8eaf008b72
8 changed files with 709 additions and 6532 deletions

View File

@@ -18,7 +18,7 @@ from tweaks.tweaks import tweaks
from tweaks.custom_gestalt_tweaks import CustomGestaltTweaks, ValueTypeStrings
from tweaks.daemons_tweak import Daemon
App_Version = "4.3"
App_Version = "5.0"
App_Build = 1
class Page(Enum):
@@ -160,6 +160,7 @@ class MainWindow(QtWidgets.QMainWindow):
## POSTERBOARD PAGE ACTIONS
self.ui.modifyPosterboardsChk.toggled.connect(self.on_modifyPosterboardsChk_clicked)
self.ui.selectPosterboardBtn.clicked.connect(self.on_selectPosterboardBtn_clicked)
self.ui.resetPRBExtBtn.clicked.connect(self.on_resetPRBExtBtn_clicked)
## RISKY OPTIONS PAGE ACTIONS
self.ui.disableOTAChk.toggled.connect(self.on_disableOTAChk_clicked)
@@ -830,6 +831,7 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.posterboardPageContent.setDisabled(not checked)
def on_selectPosterboardBtn_clicked(self):
selected_file, _ = QtWidgets.QFileDialog.getOpenFileName(self, "Select PosterBoard File", "", "Zip Files (*.zip)", options=QtWidgets.QFileDialog.ReadOnly)
tweaks["PosterBoard"].resetting = False
if selected_file == "" or selected_file == None:
tweaks["PosterBoard"].zip_path = None
self.ui.currentPosterboardLbl.setText("None")
@@ -837,6 +839,14 @@ class MainWindow(QtWidgets.QMainWindow):
# user selected zip, set it
tweaks["PosterBoard"].zip_path = selected_file
self.ui.currentPosterboardLbl.setText(selected_file)
def on_resetPRBExtBtn_clicked(self):
if tweaks["PosterBoard"].resetting:
tweaks["PosterBoard"].resetting = False
self.ui.currentPosterboardLbl.setText("None")
else:
tweaks["PosterBoard"].resetting = True
tweaks["PosterBoard"].zip_path = None
self.ui.currentPosterboardLbl.setText("Resetting PRB Extension")
## Risky Options Page
def on_disableOTAChk_clicked(self, checked: bool):

File diff suppressed because it is too large Load Diff

View File

@@ -4246,6 +4246,20 @@ To work properly, also disable the daemon using the toggle above.</string>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="resetPRBExtBtn">
<property name="text">
<string> Reset PRB Extension</string>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/icon/trash.svg</normaloff>:/icon/trash.svg</iconset>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_22">
<property name="orientation">

File diff suppressed because it is too large Load Diff

View File

@@ -2232,6 +2232,15 @@ class Ui_Nugget(object):
self.verticalLayout_133.addWidget(self.selectPosterboardBtn)
self.resetPRBExtBtn = QToolButton(self.posterboardPageContent)
self.resetPRBExtBtn.setObjectName(u"resetPRBExtBtn")
icon21 = QIcon()
icon21.addFile(u":/icon/trash.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.resetPRBExtBtn.setIcon(icon21)
self.resetPRBExtBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout_133.addWidget(self.resetPRBExtBtn)
self.verticalSpacer_22 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_133.addItem(self.verticalSpacer_22)
@@ -2519,9 +2528,9 @@ class Ui_Nugget(object):
self.horizontalLayout_7.setContentsMargins(-1, 10, -1, 0)
self.chooseGestaltBtn = QToolButton(self.verticalWidget2)
self.chooseGestaltBtn.setObjectName(u"chooseGestaltBtn")
icon21 = QIcon()
icon21.addFile(u":/icon/folder.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.chooseGestaltBtn.setIcon(icon21)
icon22 = QIcon()
icon22.addFile(u":/icon/folder.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.chooseGestaltBtn.setIcon(icon22)
self.chooseGestaltBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.horizontalLayout_7.addWidget(self.chooseGestaltBtn)
@@ -2935,9 +2944,9 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
icon22 = QIcon()
icon22.addFile(u":/icon/pencil.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.toolButton_12.setIcon(icon22)
icon23 = QIcon()
icon23.addFile(u":/icon/pencil.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.toolButton_12.setIcon(icon23)
self.toolButton_12.setIconSize(QSize(25, 25))
self.horizontalLayout_22.addWidget(self.toolButton_12)
@@ -2998,9 +3007,9 @@ class Ui_Nugget(object):
self.importOperationBtn = QToolButton(self.customOperationsPageContent)
self.importOperationBtn.setObjectName(u"importOperationBtn")
self.importOperationBtn.setEnabled(True)
icon23 = QIcon()
icon23.addFile(u":/icon/import.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.importOperationBtn.setIcon(icon23)
icon24 = QIcon()
icon24.addFile(u":/icon/import.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.importOperationBtn.setIcon(icon24)
self.importOperationBtn.setIconSize(QSize(20, 20))
self.importOperationBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -3059,9 +3068,9 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
icon24 = QIcon()
icon24.addFile(u":/icon/compass.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.toolButton_16.setIcon(icon24)
icon25 = QIcon()
icon25.addFile(u":/icon/compass.svg", QSize(), QIcon.Mode.Normal, QIcon.State.Off)
self.toolButton_16.setIcon(icon25)
self.horizontalLayout_31.addWidget(self.toolButton_16)
@@ -3171,7 +3180,7 @@ class Ui_Nugget(object):
self.importThemeFolderBtn = QToolButton(self.horizontalWidget7)
self.importThemeFolderBtn.setObjectName(u"importThemeFolderBtn")
self.importThemeFolderBtn.setIcon(icon21)
self.importThemeFolderBtn.setIcon(icon22)
self.horizontalLayout_26.addWidget(self.importThemeFolderBtn)
@@ -3591,6 +3600,7 @@ class Ui_Nugget(object):
self.regularDomainsLbl_2.setText(QCoreApplication.translate("Nugget", u"Current File:", None))
self.currentPosterboardLbl.setText(QCoreApplication.translate("Nugget", u"None", None))
self.selectPosterboardBtn.setText(QCoreApplication.translate("Nugget", u" Select File", None))
self.resetPRBExtBtn.setText(QCoreApplication.translate("Nugget", u" Reset PRB Extension", None))
self.advancedOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Risky Options", None))
self.label_17.setText(QCoreApplication.translate("Nugget", u"Disclaimer:\n"
"\n"

View File

@@ -2232,6 +2232,15 @@ class Ui_Nugget(object):
self.verticalLayout_133.addWidget(self.selectPosterboardBtn)
self.resetPRBExtBtn = QToolButton(self.posterboardPageContent)
self.resetPRBExtBtn.setObjectName(u"resetPRBExtBtn")
icon21 = QIcon()
icon21.addFile(u":/icon/trash.svg", QSize(), QIcon.Normal, QIcon.Off)
self.resetPRBExtBtn.setIcon(icon21)
self.resetPRBExtBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.verticalLayout_133.addWidget(self.resetPRBExtBtn)
self.verticalSpacer_22 = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_133.addItem(self.verticalSpacer_22)
@@ -2519,9 +2528,9 @@ class Ui_Nugget(object):
self.horizontalLayout_7.setContentsMargins(-1, 10, -1, 0)
self.chooseGestaltBtn = QToolButton(self.verticalWidget2)
self.chooseGestaltBtn.setObjectName(u"chooseGestaltBtn")
icon21 = QIcon()
icon21.addFile(u":/icon/folder.svg", QSize(), QIcon.Normal, QIcon.Off)
self.chooseGestaltBtn.setIcon(icon21)
icon22 = QIcon()
icon22.addFile(u":/icon/folder.svg", QSize(), QIcon.Normal, QIcon.Off)
self.chooseGestaltBtn.setIcon(icon22)
self.chooseGestaltBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
self.horizontalLayout_7.addWidget(self.chooseGestaltBtn)
@@ -2935,9 +2944,9 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
icon22 = QIcon()
icon22.addFile(u":/icon/pencil.svg", QSize(), QIcon.Normal, QIcon.Off)
self.toolButton_12.setIcon(icon22)
icon23 = QIcon()
icon23.addFile(u":/icon/pencil.svg", QSize(), QIcon.Normal, QIcon.Off)
self.toolButton_12.setIcon(icon23)
self.toolButton_12.setIconSize(QSize(25, 25))
self.horizontalLayout_22.addWidget(self.toolButton_12)
@@ -2998,9 +3007,9 @@ class Ui_Nugget(object):
self.importOperationBtn = QToolButton(self.customOperationsPageContent)
self.importOperationBtn.setObjectName(u"importOperationBtn")
self.importOperationBtn.setEnabled(True)
icon23 = QIcon()
icon23.addFile(u":/icon/import.svg", QSize(), QIcon.Normal, QIcon.Off)
self.importOperationBtn.setIcon(icon23)
icon24 = QIcon()
icon24.addFile(u":/icon/import.svg", QSize(), QIcon.Normal, QIcon.Off)
self.importOperationBtn.setIcon(icon24)
self.importOperationBtn.setIconSize(QSize(20, 20))
self.importOperationBtn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
@@ -3059,9 +3068,9 @@ class Ui_Nugget(object):
" padding-right: 5px;\n"
" border-radius: 0px;\n"
"}")
icon24 = QIcon()
icon24.addFile(u":/icon/compass.svg", QSize(), QIcon.Normal, QIcon.Off)
self.toolButton_16.setIcon(icon24)
icon25 = QIcon()
icon25.addFile(u":/icon/compass.svg", QSize(), QIcon.Normal, QIcon.Off)
self.toolButton_16.setIcon(icon25)
self.horizontalLayout_31.addWidget(self.toolButton_16)
@@ -3171,7 +3180,7 @@ class Ui_Nugget(object):
self.importThemeFolderBtn = QToolButton(self.horizontalWidget7)
self.importThemeFolderBtn.setObjectName(u"importThemeFolderBtn")
self.importThemeFolderBtn.setIcon(icon21)
self.importThemeFolderBtn.setIcon(icon22)
self.horizontalLayout_26.addWidget(self.importThemeFolderBtn)
@@ -3591,6 +3600,7 @@ class Ui_Nugget(object):
self.regularDomainsLbl_2.setText(QCoreApplication.translate("Nugget", u"Current File:", None))
self.currentPosterboardLbl.setText(QCoreApplication.translate("Nugget", u"None", None))
self.selectPosterboardBtn.setText(QCoreApplication.translate("Nugget", u" Select File", None))
self.resetPRBExtBtn.setText(QCoreApplication.translate("Nugget", u" Reset PRB Extension", None))
self.advancedOptionsLbl.setText(QCoreApplication.translate("Nugget", u"Risky Options", None))
self.label_17.setText(QCoreApplication.translate("Nugget", u"Disclaimer:\n"
"\n"

View File

@@ -1,6 +1,6 @@
# Resource object code (Python 3)
# Created by: object code
# Created by: The Resource Compiler for Qt version 6.6.3
# Created by: The Resource Compiler for Qt version 6.8.2
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
@@ -9760,65 +9760,65 @@ qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x03\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x03X\x00\x00\x00\x00\x00\x01\x00\x00Q\x9c\
\x00\x00\x01\x91\xca\x8el\xa3\
\x00\x00\x01\x95\x82z\xa7C\
\x00\x00\x03z\x00\x00\x00\x00\x00\x01\x00\x02GY\
\x00\x00\x01\x8e\x1f\xacL\xa6\
\x00\x00\x01\x95\x82z\xa7C\
\x00\x00\x02\xc8\x00\x00\x00\x00\x00\x01\x00\x00E\x1f\
\x00\x00\x01\x8e\x1f\xacL\xa8\
\x00\x00\x01\x95\x82z\xa7D\
\x00\x00\x02n\x00\x00\x00\x00\x00\x01\x00\x009`\
\x00\x00\x01\x91\xc9\xfb\x90R\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x01\xb4\x00\x00\x00\x00\x00\x01\x00\x00(i\
\x00\x00\x01\x8e\x1f\xacL\xac\
\x00\x00\x01\x95\x82z\xa7F\
\x00\x00\x00v\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xde\
\x00\x00\x01\x91\xc9\xfe\xe5\xc3\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x03B\x00\x00\x00\x00\x00\x01\x00\x00N`\
\x00\x00\x01\x90A\xe5Is\
\x00\x00\x01\x95\x82z\xa7F\
\x00\x00\x01`\x00\x00\x00\x00\x00\x01\x00\x00$\x9d\
\x00\x00\x01\x8e\x1f\xacL\xaa\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x01\x00\x00\x18z\
\x00\x00\x01\x8e\x1f\xacL\xad\
\x00\x00\x01\x95\x82z\xa7F\
\x00\x00\x02\xf4\x00\x00\x00\x00\x00\x01\x00\x00F&\
\x00\x00\x01\x8e\x1f\xacL\xab\
\x00\x00\x01\x95\x82z\xa7F\
\x00\x00\x008\x00\x00\x00\x00\x00\x01\x00\x00\x05\xf7\
\x00\x00\x01\x8e\x1f\xacL\xa9\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x03\x0c\x00\x00\x00\x00\x00\x01\x00\x00Gr\
\x00\x00\x01\x90A\xe5\x0f0\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x01\xe8\x00\x00\x00\x00\x00\x01\x00\x00+\xa8\
\x00\x00\x01\x8e\x1f\xacL\xa8\
\x00\x00\x01\x95\x82z\xa7D\
\x00\x00\x03&\x00\x00\x00\x00\x00\x01\x00\x00L\xfd\
\x00\x00\x01\x8e\x1f\xacL\xa9\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x01\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x1f\xe8\
\x00\x00\x01\x8e\x1f\xacL\xac\
\x00\x00\x01\x95\x82z\xa7F\
\x00\x00\x02\xac\x00\x00\x00\x00\x00\x01\x00\x00C?\
\x00\x00\x01\x8e\x1f\xacL\xaa\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x02\x14\x00\x00\x00\x00\x00\x01\x00\x00-\x05\
\x00\x00\x01\x90A\xdb\x1f\x22\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x01\x00\x00\x00\x00\x00\x00\x01\x00\x00\x1dk\
\x00\x00\x01\x8e\x1f\xacL\xac\
\x00\x00\x01\x95\x82z\xa7F\
\x00\x00\x02.\x00\x00\x00\x00\x00\x01\x00\x003\x15\
\x00\x00\x01\x8e\x1f\xacL\xa8\
\x00\x00\x01\x95\x82z\xa7D\
\x00\x00\x02\x96\x00\x00\x00\x00\x00\x01\x00\x00@\xc7\
\x00\x00\x01\x8e\x1f\xacL\xac\
\x00\x00\x01\x95\x82z\xa7F\
\x00\x00\x00\xba\x00\x00\x00\x00\x00\x01\x00\x00\x16Q\
\x00\x00\x01\x8e\x1f\xacL\xaa\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x00T\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xef\
\x00\x00\x01\x8e\x1f\xacL\xab\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x00\x22\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x8e\x1f\xacL\xaa\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x014\x00\x00\x00\x00\x00\x01\x00\x00\x22\x10\
\x00\x00\x01\x8e\x1f\xacL\xa9\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x01\xd0\x00\x00\x00\x00\x00\x01\x00\x00)\xfe\
\x00\x00\x01\x8e\x1f\xacL\xab\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x02V\x00\x00\x00\x00\x00\x01\x00\x004\x95\
\x00\x00\x01\x8e\x1f\xacL\xa8\
\x00\x00\x01\x95\x82z\xa7D\
\x00\x00\x01\x8e\x00\x00\x00\x00\x00\x01\x00\x00&\xe9\
\x00\x00\x01\x8e\x1f\xacL\xa8\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x00\xa6\x00\x00\x00\x00\x00\x01\x00\x00\x13\xf8\
\x00\x00\x01\x8e\x1f\xacL\xab\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x00\x8c\x00\x00\x00\x00\x00\x01\x00\x00\x11/\
\x00\x00\x01\x8e\x1f\xacL\xab\
\x00\x00\x01\x95\x82z\xa7E\
\x00\x00\x00\xea\x00\x00\x00\x00\x00\x01\x00\x00\x19\xb7\
\x00\x00\x01\x8e\x1f\xacL\xac\
\x00\x00\x01\x95\x82z\xa7F\
"
def qInitResources():

View File

@@ -9,6 +9,7 @@ class PosterboardTweak(Tweak):
super().__init__(key=None)
self.zip_path = None
self.bundle_id = "com.apple.PosterBoard"
self.resetting = False
def recursive_add(self, files_to_restore: list[FileToRestore], curr_path: str, restore_path: str = "", isAdding: bool = False):
for folder in sorted(os.listdir(curr_path)):
@@ -39,7 +40,17 @@ class PosterboardTweak(Tweak):
def apply_tweak(self, files_to_restore: list[FileToRestore]):
# unzip the file
if self.zip_path == None or not self.enabled:
if not self.enabled:
return
if self.resetting:
# null out the prb folder
files_to_restore.append(FileToRestore(
contents=b"",
restore_path="/Library/Application Support/PRBPosterExtensionDataStore",
domain=f"AppDomain-{self.bundle_id}"
))
return
elif self.zip_path == None:
return
with TemporaryDirectory() as output_dir:
with zipfile.ZipFile(self.zip_path, 'r') as zip_ref: