Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.

jhowarth

macrumors 65816
Jan 13, 2017
1,122
1,500
The USB BigSur installer seems to require only the BootKernelExtensions.kc , with prelinkedkernel fix doesn't work, if you notice /BaseSystem/BaseSystem.dmg now it's an APFS Container with its own Preboot Volume.

Any chance that the legacy usb bootkernelextensions beta1, BootKernelExtensions.kc, from


could be used to get the Big Sur installer usb to produce a usable terminal for csrutil?

Update: I tried using the above BootKernelExtensions.kc and com.apple.boot.plist with rebuilding BaseSystem.dmg on the installer usb with your previous recipe...

cd /Volumes/USBInstallerBigSur/BaseSystem/

hdiutil attach -owners on BaseSystem.dmg -shadow

Customize (directly from Finder) BaseSystem adding patched files

hdiutil detach /dev/diskX (or eject/unmount the "MacOS Base System" volume from Finder)

hdiutil convert -format UDZO -o BaseSystem2.dmg BaseSystem.dmg -shadow

mv BaseSystem.dmg BaseSystembackup.dmg

mv BaseSystem2.dmg BaseSystem.dmg

which unfortunately kernel panics on MacPro 3,1 rather than launching the Recovery app for selecting the Terminal app.
 
Last edited:
  • Like
Reactions: webg3

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
Any chance that the legacy usb bootkernelextensions beta1, BootKernelExtensions.kc, from

https://github.com/jacklukem/BigSurfixes/tree/master/legacy usb bootkernelextensions beta1

could be used to get the Big Sur installer usb to produce a usable terminal for csrutil?

I haven't yet found a reliable method to use the legacy USB on BootKernelExtensions.kc (currently only the prelinkedkernel fix is working for an already installed BigSur).

To disable the new csrutil without an USB BigSur Installer or Recovery, try this:

download the attached file, copy it on the root of any USB MacOS Installer (minimum version El Capitan when apple introduced SIP), then from a recovery terminal type this:

Code:
cd /

./csrutil2 authenticated-root disable

reboot to BigSur and check with csrutil authenticated-root status or nvram csr-active-config

the csr-active-config for disabled authenticated root is: w%08%00%00

edit:
"csrutil2" requires an USB Catalina Installer or Recovery, because it has more updated SDK, simply copy it on an external USB drive, then booting from a Catalina Recovery type: cd /Volumes/ ; ls
cd YourUSBLabel ; ./csrutil2 authenticated-root disable
 

Attachments

  • BigSur csrutil2.zip
    11.2 KB · Views: 190
Last edited:

jhowarth

macrumors 65816
Jan 13, 2017
1,122
1,500
I haven't yet find a reliable method to use the legacy USB on BootKernelExtensions.kc (currently only the prelinkedkernel fix is working for an already installed BigSur).

To disable the new csrutil without an USB BigSur Installer or Recovery, try this:

download the attached file, copy it on the root of any USB MacOS Installer (minimum version El Capitan when apple introduced SIP), then from a recovery terminal type this:

Code:
cd /

./csrutil2 authenticated-root disable

reboot to BigSur and check with csrutil authenticated-root status or nvram csr-active-config

the csr-active-config for disabled authenticated root is: w%08%00%00

Unfortunately csrutil2 won't run under 10.15 due to the use of new symbols in the 10.16 SDK it was built against. Isn't there someway to use nvram to set csr-active-config from the current w%00%00%00to the desired w%08%00%00?
 

Alex-Microsmeta

macrumors 6502
Jul 14, 2018
376
630
Rome
I booted via OpenCore USB…and I have WiFi now! This is before I was going to try your Terminal commands.
It will not boot via default Apple boot picker anymore though – it will crash at start.

WiFi must be working because of your prelinkedkernel file. I still have to fix speakers/mic, display brightness control, graphics acceleration. Everything seems to working as expected
except for menu bar clock which all settings are greyed out for, and if I am logged out if you click the time.
I usually enable 24hr clock & show date in settings.

View attachment 930443

I am trying your commands, but I don't want to mess up WiFi now that it works, not even sure how it works – but it works. I think I may have misunderstood any disk, any folder etc…
View attachment 930442


For audio I use bluetooth speakers....
 

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
Unfortunately csrutil2 won't run under 10.15 due to the use of new symbols in the 10.16 SDK it was built against. Isn't there someway to use nvram to set csr-active-config from the current w%00%00%00to the desired w%08%00%00?

