Skip to content

Instantly share code, notes, and snippets.

@imReker
Last active May 7, 2025 18:12
Show Gist options
  • Save imReker/fba069c6cae7407509863b0ed78da2a7 to your computer and use it in GitHub Desktop.
Save imReker/fba069c6cae7407509863b0ed78da2a7 to your computer and use it in GitHub Desktop.
iOS 18.1 plist for Apple Watch to Enable ECG, Atrial Fibrillation(IRNF), Sleep Apnea Notify. No AfiB History.

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>
@germanbuchmuller
Copy link

germanbuchmuller commented May 7, 2025

Working on iPhone 11 iOs 18.4.1, and Apple Watch 10. Just had to download all 6 files, and modify:

  • com.apple.private.health.feature-properties.ElectrocardiogramRecordingV1.companion.plist
  • com.apple.private.health.feature-properties.SleepApneaNotifications.companion.plist

changing <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>, as the previous files in the backup were.
Used iMazing (paid unfortunately).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment