@@ -63,60 +63,19 @@ def get_startup_display_mode():
6363 return None
6464
6565def request_upgrade ():
66- p_error ("Mismatched System Firmware / System Recovery detected!" )
66+ p_error ("Dangerously buggy macOS version detected!" )
6767 print ()
68- p_warning ("You have a machine with a ProMotion display, with a System Firmware version " )
69- p_warning ("newer than 14.0 and a System Recovery version older than 14.0. Due to a " )
70- p_warning ("critical macOS bug , this combination can lead to an unbootable system under" )
68+ p_warning ("You have a machine with a ProMotion display, and you are running macOS " )
69+ p_warning ("Sonoma earlier than 14.2 or your System Firmware is in this range. Due to" )
70+ p_warning ("critical macOS bugs , this combination can lead to an unbootable system under" )
7171 p_warning ("certain conditions." )
7272 print ()
73- p_plain ("Your machine is not currently in imminent danger, but will be safer if you" )
74- p_plain ("upgrade to macOS Sonoma 14.1.1 or later. With this version, Apple added a" )
75- p_plain ("temporary workaround that will make it harder to hit the bug in practice." )
76- print ()
77- p_message ("Please upgrade your system to macOS 14.1.1 or later and run this installer" )
78- p_message ("again to continue. Do NOT change your display configuration until the upgrade" )
79- p_message ("is complete." )
73+ p_message ("Please upgrade your system to macOS 14.2 or later and run this installer" )
74+ p_message ("again to continue. This version resolves the bug and will make your machine" )
75+ p_message ("safe again. If you have multiple macOS installs, we recommend not booting" )
76+ p_message ("macOS Sonoma versions prior to 14.2 on this machine." )
8077 print ()
8178
82- def sadness (sysinfo ):
83- p_error ("Your machine is affected by a critical macOS bug!" )
84- print ()
85- p_warning ("You have a machine with a ProMotion display, with a System Firmware version" )
86- p_warning ("newer than 14.0 and a System Recovery version older than 14.0. Due to a" )
87- p_warning ("critical Apple bug, this combination can lead to an unbootable system under" )
88- p_warning ("certain conditions." )
89- print ()
90- if split_ver (sysinfo .sros_ver ) < split_ver (BUGGY_SFR_MIN ):
91- p_error ("We have determined that your machine is affected and currently has an" )
92- p_error ("inoperable System Recovery. This is a dangerous condition that can make it" )
93- p_error ("impossible to recover from certain situations. Installing Asahi Linux is also" )
94- p_error ("not possible in this state." )
95- else :
96- p_error ("We have determined that your machine is affected and would not be able to" )
97- p_error ("successfully complete an Asahi Linux installation, as it cannot boot older" )
98- p_error ("versions of macOS Recovery in this state." )
99- print ()
100- p_error ("Apple have deployed a fix for this issue in macOS 14.2 beta 4. To install" )
101- p_error ("Asahi Linux, you must upgrade to this version or later. If you do not wish" )
102- p_error ("to use a beta version of macOS, you will have to wait until the 14.2 final" )
103- p_error ("release is out." )
104- print ()
105- p_plain ("More information:" )
106- print ()
107- p_plain ( f" { col (BLUE , BRIGHT )} https://github.com/AsahiLinux/docs/wiki/macOS-Sonoma-Boot-Failures{ col ()} " )
108-
109- def you_are_safe (main ):
110- p_plain ("Good news! Your machine should be unaffected by the critical ProMotion" )
111- p_plain ("boot failure bug at this time. If you have any other versions of macOS" )
112- p_plain ("installed side-by-side, we strongly recommend not booting them until" )
113- p_plain ("Apple properly and fully fixes this bug, as that could cause the issue" )
114- p_plain ("to trigger and your machine to become unbootable. Asahi Linux installs" )
115- p_plain ("are safe and will not cause any danger to your system." )
116- print ()
117- p_message ("Press enter to continue." )
118- main .input ()
119-
12079def run_checks (main ):
12180 if main .sysinfo .device_class not in PROMOTION_DEVICES :
12281 logging .info ("bugs: Not a ProMotion device" )
@@ -130,49 +89,5 @@ def run_checks(main):
13089 logging .info ("bugs: macOS is new enough to guarantee safety" )
13190 return
13291
133- p_progress ("Checking whether your machine is affected by critical Apple bugs..." )
134- print ()
135-
136- hz = main .sysinfo .get_refresh_rate ()
137- if hz is None :
138- p_warning ("Could not check ProMotion display status" )
139- p_plain ("This probably means your laptop lid is closed. Please open it and try again." )
140- p_plain ("(You're going to have to use the power button soon anyway!)" )
141- print ()
142- sys .exit (1 )
143-
144- p_info (f" Current display refresh rate: { col ()} { hz } Hz" )
145- print ()
146- if hz != 120.0 :
147- p_error ("Your display is not set to ProMotion mode (120 Hz). Please change your" )
148- p_error ("display refresh rate to ProMotion mode in System Settings, then reboot" )
149- p_error ("your machine with the lid open and try again." )
150- print ()
151- p_error ("Due to a critical Apple bug, it is not safe to install multiple operating" )
152- p_error ("systems on your Mac with a non-ProMotion refresh rate configured." )
153- print ()
154- sys .exit (1 )
155-
156- mode = get_startup_display_mode ()
157- if mode is None :
158- p_warning ("Could not check boot-time display configuration" )
159- p_plain ("This can happen if you have not rebooted your machine in several days." )
160- p_plain ("Please reboot your machine with the laptop lid open, then try again." )
161- print ()
162- sys .exit (1 )
163-
164- if split_ver (main .sysinfo .macos_ver ) < split_ver (ALLOWED_MACOS_MIN ):
165- if mode != 2 :
166- p_warning ("Mismatch between screen boot mode and current screen mode detected." )
167- print ()
168- p_plain ("Please reboot your machine and try again." )
169- print ()
170- else :
171- request_upgrade ()
172- sys .exit (1 )
173-
174- if mode == 2 :
175- you_are_safe (main )
176- else :
177- sadness (main .sysinfo )
178- sys .exit (1 )
92+ request_upgrade ()
93+ sys .exit (1 )
0 commit comments