You should copy the "csrutil2" (that I renamed to avoid conflicts with the stock macOS recovery "csrutil") to an USB MacOS Installer root folder /, then booting from that USB MacOS Installer, open a terminal from there (recovery terminal) and type: cd / ; ./csrutil2 authenticated-root disable ; reboot

You can use also an USB Catalina Patcher, but I assume it will work even with a stock USB El Capitan Installer, because apple allows to write the nvram csr-active-config value from a recovery environment that is its BaseSystem.dmg Ramdisk .

For me this "csrutil2" workaround worked (weirdly I have this csr-active-config w%09%00%00 , probably because of USBopencore).
 

jhowarth

macrumors 65816
Jan 13, 2017
1,122
1,500
You should copy the "csrutil2" (that I renamed to avoid conflicts with the stock macOS recovery "csrutil") to an USB MacOS Installer root folder /, then booting from that USB MacOS Installer, open a terminal from there (recovery terminal) and type: cd / ; ./csrutil2 authenticated-root disable ; reboot

You can use also an USB Catalina Patcher, but I assume it will work even with a stock USB El Capitan Installer, because apple allows to write the nvram csr-active-config value from a recovery environment that is its BaseSystem.dmg Ramdisk .

For me this "csrutil2" workaround worked (weirdly I have this csr-active-config w%09%00%00 , probably because of USBopencore).

I'll try using an El Capitan installer usb with the csrutil2 however when I tried to run it, I got an error about a missing symbol from CoreFoundation with a message about the binary being built against 10.16 but run on 10.15.
 

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
I'll try using an El Capitan installer usb with the csrutil2 however when I tried to run it, I got an error about a missing symbol from CoreFoundation with a message about the binary being built against 10.16 but run on 10.15.

Then try to copy that "csrutil2" to a root folder of an USB Catalina Patcher (that surely has recent SDK since Catalina it's a dual APFS system too as BigSur).
 

indiawallah

macrumors member
Mar 14, 2020
33
88
Great work jackluke. I put the '"crustil2" file into the root of my USB Catalina Installer and followed the terminal commands and voila on rebooting into Big Sur and checking on authenticated-root status found it to be disabled!!!
 

Attachments

  • Screenshot 2020-07-04 at 15.44.48.png
    Screenshot 2020-07-04 at 15.44.48.png
    2.2 MB · Views: 472

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
Great work jackluke. I put the '"crustil2" file into the root of my USB Catalina Installer and followed the terminal commands and voila on rebooting into Big Sur and checking on authenticated-root status found it to be disabled!!!

From your BigSur normal booting what's the output for: nvram csr-active-config

And do you tested on a non-APFS or legacy USB machine (or dual GPU mac) ?
 
Last edited:

Alex-Microsmeta

macrumors 6502
Jul 14, 2018
376
630
Rome
Probably you already know but:

@ASentientBot @jackluke for not-metal macs maybe you can modify Nvidia Web drivers for High Sierra ... https://www.insanelymac.com/forum/t...es-for-macos-high-sierra-update-june-02-2020/

You can patch the installer for Mojave and maybe for Big Sur...

 
Last edited:

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
@ASentientBot @jackluke for not-metal macs maybe this Nvidia Web drivers for High Sierra ... (continued)

I haven't yet checked any Nvidia Tesla driver because for now I want to make "metal prelinkedkernel", but ASentientBot (who patched those drivers on Mojave) already added them to BigSur detecting the display and brightness control if I don't get wrong.
 

indiawallah

macrumors member
Mar 14, 2020
33
88
From your BigSur normal booting what's the output for: nvram csr-active-config

And do you tested on a non-APFS or legacy USB machine (or dual GPU mac) ?

I am on a MacBook Pro 5,4 mid 2009.

The output I got from entering "nvram csr-active-config" in Big Sur terminal was w%09%00%00
 

Attachments

  • Screenshot 2020-07-04 at 18.20.11.png
    Screenshot 2020-07-04 at 18.20.11.png
    2 MB · Views: 182

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
I am on a MacBook Pro 5,4 mid 2009.

The output I got from entering "nvram csr-active-config" in Big Sur terminal was w%09%00%00

Ok so my "csrutil2" method altered a bit the "BigSur SIP disabled" standard nvram csr-active-config that is: w%08%00%00

on Catalina and previous macOS was: w%00%00%00

in hex: 0x67 (or 0x77 through opencore)

while instead using "csrutil2" it is (also without USBopencore): w%09%00%00

converted in hex it is: 0x977

but ASentientBot for his patched boot.efi advised to use 0xFFF (instead of 0x867) so using 09 instead of 08 won't cause any issue, the result that matters is that new SIP authenticated-root is disabled for a non-APFS (legacy usb) sealed System snapshot volume booting BigSur.

Because with a sealed BigSur System Volume and a non-APFS Mac can't copy any patched boot.efi to this path /usr/standalone/i386/

so this "csrutil2" workaround is a reliable method.
 
Last edited:

jhowarth

macrumors 65816
Jan 13, 2017
1,122
1,500
Then try to copy that "csrutil2" to a root folder of an USB Catalina Patcher (that surely has recent SDK since Catalina it's a dual APFS system too as BigSur).

Okay. I got csrutil2 working by placing it on a patched Catalina usb installer instead of a patched Mojave usb installer. Under Big Sur, I now see...

% sudo csrutil authenticated-root status
Authenticated Root status: disabled

The instructions that I found on twitter for replacing the kext are...

Code:
use "mount" detect the root mount point of your BigSur System (snapshot) example a generic "diskXsYsZ"
"sZ" is a "locked snapshot" (from where you are booting) so you don't write it in next command

sudo mount -o nobrowse -t apfs /dev/diskXsY /Volumes/AnyDiskLabel/AnyEmptyFolder/

AnyDiskLabel is an already mounted disk on your Mac
AnyEmptyFolder is an empty folder that you make on that disk

your non-snapshot System mounted diskXsY should have this mount point:

/Volumes/AnyDiskLabel/BigSurLabel/

(AnyEmptyFolder is your BigSurLabel after used as mount point)

then replace your kext here:

/Volumes/AnyDiskLabel/BigSurLabel/System/Library/Extensions/

(chown and chmod the kext before replace)

after you replaced, if you used the prelinkedkernel method you should use this:

kextcache -i / ; kcditto

then make a new bootable snapshot with embedded patched kext:

bless --folder /Volumes/AnyDiskLabel/BigSurLabel/System/Library/CoreServices --bootefi --create-snapshot

I am still confused about the steps for replacing the kext. My previous experiment with mounting a snapshot seemed to indicate that, after the mount, the snapshot became the new / filesystem. So should I be replacing the kext in the original filesystem at /Volumes/AnyDiskLabel/BigSurLabel/System/Library/Extensions/ or in the mounted snapshot at /Volumes/AnyDiskLabel/AnyEmptyFolder/System/Library/Extensions/ or /System/Library/Extensions/? Also where exactly is the safest place to put the /Volumes/AnyDiskLabel/AnyEmptyFolder/ mount put. Last time I used /Users/howarth/snapshot_mnt_point.
 

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
Okay. I got csrutil2 working by placing it on a patched Catalina usb installer instead of a patched Mojave usb installer. Under Big Sur, I now see...

% sudo csrutil authenticated-root status
Authenticated Root status: disabled

The instructions that I found on twitter for replacing the kext are...

Code:
use "mount" detect the root mount point of your BigSur System (snapshot) example a generic "diskXsYsZ"
"sZ" is a "locked snapshot" (from where you are booting) so you don't write it in next command

sudo mount -o nobrowse -t apfs /dev/diskXsY /Volumes/AnyDiskLabel/AnyEmptyFolder/

AnyDiskLabel is an already mounted disk on your Mac
AnyEmptyFolder is an empty folder that you make on that disk

your non-snapshot System mounted diskXsY should have this mount point:

/Volumes/AnyDiskLabel/BigSurLabel/

(AnyEmptyFolder is your BigSurLabel after used as mount point)

then replace your kext here:

/Volumes/AnyDiskLabel/BigSurLabel/System/Library/Extensions/

(chown and chmod the kext before replace)

after you replaced, if you used the prelinkedkernel method you should use this:

kextcache -i / ; kcditto

then make a new bootable snapshot with embedded patched kext:

bless --folder /Volumes/AnyDiskLabel/BigSurLabel/System/Library/CoreServices --bootefi --create-snapshot

I am still confused about the steps for replacing the kext. My previous experiment with mounting a snapshot seemed to indicate that, after the mount, the snapshot became the new / filesystem. So should I be replacing the kext in the original filesystem at /Volumes/AnyDiskLabel/BigSurLabel/System/Library/Extensions/ or in the mounted snapshot at /Volumes/AnyDiskLabel/AnyEmptyFolder/System/Library/Extensions/ or /System/Library/Extensions/? Also where exactly is the safest place to put the /Volumes/AnyDiskLabel/AnyEmptyFolder/ mount put. Last time I used /Users/howarth/snapshot_mnt_point.

I don't have BigSur snapshots (that's why I can build custom prelinkedkernel), so don't know their exact behaviour, but the new snapshot should be only temporary on the folder mount point, and then I assume it copies the snapshot on the BigSur APFS container.

But what's the safest place to where put the sealed "BigSur System", I am not sure of it.
 

quaccOS

macrumors regular
Apr 19, 2020
126
208
WiFi crashed…we have a code rosso! Replacing kexts seems to never work…
<do not loc>.png
Bash:
home@MBP71 ~ % sudo mount -o nobrowse -t apfs /dev/disk1s5 /Volumes/OpenCore/BigSur/
Password: 
home@MBP71 ~ % chown 0:0 /Volumes/OpenCore/BigSur/System/Library/Extensions
home@MBP71 ~ % chmod 755 /Volumes/OpenCore/BigSur/System/Library/Extensions
home@MBP71 ~ % chown 0:0 /Volumes/OpenCore/Kexts; chmod 755 /Volumes/OpenCore/Kexts
chown: /Volumes/OpenCore/Kexts: Operation not permitted
home@MBP71 ~ % cd /System/Library/ 
home@MBP71 Library % sudo chown 0:0 /Volumes/OpenCore/Kexts
Password:
home@MBP71 Library % cd ~/
home@MBP71 ~ % kextcache -i /; kcditto
You must be running as root to update prelinked kernel.
Copying deferred prelinked kernels in /...
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/kext_tools/kext_tools-685/kc_staging.m.542: You must be running as root to manage the prelinked kernel staging area.
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/kext_tools/kext_tools-685/kcditto_main.m.43: Error copying deferred prelinked kernels (standalone)...
Copying KCs in /...
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/kext_tools/kext_tools-685/kc_staging.m.379: You must be running as root to manage the kext collection preboot area.
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/kext_tools/kext_tools-685/kcditto_main.m.49: Error copying KCs (standalone)...
home@MBP71 ~ % sudo kextcache -i /; sudo kcditto
Ignoring CoreStorageLVF UUID Request for apfs snapshot: /
Can't read info dictionary for /Library/Apple/System/Library/Extensions/AppleMobileDevice.kext: IOCFUnserialize: syntax error near line 1.
Can't read info dictionary for /Library/Apple/System/Library/Extensions/AppleMobileDevice.kext: IOCFUnserialize: syntax error near line 1.
Can't read info dictionary for /Library/Apple/System/Library/Extensions/AppleMobileDevice.kext: IOCFUnserialize: syntax error near line 1.
Can't read info dictionary for /Library/Apple/System/Library/Extensions/AppleMobileDevice.kext: IOCFUnserialize: syntax error near line 1.
Can't read info dictionary for /Library/Apple/System/Library/Extensions/AppleMobileDevice.kext: IOCFUnserialize: syntax error near line 1.
Copying deferred prelinked kernels in /...
Ignoring CoreStorageLVF UUID Request for apfs snapshot: /
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/kext_tools/kext_tools-685/kc_staging.m.279: Encountered error while inspecting path: Error Domain=NSCocoaErrorDomain Code=260 "The folder “PrelinkedKernels” doesn’t exist." UserInfo={NSFilePath=/Library/Apple/System/Library/PrelinkedKernels, NSUserStringVariant=(
    Folder
), NSUnderlyingError=0x7f861bd05ae0 {Error Domain=NSOSStatusErrorDomain Code=-43 "fnfErr: File not found"}}
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/kext_tools/kext_tools-685/kc_staging.m.279: Encountered error while inspecting path: Error Domain=NSCocoaErrorDomain Code=260 "The folder “PrelinkedKernels” doesn’t exist." UserInfo={NSFilePath=/Library/Apple/System/Library/PrelinkedKernels, NSUserStringVariant=(
    Folder
), NSUnderlyingError=0x7f861bc0d860 {Error Domain=NSOSStatusErrorDomain Code=-43 "fnfErr: File not found"}}
Copying KCs in /...
Ignoring CoreStorageLVF UUID Request for apfs snapshot: /
System Volume UUID: E0FB33C6-05B6-42FC-A08D-0E552D1DEB9E
Volume Group UUID: 2B9C924F-9B05-4337-9383-0C2057994587
Preboot disk: /dev/disk1s2
Preboot volume: /System/Volumes/Preboot
Copying: /System/Library/KernelCollections/BootKernelExtensions.kc.elides -> /System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/boot/System/Library/KernelCollections
Copying: /System/Library/KernelCollections/BootKernelExtensions.kc -> /System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/boot/System/Library/KernelCollections
Copying: /System/Library/PrelinkedKernels/immutablekernel -> /System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/System/Library/PrelinkedKernels
Copying: /System/Library/PrelinkedKernels/prelinkedkernel -> /System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/System/Library/PrelinkedKernels
home@MBP71 ~ % bless --folder /Volumes/OpenCore/BigSur/System/Library/CoreServices --bootefi --create-snapshot
Couldn't copy file "/Volumes/OpenCore/BigSur/System/Library/CoreServices/boot.efi.x86legacyap.im4m" - Error Domain=NSCocoaErrorDomain Code=516 "“boot.efi.x86legacyap.im4m” couldn’t be copied to “CoreServices” because an item with the same name already exists." UserInfo={NSSourceFilePathErrorKey=/System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/usr/standalone/i386/boot.efi.x86legacyap.im4m, NSUserStringVariant=(
    Copy
), NSDestinationFilePath=/Volumes/OpenCore/BigSur/System/Library/CoreServices/boot.efi.x86legacyap.im4m, NSFilePath=/System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/usr/standalone/i386/boot.efi.x86legacyap.im4m, NSUnderlyingError=0x7fb356c15950 {Error Domain=NSPOSIXErrorDomain Code=17 "File exists"}}
Can't copy img4 manifests for file /Volumes/OpenCore/BigSur/System/Library/CoreServices/boot.efi
home@MBP71 ~ % clear     

