Garmin wearables have differing capabilities. For example, not all wearables are capable of real-time heart rate monitoring. Garmin can passively detect activities by a user and log the activity without a user actively starting an exercise in the app or on the wearable. This setting is OFF by default. If setting is on, it could log activity, unbeknownst to the user, that could be pertinent, which could include steps, heart rate, location, steps climbed. The type of data logged would be dependent on the capabilities of the wearable. Most of the relevant data available in the databases is stored in JSON. The query below is associated to device notifications.
SELECT
datetime(notification_info.postTime/1000,'unixepoch') AS "Notification Time (UTC)",
notification_info.packageName AS "App",
notification_info.title AS "Notification Title",
notification_info.message AS "Notification"
FROM
notification_info
ORDER BY "Notification Time (UTC)" ASC
There is a column "Status" in the database. Observed values are NEW, UPDATED, DISMISSED. I have not had time to test to see how accurate they are.
USERDATA/data/com.garmin.android.apps.connectmobile/databases/gcm_cache.db
Tables of interest:
devices
ID Number
Product Number
Bluetooth MAC address
Display & Friendly Names (latter is likely what is seen by user via UI
Connection Type
Last connection time (UNIX Epoch - will be NULL if never paired with phone, but associated with the Garmin account
Software Version
URL for stock photo (could help with identifying the actual device)
SKU
Part number
json
The data in this table is, as the name suggests, in json
Column "concept_name" provides insight into what the json data represents in the associated column ("cached_val")
Data is updated periodically (last updated timestamp in "saved_timestamp" column)
NOTE: The data in this table is based upon the capabilities of the wearable. For example, if the wearable is not capable of collecting 24/7 heart rate data, the entry "REAL_TIME_HEART_RATE" may be empty or non-existent.
USER_SETTINGS
Garmin Connect ID (useful for legal processes)
Provided date of birth
Gender
Handedness (indicates the setting for which hand the wearable is worn)
Heart rate format (bpm)
Height (in meters - provided by user)
Time format (12 or 24 hour)
Weight (in grams)
Sleep time (in seconds from midnight - wake time and bedtime)
json_activites
Data stored in this table is also in json
Tracks activities
Activity metrics within the JSON is stored in plain text
Includes the following if applicable to the activity AND if the associated wearable is able to capture:
Speed
Location
Elevation
Heart Rate
Cadence
Start/Stop location
Nearest Surface Weather Observation Station (searchable on the FAA website)
cache-database
This database appears to temporarily hold data. I have multiple versions of this database, and some have lots of data, others not so much. When it is populated heres what's is available:
sleep_deta
Sleep Start/Stop
Total time in Seconds
Autosleep Start/Stop
Not sure how this differs from regular stop/start. Garmin automatically detects sleep - a user doesn't need to initiate it
Time spent in sleep stages (in seconds)
Deep
Light
REM
Awake
SpO2 values during sleep
Respiration
More info can be found in Josh Hickmans blog: https://thebinaryhick.blog/2021/05/22/the-state-of-android-health-data-part-1-garmin/ . A special thanks to Josh for all the research he did on Android Health artifacts.