(I’ve also posted this to the rootwink.com forums as mattjm, but post approval seems slow these days and I want to get this information out there)
My hub bricked on the last update. It was rooted at one point, but I started updating via the app and gave up on root somewhere around version 3.4 But…I tried to update a couple months ago and it bricked. The symptoms were it would boot normally, then the LED would go solid yellow (not a documented state). I was able to regain access via serial and restore it to version 2.68 using a cf_url and cf_cert file I found online. But updates via the app continued to result in the bricked, solid yellow state. Looking at the logs from updating via the app, it seems the error was “failed to format flash” or something like that.
I found out that when I trigger updates via the app, it updates cf_url and cf_cert to what I need for the latest version. I was able to get the contents of these files and update via the command line. I’ve outlined the steps below, in case someone else has experienced this. This procedure doesn’t maintain root–you may or may not be able to maintain it by following some of the other instructions on rootwink.com. This will work from version 2.68 and get you to 3.9.4. It will probably work for other versions, too. (Test from 2.68 because that’s what I was able to find a cf_url and cf_cert for to get it back to a working state)
This was the procedure to fix:
1. re-establish root through UART pins. Set a root password or authorized_keys file.
2. Reboot normally and log in as root.
3. command line:
sed -i 's/reboot/#reboot/g' /root/platform/*.sh
(command borrowed from rootwink.com post). This just stops the scripts from rebooting automatically after they run.
4. Put the following contents in /database/cf_url:
sw_pkg_url=https://hub-updates.winkapp.com/wink-hub/3.9.4-0-gc59efe4ee8-hub-app-7c6bb7d1-d7d5-114a-c368-5c4d14a3185e/upgrade_manifest.txt md5_manifest=3311d5788940a4ad76fd0e585533d7b0
5. Put the following contents in /database/cf_cert:
-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAumZE0qsNgtTQNCOhqx8+ +3DQG33HIvgqdPJ9qa4A9rdtuTADJ3FUnO53+EQYFuZaZ8RK76DQddtqCUzRyra7 JI9RTXxYX4VWxTMEfKMoi2R79BFPOXg61Q3ZCZ4RP2gz1Mkso59ULNziLmeSQwSK udeTSmkcLUql9Ygtx8iro+JiFBr6wwyLFm+KblkRvk7aYjctdJvGOGUfoYKyKQJz 5mXQiHoCqpkqdNL436paQjsxIdcEqu+iRl8n2BIgDqxHg1ZTdiNe6NIyohkaG97r Rfzv2LZQ9zgfdQfGArwc9B+AGyKFJ4FgW0SdCmZSNrpqoEVCS1Xuw8QLe6oraMuC MwIDAQAB -----END PUBLIC KEY-----
6. Note cf_url and cf_cert don’t generally exist unless you’ve triggered an update through the app. If you want a newer version, you can log in as root and trigger the update through the app (first run the sed command above to prevent reboot)–you can cat cf_url and cf_cert to get the contents, then run this procedure again.
7. command line:
/root/platform/upgrade.sh
You should see the standard update stuff scrolling by
8. Manually reboot
9. On reboot some additional updating should happen. Then you should get the solid blue light with version 3.9.4