My Apple Watch was on an old watchOS 6, and while my iPhone was on iOS 14.4, it let me update it to watchOS 6.3, but not to 7.x.
I updated my iPhone to iOS 14.8, and now it refuses to communicate with my watch (notifications don't work etc). It says I *have* to update watchOS.
However, if I try to update watchOS, the Watch app says my iOS is outdated and that I have to update to iOS 15.x (after which it would update the watch to watchOS 8.x). I don't want to update to iOS 15.
Me using shady ways to update to non-latest iOS isn't the problem. Until last week, Apple *officially* supported updating from >=14.5 to 14.8.1 (instead of to 15), yet having an Apple Watch on 6.x would leave you stranded in this same way. Apple Support was obviously of no help.
My next step is to try downgrading back to 14.4. If that fails (and "failing" probably means "phone doesn't boot anymore") I'll be forced to update to 15. Bye jailbreak. I guess my sister's old phone (on 14.8) will become my "research device"...
With some dirty tweaking, setting IOS_PAIRING_EOL_MIN_PAIRING_COMPATIBILITY_VERSION_CHIPIDS to 28674=10,32772=14 ("allow compatibility version 14 on CPID 0x8004" aka Series 3), I stopped getting the "incompatible watch" prompt.
Notifications appear on the watch, but the watch fails to acknowledge that it received them, so 20 seconds later it times out and the phone shows the same notification again.
Update: I removed my jank nanoregistryd change for watch pairing compatibility and installed Legizmo instead and now *all* features seem to be working. Damn, this tweak is absolutely worth the money.
I kinda want to reverse engineer it and see how it works, entirely out of curiosity, but there seems to be some obfuscation/encryption involved (guess there were people pirating it or wanting to clone it!), and I have too many projects already...
• • •
Missing some Tweet in this thread? You can try to
force a refresh
And even then it's hard to tell what some codenames mean. I wonder if Apple redacts in-code documentation before publishing it or if they don't have any to begin with 🤔
But I managed to figure out *some* stuff. So instead of "what the heck are SOS and CKKS and Engram and Manatee", now I know "SOS (SecureObjectSync) is the old sync system, CKKS (CloudKit Keychain Sync) is the new one, Engram and Manatee are some CKKS-only keychain sync views"
I still don't know how SOS or CKKS work, or what a "keychain view" really means, or what's stored in Engram vs Manatee, but it's *something*, and writing it down can help others start from a non-blank state if they want to research this more:
I'm now adding these keys to the wiki. It took some tweaking to make the scripts handle the new files in iPhone 11's ipsws, but now it's ready and I can automate it 😎 theiphonewiki.com/wiki/Firmware_…
The wiki is a terrible place for these. It's absurd to format this stuff into wiki markup, and then have other scripts that parse that (or the HTML) back into a usable form to eg. get keys for decryption.
Ideally there should be some DB-backed website+API. But that doesn't exist, so as long as people are using the wiki, might as well put this new data there 🤷♂️