UnbendableStraw / homepod-restore

How to restore the first generation A1639 Apple HomePod
98 stars 9 forks source link

How to restore the first generation A1639 Apple HomePod!

Disclaimer

READ THROUGH THE COMPLETE GUIDE FIRST BEFORE TOUCHING ANYTHING! Then, re-read it again before you attempt an actual restore, as steps / software may have changed.

You perform all of this at your own risk with no promises, guarantees, warranty, whatever. Mistakes made with software can be restored with software, but mistakes made with hardware may need repair. Approach with care.

Video Guide: https://www.youtube.com/watch?v=VCm-ac8EmaE

How to restore your HomePod

Prerequisites

p.0. You need a usb connection to your HomePod. the port on the pod is under the rubber base. remove the base by wedging your fingers between the base and mesh, pry it straight off. no heat necessary. it will stick back on with no issues.

p.0.0. While you can solder directly to the debug port on the pod, it's not recommended. the pads are fragile. You can make your own adapter (based on tihmstar's design) you only need the four usb 2.0 wires for restoring. You can buy premade adapters here!

p.0.0.0. Do not disturb your dongle, HomePod, or any part of the USB cable during restore. the pads are close together with voltage next to data lines and you risk shorting and damaging something if mistakes are made. when unplugging things, it's best to disconnect power from pod first, then unplug dongle usb, then remove dongle from pod.

p.1. This guide was tested on Apple Silicon with MacOS. It should work on Intel / Windows / Linux, but do not ask me for help, ask in the discord server. Feel free to contribute steps to getting other platforms working and submit a pull request.

p.2. A currently signed .ipsw file. Download mine at https://nicsfix.com/ipsw/18.0.ipsw or, build your own using the steps at the bottom of the guide.

p.3. Homebrew https://brew.sh/

Note: On some Macs, after you install homebrew for the first time in your terminal, you will see "Next Steps, Run these two commands..." Run those two commands!!

p.4. Now run these commands, one at a time. This taps David's repo, then installs the necessary restore tools. For now, we are also installing a specific version of idevicerestore to workaround a bug in the latest version:

brew tap d235j/ios-restore-tools
brew install --HEAD libimobiledevice-glue
brew install --HEAD d235j/ios-restore-tools/libimobiledevice
brew install --HEAD libirecovery
brew install --HEAD gaster
brew install --HEAD ldid-procursus
brew install libzip
brew uninstall d235j/ios-restore-tools/idevicerestore
git clone https://github.com/libimobiledevice/idevicerestore.git 
cd idevicerestore
git checkout d2e1c4f
./autogen.sh
make
sudo make install

If you get no errors (warnings are OK) then you are ready to restore HomePods!

Restore Steps

  1. IN ORDER: Place and keep your HomePod upside down. Then, connect the adapter to the HomePod. Then, plug the usb cable into computer. Only then, can you plug power into HomePod.

      • It is important you do this in order. Keep pod upside down. USB to PC first. Then power to pod.
      • Some macs will have "Allow Accessory to Connect" prompts along the way, Allow them! Pay attention to more prompts while running restore process, too.
  2. Run the following commands, one at a time. Replace YOUR.ipsw with the location of your .ipsw file. You can drag your .ipsw file from Finder into your Terminal window to populate it's path.

gaster pwn
gaster reset
idevicerestore -d -e YOUR.ipsw
  1. Be patient! It can take up to 10-15 minutes. Once you see Restore Complete continue waiting about a minute, then you'll see it reconnect in DFU mode again. You can now unplug power, then usb, then remove adapter from HomePod, flip rightside up, reconnect power and wait for it to reboot a few times to initialize set-up!

Now you can set it up and use like any other HomePod. This does not break over the air updates or any features / functionality.

Troubleshooting

If the restore is unsuccessful, try again from Restore Step 1. Usually though, errors are caused by faulty hardware, bad connection to the HomePod, or you didn't do something right.

How to build your own .ipsw

You don't need to do this, only if you want to try building an .ipsw yourself. Accomplish the prerequisites first. This is actively being worked on to be made easier.

  1. Download the latest ./makeipsw.sh from tihmstar's repo
  2. Download the desired signed, full OTA .zip for AudioAccessory1,1 (from ipsw.me). You need the one with the full ramdisk (usually the largest one with no prerequisites)
  3. Download the same version of the signed full .ipsw for AppleTV5,3 (from ipsw.me)
    • example: this for the ota.zip and this for the .ipsw file
  4. Download the firmware_keys.zip from this repo. Currently working for 17.5, 17.6, and 18.0. (new / self key generation coming soon to makeipsw.sh script)
  5. chmod +x makeipsw.sh
  6. brew reinstall ra1nsn0w (to ensure you have the latest version)
  7. ./makeipsw.sh PATH_TO_HOMEPOD_OTA.zip PATH_TO_APPLETV.ipsw PATH_TO_OUTPUT.ipsw PATH_TO_firmware_keys.zip
    • Point the first path to the latest signed, FULL ota .zip for AudioAccessory1,1 file you downloaded
    • Point the second path to the latest signed, FULL .ipsw for AppleTV5,3 file you downloaded
    • Point the third path to where you want your .ipsw to be output, along with a name (like ~\Desktop\nic\homepod.ipsw)
    • Point the fourth path to where you downloaded the keys.zip file from this repo

Credit

Huge thanks to thimstar, and David Ryskalczyk, for making all of this happen. All I've done is test and put guides together! Consider donating to them if you found this helpful.

Looking for more HomePod repairs? Visit https://nicsfix.com or join my discord server for more help at https://discord.gg/track44