home@MBP71 ~ % bless --folder /Volumes/OpenCore/BigSur/System/Library/CoreServices --bootefi --create-snapshot
Couldn't copy file "/Volumes/OpenCore/BigSur/System/Library/CoreServices/boot.efi.x86legacyap.im4m" - Error Domain=NSCocoaErrorDomain Code=516 "“boot.efi.x86legacyap.im4m” couldn’t be copied to “CoreServices” because an item with the same name already exists." UserInfo={NSSourceFilePathErrorKey=/System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/usr/standalone/i386/boot.efi.x86legacyap.im4m, NSUserStringVariant=(
    Copy
), NSDestinationFilePath=/Volumes/OpenCore/BigSur/System/Library/CoreServices/boot.efi.x86legacyap.im4m, NSFilePath=/System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/usr/standalone/i386/boot.efi.x86legacyap.im4m, NSUnderlyingError=0x7fbe0c5051b0 {Error Domain=NSPOSIXErrorDomain Code=17 "File exists"}}
Can't copy img4 manifests for file /Volumes/OpenCore/BigSur/System/Library/CoreServices/boot.efi
 

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
WiFi crashed…we have a code rosso! Replacing kexts seems to never work…
View attachment 930616
Bash:
home@MBP71 ~ % sudo mount -o nobrowse -t apfs /dev/disk1s5 /Volumes/OpenCore/BigSur/
Password:
home@MBP71 ~ % chown 0:0 /Volumes/OpenCore/BigSur/System/Library/Extensions
home@MBP71 ~ % chmod 755 /Volumes/OpenCore/BigSur/System/Library/Extensions
home@MBP71 ~ % chown 0:0 /Volumes/OpenCore/Kexts; chmod 755 /Volumes/OpenCore/Kexts
chown: /Volumes/OpenCore/Kexts: Operation not permitted
home@MBP71 ~ % cd /System/Library/
home@MBP71 Library % sudo chown 0:0 /Volumes/OpenCore/Kexts
Password:
home@MBP71 Library % cd ~/
home@MBP71 ~ % kextcache -i /; kcditto
You must be running as root to update prelinked kernel.
Copying deferred prelinked kernels in /...
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/kext_tools/kext_tools-685/kc_staging.m.542: You must be running as root to manage the prelinked kernel staging area.
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/kext_tools/kext_tools-685/kcditto_main.m.43: Error copying deferred prelinked kernels (standalone)...
Copying KCs in /...
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/kext_tools/kext_tools-685/kc_staging.m.379: You must be running as root to manage the kext collection preboot area.
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/kext_tools/kext_tools-685/kcditto_main.m.49: Error copying KCs (standalone)...
home@MBP71 ~ % sudo kextcache -i /; sudo kcditto
Ignoring CoreStorageLVF UUID Request for apfs snapshot: /
Can't read info dictionary for /Library/Apple/System/Library/Extensions/AppleMobileDevice.kext: IOCFUnserialize: syntax error near line 1.
Can't read info dictionary for /Library/Apple/System/Library/Extensions/AppleMobileDevice.kext: IOCFUnserialize: syntax error near line 1.
Can't read info dictionary for /Library/Apple/System/Library/Extensions/AppleMobileDevice.kext: IOCFUnserialize: syntax error near line 1.
Can't read info dictionary for /Library/Apple/System/Library/Extensions/AppleMobileDevice.kext: IOCFUnserialize: syntax error near line 1.
Can't read info dictionary for /Library/Apple/System/Library/Extensions/AppleMobileDevice.kext: IOCFUnserialize: syntax error near line 1.
Copying deferred prelinked kernels in /...
Ignoring CoreStorageLVF UUID Request for apfs snapshot: /
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/kext_tools/kext_tools-685/kc_staging.m.279: Encountered error while inspecting path: Error Domain=NSCocoaErrorDomain Code=260 "The folder “PrelinkedKernels” doesn’t exist." UserInfo={NSFilePath=/Library/Apple/System/Library/PrelinkedKernels, NSUserStringVariant=(
    Folder
), NSUnderlyingError=0x7f861bd05ae0 {Error Domain=NSOSStatusErrorDomain Code=-43 "fnfErr: File not found"}}
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/kext_tools/kext_tools-685/kc_staging.m.279: Encountered error while inspecting path: Error Domain=NSCocoaErrorDomain Code=260 "The folder “PrelinkedKernels” doesn’t exist." UserInfo={NSFilePath=/Library/Apple/System/Library/PrelinkedKernels, NSUserStringVariant=(
    Folder
), NSUnderlyingError=0x7f861bc0d860 {Error Domain=NSOSStatusErrorDomain Code=-43 "fnfErr: File not found"}}
Copying KCs in /...
Ignoring CoreStorageLVF UUID Request for apfs snapshot: /
System Volume UUID: E0FB33C6-05B6-42FC-A08D-0E552D1DEB9E
Volume Group UUID: 2B9C924F-9B05-4337-9383-0C2057994587
Preboot disk: /dev/disk1s2
Preboot volume: /System/Volumes/Preboot
Copying: /System/Library/KernelCollections/BootKernelExtensions.kc.elides -> /System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/boot/System/Library/KernelCollections
Copying: /System/Library/KernelCollections/BootKernelExtensions.kc -> /System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/boot/System/Library/KernelCollections
Copying: /System/Library/PrelinkedKernels/immutablekernel -> /System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/System/Library/PrelinkedKernels
Copying: /System/Library/PrelinkedKernels/prelinkedkernel -> /System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/System/Library/PrelinkedKernels
home@MBP71 ~ % bless --folder /Volumes/OpenCore/BigSur/System/Library/CoreServices --bootefi --create-snapshot
Couldn't copy file "/Volumes/OpenCore/BigSur/System/Library/CoreServices/boot.efi.x86legacyap.im4m" - Error Domain=NSCocoaErrorDomain Code=516 "“boot.efi.x86legacyap.im4m” couldn’t be copied to “CoreServices” because an item with the same name already exists." UserInfo={NSSourceFilePathErrorKey=/System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/usr/standalone/i386/boot.efi.x86legacyap.im4m, NSUserStringVariant=(
    Copy
), NSDestinationFilePath=/Volumes/OpenCore/BigSur/System/Library/CoreServices/boot.efi.x86legacyap.im4m, NSFilePath=/System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/usr/standalone/i386/boot.efi.x86legacyap.im4m, NSUnderlyingError=0x7fb356c15950 {Error Domain=NSPOSIXErrorDomain Code=17 "File exists"}}
Can't copy img4 manifests for file /Volumes/OpenCore/BigSur/System/Library/CoreServices/boot.efi
home@MBP71 ~ % clear  

home@MBP71 ~ % bless --folder /Volumes/OpenCore/BigSur/System/Library/CoreServices --bootefi --create-snapshot
Couldn't copy file "/Volumes/OpenCore/BigSur/System/Library/CoreServices/boot.efi.x86legacyap.im4m" - Error Domain=NSCocoaErrorDomain Code=516 "“boot.efi.x86legacyap.im4m” couldn’t be copied to “CoreServices” because an item with the same name already exists." UserInfo={NSSourceFilePathErrorKey=/System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/usr/standalone/i386/boot.efi.x86legacyap.im4m, NSUserStringVariant=(
    Copy
), NSDestinationFilePath=/Volumes/OpenCore/BigSur/System/Library/CoreServices/boot.efi.x86legacyap.im4m, NSFilePath=/System/Volumes/Preboot/2B9C924F-9B05-4337-9383-0C2057994587/usr/standalone/i386/boot.efi.x86legacyap.im4m, NSUnderlyingError=0x7fbe0c5051b0 {Error Domain=NSPOSIXErrorDomain Code=17 "File exists"}}
Can't copy img4 manifests for file /Volumes/OpenCore/BigSur/System/Library/CoreServices/boot.efi

The syntax in some parts is wrong, you should use this:

sudo chown -R 0:0 /Volumes/OpenCore/BigSur/System/Library/Extensions/
sudo chmod -R 755 /Volumes/OpenCore/BigSur/System/Library/Extensions/
sudo kextcache -i /
sudo kmutil --install-update-all
sudo kcditto
sudo bless --folder /Volumes/OpenCore/BigSur/System/Library/CoreServices --bootefi --create-snapshot
 

