Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AS/M1: Support the iMac M1 (AppleTCON firmware) #442

Closed
marcan opened this issue Sep 24, 2021 · 4 comments
Closed

AS/M1: Support the iMac M1 (AppleTCON firmware) #442

marcan opened this issue Sep 24, 2021 · 4 comments

Comments

@marcan
Copy link
Contributor

marcan commented Sep 24, 2021

Trying to restore 11.4 (UniversalMac_11.4_20F71_Restore.ipsw) fails with:

Checkpoint 4873 complete with code 0
Updating Veridian (66)
Checkpoint 4881 complete with code 0
Unknown operation (81)
ERROR: restore_send_firmware_updater_data: Got unknown updater name 'AppleTCON'.

TCON is the timing controller for the display AIUI, so it's unsurprising that this would be unique to the iMac or to Macs with a built-in screen in general.

@marcan marcan changed the title AS/M1: Support the iMac M1 AS/M1: Support the iMac M1 (AppleTCON firmware) Sep 24, 2021
@nikias
Copy link
Member

nikias commented Sep 24, 2021

Yes I found the AppleTCON already but since I don't have the hardware I cannot test it. I started to write the code for it but then realized I need to capture the TSS request for it. This is what I have so far (but it won't work obviously):

https://gist.github.com/nikias/aadb2aed43b80710618e3fdef9b72601

Maybe you can help with capturing the TSS request?

Also interestingly you didn't have issues with recovery mode which is failing on M1 MacBook (Pro).

@marcan
Copy link
Contributor Author

marcan commented Sep 25, 2021

Sure, how do you usually do that? Is it just plaintext HTTP?

The other issue I had was a missing USB PID in usbmuxd, but you saw that PR already.

@nikias
Copy link
Member

nikias commented Sep 25, 2021

It uses https but basically you can do

defaults write com.apple.AMPDevicesAgent AuthInstallSigningServerURL http://gs.apple.com:80

And then capture network traffic with wireshark, while restoring with Apple Configurator.

@marcan
Copy link
Contributor Author

marcan commented Sep 26, 2021

Request:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>@BBTicket</key>
	<true/>
	<key>@Baobab,Ticket</key>
	<true/>
	<key>@HostPlatformInfo</key>
	<string>mac</string>
	<key>@UUID</key>
	<string>F2106519-0A83-4541-869F-E8EA1DE24E85</string>
	<key>@VersionInfo</key>
	<string>libauthinstall-776.140.3</string>
	<key>Baobab,BoardID</key>
	<integer>3</integer>
	<key>Baobab,ChipID</key>
	<integer>2133</integer>
	<key>Baobab,ECID</key>
	<data>
	AAAAAAAAAAADMzUBFQQVOg==
	</data>
	<key>Baobab,Life</key>
	<integer>15</integer>
	<key>Baobab,ManifestEpoch</key>
	<integer>0</integer>
	<key>Baobab,ProductionMode</key>
	<true/>
	<key>Baobab,SecurityDomain</key>
	<integer>1</integer>
	<key>Baobab,TCON</key>
	<dict>
		<key>Digest</key>
		<data>
		olkY54c5YzwGBzv4JFUufx+0gPbqXbT1f1cU3y7CRyk=
		</data>
		<key>EPRO</key>
		<true/>
	</dict>
	<key>Baobab,UpdateNonce</key>
	<data>
	DkTeak3ADmOdDHa5kGan5Fk8MbjIpYmDI1jDPLC+q/8=
	</data>
</dict>
</plist>

Response:

STATUS=0&MESSAGE=SUCCESS&REQUEST_STRING=<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<plist version="1.0">
<dict>
	<key>@ServerVersion</key>
	<string>2.1.0</string>
	<key>Baobab,Ticket</key>
	<data>
	MIIHLhYESU00TQIBADGCAXb/hOqFnEKCAW0wggFpFgRNQU5CMYIBX/+E6oWc
<snip>
	</data>
</dict>
</plist>

marcan added a commit to marcan/idevicerestore that referenced this issue Sep 26, 2021
Closes: libimobiledevice#442

Co-authored-by: Nikias Bassen <nikias@gmx.li>
Signed-off-by: Hector Martin <marcan@marcan.st>
marcan added a commit to marcan/idevicerestore that referenced this issue Sep 26, 2021
Closes: libimobiledevice#442

Co-authored-by: Nikias Bassen <nikias@gmx.li>
Signed-off-by: Hector Martin <marcan@marcan.st>
marcan added a commit to marcan/idevicerestore that referenced this issue Sep 26, 2021
Closes: libimobiledevice#442

Co-authored-by: Nikias Bassen <nikias@gmx.li>
Signed-off-by: Hector Martin <marcan@marcan.st>
@nikias nikias closed this as completed in 1ea3fe7 Sep 26, 2021
rickmark pushed a commit to rickmark/idevicerestore that referenced this issue Mar 15, 2022
Closes: libimobiledevice#442

Co-authored-by: Nikias Bassen <nikias@gmx.li>
Signed-off-by: Hector Martin <marcan@marcan.st>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants