NVRAM location on Intel Macs
Is the NVRAM on Intel Macs mapped in memory? If so, where is the address that it is located at? Apologies if this question i开发者_Go百科s not strictly a 'programming' question.
You can manually adjust the starting address via
nvram virt-base=value
Check out Section 8.3.2. in the following link
I don't know, but the kernel doesn't access NVRAM that way, so likely neither should you. Short of exhaustively searching memory or figuring out a way to debug/disassemble the EFI implementation, I don't think this is particularly doable.
Access to NVRAM is provided by EFI Variable Services. (U)EFI doesn't provide an interface to get at the nonvolatile storage for variables.
Going up a level, the kext that implements the NVRAM interface by setting/getting EFI variables is /System/Library/Extensions/AppleEFIRuntime.kext/Contents/PlugIns/AppleEFINVRAM.kext
. It is not open source.
There are APIs available for manipulating NVRAM contents, and the nvram
tool itself is open source.
精彩评论