jhowarth

macrumors 65816
Jan 13, 2017
1,122
1,500
I don't have BigSur snapshots (that's why I can build custom prelinkedkernel), so don't know their exact behaviour, but the new snapshot should be only temporary on the folder mount point, and then I assume it copies the snapshot on the BigSur APFS container.

But what's the safest place to where put the sealed "BigSur System", I am not sure of it.

Okay. Assuming that I have no snapshots present under Big Sur and can 'mount -uw /' without errors, would...

sudo kextcache -i /
sudo kextutil --install-update-all
sudo kcditto

be sufficient to rebuild the prelinked kernel using the newly install kext in SLE or do I also need to execute something like...

sudo bless /System/Library/CoreServices --bootefi
 
Last edited:

indiawallah

macrumors member
Mar 14, 2020
33
88
Ok so my "csrutil2" method altered a bit the "BigSur SIP disabled" standard nvram csr-active-config that is: w%08%00%00

on Catalina and previous macOS was: w%00%00%00

in hex: 0x67 (or 0x77 through opencore)

while instead using "csrutil2" it is (also without USBopencore): w%09%00%00

converted in hex it is: 0x977

but ASentientBot for his patched boot.efi advised to use 0xFFF (instead of 0x867) so using 09 instead of 08 won't cause any issue, the result that matters is that new SIP authenticated-root is disabled for a non-APFS (legacy usb) sealed System snapshot volume booting BigSur.

