【发布时间】:2017-10-20 17:15:21
【问题描述】:
我正在开发一个在 10.12.4 VM 下运行的 Kext(我使用并行),我想启用指针打印输出(目前所有指针都被隐藏并在 /var/log/system.log 上显示为 <ptr>)
在 10.12 之前,可以通过设置 nvram csr-active-config=%ff%00%00%00 来直接取消调试限制。但是,现在无法直接设置csr-active-config,而是通过恢复模式下的csrutil disable。不幸的是,它并没有禁用所有 SIP 功能,并且指针仍然隐藏。
幸运的是,以下thread 提供了解决方法:
或者,可以通过设置 csr-active-config=ff%00%00%00 完全禁用 CSR。对于 VM,这可以通过引导到恢复分区、运行 csrutil clear 以完全删除 csr-active-config 变量和 nvram Xsr-active-config=ff%00%00%00 来实现。然后关闭 VM,并使用十六进制编辑器更改 nvram 文件中的 X -> c。这将允许 -show_pointers 引导参数工作。
我正在使用 Parallels,并尝试查找 nvram 设置的位置。我看到了名为NVRAM.dat 的有前途的文件,但不幸的是
在按照上面引用段落中的说明进行操作后,我无法跟踪字符串 Xsr-active-config。
也许 nvram 设置还有其他地方?
谢谢
【问题讨论】:
标签: c macos kernel virtual-machine xnu