• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

Galaxy Watch Features - ECG / BP

Search This thread


Senior Member
Nov 11, 2012
What about SpO2 guys? Any news? Watch3 will do it.
Personally I don't care about SpO2 measurement.
I'm a pretty active guy, I like to go running a lot. SpO2 fluctuates so much it really doesn't say much.
When I started training towards running 10k in one solid run my old Huawei Watch 2 could measure SpO2 as well. During the whole period I was training, which was like 5 months, my SpO2 measurements didn't change at all. It's a pretty useless stat.
Blood pressure and ECG are much more important :)

I found the solution.
Turn on flight mode》Connect to watch》Calibrate

Which Tizen version are you running on your watch? or


Senior Member
Dec 7, 2009
Where can I delete the old app from tizen studio?

Assuming you're using sdb 2.2.60 (started through ansicon.exe):
sdb kill-server
sdb connect ip-of-watch
sdb shell
pkgcmd -u com.samsung.health.samd.bp
Ignore the first command if you haven't started the sdb server that came with the tizen-studio. If unsure, kill the server, it will restart when you connect to the watch.

If you're using the sdb that came with tizen-studio, then
sdb remove com.samsung.health.samd.bp


Senior Member
Sep 28, 2010
Rio de Janeiro
oh, thanks for the info, so until I get new firmware, I can only use BP.

You can try the BTD6 version, that also has the Tizen

You can flash one of these versions or change your CSC to any region that already received these version (remember that it also change the Samsung Pay region and erase your watch data). Or just wait till the update hits you.
  • Like
Reactions: Daekin

farzad babazadeh

Senior Member
Oct 28, 2014
@caravana hello I'm on last firmware btg1 and not happened when touching my finger and *I see start screen saying "rest your finger on top button" forever and does not start measurement
And it's never work for me help me please why ?
I'm on apk latest and 23.tpk
But just blood pressure works


