Repository navigation
Fixing Tahoe installer stage 2 for T2 Mac #519
Replies: 53 comments 463 replies
|
@zkennedy137, I could do discord. If we did a google doc you couldn't lock it down because I don't have a google account. |
|
Hey everyone! @zkennedy137 @albert-mueller @gandolf243 Tagging along on this as I've been digging into the OSInstallerSetup / OSInstaller.framework internals on Tahoe. Here's a full architectural breakdown of why Stage 2 is failing on older T2s, why Albert's 2020 machine works, and the exact hook target we should focus on instead of hunting through thousands of lines of Ghidra disassembly. 1. Why Albert's 2020 MacBook Pro works (and older T2s fail)
2. Why global VMM spoofing breaks physical T2sAs @zkennedy137 noted with the APFS driver issue:
3. The exact Stage 2 Execution PipelineIn There are no public
Every single element in this queue implements the standard selector: When 4. The Targeted SolutionWe don't need to spoof the whole system as a VM or guess obscure booleans. We just need to make
Implementation Paths:
Once this method returns |
|
@Medelcartelinc did he actually get it working on a macbookpro16,3 or MacBook Pro 16,2 because if so im on a MacBookpro 16,3 but I don't know if when building OpenCore does it auto inject the right boot-args for the Tahoe installer with SpoofVMM.kext enabled |
|
@Medelcartelinc hey does your fork still contain the fix I know its very fragile but I just want to get Tahoe installed to a partition for when this gets fully figured out |
|
https://claude.ai/share/667355a5-e2d2-42d0-8a68-471a466949c6 |
|
I’m glad to see things are coming along well :) I tried to post this earlier but I guess it didn’t post. I told Claude to update the SpoofVMM kext to inject the OSIUpdateFirmwareElement=1 and it wouldn’t do it. Gemini however happily obliged. I tried to post this zip earlier. I’m glad we got it fixed just wanted to share this incase it helps at all. Could be exactly what @Medelcartelinc already did with RestrictEvents.kext but figured it wouldn’t hurt. It is the updated source code for it. |
|
@Medelcartelinc is the new SpoofVMM kext that you gave a fix for also the stage 2 of installer issues or is it still being figured out. |
|
Booting into stage 2 rn |
|
@Medelcartelinc hmm....... |
|
install.log |
|
@gandolf243 @Medelcartelinc @albert-mueller void FUN_100000878(undefined8 param_1) { (*(code )PTR__objc_retain_100002058)(); this is from MobileAssetEarlyBootTask |
|
@Medelcartelinc, here is what ChatGPT said (I know that you already found the issue, but this could shed light on some new areas): Yes. These new files clarify something important: removing 1.
|
|
Hey everyone! 👋 @albert-mueller @zkennedy137 @jakecaley @gandolf243 After digging deep into Jake's latest clean logs, we finally have the exact explanation for why Stage 2 was aborting with Here is the breakdown and a step-by-step guide on how to test the fix: 1. Why Stage 2 was failingIn The reason:
In 2. The Solution: SpoofVMM v4.9.1I updated and compiled SpoofVMM v4.9.1 to re-introduce Board-ID swapping, but made it safe and opt-in so normal desktop boots don't break Wi-Fi calibration:
3. How to test it
|
|
@Medelcartelinc could you tell me what exactly Stage 1, Stage 2 and any other stages are and whether or not they are completed? This way I can track you guy a bit better. |
|
@albert-mueller @andi1963 @zkennedy137 @jakecaley Thanks for the ping! Here is the clarification on the 1. The
|
|
When I get home from work today I will attempt to do a fresh install on my macbookair8,2 and use tahoefixup1.0.2 without spoofVMM and see what results I get. @albert-mueller @m0rtiis1 @arlogics @gandolf243 @jakecaley @42Colin-jpg fixed it sorry I was at work trying to type that. @matteoiacca |
|
Just a quick clarification on naming so there's no confusion: the latest build is T2TahoeFixup v1.0.2 (attached in Issue #561 as A couple of quick tips for your test tonight on the MacBookAir8,2:
Good luck with the test tonight! |
Unfortunately, I updated to 26.7.1 and use the updated kext but gets stuck here: |
|
Hey @albert-mueller @zkennedy137 @gandolf243, just released T2TahoeFixup v1.0.3 (
All 33/33 tests in the simulation harness passed with 100% coverage. Disabling the Internal T2 SSD at OpenCore LevelRegarding the internal SSD mount deadlock on Tahoe 26.7.1: On T2 Macs, internal storage is raw Apple NAND driven by To disable the internal SSD cleanly without risking ACPI/BridgeOS power management desync (avoiding <dict>
<key>Arch</key>
<string>x86_64</string>
<key>Comment</key>
<string>Disable internal T2 SSD controller (AppleANS2Controller)</string>
<key>Enabled</key>
<true/>
<key>Identifier</key>
<string>com.apple.driver.AppleANS2Controller</string>
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string></string>
<key>Strategy</key>
<string>Disable</string>
</dict>Why this is the safest and cleanest approach:
Pairing T2TahoeFixup v1.0.3 with blocking |
|
Update on the macOS Tahoe T2 Stage 2 boot progress (@zkennedy137 @albert-mueller @gandolf243): Looking at the photo from @zkennedy137 on MacBookAir8,2 ( I disassembled this->useOptionalSEP = (ACMKernelUtils::getEOSDeviceType() == 0x20000); // 0x20000 = T2When In a VM (where there is no physical T2 chip), macOS Tahoe boots to desktop without issues because To verify this before pushing another build, I built a simulation environment with a mock T2 / SEP / AppleCredentialManager in I've updated
Testing instructions:
(I found |
|
Important update to While |
|
GUYS!!!! @Medelcartelinc account is unbanned!!! He is back!!! |
|
Hey @albert-mueller, @zkennedy137, Here is a detailed breakdown of what happened and the fixes introduced in T2TahoeFixup v1.0.5:
Make sure to test with |
|
Hey @albert-mueller, To get back into macOS Sequoia on your 2018 Mac mini right now without needing a USB mouse or macOS Recovery, here are the two fastest ways to fix it: Method 1: Directly from Windows (No reboot/mouse hassle)Since you are currently in Windows:
|
|
@Medelcartelinc @albert-mueller I was able to get further installing to an external drive vs. internal but eventually ran into the same issue as before where install stops at 28 minutes with "An error occurred preparing the software update" (macmini8,1). |









Uh oh!
There was an error while loading. Please reload this page.
So I have a theory but I’d like to get more than just me working on it. This way we can all check it with different eyes and minds. Then confer in how it could work or not work etc. we could either pick time in the evenings to meet on discord or have a Google Docs that I shared and upload findings and or patches etc.
My theory is that if we could figure out the Boolean or other variable in the installer for Tahoe tells the installer to update firmware. Then we could patch the value to not install the update. This may allow us to install stage 2. It seems it is mainly the firmware update that is our problem.
Now technically there is one thing I did not test. It is very risky if it does work. One of three things could happen 1. The installer finishes and updates the firmware on the unsupported T2 mac, 2. It does the firmware update and bricks the Mac, or 3. It doesn’t change the point of failure and we get the error and nothing happens.
Here is the information I’ve come up with and want to research together.
osinstallersetupd-targeted-search.pdf
Technical Summary_ osinstallersetupd Analysis.pdf
@Medelcartelinc @albert-mueller @gandolf243
All reactions