remove it with:
sdb shell
pkgcmd -u -n com.samsung.health.samd.ecg
then install again with Tizen Studio (Device Manager)
sdb shell
pkgcmd -u -n com.samsung.health.samd.ecg
then install again with Tizen Studio (Device Manager)
Yeah, I found this last night messing around. Signing the ECG tpk that was posted a few pages back will install on my US Galaxy Watch 3 R845U (5.5.0.1 most recent). So now I have 2 working ECGs but no BP haha :cyclops:
At least this confirms we can still sideload apps on the R840/845 etc., running the newly updated 5.5.0.1. I'm messing around trying to merge the BP and ECG tpks - not sure if I'm making any progress at all, but at least different results each time I install. I know the whole issue is with the samd.bp being locked down but would there be any way to install a BP tpk as a separate app like the ECG can be?
@adfree is kind enough to have posted the firmware and instructions to downgrade... I just like the battle sometimes to see if there is a work around to get BP working before I flash. Lots of clever people here!
I tried by changing the app id to samd.bp2 so that it would install, it worked, smh regonized it but in the calibration it got stuck. Then I assumed the smh app would be hard coded to the service name but i need to change it because we cant delete the pre installed samd.bp.
Then I tried to trick it by using samd without .bp as name but for the service use the exact same name, it worked for the ecg but the bp app would not even start anymore. But when trying to revert to my ecg.tpk that didn't work anymore too so i had to reset the watch, now im back on the ecg.tpk. Could be that one of my tests screwed up the services.
If you start changing names, don't use the samd-home launcher, its hard coded to search for samd.bp, by changing the nodisplay parameter you can bypass the launcher.
But for the samd.bp with only ecg inside it that I used to make a ecg only tpk, that build is more recent(109) then the samd.bp with bp still inside it (still 29). Perhaps we just need a newer build of the combo app for 5.5.0.1?
{
"data1": "ZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2U=",
"data2": null,
"id": "dashboard@com.samsung.shealth.widget",
"ordering": 1,
"reserved1": null,
"reserved2": null,
"rowid": 85,
"subid": null,
"uid": "1ef61569319ed1de59dc00053cd39022"
},
Thanks for the suggestions! I think I'm getting somewhere. I was able to get BP back on my watch (R845U) ...just trying to find a corresponding SHM on my phone to connect with.
That's the easy part, if you have the .175 SMH installed it should go further, I suspect the service is not running.
If the service is running, SMH will pick it up and the app on the watch will give the button to open app instead of download app. If i pushed open app on the watch it would open SMH automaticly, I could also start callibration but then the app on the watch should change, that it didn't do. Then the app on the phone would go further with instructions until it said measuring on watch but the watch would not do anything until SMH gives a time out.
So i had BP running, SMH reconigized it, BP could start SMH but SMH could not control the BP app, why exactly not is still an open question here but my best guess so far is it needs a new build, the 5.5.0.1 changed a lot with permissions
Need help from Galaxy Watch 3 user, with working Blood Oxygen.
Blood Oxygen related.
https://xdaforums.com/showpost.php?p=83621535&postcount=3
Please I need this file from GW3. :angel:
Exported to JSON it contains some weired data...
Example:
Code:{ "data1": "ZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2U=", "data2": null, "id": "dashboard@com.samsung.shealth.widget", "ordering": 1, "reserved1": null, "reserved2": null, "rowid": 85, "subid": null, "uid": "1ef61569319ed1de59dc00053cd39022" },
data1 is Base64 encrypted... no idea what it is...
So IMHO easier to copy file to GWA2...
Thanx in advance.
Best Regards
{
"data1": "ZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2U=",
"data2": null,
"id": "[COLOR="Red"][B]bp@com.samsung.health.samd.bp.widget[/B][/COLOR]",
"ordering": 1,
"reserved1": null,
"reserved2": null,
"rowid": 92,
"subid": null,
"uid": "3f670d71547276a23a27ee8db1bbc3c4"
}
oxygensaturation@com.samsung.shealth.widget
@EQMOD
I have used Phone and the Wear Plugin crap to remove Widgets...
So I left only 1 as template...
Now i will try if change only 1 String...
And if I can copy to SM-R820...
Best Regards
Edit 1.
Writing to watch work... push...
But first attempt failed.
Still need .home.db from Galaxy Watch 3 with Blood Oxygen enabled.
Edit 2.
Code:{ "data1": "ZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2U=", "data2": null, "id": "[COLOR="Red"][B]bp@com.samsung.health.samd.bp.widget[/B][/COLOR]", "ordering": 1, "reserved1": null, "reserved2": null, "rowid": 92, "subid": null, "uid": "3f670d71547276a23a27ee8db1bbc3c4" }
Used this as template and replaced only by text string:
Code:oxygensaturation@com.samsung.shealth.widget
IMHO I need correct data1 and uid field...
For your study, take a look at ASUS VIVOWATCH SP (or older VIVOWATCH BP). They can track BP automatically at programmable intervals.
Do you own any of those watches? Can you show me a screenshot of the interval setting? (My boss does not want to buy another watch without knowing if the watch can do that for sure).
Thanks!
I own Vivowatch BP, the new model is Vivowatch SP.
This is a screenshot of the silent BP measurements from Vivowatch BP:
Awesome. Thanks!
And you don't have to put the finger on the sensor (I read something about the ECG being on top of th watch?).
The interval it measures seems kinda random? Between 15 and 20+ Min?
But still that looks perfect
On background measurements you dont have to put your finger on the sensor, only for on demand measurements you has.
Interval is set to 10 minutes but I suppose that some of the measurements fail due to movement or anything like this.
spo2 and vo2max is working for any one in galaxy active 2 (XAR R820)?
Not working for me on ZTO S20 and KOO R820.
I changed the CSC to KOO and restored to the factory configurations before connecting again with the ZTO S20.
BP and ECG working correctly and syncing with SHealth.
SpO2 is not being measured and VO2Max is nowhere to be seen.
No SpO2. VO2 max works. But it only appears in the analysis for the Running workout, and only if your heart rate is 70-90% of maximum for 20 continuous minutes, while you run on a flat surface with a good GPS signal.spo2 and vo2max is working for any one in galaxy active 2 (XAR R820)?
com_samsung_health_samd_bp.patched.tpk
filemonitor.apk
fileadb install ./monitor.apk
sdb install ./com_samsung_health_samd_bp.patched.tpk
com.samsung.health.samd.bp
to com.samsung.health.samd.bb
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
Following our conversation. Original file 1.1.0.183.