Platform Notes

June 21, 2026 ยท View on GitHub

This page documents the platform-specific runtime requirements and behavior differences for Kadb.

Support Matrix

AreaAndroidJVM
Direct adbd connectionYesYes
Shell / shell v2YesYes
File transferYesYes
APK install / uninstallYesYes
TCP forwardYesYes
Wireless pairingYesYes
Optional mDNS discoveryYesYes
USB discoveryNoNo

Pairing Requirements

Pairing has stricter requirements than the rest of the library:

  • SPAKE2 support
  • TLS 1.3 support
  • TLS exporter support required by the pairing flow

Basic connect / shell / sync / install usage does not require the same provider setup as pairing.

Android

Runtime baseline

  • minSdk 23
  • direct client features are supported on Android targets
  • pairing support depends on TLS provider availability
  • optional mDNS discovery is provided by com.flyfishxu:kadb-mdns
  • mDNS discovery requires an explicit Android Context and uses platform NsdManager

Pairing

Android pairing needs:

  • SPAKE2 support
  • a TLS 1.3-capable provider

In practice:

  • Android 9 and newer can usually use the platform provider
  • Android 6 to 8 usually need a custom Conscrypt dependency

If TLS 1.3 is unavailable, Kadb fails pairing rather than falling back to an older TLS version.

JVM

Runtime baseline

The JVM target supports:

  • direct adbd connection
  • shell
  • sync push / pull
  • APK install / uninstall
  • TCP forward
  • wireless pairing
  • optional mDNS discovery through com.flyfishxu:kadb-mdns

The JVM mDNS implementation uses JmDNS internally and does not require Android concepts such as Context.

Pairing

On JVM, pairing requires a Conscrypt runtime dependency.

Recommended setup:

dependencies {
    implementation("com.flyfishxu:kadb:2.1.3")
    implementation("org.conscrypt:conscrypt-openjdk-uber:2.5.2")
}

Without Conscrypt on the classpath, pairing fails with an explicit runtime error.

Identity and Host Auth

Kadb uses a private-key-first host identity model on every platform:

  • the private key is the persisted source of truth
  • certificates are generated from that key at runtime
  • optional extra private keys can be supplied for AOSP-style multi-key host auth

Further detail: kadbcert.md