Galaxy Watch Features - ECG / BP

Search This thread

l0nax

Member
Jan 12, 2018
17
14
yesterday installed SHM1.1.0.183.apk and shm39_international_1.1.0039.Tpk of l0nax and working. Today ECG does not want to work. the arrow comes out and flashes but the measurement does not start. Tips?

What arrow do you mean?
Would it be possible for your to publish photos or a video?
 

73sydney

Account currently disabled
My pixel 3 does run on Android 11 and it works fine.
Could you please add more details, so we can start investigating why it's not working on your phone.

I want to note, that you should uninstall any previous version of SHM before installing the new one.
Are the signing keys you've used to sign the apps the same?

Im just going to reset my watch and start over...

ECG was working fine, but the 1st time i finally got to try BP...nope..."connections issues" ?
 

l0nax

Member
Jan 12, 2018
17
14
  • Like
Reactions: 73sydney

danistuta

Senior Member
Apr 10, 2008
132
2
On a Pixel 3XL: Worth noting I installed the app on my watch first, then installed the apk from Aptoide, calibrated it and it's working just fine. No modding or anything.
So
1. Install to watch first
2. Install APK second
3. Open app and calibrate.

I'm getting accurate readings on it now given I have my own BPM monitor as well. To calibrate it you gotta have your own BPM cuff to enter a baseline reading. The hardware on the Pixel doesnt exist, so you need to do that. 30 bucks at your local pharmacy and you can get your own BPM cuff if you're really wanting this working.

But all in all. The above method worked just fine for me before I undertook the method here (YMMV of course for other phones, I can only speak to Pixel 3XL)
Could you share your apks files? Have you got the last Samsung update Tizen 5.5.0.2? Thanks
 

73sydney

Account currently disabled
Could you please spend the output of the adb logcat command while you are trying the BP/ECG feature?

Not necessary....because i is full of win :)

As i said, i decided to start with a clean slate so i wasnt wasting anyones time...god knows i have about 2 updates and a few gremlins since i first enabled ECG and BP late last year...so i:

  • backed up my watch data to my samsung account (save yourself a lot of time folks)
  • reset the watch
  • restored my watch data
  • started over as per the original guide, from scratch tizen studio and all...created new certificates...
  • signed the original ECG and BP tpks as i did last year (not using the latest ones here)
  • reconnected the watch to my phone (with new (signed) samsung health monitor on it)
  • tested ecg = good
  • tested bp = good...no connection issues...goes all the way through calibration...win
So the only thing i did differently from the 1st time was use the latest Samsung Health Monitor apk from last few pages, and only because id already figured out how to sign and install it before i reset the phone. Im certain the original old Caravana SHM would have worked just as well. So the connection issue was most likely to do with the watch, which as ive said has had its share of updates and gremlins since i first did it - oddly not for ECG....

Also did not use the recently posted bp or shm tpks

Maybe i will try with the updated bp and shm tpks in a few days and see what happens....think its obvious you dont need the latest bp or shm tpks to have it all working, but will be interesting to see if they work or not...few people saying they dont

When in doubt, reduce the risk of sending everyone in the thread crazy and wasting their time, and reset and start over. If only more people did it :) :)

Cheers for your eagerness to help though @l0nax



p.s. Also having continued luck with Samsung Pay working just fine on my rooted Pixel 2XL. Nice when all functions of the watch work on a non Samsung phone
 
Last edited:

dd66

Senior Member
Jun 30, 2008
507
66
Paris
Hi all,
I'm leaving in France and received the official feb 22th Tizen update on my both watches, GWA2 and GW3.
So I uninstalled the moded SHM apk and installed the "official" one without any problem.
I use Samsung S21 Ultra.
But I'm facing a strange problem :
I can only calibrate ONE watch (no matter which) for BP, but the second watch calibration stops and force close SHM after the 2nd step!
Then SHM keeps force closing and i have to clear data to make it work again (and needs to calibrate (one!) watch again)
Any helps would be very appreciated, I'd really like to use both watches for BP!
Thanks in advance.

Some time has passed so any clue please?

BTW, just a recalibration does the same thing. Not related to multiple watches, though.
 
