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.
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.