Because with a sealed BigSur System Volume and a non-APFS Mac can't copy any patched boot.efi to this path /usr/standalone/i386/

so this "csrutil2" workaround is a reliable method.
Pleased I could be a help in some small way , though I have no real idea about the results that you can make from the values from Big Sur terminal , with me being an uber noob and all .;)
 

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
I guess I'm confused here. Should I expect Big Sur to allow me to mount the / filesystem now for writes now that authenticated -root is disabled? I was under the impression that I still had to resort to snapshots if I wanted to replace kext in /System/Library/Extensions under Big Sur.

Currently since from a non-APFS or legacy usb Mac you can't use a BigSur Recovery (to delete snapshots for example), you can only make a new snapshot with patched kext.

With "authenticated-root disabled" you can mount System Volume and make it temporary writeable.

Use from terminal: mount

locate your diskXsYsZ , and mount the diskXsY with previous twitter method.
 

jhowarth

macrumors 65816
Jan 13, 2017
1,122
1,500
Currently since from a non-APFS or legacy usb Mac you can't use a BigSur Recovery (to delete snapshots for example), you can only make a new snapshot with patched kext.

With "authenticated-root disabled" you can mount System Volume and make it temporary writeable.

Use from terminal: mount

locate your diskXsYsZ , and mount the diskXsY with previous twitter method.

Do I need to do something like...

sudo bless /System/Library/CoreServices --bootefi

after

sudo kextcache -i /
sudo kextutil --install-update-all
sudo kcditto

for a root mounted file system on Big Sur?
 

jackluke

macrumors 68040
Jun 15, 2018
3,321
8,068
Do I need to do something like...

sudo bless /System/Library/CoreServices --bootefi

after

sudo kextcache -i /
sudo kextutil --install-update-all
sudo kcditto

for a root mounted file system on Big Sur?

I guess so, but twitter user suggested to use --bootefi --create-snapshot

the path for root mounted system is this: /Volumes/mount-point/System/Library/CoreServices/

I guess /System/Library/CoreServices/ is the diskXsYsZ that is a snapshot, so you should make the new snapshot from the mount-point path.

Also don't exclude that an unbootable new snapshot could be due to wrong kext installed.
 

jhowarth

macrumors 65816
Jan 13, 2017
1,122
1,500
I guess so, but twitter user suggested to use --bootefi --create-snapshot

This is for the non-snapshot method you are using. Perhaps I am confused, but I assumed for your prelinked kernels you were using...

mount -uw /
(manually install kext)
sudo kextcache -i /
sudo kextutil --install-update-all
sudo kcditto