Last edited:
What id love to know next: where the BP calibration data is stored and potentially back it up, as a ROM tester, clean flashing means recalibrating BP all the time is going to be a pain in the bott bott
Well as I recall, from version 175 to 183, the encryption changed, I didn't really pay attention to the storage as I was investing the integration between SHM and SH after patching and fixing the latest SHM to be fully compatible and working with all phones (SDK24 and above) and regions...

So the encryption of SHM basically assigns an ID to the watch, if you reset your watch or tamper with the watch SHM, the ID is changed and thus, SHM on your phone would erase previous data and start over again, so even with with the backup of SHM data, you can't use...

It might be bpvault.db?
i do recall seeing the word vault db but I don't remember as it wasn't my target...
That is what I can tell so far...

Edit: since you flash your device a lot, try to maintain the same Android ID, it might also be related...
 
Last edited:
  • Like
Reactions: 73sydney
SHM TPK 39...

Compared with 37 I can not see much...
No languages added...

Maybe Bug(s) fixed or Security increased...

Best Regards
Thank you for the share...
It's mostly visual fixes, so I'd say bugs...
Services were not touched when I compared them, no security added...
1614787739353.png
 
Last edited:
Some time has passed so any clue please?

BTW, just a recalibration does the same thing. Not related to multiple watches, though.
SHM builds a database for one watch only, if you're using 2 watches, you'll end up with SHM crashing, and you don't need to do much to be honest for SHM to fail, SHM has a broadcast receiver listening to Bluetooth connections expecting a watch with SHM on it, so if you have both watches connected, they will one way or another interfere...
 
Last edited:
  • Like
Reactions: dd66

73sydney

Account currently disabled
Guys, please may you give me latest apk and tpks for non samsung phones for active 2?
Thx in advance

fwiw, heres the original ones from the original method and the only ones ive used, in apk form, one for ECG, one for BP. Simply install on phone and they get pushed automatically to watch. Just remember not to uninstall them, because, you guessed it, they then get removed from the watch. I get too confused too by the many tpk's floating around. So i just use the ones i know work....
 

Attachments

  • Samsung.BP.TPK.installer.apk
    3.3 MB · Views: 520
  • Samsung.ECG.TPK.installer.apk
    3.9 MB · Views: 378
Last edited:
fwiw, heres the original ones from the original method and the only ones ive used, in apk form, one for ECG, one for BP. Simply install on phone and they get pushed automatically to watch. Just remember not to uninstall them, because, you guessed it, they then get removed from the watch. I get too confused too by the many tpk's floating around. So i just use the ones i know work....
Thanks for what you've done but unfortunally it didn't work for me. I do have ECG working from another thread. I can't seem to get BP working no matter what I try. I have a GWA2 and a Nokia 7.2. Any suggestions?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 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 (2.2.6.0).

    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 2.2.6.0, 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).

    EDIT:
    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.
    10
    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: 5.5.0.2
      • Software-Version: R840XXU1BUA8
    • Google Pixel 3 (Android 11)
    • Location: Germany
    Samsung Health Monitor Versions:
    • Android: 1.1.0.183
    • 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.

    Screenshots

    Screenshot_20210226-130853.pngScreenshot_20210226-130850.pngScreenshot_20210226-144144.png
    PXL_20210226_120932126.MP.jpgPXL_20210226_120924324.MP.jpgPXL_20210226_120915266.MP.jpg
    Screen__20210226_144651.pngScreen_20210226_144551.png

    Files
    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:
    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"/>
         </application>
    -</manifest>
    \ No newline at end of file
    +</manifest>
    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
    
         :cond_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
         :cond_5
    -    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
         :cond_6
         :goto_2
    -    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
    
         :cond_0
    -    const/4 v0, 0x0
    +    const/4 v0, 0x1
    
         return v0
    .end method
    10
    New tpk pusher with v1.1.0037 ;)
    9
    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 4.0.0.8).

    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 1.0.0.165 (Samsung Health Monitor 1.0.0.165.mod2.apk),
    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"
    https://emed.mfds.go.kr/#!CECAB01F010

    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:)
    9
    Pass the updated version please and I'll unlock it 😉...
    Following our conversation. Original file 1.1.0.183.