经验之谈——使用OCLP打补丁之后无法进入系统怎么撤销补丁
本帖最后由 linioe 于 2023-9-19 15:31 编辑我有一台3代CPU的笔记本,得益于OCLP,一直能追最新版系统。但是有的时候打完补丁后无法进入系统(例如用0.6.8正式版可以进系统,但是想用最新的0.6.9开发版就开机跑码重启)。
以前这种情况我都得重装系统,很是麻烦。因为OCLP是有撤销补丁的功能的,所以尝试参考OCLP源码获得帮助,得到了下面的办法。
在此声明,我只在自己的三代CPU,系统Ventura和Sonoma上进行了测试,理论上支持3-6代CPU核显和博通网卡补丁。
此方法可以在Recovery下或者别的系统下使用(最好是Recovery下使用,因为不同的系统命令效果可能不同,我只在Ventura和Sonoma进行了测试。别说没有Recovery,除了恢复方式安装的想要安装都得进Recovery)
1.进入Recovery,打开实用工具 --> 终端
2.找到要撤销补丁的分区标识:diskutil list
-bash-3.2# diskutil list/dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *120.0 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_APFS Container disk3 119.8 GB disk0s2
/dev/disk1 (disk image): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme +1.2 GB disk1 1: Apple_APFS Container disk2 1.2 GB disk1s1
/dev/disk2 (synthesized): #: TYPE NAME SIZE IDENTIFIER 0: APFS Container Scheme - +1.2 GB disk2 Physical Store disk1s1 1: APFS Volume macOS Base System 945.0 MB disk2s1 2: APFS Volume Preboot 81.3 MB disk2s2
/dev/disk3 (synthesized): #: TYPE NAME SIZE IDENTIFIER 0: APFS Container Scheme - +119.8 GB disk3 Physical Store disk0s2 1: APFS Volume Macintosh HD - 数据 24.9 GB disk3s1 2: APFS Volume Preboot 10.4 GB disk3s2 3: APFS Volume Recovery 3.0 GB disk3s3 4: APFS Volume Ventura - 数据 16.6 GB disk3s4 5: APFS Volume Macintosh HD 15.3 GB disk3s5 6: APFS Volume Ventura 9.3 GB disk3s7 7: APFS Volume Sonoma - 数据 13.9 GB disk3s8 8: APFS Volume Applications 1.9 GB disk3s9 9: APFS Volume Sonoma 10.0 GB disk3s1010: APFS Volume VM 1.1 GB disk3s11
例如我这里想要撤销Sonoma分区的补丁,就是disk3s10(注意不要选择Sonoma - 数据,要选Sonoma,不要选带数据那个;另外这个名字不一定是系统版本的名称,要取决于你自己取的名字,例如有的人用macos或者Macintosh)。
3.卸载这个分区:diskuitl unmount diskXsY
-bash-3.2# diskutil unmount disk3s10Volume Sonoma on disk3s10 unmounted 由于系统默认的挂载方式是只读的,不能进行下一步操作,所以需要先卸载再以适当的方式挂载。
这里的diskXsY就是上一步找到的标识,我这里就是disk3s10。
注意这里如果卸载错了也不要紧,重启后系统会自动挂载,只要继续卸载上一步找到的分区就行。
注意命令的结果,要卸载成功才能进行后续操作。
4.创建临时挂载点:mkdir dir
-bash-3.2# mkdir dir 默认是在/var/root下创建dir文件夹,在别的地方创建也行,但是后续使用要注意路径
使用ls命令查看是否创建成功
-bash-3.2# ls.bash_history Desktop Downloads dir.forward Documents Library
5.挂载要撤销补丁的分区:mount -o nobrowse -t apfs diskXsY dir
-bash-3.2# mount -o nobrowse -t apfs disk3s10 dir
这里的diskXsY就是第2步找到的标识,我这里就是disk3s10。
通过命令ls dir查看挂载是否成功
-bash-3.2# ls dir.VolumeIcon.icns Users opt.file Volumes private.vol bin sbinApplications cores tmpLibrary dev usrSystem etc var 6.预检查分区:diskutil info diskXsY
-bash-3.2# diskutil info disk3s10 Device Identifier: disk3s10 Device Node: /dev/disk3s10 Whole: No Part of Whole: disk3
Volume Name: Sonoma Mounted: Yes Mount Point: /System/Volumes/Data/private/var/root/dir
...
APFS Snapshots are defined upon this APFS Volume.Snapshot list: Snapshot UUID: 68FEEBDB-4C03-45E5-B957-B82869F95009 Name: com.apple.os.update-2EC73C0A30C4B87F8DA7553A83D8D5A028BEA8C7939287594B2C906F0C309D55 XID: 7924228 Snapshot UUID: 1A88BED2-CE3F-497B-B0B4-8781A33ECED5 Name: com.apple.bless.1F7F6042-D9F0-41E5-A0B5-93CA8592676B XID: 8041363 这里的diskXsY就是第2步找到的标识,我这里就是disk3s10。
查看结果应该有一个或多个Name开头为com.apple.bless的快照,最后一个就是要撤销的快照。有一个Name开头为com.apple.os.install或com.apple.os.update的快照,这个是最初没打补丁之前的快照。如果没有上述的两种快照,那么可能是别的方式更改的快照(例如直接删除了最基础的快照,这样撤销后会导致没有快照无法开机或者干脆就无法撤销快照),此方法可能不适用。
7.撤销补丁:bless --mount dir --bootefi --last-sealed-snapshot
-bash-3.2# bless --mount dir --bootefi --last-sealed-snapshot
如果第4步在别的地方创建的挂载点,那么命令中替换dir
此命令没有返回结果,如果有结果则是失败了的失败原因
8.清理补丁残留
三代CPU:
rm -rf dir/Library/Extensions/AppleIntelFramebufferCapri.kext
rm -rf dir/Library/Extensions/AppleIntelHD4000Graphics.kext
四代CPU:
rm -rf dir/Library/Extensions/AppleIntelFramebufferAzul.kext
rm -rf dir/Library/Extensions/AppleIntelHD5000Graphics.kext
五代CPU:
rm -rf dir/Library/Extensions/AppleIntelBDWGraphicsFramebuffer.kext
rm -rf dir/Library/Extensions/AppleIntelBDWGraphics.kext
六代CPU:
rm -rf dir/Library/Extensions/AppleIntelSKLGraphicsFramebuffer.kext
rm -rf dir/Library/Extensions/AppleIntelSKLGraphics.kext
9.重启:reboot
备注:
(1)在别的系统下也可以完成上述操作,如果执行命令提示没有权限,则在命令前加上sudo即可。
(2)理论上Non-Metal补丁(Nvidia Tesla、Maxwell、Pascal,AMD TeraScale 1、TeraScale 2,Intel Ironlake、Sandy Bridge),Nvidia Kepler补丁,AMD GCN 1-3、Polaris、Vega补丁都可以用,但是我没有测试过,不确定除了撤销快照还要进行哪些操作(源码中是有一些命令的),各位可以研究一下。
OCLP作者,如果遇到补丁后无法进系统就在引导加一条-igfxvesa jackacc 发表于 2023-9-19 16:05 https://bbs.pcbeta.com/static/image/common/back.gif
OCLP作者,如果遇到补丁后无法进系统就在引导加一条-igfxvesa
谢谢帮忙,我试了,还是不行,日志会出现
AMFI: Denying core dump for pid xxx(xxx是具体数字,好多条,每条的数字不一样):too many corpses being created
然后就重启,先是五国,然后就是重复这个流程。
我分别试了用AMFIPass.kext和不用(不用时加amfi=0x80),都是一样的错误 可以再试试-v -x 收藏备用... 技术性文章 学习了 安全模式启动,进去卸载了就行 shenzhibin2012 发表于 2023-9-21 01:11 https://bbs.pcbeta.com/static/image/common/back.gif
安全模式启动,进去卸载了就行
安全模式和单用户模式都试了了,全都不行。
不过我突然有个想法,既然0.6.9对sonoma生效但是对ventura失败应该是某个为sonoma设计的补丁应用到了ventura上,我可以找这个思路找找 技术贴,马克一下 我之前打完补丁没问题,OTA 升级系统后就进不去了,卡进度条,后来一了百了,去 PE 修改 Config,把 ig-platform-id 改成了 0x11111111,然后开机就可以进系统了。。。进系统之后重新用 OCLP 打补丁,然后就搞定了。。。 gujiangjiang 发表于 2023-9-21 18:07 https://bbs.pcbeta.com/static/image/common/back.gif
我之前打完补丁没问题,OTA 升级系统后就进不去了,卡进度条,后来一了百了,去 PE 修改 Config,把 ig-pla ...
是这样的,升级会导致补丁失效,注入正确的ig-platform-id确实会进不去系统,我都是先把DeviceProperties注释掉升级,打完补丁再改回来。 本帖最后由 linioe 于 2023-9-21 19:10 编辑
0.6.9不能用在Ventura的原因找到了,因为这个提交:https://github.com/dortania/OpenCore-Legacy-Patcher/commit/20d04d307d4f068ed84104a4aa4c238f543d0ab1
"Metal 3802 Common Extended": {
"Display Name": "",
"OS Support": {
"Minimum OS Support": {
"OS Major": os_data.os_data.ventura,
"OS Minor": 4 # 13.3
},
"Maximum OS Support": {
"OS Major": os_data.os_data.max_os,
"OS Minor": 99
},
},
"Install": {
"/System/Library/Frameworks": {
"Metal.framework": f"13.2.1-{self.os_major}",
**({"CoreImage.framework": "14.0 Beta 3" } if self.os_major >= os_data.os_data.ventura else {}),
},
"/System/Library/PrivateFrameworks": {
**({"MTLCompiler.framework": "13.2.1" } if self.os_major == os_data.os_data.ventura else {}),
**({"GPUCompiler.framework": "13.2.1" } if self.os_major == os_data.os_data.ventura else {}),
},
},
},
绿色的条件判断应该用 > 而不是 >= ,用 >= 会把这个14.0版本的CoreImage.framework引入到Ventura,造成无法进系统。
OCLP后续应该会解决这个问
技术贴,收藏备用... 很不错,详细。收藏。 我打了BCM94352Z的网卡驱动后,频繁重启,基本上半小时重启下,无语,而且修复后网卡速度极慢,不清楚其他人有没有这问题 感谢分享? 各位可以研究一下 谢谢分享,学习了! 我记得OCLP有移除所有补丁的功能啊 带你拿个杯 发表于 2023-10-29 13:05 https://i.pcbeta.com/static/image/common/back.gif
我记得OCLP有移除所有补丁的功能啊
是的,我这个就是参考那个功能
页:
[1]
2