Skip to main content

getServerFeatures

declare class AdbServerClient {
getServerFeatures(): Promise<string[]>;
}

Gets the ADB features supported by the server.

In Google ADB Server mode, commands sent to devices are generated by the client, and forwarded to the device by the server. Since Google ADB client and server are in the same executable, this list essentially the feature list supported by the client.

Equivalent ADB Command
adb host-features

Note that a feature must be supported by both client and daemon to become effective, so the actual list for a device is the intersection of client features and device features (can be retrieved using getDeviceFeatures).

When Tango acts as the client that generates ADB commands, we might have a different feature list from the server, so this list doesn't affect how commands will behave. Currently, the client feature list used in server transports is hardcoded here.

Special features

libusb

Google ADB Server might return an extra libusb feature. This is not an ADB feature. It indicates the server is using libusb library instead of platform-dependent API to communicate with USB devices.

The adb detach command only works when the server is using libusb.

delayed_ack

Delayed Ack(knowledgement) is a new feature added in Android 14 to improve performance, especially for high-latency connections like ADB over Wi-Fi.

It works on the low-level ADB protocol. Since the connection is managed by Google ADB Server, it's not controlled by Tango. We can't enable it if the server doesn't support it.