使用OCLP打补丁后恢复增量更新的方法
有很多小伙伴使用了OCLP修补博通网卡或者老显卡后,每系统更新只能下载12G+的全量包,比较麻烦而且不优雅,至此我不经意间折腾出来恢复增量更新办法,我当时在Beta6上操作后下载Beta7的更新发现居然是不到2GB的增量包!理论上适用于所有使用了OCLP的情况,在此分享我的折腾过程并希望能帮到大家。基于以下两篇帖子的教程:
https://bbs.pcbeta.com/viewthread-1975545-1-1.html
https://bbs.pcbeta.com/viewthread-1975320-1-2.html
如果你已经按照教程顺利打上OCLP补丁,那就可以跟着我进行以下操作了:
首先需要用OCC或者OCAT加载AMFIPass.kext和RestrictEvents.kext两个驱动,而且 MinKernel 均需要填写 23.0.0 防止低版本系统加载(如果你已经使用了RestrictEvents.kext可以不填写该驱动的MinKernel):
然后,在boot-args中删除启动参数:amfi=0x80,并添加启动参数:-amfipassbeta revpatch=sbvmm
可以在修改启动参数后清除一遍NVRAM保证新的参数生效
按照OCLP的教程,此时SecurityBootMode仍为Disable状态。
一顿折腾后的效果:系统可以正常检测到并安装增量更新(目前Sonoma Beta版需要加入Developer Beta才能收到更新),安装更新后可以直接打开OCLP打补丁。
简而言之,使用RestrictEvents.kext和启动参数revpatch=sbvmm可以使系统重新检测到OTA更新,但因为amfi=0x80已经禁用amfi的原因而无法增量更新只能下载12G+到全量包,但是我发现加载AMFIPass.kext驱动替换掉amfi=0x80启动参数就可以恢复增量更新而且不影响OCLP打补丁。
本帖最后由 hasimu 于 2023-9-13 09:15 编辑
不错,谢谢楼主。========
今天rc版本尝试了半天依然是全量包。
mark~! 多谢~ 试了还是不行,能检测到更新,但是依然是全量包,不知道哪里出问题 gujiangjiang 发表于 2023-9-8 20:31 https://bbs.pcbeta.com/static/image/common/back.gif
试了还是不行,能检测到更新,但是依然是全量包,不知道哪里出问题
可以尝试把csr-active-config设置成7F0A0000并重置一次NVRAM试试看,而且如果对系统进行了许多修改仍会无法增量更新 zzzyy678 发表于 2023-9-8 23:08 https://bbs.pcbeta.com/static/image/common/back.gif
可以尝试把csr-active-config设置成7F0A0000并重置一次NVRAM试试看,而且如果对系统进行了许多修改仍会无 ...
无其他修改,我试一下 改CSR 看看,现在是 03080000 Start Root Patching不亮是啥原因
依然不行,看来是无解了 感谢分享 使用OCLP打补丁后恢复增量更新的方法 Mark一下,那是不是这样之后,升级之后不用再安装OCLP呢? 楼主是个好人! 感谢楼主,我去试一下 检测到了更新,但是不是增量
csr-active-config也是7F0A0000
先更新到b5再说 感谢楼主分享 不错,谢谢楼主。 mark一下
下次更新来临时试试 本帖最后由 Dynamix 于 2023-9-9 21:35 编辑
只能说是个例外罢了 能不能增量更新和AMFI没半毛钱关系 OCLP的Root Patch 都会涉及禁用SSV (Signed System Volume)、修改系统文件并且通过bless 工具重建自定义启动快照 而保留增量更新只能依赖于Signed Snapshot 也就是com.apple.os.update的快照,Bless tool新建的启动快照是com.apple.bless, 并且不禁用SSV也就是 APFS AuthRoot (csrActiveCfg: 00080000h )则无法加载自定义快照 自然Root Patch 也不会生效, 禁用SSV并修改系统文件100% 会损坏 APFS Snapshot的封装标识符 (APFS Snapshot Sealed : Broken) 直接结果就是去增量更新资格, 所以系统会通过完整版OTA 安装的方式 试图修复 APFS 系统卷和启动快照封装并重建com.apple.os.update 快照
补充一下我观察到的增量更新的过程:
macOS BigSur Dev Beta10开始macOS就无法脱离启动快照 无快照则无法开机apfs.kext会崩溃, 而增量更新中准备更新的过程是将原生的Signed Snapshot和增量更新包中的项目整合成一个全新的准备更新快照 叫com.apple.prepareOSUpdate 准备更新完成后的重启是将此快照中的项目应用到真实的系统卷并重建Signed Snapshot 来完成更新
说一下我在RootPatch后的增量更新方法:
OCLP RootPatch 后无法增量更新我自己的方法是通过ToggleSipEntery配合参数 0x087F (反转字节对应7F080000) 更新前重启通过toggleSIP 启用SIP 开机之后会加载com.apple.os.update的原生快照 当然, 加载原生快照会导致OCLP所有的Root Patch均失效因为RootPatch的更改是保存在com.apple.bless快照里的 然后通过原生快照尝试完成增量更新,之后再通过Toggle SIP禁用SIP 以重新用OCLP 执行Root Patch 但实际上 增量更新和完整包OTA更新准备更新和安装时间基本是没区别的 区别就是下载时间 网速快的完全可以忽略,
注意:
但是我的方式仅适用于 OCLP RootPatch修改了非必要组件的情况 那些Legacy Graphics Patch和需要安装 KDK的不要尝试 启用原生快照的结果将大概率是无法开机
谢谢楼主的分享 Dynamix 发表于 2023-9-9 21:03
只能说是个例外罢了 能不能增量更新和AMFI没半毛钱关系 OCLP的Root Patch 都会涉及禁用SSV (Signed System...
正如你所言,是这样的,尤其是显卡,对显卡打补丁后如果SIP全开的话开机会卡进度条,要是单纯显卡不能驱动那倒还好,至少能进系统,关键是它会卡进度条,一点办法也没有,只能选择全量包更新了
页:
[1]
2