summaryrefslogtreecommitdiffstats
path: root/src/tss.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tss.c')
-rw-r--r--src/tss.c31
1 files changed, 25 insertions, 6 deletions
diff --git a/src/tss.c b/src/tss.c
index 5e676f4..e9d68f3 100644
--- a/src/tss.c
+++ b/src/tss.c
@@ -582,8 +582,15 @@ int tss_request_add_ap_recovery_tags(plist_t request, plist_t parameters, plist_
continue;
}
- if (!_plist_dict_get_bool(info_dict, "IsFirmwarePayload") && !_plist_dict_get_bool(info_dict, "IsSecondaryFirmwarePayload") && !_plist_dict_get_bool(info_dict, "IsFUDFirmware")) {
- debug("DEBUG: %s: Skipping '%s' as it is neither firmware nor secondary nor FUD firmware payload\n", __func__, key);
+ if (!_plist_dict_get_bool(info_dict, "IsFirmwarePayload")
+ && !_plist_dict_get_bool(info_dict, "IsSecondaryFirmwarePayload")
+ && !_plist_dict_get_bool(info_dict, "IsFUDFirmware")
+ && !_plist_dict_get_bool(info_dict, "IsLoadedByiBoot")
+ && !_plist_dict_get_bool(info_dict, "IsEarlyAccessFirmware")
+ && !_plist_dict_get_bool(info_dict, "IsiBootEANFirmware")
+ && !_plist_dict_get_bool(info_dict, "IsiBootNonEssentialFirmware"))
+ {
+ debug("DEBUG: %s: Skipping '%s' as it is not a firmware payload\n", __func__, key);
continue;
}
}
@@ -679,14 +686,26 @@ int tss_request_add_ap_tags(plist_t request, plist_t parameters, plist_t overrid
}
}
- if (_plist_dict_get_bool(parameters, "_OnlyFWComponents")) {
+ int is_fw_payload = _plist_dict_get_bool(info_dict, "IsFirmwarePayload")
+ || _plist_dict_get_bool(info_dict, "IsSecondaryFirmwarePayload")
+ || _plist_dict_get_bool(info_dict, "IsFUDFirmware")
+ || _plist_dict_get_bool(info_dict, "IsLoadedByiBoot")
+ || _plist_dict_get_bool(info_dict, "IsEarlyAccessFirmware")
+ || _plist_dict_get_bool(info_dict, "IsiBootEANFirmware")
+ || _plist_dict_get_bool(info_dict, "IsiBootNonEssentialFirmware");
+
+ if (_plist_dict_get_bool(parameters, "_OnlyFWOrTrustedComponents")) {
+ if (!_plist_dict_get_bool(manifest_entry, "Trusted") && !is_fw_payload) {
+ debug("DEBUG: %s: Skipping '%s' as it is neither firmware payload nor trusted\n", __func__, key);
+ continue;
+ }
+ } else if (_plist_dict_get_bool(parameters, "_OnlyFWComponents")) {
if (!_plist_dict_get_bool(manifest_entry, "Trusted")) {
debug("DEBUG: %s: Skipping '%s' as it is not trusted\n", __func__, key);
continue;
}
-
- if (!_plist_dict_get_bool(info_dict, "IsFirmwarePayload") && !_plist_dict_get_bool(info_dict, "IsSecondaryFirmwarePayload") && !_plist_dict_get_bool(info_dict, "IsFUDFirmware")) {
- debug("DEBUG: %s: Skipping '%s' as it is neither firmware nor secondary nor FUD firmware payload\n", __func__, key);
+ if (!is_fw_payload) {
+ debug("DEBUG: %s: Skipping '%s' as it is not a firmware payload\n", __func__, key);
continue;
}
}