REFInd ne vous permettra pas de définir directement une variable NVRAM arbitraire, mais vous pouvez utiliser EDK2 pour compiler un petit pilote EFI. Cela est décrit dans le document de WikiLeaks EFI Basics: NVRAM Variables
Les pilotes EFI placés dans le répertoire des pilotes de rEFInd sont chargés et exécutés automatiquement - voir Le gestionnaire d'amorçage rEFInd : Utilisation des pilotes EFI. Vous pourriez également écrire un programme EFI au lieu d'un pilote, puis utiliser une section manuelle dans rEFInd pour appeler un script shell pour appeler ceci, puis le chargeur d'amorçage.
Une autre méthode (probablement plus facile) serait de modifier rEFInd. Vous pouvez voir dans la source comment il définit la variable NVRAM csr-active-config
pour activer et désactiver SIP - apple.h définit le GUID :
// Les constantes liées à la Protection de l'Intégrité du Système (SIP) d'Apple...
#define CSR_GUID { 0x7c436110, 0xab2a, 0x4bbb, { 0xa8, 0x80, 0xfe, 0x41, 0x99, 0x5c, 0x9f, 0x82 } };
apple.c appelle la fonction EfivarSetRaw() dans lib.c
Statut = EfivarSetRaw(&CsrGuid, L"csr-active-config", (CHAR8 *) &TargetCsr, 4, VRAI);
if (Statut == EFI_SUCCESS)
EnregistrerStatutCsr(TargetCsr, VRAI);
sinon
SPrint(gCsrStatus, 255, L" Erreur lors de la définition du code de Protection de l'Intégrité du Système.");
D'autres mises à jour NVRAM pourraient être effectuées de la même manière - il y a divers autres GUID répertoriés dans le lien WikiLeaks du premier paragraphe.
Si vous souhaitez transmettre un argument de démarrage sans mettre à jour NVRAM, vous pouvez créer une entrée de démarrage manuelle dans rEFInd et spécifier les options
dans refind.conf. Des options supplémentaires peuvent être ajoutées en utilisant add_options
- voir la page Créer des strophes de démarrage manuelles de la documentation.
Par exemple, vous pouvez définir des options de menu comme ceci et choisir entre elles en utilisant F2 au démarrage.
menuentry "Catalina" {
# Obtenez le GUID du chargeur à partir du sous-volume macOS : diskutil info disk1s5|grep 'Volume UUID'
icône \EFI\refind\themes\colourful\myicons\os_mac_silver.png
volume "Preboot"
chargeur \3B4B18C9-C57D-4F98-9168-C8D8B9F06EAD\System\Library\CoreServices\boot.efi
submenuentry "Verbeux" {
add_options "-v"
}
submenuentry "Utilisateur Unique" {
add_options "-v -s"
}
submenuentry "Mode sans échec" {
add_options "-v -x"
}
submenuentry "Récupération" {
volume "Recovery"
loader \3B4B18C9-C57D-4F98-9168-C8D8B9F06EAD\boot.efi
}
}