How to Inspect Health Connect Data Permissions and Sync States on Android Using ADB dumpsys healthconnect

Modern mobile health, fitness, and medical applications generate rich telemetry, including daily step counts, continuous heart rate metrics, sleep stages, nutritional logs, and blood glucose data. Previously, health applications relied on fragmented proprietary sync APIs or custom cloud-to-cloud integrations, creating severe security vulnerabilities and privacy blind spots. Starting with Android 14 (API level 34), Health Connect was integrated directly into the core Android operating system as an updatable Project Mainline system module (com.google.android.healthconnect). Health Connect provides an on-device encrypted repository that centralizes health telemetry while enforcing strict, granular user permissions. Using the Android Debug Bridge (ADB), security researchers, mobile developers, and enterprise fleet administrators can query dumpsys healthconnect to inspect connected applications, audit read/write permissions, monitor sync pipelines, and evaluate rate-limiting policies.

Understanding Android Health Connect Architecture

Health Connect replaces legacy cloud brokers with a secure, on-device data store managed directly by the Android framework. Key architectural components include:

  • Encrypted On-Device Database: All health and fitness telemetry records are stored in an encrypted SQLite database within the system storage sandbox. Telemetry cannot be read without explicit user permission grants.
  • Granular Category Permissions: Permissions are strictly decoupled by data type and operation direction (e.g. android.permission.health.READ_HEART_RATE and android.permission.health.WRITE_STEPS). Apps receive access only to the exact categories authorized by the user.
  • Background Synchronization: Health Connect supports background telemetry syncing, allowing wearable companion apps to flush metrics while enforcing battery-conscious scheduling through JobScheduler.
  • HealthConnectManagerService: Resides within the system module, managing access control lists, auditing API access frequency, evaluating data retention policies, and coordinating telemetry migrations.

Prerequisites and ADB Environment Configuration

Querying the Health Connect subsystem requires an Android device or emulator running Android 14 (API level 34) or later, or an Android 13 device with the official Health Connect Project Mainline module installed. Ensure Developer Options and USB Debugging are active on the test hardware.

Confirm the device connection via the terminal:

adb devices -l

Verify that the healthconnect service is registered with the Service Manager:

adb shell service check healthconnect

The console confirms: Service healthconnect: found.

Querying Complete Health Connect Dumpsys Telemetry

To inspect the runtime state of Health Connect, including connected apps, active database sessions, and migration history, dump the service output via ADB:

adb shell dumpsys healthconnect

The diagnostic dump provides a structured view of the subsystem:

HealthConnectManagerService:
  Current User: 0
  Database Status: INITIALIZED
  Connected Applications:
    Package: com.example.fitness.tracker
      Allowed Permissions:
        - READ_STEPS
        - WRITE_STEPS
        - READ_HEART_RATE
      Revoked Permissions:
        - READ_SLEEP
    Package: com.example.diet.nutrition
      Allowed Permissions:
        - WRITE_NUTRITION
  Rate Limiting Metrics:
    Quota Remaining: 120 / 120 requests
    Window Reset Time: 2026-11-08 05:00:00

The dump reveals vital compliance data:

  • Database Status: Verifies whether the local cryptographic SQLite store is initialized and accessible.
  • Connected Applications: Enumerates all installed packages that have requested or received Health Connect permissions, detailing active read and write allowances.
  • Rate Limiting Metrics: Tracks whether applications are consuming excessive API quotas or triggering back-pressure throttles.

Inspecting and Auditing Health Permissions via ADB

Health Connect permissions operate through Android’s standard runtime permission architecture, scoped under the android.permission.health.* namespace.

To inspect the health-related permissions requested by a specific application package:

adb shell dumpsys package com.example.fitness.tracker | grep -A 25 "Health Permissions:"

To audit whether an app currently holds permission to read step count telemetry:

adb shell cmd package dump-permissions com.example.fitness.tracker | grep "READ_STEPS"

During automated testing, engineers can grant or revoke specific health permissions directly via the command line without opening system dialogs:

# Grant read access for steps
adb shell pm grant com.example.fitness.tracker android.permission.health.READ_STEPS

# Revoke heart rate read access
adb shell pm revoke com.example.fitness.tracker android.permission.health.READ_HEART_RATE

Verify that the permission changes were applied in dumpsys healthconnect:

adb shell dumpsys healthconnect | grep -A 10 "com.example.fitness.tracker"

Auditing Health Connect Background Sync and Jobs

Wearable companion applications frequently synchronize telemetry in the background. To prevent battery drain and excessive wakeups, Health Connect coordinates synchronization through the system JobScheduler.

Inspect active Health Connect background synchronization jobs:

adb shell dumpsys jobscheduler | grep -A 20 "healthconnect"

To verify which applications recently accessed the Health Connect database in the background, query the system appops audit buffer:

adb shell cmd appops query-op --user 0 AUTO_REVOKE_PERMISSIONS_IF_UNUSED allow | grep -i health

Troubleshooting Sync Failures and Rate Throttling

When developing or auditing Health Connect integrations, investigate these common operational pitfalls:

  1. API Rate Throttling: To protect device performance, Health Connect limits the number of read/write transactions an app can perform in a given time window. If an application attempts to batch-write thousands of records continuously, Health Connect returns rate-limit exceptions. dumpsys healthconnect exposes remaining quota allowances.
  2. Data Migration Status: When users transition from the legacy standalone Health Connect app to the integrated Android 14 system module, data migration must complete. Check the migration flag in the dump:
    adb shell dumpsys healthconnect | grep -i "migration"
    If migration is stuck in a pending state, applications will be blocked from accessing historical records until sync completes.
  3. Manifest Health Declaration: If an app’s requested permissions do not appear in dumpsys healthconnect, confirm that the app’s manifest includes the mandatory <uses-permission> declarations and declares an activity with the androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE intent filter.

By monitoring dumpsys healthconnect with ADB, engineering teams ensure stringent user privacy, verify granular access controls, and diagnose synchronization issues across Android health ecosystems.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.