Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
btwise
OpenCorePKG_MOD
提交
7ddccabe
O
OpenCorePKG_MOD
项目概览
btwise
/
OpenCorePKG_MOD
通知
26
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
OpenCorePKG_MOD
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7ddccabe
编写于
10月 25, 2022
作者:
M
Mike Beaton
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
OpenVariableRuntimeDxe: Avoid our driver being wrapped by additional Apple security checks
上级
3748e5ac
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
33 addition
and
16 deletion
+33
-16
Changelog.md
Changelog.md
+2
-1
Platform/OpenVariableRuntimeDxe/VariableDxe.c
Platform/OpenVariableRuntimeDxe/VariableDxe.c
+31
-15
未找到文件。
Changelog.md
浏览文件 @
7ddccabe
...
...
@@ -2,9 +2,10 @@ OpenCore Changelog
==================
#### v0.8.6
-
Updated emulated NVRAM save script for compatibilty with earlier macOS (Snow Leopard+ tested)
-
Updated emulated NVRAM save script to automatically install as launch daemon (Yosemite+) or logout hook
-
Updated emulated NVRAM save script to automatically install as launch daemon (Yosemite+) or logout hook
(older macOS)
-
Fixed maximum click duration and double click speed for non-standard poll frequencies
-
Added support for pointer dwell-clicking
-
Prevented Apple firmware from adding additional security checks on top of emulated NVRAM driver
#### v0.8.5
-
Updated builtin firmware versions for SMBIOS and the rest
...
...
Platform/OpenVariableRuntimeDxe/VariableDxe.c
浏览文件 @
7ddccabe
...
...
@@ -376,6 +376,7 @@ VariableWriteServiceInitializeDxe (
)
{
EFI_STATUS
Status
;
VOID
*
Interface
;
Status
=
VariableWriteServiceInitialize
();
if
(
EFI_ERROR
(
Status
))
{
...
...
@@ -389,14 +390,18 @@ VariableWriteServiceInitializeDxe (
RecordSecureBootPolicyVarData
();
//
// Install the Variable Write Architectural protocol.
// Install
(but don't reinstall)
the Variable Write Architectural protocol.
//
Status
=
gBS
->
InstallProtocolInterface
(
&
mHandle
,
&
gEfiVariableWriteArchProtocolGuid
,
EFI_NATIVE_INTERFACE
,
NULL
);
Status
=
gBS
->
LocateProtocol
(
&
gEfiVariableWriteArchProtocolGuid
,
NULL
,
&
Interface
);
if
(
EFI_ERROR
(
Status
))
{
Status
=
gBS
->
InstallProtocolInterface
(
&
mHandle
,
&
gEfiVariableWriteArchProtocolGuid
,
EFI_NATIVE_INTERFACE
,
NULL
);
}
ASSERT_EFI_ERROR
(
Status
);
}
...
...
@@ -574,6 +579,7 @@ VariableServiceInitialize (
EFI_EVENT
ReadyToBootEvent
;
EFI_EVENT
EndOfDxeEvent
;
EFI_CREATE_EVENT_EX
OriginalCreateEventEx
;
VOID
*
Interface
;
//
// Probably worth noting that attempting to remove any pre-existing protocols here
...
...
@@ -602,17 +608,27 @@ VariableServiceInitialize (
SystemTable
->
RuntimeServices
->
GetVariable
=
VariableServiceGetVariable
;
SystemTable
->
RuntimeServices
->
GetNextVariableName
=
VariableServiceGetNextVariableName
;
SystemTable
->
RuntimeServices
->
SetVariable
=
VariableServiceSetVariable
;
SystemTable
->
RuntimeServices
->
QueryVariableInfo
=
VariableServiceQueryVariableInfo
;
//
// Avoid setting UEFI 2.0 interface members, since this must run on older and Apple firmware.
// TODO: Possibly add this back on version check, but nothing we are aware of uses this.
//
// SystemTable->RuntimeServices->QueryVariableInfo = VariableServiceQueryVariableInfo;
//
// Now install the Variable Runtime Architectural protocol on a new handle.
// Now install (but don't reinstall) the Variable Runtime Architectural protocol on a new handle.
// If we reinstall this on newer Apple firmware then the three runtime services functions
// above get preserved, but wrapped by additional Apple security.
//
Status
=
gBS
->
InstallProtocolInterface
(
&
mHandle
,
&
gEfiVariableArchProtocolGuid
,
EFI_NATIVE_INTERFACE
,
NULL
);
Status
=
gBS
->
LocateProtocol
(
&
gEfiVariableArchProtocolGuid
,
NULL
,
&
Interface
);
if
(
EFI_ERROR
(
Status
))
{
Status
=
gBS
->
InstallProtocolInterface
(
&
mHandle
,
&
gEfiVariableArchProtocolGuid
,
EFI_NATIVE_INTERFACE
,
NULL
);
}
ASSERT_EFI_ERROR
(
Status
);
if
(
!
PcdGetBool
(
PcdEmuVariableNvModeEnable
))
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录