After a lot of testing by the people in the comments, it looks like only ECG will work.
So just replace the first three files:
com.apple.HeartRate.notifications.plist
com.apple.HeartRate.plist
com.apple.private.health.feature-availability.plist
<?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>MigrationVersion</key> | |
<integer>1</integer> | |
<key>EnableCardioFitnessNotifications_lastReconciledValue</key> | |
<true/> | |
<key>EnableBradycardiaDetection</key> | |
<true/> | |
<key>StationaryDiscordanceMinimumBPM</key> | |
<integer>110</integer> | |
<key>EnableAtrialFibrillationDetection</key> | |
<true/> | |
<key>EnableStationaryDiscordanceDetection</key> | |
<true/> | |
<key>BradycardiaThresholdBPM</key> | |
<integer>50</integer> | |
<key>EnableCardioFitnessNotifications</key> | |
<true/> | |
</dict> | |
</plist> |
<?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>CompletedBuddyVersion</key> | |
<integer>2</integer> | |
</dict> | |
</plist> |
<?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>DisableOxygenSaturationRecordingCompanionAnalysis</key> | |
<dict> | |
<key>userInfo</key> | |
<dict/> | |
<key>ruleIdentifier</key> | |
<string>AlwaysFalse</string> | |
</dict> | |
<key>ExpireElectrocardiogramRecording</key> | |
<dict> | |
<key>userInfo</key> | |
<dict/> | |
<key>ruleIdentifier</key> | |
<string>AlwaysFalse</string> | |
</dict> | |
<key>DisableOxygenSaturationRecording</key> | |
<dict> | |
<key>userInfo</key> | |
<dict/> | |
<key>ruleIdentifier</key> | |
<string>AlwaysFalse</string> | |
</dict> | |
<key>DisableSleepApneaNotifications</key> | |
<dict> | |
<key>userInfo</key> | |
<dict> | |
<key>grouping</key> | |
<string>OR</string> | |
<key>rules</key> | |
<array> | |
<dict> | |
<key>userInfo</key> | |
<dict/> | |
<key>ruleIdentifier</key> | |
<string>AlwaysFalse</string> | |
</dict> | |
<dict> | |
<key>userInfo</key> | |
<dict> | |
<key>ProductTypePrefix</key> | |
<string>Watch6</string> | |
</dict> | |
<key>ruleIdentifier</key> | |
<string>WatchProductTypeHasPrefix</string> | |
</dict> | |
</array> | |
</dict> | |
<key>ruleIdentifier</key> | |
<string>CompoundRule</string> | |
</dict> | |
<key>ExpireBackgroundAtrialFibrillationDetection</key> | |
<dict> | |
<key>userInfo</key> | |
<dict/> | |
<key>ruleIdentifier</key> | |
<string>AlwaysFalse</string> | |
</dict> | |
<key>ExpireAFibBurden</key> | |
<dict> | |
<key>userInfo</key> | |
<dict/> | |
<key>ruleIdentifier</key> | |
<string>AlwaysFalse</string> | |
</dict> | |
<key>CountMobileAssetsDownloadedPast24Hours</key> | |
<integer>338</integer> | |
</dict> | |
</plist> |
<?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>AvailableRegionsContentVersion</key> | |
<integer>2</integer> | |
<key>AvailableRegionsVersion</key> | |
<integer>1</integer> | |
<key>AvailableRegions</key> | |
<array> | |
<integer>18446744073709551615</integer> | |
<integer>18446744073709551615</integer> | |
<integer>18446744073709551615</integer> | |
<integer>18446744073709551615</integer> | |
<integer>3</integer> | |
</array> | |
<key>CountrySetProvenance</key> | |
<integer>3</integer> | |
<key>UDIDeviceIdentifier</key> | |
<string>(01)00190198909541(10)1.22B83</string> | |
<key>YearOfRelease</key> | |
<string>2024</string> | |
<key>FeatureVersion</key> | |
<string>1</string> | |
<key>UpdateVersion</key> | |
<string>1.22B83</string> | |
</dict> | |
</plist> |
<?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>AvailableRegionsContentVersion</key> | |
<integer>4</integer> | |
<key>AvailableRegionsVersion</key> | |
<integer>1</integer> | |
<key>AvailableRegions</key> | |
<array> | |
<integer>18446744073709551615</integer> | |
<integer>18446744073709551615</integer> | |
<integer>18446744073709551615</integer> | |
<integer>18446744073709551615</integer> | |
<integer>3</integer> | |
</array> | |
<key>CountrySetProvenance</key> | |
<integer>4</integer> | |
<key>UDIDeviceIdentifier</key> | |
<string>(01)00195949116209(10)1.22B83</string> | |
<key>YearOfRelease</key> | |
<string>2024</string> | |
<key>FeatureVersion</key> | |
<string>1</string> | |
<key>UpdateVersion</key> | |
<string>1.22B83</string> | |
</dict> | |
</plist> |
<?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>HKElectrocardiogramV1ToV2UpgradeBackgroundDelivered</key> | |
<true/> | |
<key>ElectrocardiogramWatchAppInstallIsAllowed</key> | |
<true/> | |
<key>HKElectrocardiogramV1ToV2UpgradeAlertDismissed</key> | |
<true/> | |
<key>HKAtrialFibrillationDetectionOnboardingCompleted</key> | |
<integer>1</integer> | |
<key>HKElectrocardiogramFirstRecordingCompleted</key> | |
<true/> | |
<key>PromimentUpgradeTileDismissed</key> | |
<true/> | |
<key>HKElectrocardiogramOnboardingCompleted</key> | |
<integer>4</integer> | |
</dict> | |
</plist> |
BTW, just updated to WatchOS 11.2 Beta
any updates
BTW, just updated to WatchOS 11.2 Beta
I Just used this on iOS 18.2 beta 2 and can confirm ecg is working, however afib history is not working. Devices used 16 pro max and ultra2
edit: ecg works on watch, however on the iPhone it’s showing that it’s not available on the watch.
Did u use imazing for backup ?
yup
OK, I did the backup, then the Editable Backup.... then going into HomeDomain>Library>Preferences. I do have all 3 files there. Not Sure if my App is bringing all 3 files since I started this thing back in iOS 17, but now, as for Today, Using iOS 18.2 beta 2,. I do have those 3 files.
I do have ECG feature working, but not AFib History. Not sure what else to check. I have not tried to replace all 3 files again, but I don't want to test that if I will get the same results as with ECG feature only enabled.
Thanks a lot for your help.
It could be that the 3rd file came from IOS 17. We still don´t know if it is needed in IOS 18 and WatchOS 11. I could try both options: replacing just 2 files or replacing 2 files and adding the 3rd.
It would be interesting to know it from ImReker
Question: can we get these plists from activated watches/phones in supported regions and copy them over?
OK, I did the backup, then the Editable Backup.... then going into HomeDomain>Library>Preferences. I do have all 3 files there. Not Sure if my App is bringing all 3 files since I started this thing back in iOS 17, but now, as for Today, Using iOS 18.2 beta 2,. I do have those 3 files.
I do have ECG feature working, but not AFib History. Not sure what else to check. I have not tried to replace all 3 files again, but I don't want to test that if I will get the same results as with ECG feature only enabled.
Ok. I did the editable backup with iMazing, replaced 2 files and added the 3rd, restored to my iPhone and the ECG is NOT activated. Something changed from IOS 17 to IOS 18 that does no let us enable ECG with the 3 files that did it in IOS 17 and 16.
If somebody is able to enable ECG in IOS 18, please let me know how is done.
It would be great if @imReker could do a revision of this code for IOS 18 and WatchOS 11. Last revision was on March 2023 (IOS 16 and WatchOS 9
@imReker @katofelinus Any happy news ? and please is it required that the apple watch to be bought from a concerned region ? thank uu
@imReker @katofelinus Any happy news ? and please is it required that the apple watch to be bought from a concerned region ? thank uu
Unfortunately, no happy news. I could not activate ECG in IOS 18.1 and WatchOS 11 with the 3 files posted here. Something changed in IOS 18. ImReker has not answered yet. Hope he will. Regarding your other question, I understand you have to BUY & ACTIVATE the Apple Watch in an approved country, otherwise, it will not activate the ECG.
I can confirm that the Irregular Heart Rate and ECG is working on iOS 18.1 (iPhone 13 Pro) with watchOS 11.1 (Ultra 2) using this method. Afib history and Oxygen don't obviously work with this as neither plist files modify their activation.
I browsed through the other library files and noticed a few, which suspiciously look promising. Whoever ends up discovering it will make thousands of people happy. :-)
There is a file called com.apple.private.health.feature-properties.SleepApneaNotifications.companion.plist with some region settings in it. Perhaps tinkering with it could enable it.
There is another file called com.apple.private.health.feature-availability.plist, which has flags such as DisableOxygenSaturationRecordingCompanionAnalysis set to AlwaysTrue, and flags such as DisableSleepApneaNotifications and ExpireAfibBurden. I'm sure playing with those could enable these features.
Finally, there is a file called com.apple.private.health.respiratory.plist that has a flag set to false.
For those who have experience, can you tinker with these files and see if you can enable the Oxygen, AfibHistory, and Sleep Apnea feature?
I can confirm that the Irregular Heart Rate and ECG is working on iOS 18.1 (iPhone 13 Pro) with watchOS 11.1 (Ultra 2) using this method. Afib history and Oxygen don't obviously work with this as neither plist files modify their activation.
I browsed through the other library files and noticed a few, which suspiciously look promising. Whoever ends up discovering it will make thousands of people happy. :-)
There is a file called com.apple.private.health.feature-properties.SleepApneaNotifications.companion.plist with some region settings in it. Perhaps tinkering with it could enable it.
There is another file called com.apple.private.health.feature-availability.plist, which has flags such as DisableOxygenSaturationRecordingCompanionAnalysis set to AlwaysTrue, and flags such as DisableSleepApneaNotifications and ExpireAfibBurden. I'm sure playing with those could enable these features.
Finally, there is a file called com.apple.private.health.respiratory.plist that has a flag set to false.
For those who have experience, can you tinker with these files and see if you can enable the Oxygen, AfibHistory, and Sleep Apnea feature?
I tried tweaking these files but no success.
prohoudini quick question?
as per your previous notes: is this accomplished using these 3 files only? and with original code submitted by imReker?
com.apple.HeartRate.notifications.plist
com.apple.HeartRate.plist
com.apple.private.health.heart-rhythm.plist
Please confirm.
Need to do it in my wife's iPhone. I did this on mine a while ago and has been working since but I cannot remember if I used this guide or an older one.
Thank you so much.
Vin
I can confirm that the Irregular Heart Rate and ECG is working on iOS 18.1 (iPhone 13 Pro) with watchOS 11.1 (Ultra 2) using this method. Afib history and Oxygen don't obviously work with this as neither plist files modify their activation.
I browsed through the other library files and noticed a few, which suspiciously look promising. Whoever ends up discovering it will make thousands of people happy. :-)
There is a file called com.apple.private.health.feature-properties.SleepApneaNotifications.companion.plist with some region settings in it. Perhaps tinkering with it could enable it.
There is another file called com.apple.private.health.feature-availability.plist, which has flags such as DisableOxygenSaturationRecordingCompanionAnalysis set to AlwaysTrue, and flags such as DisableSleepApneaNotifications and ExpireAfibBurden. I'm sure playing with those could enable these features.
Finally, there is a file called com.apple.private.health.respiratory.plist that has a flag set to false.
For those who have experience, can you tinker with these files and see if you can enable the Oxygen, AfibHistory, and Sleep Apnea feature?I tried tweaking these files but no success.
Did you set the AlwaysTrue to False? Can you please elaborate on your changes so others can try different changes?
prohoudini quick question?
as per your previous notes: is this accomplished using these 3 files only? and with original code submitted by imReker? com.apple.HeartRate.notifications.plist com.apple.HeartRate.plist com.apple.private.health.heart-rhythm.plist
Please confirm.
Need to do it in my wife's iPhone. I did this on mine a while ago and has been working since but I cannot remember if I used this guide or an older one.
Thank you so much.
Vin
Yes. All three files by imReker. I did a backup before unpairing my Apple Watch. Perhaps that’s the only step where I deviated. Once I restored my iPhone backup, I paired the Apple Watch and everything was up and running.
I can confirm that the Irregular Heart Rate and ECG is working on iOS 18.1 (iPhone 13 Pro) with watchOS 11.1 (Ultra 2) using this method. Afib history and Oxygen don't obviously work with this as neither plist files modify their activation.
I browsed through the other library files and noticed a few, which suspiciously look promising. Whoever ends up discovering it will make thousands of people happy. :-)
There is a file called com.apple.private.health.feature-properties.SleepApneaNotifications.companion.plist with some region settings in it. Perhaps tinkering with it could enable it.
There is another file called com.apple.private.health.feature-availability.plist, which has flags such as DisableOxygenSaturationRecordingCompanionAnalysis set to AlwaysTrue, and flags such as DisableSleepApneaNotifications and ExpireAfibBurden. I'm sure playing with those could enable these features.
Finally, there is a file called com.apple.private.health.respiratory.plist that has a flag set to false.
For those who have experience, can you tinker with these files and see if you can enable the Oxygen, AfibHistory, and Sleep Apnea feature?I tried tweaking these files but no success.
Did you set the AlwaysTrue to False? Can you please elaborate on your changes so others can try different changes?
I tried the following scenarios:
Scenario 1:
Scenario 2:
Scenario 3:
For all the above mentioned scenarios, I also made changes to "com.apple.private.health.feature-properties.SleepApneaNotifications.companion" file and copied values from file "com.apple.private.health.feature-properties.SleepingWristTemperatureMeasurements.companion" because sleeping wrist temperature is working from me.
Unfortunately, none of the scenarios worked.
My guess is that we need some extra files which are generated only on Apple Watches having these features enabled. So, if we someone who has these features enabled can share those files, then we will be able to activate on our side.
Hi, I tried the same as the last commenter, but they were updated by Apple upon pairing the watch again.
I tried a second time - this time replacing those files and also placing overrides in ManagedPreferences, but this still did not work. I think there is something on the watch side that may be blocking this solution. My watch is LW/A.
Ok Guys.
Just wanted to play with some other stuff like SleepApnea, Oxygen etc.... no luck. My Wife's watch has Oxygen enabled, but I've been checking her backup and comparing with the ones we have and cannot get it done.
Now, I just took a new iPhone 15 Pro, with an Editable Backup...I checked for all those 3 files, and the iOS 18.1.1 was missing just one of those files. I created that file using PlistEdit Pro... and boom... ECG enabled. No AfiB History enabled but ECG working.
I have blood oxygen activated, its a series 7 but I hope this is of any use
I haven't activated ECG or Afib since im scared of iCloud locking my iPhone lol
<?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>DisableOxygenSaturationRecording</key>
<dict>
<key>ruleIdentifier</key>
<string>CompoundRule</string>
<key>userInfo</key>
<dict>
<key>grouping</key>
<string>OR</string>
<key>rules</key>
<array>
<dict>
<key>ruleIdentifier</key>
<string>AlwaysFalse</string>
<key>userInfo</key>
<dict/>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchRegionInfoEquals</string>
<key>userInfo</key>
<dict>
<key>RegionInfo</key>
<string>LW/A</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchRegionInfoEquals</string>
<key>userInfo</key>
<dict>
<key>RegionInfo</key>
<string>LM/A</string>
</dict>
</dict>
</array>
</dict>
</dict>
<key>DisableOxygenSaturationRecordingCompanionAnalysis</key>
<dict>
<key>ruleIdentifier</key>
<string>AlwaysTrue</string>
<key>userInfo</key>
<dict/>
</dict>
<key>DisableSleepApneaNotifications</key>
<dict>
<key>ruleIdentifier</key>
<string>CompoundRule</string>
<key>userInfo</key>
<dict>
<key>grouping</key>
<string>OR</string>
<key>rules</key>
<array>
<dict>
<key>ruleIdentifier</key>
<string>AlwaysFalse</string>
<key>userInfo</key>
<dict/>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchProductTypeHasPrefix</string>
<key>userInfo</key>
<dict>
<key>ProductTypePrefix</key>
<string>Watch6</string>
</dict>
</dict>
</array>
</dict>
</dict>
<key>ExpireAFibBurden</key>
<dict>
<key>ruleIdentifier</key>
<string>CompoundRule</string>
<key>userInfo</key>
<dict>
<key>grouping</key>
<string>OR</string>
<key>rules</key>
<array>
<dict>
<key>ruleIdentifier</key>
<string>AlwaysFalse</string>
<key>userInfo</key>
<dict/>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21F5048f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21F5058e</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21F5063f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21F5073b</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21G5052e</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21G5061c</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21G5066d</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21G5075a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5282m</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5297f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5307f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5326f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5338b</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5346a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5350a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21T5545f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21T5555d</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21T5560d</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21T5571a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21U5551b</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21U5560b</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21U5565c</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21U5574a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5284o</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5299d</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5309f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5318h</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5328e</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5340a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5348a</string>
</dict>
</dict>
</array>
</dict>
</dict>
<key>ExpireBackgroundAtrialFibrillationDetection</key>
<dict>
<key>ruleIdentifier</key>
<string>CompoundRule</string>
<key>userInfo</key>
<dict>
<key>grouping</key>
<string>OR</string>
<key>rules</key>
<array>
<dict>
<key>ruleIdentifier</key>
<string>AlwaysFalse</string>
<key>userInfo</key>
<dict/>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21F5048f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21F5058e</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21F5063f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21F5073b</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21G5052e</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21G5061c</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21G5066d</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21G5075a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5282m</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5297f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5307f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5326f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5338b</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5346a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5350a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21T5545f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21T5555d</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21T5560d</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21T5571a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21U5551b</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21U5560b</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21U5565c</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21U5574a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5284o</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5299d</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5309f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5318h</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5328e</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5340a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5348a</string>
</dict>
</dict>
</array>
</dict>
</dict>
<key>ExpireElectrocardiogramRecording</key>
<dict>
<key>ruleIdentifier</key>
<string>CompoundRule</string>
<key>userInfo</key>
<dict>
<key>grouping</key>
<string>OR</string>
<key>rules</key>
<array>
<dict>
<key>ruleIdentifier</key>
<string>AlwaysFalse</string>
<key>userInfo</key>
<dict/>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21F5048f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21F5058e</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21F5063f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21F5073b</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21G5052e</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21G5061c</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21G5066d</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21G5075a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5282m</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5297f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5307f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5326f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5338b</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5346a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>IOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22A5350a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21T5545f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21T5555d</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21T5560d</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21T5571a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21U5551b</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21U5560b</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21U5565c</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>21U5574a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5284o</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5299d</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5309f</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5318h</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5328e</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5340a</string>
</dict>
</dict>
<dict>
<key>ruleIdentifier</key>
<string>WatchOSBuildVersionEquals</string>
<key>userInfo</key>
<dict>
<key>BuildVersion</key>
<string>22R5348a</string>
</dict>
</dict>
</array>
</dict>
</dict>
</dict>
</plist>
Ok guys.
I just got an Ultra 2 with Oxygen feature enabled.
What code/plist file should I post here to study and compare?
Let me know.
Thank you,
Vin
BTW, just checked the first code, and as I remember there was only 3 different files right? we have more now... looks like ImReker add some new stuff in here. Let's play with it.
Thank you!!
Vin
FYI I'm using iOS 18.2 and WatchOS 11.2.
Preparing backup right now.
V
Great!
Let us know what works with these new 6 files dated 12/09/2024.
Thanks ImReker for the new files.
FYI I'm using iOS 18.2 and WatchOS 11.2.
Preparing backup right now.
V
Hi Vinixtor. Merry Christmas!
How did it go with the 6 new files posted by ImReker?
Do they activate ECG, Atrial Fibrillation(IRNF) and Sleep Apnea Notify?
Does anybody have tried these 6 new files successfully?
@katofelinus
These six files are used in iOS 18.2 and WatchOS 11.2.
On watch ultra 2,
ECG works,
whereas AFib, Sleep Apnea, and Oxygen sensors don't.
Thanks @imReker
@katofelinus These six files are used in iOS 18.2 and WatchOS 11.2. On watch ultra 2, ECG works, whereas AFib, Sleep Apnea, and Oxygen sensors don't.
Thanks @imReker
Thanks for the tip
Hello! Used these files today, Jan 2nd 2025 and it worked! Only ECG though but this is great. Thank you!
I had success with enabling ECG with iOS 18.3.2 + WatchOS 11.3.1 (Apple Watch 10); here are some recommendations from my painful experience.
Original manuals from 2019 with outdated screenshots and files, but fresh comments are:
Use an APFS disk on your Apple device for the backup location (not tested with other filesystems). I had a lot of problems with an ExFAT external disk; also, with ExFAT in the end I got a triple-sized backup that I could not edit (Editable backups are not supported on your chosen backup location for XX iPhone. Please use the "Export to Folder" option to make a local copy which you can then edit
error).
For editing plist files, use an app (BBEdit (Paid), PlistEdit Pro (Paid), etc.). I used this Vim plugin because it's free and easy to use. Do not recommend XCode, because of its strange behaviour with plist files and its non-user-friendly edit mode.
Do not replace existing files with text files from a gist! Use the apps above to edit existing plist files, carefully changing existing parameter values with the parameters in the gist files. This is important because at least UDIDeviceIdentifier
, YearOfRelease
, and UpdateVersion
were different in my case.
Be careful with restoring: you need to have more than 50% free space available on your iPhone. If not, you could restore without photos (it will erase all photos on your phone), then restore with photos. Do not check the erase checkmark when restoring, because in this case all your esims and other stuff will be wiped!
After restoring you will need to re-add all Apple Wallet cards, and some Bank/Telecom apps will be logged out. Keep this in mind.
No Oxygen feature working since using AWU2 Black edition