[消息] iOS 13.4 beta 2 跟 watchOS 6.2 beta 2 出包!所有國家都可以強制開啟 ECG - iPhone4.TW

會員登入



顯示結果從 1 到 2 共計 2 條
  1. #1
    Hiraku 的頭像

    皮樂

    註冊日期:06-12-2008
    文章:13,861
    謝謝你: 563
    在 1,030篇文章中獲得 5,846個感謝


    之前在 ECG 自己開通教學 裡面,大部分人遇到的最大瓶頸就是,
    自己所在國家 / 地區買的手錶不支援 ECG 功能,導致無法使用這個方法開通。
    不過由於 Apple 在 iOS 13.4 beta 2 跟 watchOS 6.2 beta 2 出包了,所以現在任何國家的手錶都可以使用!


    可惜的是,我之前提供的 iMazing 不求人方法,似乎不能在這個情境下使用。
    你必須找到一個使用正常方式(非越獄後修改,或者使用 iMazing 法)開通 ECG 的人,
    登入他的 iCloud 帳號,直到他的「健康」資料跟你的手機同步為止。

    你可以在淘寶、蝦皮找到很多店家提供此服務,但是我個人不推薦使用來路不明的帳號,
    因為你的資料有可能會被上傳到對方帳號之外,如果遇到惡意的店家,他可以遠端鎖掉你的手機,並勒索要求更多金錢,或者你的資料被同步到他的帳號,通訊錄、備忘錄、提醒事項,甚至相簿整個被看光光
    ,所以帳號來源在這次反而是最大的隱憂。


    此外,請不要來問我 xx 版本能不能用,因為這是 Apple 失誤出包,
    所以未來的系統一定會修掉,但只要系統不升級就可以一直使用!
    由於 watchOS 6.2 beta 必須搭配 iOS 13.4 beta 以上使用,
    所以升級之後手機手錶都會無法降級(手機降級就無法配對了),繼續之前請三思而行!


    以下會說明本次可以開通 ECG 的原因跟原理,
    如果不想看的可以直接跳過,找人開通了,想了解的可以繼續往下看。


    事情是這樣的,在 iOS 13.4 跟 watchOS 6.2 之後,Apple 內部為了測試 ECG 在不同國家是否可以開啟,自己在系統裡面做了一個開關,透過修改系統裡面的一個值,可以控制要不要跳過 ECG 地區檢查。


    具體的控制是由 HealthKit 裡面 HKMPNDeviceRegionFeatureSupportedStateProviderHKNonMPNDeviceRegionFeatureSupportedStateProvider 這兩個 class 來決定是否檢查的。

    如果是 HKMPNDeviceRegionFeatureSupportedStateProvider,則走原本的標準檢查,
    會看手錶本身是哪一個國家的版本、有沒有對應的手機電信商訊號等等...

    但如果是 HKNonMPNDeviceRegionFeatureSupportedStateProvider,就有趣了,它會無視檢查,直接開通!

    問題來了,什麼時候會決定走哪一條路呢?根據我在 iOS 13.4 beta 逆向的結果,看到是如果 ecg_app_install_ignores_mpn 被開啟,就會走 HKNonMPNDeviceRegionFeatureSupportedStateProvider 那邊。

    代碼:
    /* @class HKHeartRhythmAvailability */
    +(id)deviceRegionFeatureSupportedStateProviderForCompanionDevice:(id)device {
        BOOL checkIgnored = [self isCompanionRegionCheckEnabledForDevice:device];
        Class class = [HKMPNDeviceRegionFeatureSupportedStateProvider class];
        if (checkIgnored != NO) {
            class = [HKNonMPNDeviceRegionFeatureSupportedStateProvider class];
        }
        return [class isCompanionRegionCheckEnabledForDevice:device];
    }
    
    +(bool)isCompanionRegionCheckEnabledForDevice:(void *)device {
        BOOL ignoresMPN = _os_feature_enabled_impl("HeartRhythm", "ecg_app_install_ignores_mpn");
        NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:@"03C7A646-DB1E-404B-B393-033E5496A383"];
        BOOL supportUUID = [device supportsCapability:uuid];
        //中間不重要
        return ignoresMPN && supportUUID
    }
    現在發現關鍵點在於 ecg_app_install_ignores_mpn 了,那麼就找一下它在哪裡吧,根據快速的尋找結果,發現它在 /System/Library/FeatureFlags/Domain/HeartRhythm.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>ecg_app_install_ignores_mpn</key>
        <dict>
            <key>Enabled</key>
            <true/>
            <key>DisplayName</key>
            <string>Move Off of MPN</string>
        </dict>
    </dict>
    </plist>
    重點看到了嗎?第八行那邊,在 iOS 13.4 beta 1 是 false,在 beta 2 卻變成了 true!
    就是這個值在 beta 2 寫錯了,導致整個 ECG 地區檢查全部失效,Apple,做得好啊!


    所以,再講一次,請不要來問我 xx 版本能不能用,因為這是 Apple 失誤出包,
    所以未來的系統一定會修掉,但只要系統不升級就可以一直使用!要衝的趕快衝!


    此篇文章於 02-22-2020 01:35 被 吉米丘 編輯。



  2. #2
    吉米丘 的頭像

    勸敗大魔王

    註冊日期:09-20-2007
    文章:50,560
    謝謝你: 9,950
    在 6,523篇文章中獲得 48,137個感謝
    感謝皮樂姐姐第一時間的分享

    現在大半夜啊

    我也是開車在蘇花改上面開到一半就收到Alex Yaö的好康分享啊

    感謝大家,希望大家都能儘快圓夢

    最後再次提醒一下

    這是測試版出的包,正式版會不會一樣不知道,要試的人請三思而後行,若你決定這樣做,後果要自負喔
    此篇文章於 02-22-2020 02:16 被 吉米丘 編輯。



 

 

相似的主題

  1. [消息] 最新iOS 6 Beta 2正式上線(開發者可以OTA下載)
    由steven851230論壇中iPhone 最新消息
    回覆: 27
    最後發表: 07-03-2012, 11:56
  2. [消息] iOS 6 Beta 2已經可以越獄了
    由steven851230論壇中iPhone 最新消息
    回覆: 0
    最後發表: 06-27-2012, 08:13
  3. [消息] iOS 4.2 Beta 2 and iTunes 10.1 Beta Released to Developers
    由phpan25論壇中iPhone 最新消息
    回覆: 3
    最後發表: 09-30-2010, 17:09
  4. VMware Fusion 2 Beta 2 發表囉,超強!
    由吉米丘論壇中Mac 硬體疑難雜症區
    回覆: 10
    最後發表: 09-29-2008, 23:08

發文規則

  • 不可以發表新主題
  • 不可以發表回覆
  • 不可以上傳附件
  • 不可以編輯自己的文章
  •  
回到此頁頂端