diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/tss.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -245,6 +245,11 @@ int tss_parameters_add_from_manifest(plist_t parameters, plist_t build_identity, _plist_dict_copy_item(parameters, build_identity, "Cryptex1,MobileAssetBrainVolume", NULL); _plist_dict_copy_item(parameters, build_identity, "Cryptex1,MobileAssetBrainTrustCache", NULL); + node = plist_dict_get_item(build_identity, "Info"); + if (node) { + _plist_dict_copy_bool(parameters, node, "RequiresUIDMode", NULL); + } + if (include_manifest) { /* add build identity manifest dictionary */ node = plist_dict_get_item(build_identity, "Manifest"); @@ -293,6 +298,13 @@ int tss_request_add_ap_img4_tags(plist_t request, plist_t parameters) _plist_dict_copy_uint(request, parameters, "NeRDEpoch", NULL); _plist_dict_copy_data(request, parameters, "PearlCertificationRootPub", NULL); + if (plist_dict_get_item(parameters, "UID_MODE")) { + _plist_dict_copy_item(request, parameters, "UID_MODE", NULL); + } else if (_plist_dict_get_bool(parameters, "RequiresUIDMode")) { + // The logic here is missing why this value is expected to be 'false' + plist_dict_set_item(request, "UID_MODE", plist_new_bool(0)); + } + return 0; } |