Jun 10, 2020

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    Hey guys. I almost read all messages in this thread. I'm have a Watch Active2 and I live in USA. ECG is working by default for a long time, but BP is still not working. In the past, when we have none, I could install both mods, but when Samsung released their own updated SHM, I did it. I was hoping that bp would work soon, but not. Now I'm trying to install the BP.tpk. I followed the tutorial, tizen studio, cmd sdb, etc.
    The problem is that the SHM on the watch is not overwritten. I still can check ECG but BP is not available. On the phone, I have the last SHM v.191 (thanks to @Dante63).
    I've tried several BP.tpk files, but when the cmd sdb install bp.tpk is sent, it runs for a while, but the ansicon.exe closes and the file vanishes... on the watch... no changes at all.
    SM-R820 / UI 2.0 / Tizen / SW R820XXU1DUH1 SM-R820NZSAXAR
    Quick newbie question.
    Ordered Watch Classic 4 LTE and wonder is there a way to make ECG and other Samsung phones locked only apps, work with my Huawei P30 PRO
    Go to Watch4 category and enter my thread for WearOS
    Go to Watch4 category and enter my thread for WearOS
    Amazing. Thx bro. You've done excellent job sir 👌
  • 39
    UPDATE 10.06.2020: Version 165 from @[SIZE="4"]adfree[/SIZE] and modded by @[SIZE="4"]caravana[/SIZE], with this version you can update WITHOUT deinstalling old one and without make calibration again. Try it and let me know. Download from here: AbsolutelyOWNRISK-APK-165

    UPDATE 07.06.2020: New APK again (version 161). Always thanks to @[SIZE="4"]adfree[/SIZE] and @[SIZE="4"]caravana[/SIZE]. Download from here: AbsolutelyOWNRISK-APK-161
    UPDATE 30.05.2020: New APK (version 159). Thanks to @[SIZE="4"]adfree[/SIZE] and @[SIZE="4"]caravana[/SIZE]. Download from here: AbsolutelyOWNRISK-APK-159
    UPDATE 17.05.2020: I updated the APK with version 157 (thanks @[SIZE="4"]caravana[/SIZE]) because the old one gave a false-positive with MalwareBytes app (RUBBISH).

    Okay, I'm going to explain all the steps I've done. I will try to simplify driving to the maximum.
    In attached you will find the APK and the TPK that I used (the credits for both go to those who upload them in the forum; thank you very much), and old version of SDB (

    Of course, everything will be AT YOUR OWN RISK, so you need to know what you are doing!

    0) Enable debugging and "Developer Options" on the GWA2, activate WiFi (same network where the PC is connected, the guide concerns only Windows, sorry for this)
    1) Download the attached files and dezip it
    2) Download and install TizenStudio 3.7 with IDE installer (608MB)
    3) Start TizenStudio, at the top you will see a box with "No target" written, click on the drop-down menu and choose "Launch Remote Device Manager" click on "Scan" and you will find your watch.
    4) Click on "Connect ON" and accept the connection on the watch. Once connected, open the folder containing SDB, CMD, "sdb install bp.tpk"

    If you have installation problems you have to try these ways
    - on the watch activate wi-fi, deactivate bluetooth, restart the GWA2, retry steps 3) and 4)
    - if you have not solved, you must reset the smartwatch, re-associate it with your smartphone and repeat steps 0), 3) and 4).

    Video Tutorial (english language from TechnoProz): https://www.youtube.com/watch?v=bTni4d832XE
    Video Tutorial (italian language from AlexSmart): https://www.youtube.com/watch?v=AdEWD7Kn44g
    Video Tutorial (português language from SombrasNoturnas): https://www.youtube.com/watch?v=VTiZxNO7lcs

    Let me know if you have difficulties and where, forgive my English but it is the result of Google Translator.
    Hey everyone,

    The last few days I've sad down reversed engineered and patched the Applications.
    I toked my a while, but I got ECG and BP working with the latest SHM-Version.

    Some facts about the Hardware & Software I used/have:
    • Samsung Galaxy Watch 3
      • Model: SM-R840
      • Tizen Version:
      • Software-Version: R840XXU1BUA8
    • Google Pixel 3 (Android 11)
    • Location: Germany
    Samsung Health Monitor Versions:
    • Android:
    • Galaxy Watch: 1.1.0037

    Please note that at this time I do not have the device to calibrate the Blood Pressure feature.
    But this evening I will have access to a BP Device, I will update this post after calibrating the watch.



    Steps to Install
    1. Sign the com_samsung_health_samd_bp.patched.tpk file
    2. Sign the monitor.apk file
    3. Install the Samsung Health Monitor App on your phone: adb install ./monitor.apk
    4. Install the tpk on your Watch: sdb install ./com_samsung_health_samd_bp.patched.tpk
    5. Now everything should work

    Changes made to the TPK:
    • Renamed package from com.samsung.health.samd.bp to com.samsung.health.samd.bb

    Changes made to the APK:
    • Removed Samsung Device Restriction
    • Reduced required Age

    diff --color -u -p -r /tmp/tmp.t6S5vOlrqk/AndroidManifest.xml /tmp/tmp.LHSTmyPfrE/AndroidManifest.xml
    --- /tmp/tmp.t6S5vOlrqk/AndroidManifest.xml    2021-02-26 13:43:54.945122180 +0100
    +++ /tmp/tmp.LHSTmyPfrE/AndroidManifest.xml    2021-02-24 13:35:18.979000000 +0100
    @@ -10,7 +10,7 @@
         <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
         <uses-permission android:name="android.permission.WAKE_LOCK"/>
         <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    -    <application android:allowBackup="false" android:allowTaskReparenting="true" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:extractNativeLibs="false" android:icon="@drawable/group_2" android:label="@string/shealthmonitor_app_name" android:largeHeap="true" android:name="com.samsung.android.shealthmonitor.SHealthMonitorApplication" android:requestLegacyExternalStorage="true" android:roundIcon="@drawable/group_2" android:supportsRtl="true" android:theme="@style/AppTheme">
    +    <application android:allowBackup="false" android:allowTaskReparenting="true" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:extractNativeLibs="true" android:icon="@drawable/group_2" android:label="@string/shealthmonitor_app_name" android:largeHeap="true" android:name="com.samsung.android.shealthmonitor.SHealthMonitorApplication" android:requestLegacyExternalStorage="true" android:roundIcon="@drawable/group_2" android:supportsRtl="true" android:theme="@style/AppTheme">
             <meta-data android:name="com.samsung.android.health.permission.write" android:value="com.samsung.health.blood_pressure;com.samsung.health.ecg"/>
             <meta-data android:name="com.samsung.android.health.permission.read" android:value="com.samsung.health.user_profile"/>
             <activity android:configChanges="keyboardHidden|orientation|screenSize" android:exported="false" android:hardwareAccelerated="true" android:label="@string/shealthmonitor_app_name" android:launchMode="singleTask" android:name="com.samsung.android.shealthmonitor.home.ui.activity.SHealthMonitorMainActivity" android:screenOrientation="portrait" android:theme="@style/ProMainAppCompat"/>
    @@ -180,4 +180,4 @@
             <meta-data android:name="SPDE.build.signature" android:value="unknown/unofficial/release/none"/>
             <meta-data android:name="SPDE.env.version" android:value="4.0.0/L30.1.18/0.9.17"/>
    \ No newline at end of file
    Only in /tmp/tmp.LHSTmyPfrE: build
    diff --color -u -p -r /tmp/tmp.t6S5vOlrqk/smali/com/samsung/android/sdk/SsdkVendorCheck.smali /tmp/tmp.LHSTmyPfrE/smali/com/samsung/android/sdk/SsdkVendorCheck.smali
    --- /tmp/tmp.t6S5vOlrqk/smali/com/samsung/android/sdk/SsdkVendorCheck.smali    2021-02-26 13:43:56.570128395 +0100
    +++ /tmp/tmp.LHSTmyPfrE/smali/com/samsung/android/sdk/SsdkVendorCheck.smali    2021-02-26 14:10:08.629140988 +0100
    @@ -41,7 +41,7 @@
         .line 24
         sget-object v0, Lcom/samsung/android/sdk/SsdkVendorCheck;->strBrand:Ljava/lang/String;
    -    const/4 v1, 0x0
    +    const/4 v1, 0x1
         if-eqz v0, :cond_2
    @@ -52,7 +52,7 @@
         goto :goto_0
    -    const-string v2, "Samsung"
    +    const-string v2, "Google"
         .line 26
         invoke-virtual {v0, v2}, Ljava/lang/String;->compareToIgnoreCase(Ljava/lang/String;)I
    diff --color -u -p -r /tmp/tmp.t6S5vOlrqk/smali/com/samsung/android/shealthmonitor/bp/ui/card/SHealthMonitorBpCard.smali /tmp/tmp.LHSTmyPfrE/smali/com/samsung/android/shealthmonitor/bp/ui/card/SHealthMonitorBpCard.smali
    --- /tmp/tmp.t6S5vOlrqk/smali/com/samsung/android/shealthmonitor/bp/ui/card/SHealthMonitorBpCard.smali    2021-02-26 13:43:56.646128686 +0100
    +++ /tmp/tmp.LHSTmyPfrE/smali/com/samsung/android/shealthmonitor/bp/ui/card/SHealthMonitorBpCard.smali    2021-02-24 16:41:43.047126075 +0100
    @@ -914,7 +914,7 @@
         sub-int/2addr v1, v0
    -    const/16 v0, 0x16
    +    const/16 v0, 0x11
         if-le v0, v1, :cond_0
    diff --color -u -p -r /tmp/tmp.t6S5vOlrqk/smali/com/samsung/android/shealthmonitor/util/CSCUtils.smali /tmp/tmp.LHSTmyPfrE/smali/com/samsung/android/shealthmonitor/util/CSCUtils.smali
    --- /tmp/tmp.t6S5vOlrqk/smali/com/samsung/android/shealthmonitor/util/CSCUtils.smali    2021-02-26 13:43:56.723128980 +0100
    +++ /tmp/tmp.LHSTmyPfrE/smali/com/samsung/android/shealthmonitor/util/CSCUtils.smali    2021-02-24 15:32:09.013429909 +0100
    @@ -1058,14 +1058,14 @@
         .line 217
    -    sget-object v0, Lcom/samsung/android/shealthmonitor/util/CommonConstants$SupportCountry;->ALL_NOT_SUPPORT:Lcom/samsung/android/shealthmonitor/util/CommonConstants$SupportCountry;
    +    sget-object v0, Lcom/samsung/android/shealthmonitor/util/CommonConstants$SupportCountry;->ALL_SUPPORT:Lcom/samsung/android/shealthmonitor/util/CommonConstants$SupportCountry;
         return-object v0
         .line 192
    -    sget-object v0, Lcom/samsung/android/shealthmonitor/util/CommonConstants$SupportCountry;->NO_SIM:Lcom/samsung/android/shealthmonitor/util/CommonConstants$SupportCountry;
    +    sget-object v0, Lcom/samsung/android/shealthmonitor/util/CommonConstants$SupportCountry;->ALL_SUPPORT:Lcom/samsung/android/shealthmonitor/util/CommonConstants$SupportCountry;
         return-object v0
    .end method
    diff --color -u -p -r /tmp/tmp.t6S5vOlrqk/smali/com/samsung/android/shealthmonitor/util/Utils.smali /tmp/tmp.LHSTmyPfrE/smali/com/samsung/android/shealthmonitor/util/Utils.smali
    --- /tmp/tmp.t6S5vOlrqk/smali/com/samsung/android/shealthmonitor/util/Utils.smali    2021-02-26 13:43:56.726128992 +0100
    +++ /tmp/tmp.LHSTmyPfrE/smali/com/samsung/android/shealthmonitor/util/Utils.smali    2021-02-26 14:31:25.965026392 +0100
    @@ -2138,7 +2138,7 @@
         move-result v2
    -    const/16 v4, 0x16
    +    const/16 v4, 0x11
         sub-int/2addr v2, v0
    @@ -2193,16 +2193,16 @@
         move-result-object v0
    -    const-string v1, "samsung"
    +    const-string v1, "google"
    -    invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
    +    invoke-virtual {v1, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
         move-result v0
         return v0
    -    const/4 v0, 0x0
    +    const/4 v0, 0x1
         return v0
    .end method
    New tpk pusher with v1.1.0037 ;)
    Hello everyone,

    As we have no users from Korea as it seems...
    No idea why...

    I'm from Korea :eek:

    First, thanks for your great work. Now I'm using BP feature with my galaxy watch active 2 using your guide.

    I have a Korean Galaxy Note 10+ (SM-N976N) and Korean Galaxy watch active 2 (SM-R820, R820XXU1BTD6, CSC=KOO, Tizen

    I could install the BP version 1.0.72 (samsungapps-000004413020-2035556-100000072.wgt) and ECG version 1.0.0004 (samsungapps-000004688049-2651158-100000004.wgt) and SHM version (Samsung Health Monitor,
    but unfortunately I still couldn't get the ECG feature..


    There was no ECG debug menu on *#0*#.


    I analyzed the decoded APK + disassembled JAVA code for SHM version 153 and 165, and I couldn't find the ECG logic.
    There was no code for "com.samsung.android.shealthmonitor.ecg.control.EcgController" class which is called from ControlManager.
    Of course the "com.samsung.android.shealthmonitor.bp.control.BloodPressureController" class could be found in the folder.


    Finally, there is a Korean website of "Ministry of Food and Drug Safety"

    You can find the BP and ECG approved number by Samsung if you can translate Korean...
    1. Type 삼성전자 in 업소명 field (find samsung electronics in company name)
    2. Click 제 2893 호 (company number 2893)
    3. 제허 20-295 호 (approval number 20-295)
    -> This is for current BP app.
    -> Classification Name is 혈압 검사 또는 맥파 검사용 기기 (Sphygmomanometers and sphygmograph). You can find this one as "home_about_label_classification" in strings.xml.
    -> Model name is 혈압 앱 (BP app). You can find this one as "home_about_label_model" in strings.xml.
    4. 제허 20-378호 (approval number 20-378)
    -> This is for (maybe not released) ECG app.
    -> Classification Name is 심전계 (Electrocardiograph)
    -> Model name is ECG 앱 (ECG app)

    153 version didn't include both of 20-295 (BP app) and 20-378 (ECG app)
    165 version only includes 20-295 (BP app)


    So, my conclusion is, there is no ECG code for current SHM app for now. sam...sung............. (it's so shameful because many of my friends works on samsung mobile division. I apologize instead of that dumb guys :cool:)
    Pass the updated version please and I'll unlock it 😉...
    Following our conversation. Original file