Do you execute bless at this point or is that only required when snapshots are involved?
 

quaccOS

macrumors regular
Apr 19, 2020
126
208
To enable BigSur Wifi use this: https://forums.macrumors.com/thread...unsupported-macs-thread.2242172/post-28595200

To enable BigSur speakers and mic use the file attached (stock from my HighSierra installation).

To install both properly follow these steps:

(possibly booting using usbopencoreapfsloader3 and the prelinkedkernel)

open a BigSur terminal and type:

Code:
sudo mount -uw / ; killall Finder

open /System/Library/Extensions/

replace from Finder in that path the IO80211Family.kext and AppleHDA.kext

return to terminal continue typing

Code:
sudo -s

chmod -R 755 /System/Library/Extensions/

chown -R 0:0 /System/Library/Extensions/

kextcache -i /

(this is required to update the prelinkedkernel)

kmutil install --update-all

(this is required to update the BootKernelExtensions.kc)

kcditto

(this is required to copy both the "kextcache" to the APFS Preboot)

at next reboot both should work on unsupported BigSur Mac.
@jackluke @ASentientBot Could you write a script to try to inject the NVIDIA Geforce 320M kets used in Catalina for Macmini4,1 in BS, too? If I crash BS I will reinstall it on internal SSD for the 8th time
Thank you!

NVIDIA GeForce 320M
The syntax in some parts is wrong, you should use this:

sudo chown -R 0:0 /Volumes/OpenCore/BigSur/System/Library/Extensions/
sudo chmod -R 755 /Volumes/OpenCore/BigSur/System/Library/Extensions/
sudo kextcache -i /
sudo kmutil --install-update-all
sudo kcditto
sudo bless --folder /Volumes/OpenCore/BigSur/System/Library/CoreServices --bootefi --create-snapshot
All those commands executed successfully. I might be using using the wrong kexts. I always replace the ones in /System/Library/Extensions, and then enter sudo kextcache -i /; sudo kmutil install --update-all; sudo kcditto

@jackluke's AppleHDA.kext
@highvoltage12v's IO80211Family.kext
@Alex-Microsmeta's NVIDIA kexts
NVDANV50HalTesla.kext
NVMeSMARTLib.plugin
NVDAResman.kext
NVSMU.kext
NVDAGF100Hal.kext
NVDAResmanTesla.kext
NVDAGK100Hal.kext
NVDAStartup.kext

The WiFi randomly worked (then disappeared) because I used your ready-made prelinkedkernel file. Replacing the kexts hasn't yielded any results so far. OpenCoreAPFSloader3 along with modified Boot plists has allowed booting – but replacing kexts has been so difficult, maybe due to APFS snapshots…I think snapshots booting undo all our changes. I can't use Fix scripts either, because Ethernet isn't reliable – it can't fetch GitHub files.

I'm still documenting my method at post #796. After shifting to prelinkedkernel OpenCore USB method, kext replacement is the most confusing part – because snapshots must mess with everything
 
Last edited:

jhowarth

macrumors 65816
Jan 13, 2017
1,122
1,500
I guess so, but twitter user suggested to use --bootefi --create-snapshot

the path for root mounted system is this: /Volumes/mount-point/System/Library/CoreServices/

I guess /System/Library/CoreServices/ is the diskXsYsZ that is a snapshot, so you should make the new snapshot from the mount-point path.

Also don't exclude that an unbootable new snapshot could be due to wrong kext installed.

Turns out that 'mount -uw /' still fails for me despite disabling authenticated-root. My understanding is that this may be due to the update snapshot that somehow got pushed onto my machine.

Code:
/dev/disk6 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *250.1 GB   disk6
   1:                        EFI ⁨EFI⁩                     209.7 MB   disk6s1
   2:                 Apple_APFS ⁨Container disk7⁩         249.8 GB   disk6s2

/dev/disk7 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +249.8 GB   disk7
                                 Physical Store disk6s2
   1:                APFS Volume ⁨BigSur - Data⁩           12.7 GB    disk7s1
   2:                APFS Volume ⁨Preboot⁩                 316.7 MB   disk7s2
   3:                APFS Volume ⁨Recovery⁩                740.8 MB   disk7s3
   4:                APFS Volume ⁨VM⁩                      1.1 MB     disk7s4
   5:                APFS Volume ⁨BigSur⁩                  14.0 GB    disk7s5
   6:              APFS Snapshot ⁨com.apple.os.update-...⁩ 14.0 GB    disk7s5s1

So I guess that I'll have to risk using the snapshot approach to replacing the kext.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.