Skip to content

Bug: ECG feature can be enabled on iOS 13.4 beta 2 + watchOS 6.2 beta 2

Update: Still works for iOS 13.5 + watch OS 6.2.5 public release

I can provide clean account to activate your Apple Watch’s ECG feature, please contact @hiraku_dev on Twitter.

Few months ago, I posted a tutorial about how to enable ECG feature of Apple Watch (oversea model). The restriction is: you must have an Apple Watch which is bought from ECG feature enabled region. However, Apple made a mistake on iOS 13.4 beta 2 and watchOS 6.2 beta 2, ANY Apple Watch S4 or S5 can enable ECG feature now!

However, the method I provided (iTunes backup modification) can’t work for this case, you MUST find someone who activated ECG in traditional way (not iMazing method or jailbreak method), and use his/her iCloud account to sync the health app data to your device. You can find some people provide this kind of service on eBay or other place, but I don’t recommend you to use stranger’s account because your device might be locked and the seller can ask you for more money.

Please don’t ask me whether xxx version can use this trick to enable ECG feature or not! Because this is a BUG, Apple may fix this in the future. But, if you don’t upgrade iOS / watchOS, you can enable ECG feature as long as you want! Also, you can’t downgrade watchOS, and watchOS 6.2 requires iOS 11.4 or above, so you can’t downgrade iOS back to 13.3.1 or below either. Please think twice if you want to use this method to activate ECG!

In the following part of this post, I would show how this bug happened:

Since iOS 13.4 and watchOS 6.2, to test the ECG region restriction feature, Apple added a “switch” inside iOS, if the switch is on, then the system would bypass region checking.

The code is in HealthKit, there’s two classes: HKMPNDeviceRegionFeatureSupportedStateProvider and HKNonMPNDeviceRegionFeatureSupportedStateProvider.

If the system calls functions in HKMPNDeviceRegionFeatureSupportedStateProvider class, then it would check device region as usual. However, if it calls functions in HKNonMPNDeviceRegionFeatureSupportedStateProvider, it would ignore region checking!

The question is, how the iOS / watchOS decide which class / function it should call? I dissembled the functions:

As you can see, if ecg_app_install_ignores_mpn is enabled, then it would call HKNonMPNDeviceRegionFeatureSupportedStateProvider and ignore region checking.

Now, we only need to find where is ecg_app_install_ignores_mpn, it’s in /System/Library/FeatureFlags/Domain/HeartRhythm.plist:

In line 8, the value is true! However, on iOS 13.4 beta 1, it was false! Because Apple accidentally set this value to true on beta 2, we can by pass ECG region checking! Good job, Apple!

So, let me say again: please don’t ask me whether xxx version can use this trick to enable ECG feature or not! Because this is a BUG, Apple will fix this in the future. But, if you don’t upgrade iOS / watchOS, you can enable ECG feature as long as you want!

Credit:Apple、吉米簡

發佈於iOS 教學技術研究

21 則留言

  1. Ricky Ricky

    When you say use his/her iCloud account to sync the health app data to your device, do I pair my watch with their apple id?

    • Hiraku Hiraku

      No. Just login the specific Apple ID to your iCloud account in iPhone

  2. Ricky Ricky

    Thanks for the info. It works perfectly! Now i wont update my OS forever hahaha

    • Hiraku Hiraku

      FYI beta 3 still works

  3. Ricky Ricky

    Thanks for the info! Updating to 3 now!

  4. Matt Matt

    is it still working on latest beta softwares?

    • Hiraku Hiraku

      beta 5 still works

  5. haha haha

    working on iOS 13.4?(not beta)

    • Hiraku Hiraku

      yes

  6. Kavin Kavin

    Hi~ I own an Apple Watch bought from an non-EER region, if I pair my iPhone with another ECG-capable watch (from EER) and activate its ECG (so that the flags will be written in the health database), will I get ECG on my own watch?

    • Hiraku Hiraku

      Yes, for watchOS 6.2.
      However you must live in EER region or travel to EER region to enable ECG flag, or you may need to find an activated account.

    • Kavin Kavin

      Thanks. Will you be updating the information above when watchOS gets updated? (So that the community would know whether to update or not 🙂

    • Hiraku Hiraku

      I will update in this post, you can also follow my twitter account @hiraku_dev

  7. Ray2ray Ray2ray

    wish i can DM u on twitter but ur account is not available 4 a DM. Could u plz send me a email thanks.

    • Hiraku Hiraku

      Just mention me @hiraku_dev and I will send you DM

  8. OldSoldier1969 OldSoldier1969

    Wonderful !! ECG works even in OS 13.4.1 !!

  9. Tom Zenit Tom Zenit

    Hi,
    I have appwatch from EER region but the app isn’t there anymore after the software update to 6.2.5. I already added the plst file in ios 13.4.5 and it activated the ECG but can’t have it work with apple watch because ecg app is gone. please help or advise if a clean account that mentioned will do the trick

    • Hiraku Hiraku

      yes. the plist trick doesn’t work on iOS 13.4 and above. you need to use account trick.

  10. Refh Refh

    Mine is apple watch 4 with iphone 7. Ios 13.4.1 and watch os 6.2.1. Is it still possible? I am not within region.

    • Hiraku Hiraku

      Yes it’s possible.

發表迴響