- Breaking: redesigned error model. Transport failures now throw a typed
AdbExceptionhierarchy (AdbConnectException,AdbAuthException,AdbStreamOpenException,AdbConnectionClosedException,AdbTimeoutException,AdbProtocolException), all extendingIOException. - Breaking: operation outcomes are now returned instead of thrown:
install/installMultiplereturnInstallResult,uninstallreturnsUninstallResult,push/pullreturnSyncResult,root/unrootreturnRootResult. - Breaking: a connection dropped mid-stream now throws
AdbConnectionClosedExceptioninstead of presenting as a clean end-of-stream. - Breaking: a read or write that exceeds its timeout now throws
AdbTimeoutExceptioninstead of a rawSocketTimeoutException. pmInstall(the non-cmdinstall path) now checks thepm installresult instead of ignoring it.- Fixed stream local-id collisions that surfaced as
Not listening for localIdand could tear down a live stream's state; stream ids are now sequential, like AOSP's adb client. - Socket writes are now bounded by a write timeout, so a wedged device fails fast instead of blocking a write indefinitely; the connection is rebuilt on the next operation.
- A stream read parked in
MessageQueue.take()no longer hangs when the connection closes or a read fails; it now wakes with the relevantAdbException. - Added opt-in result helpers —
onSuccess/onFailure/orThrowon each…Resulttype.orThrowraisesAdbOperationFailedException, which is not anAdbException, so a transport-levelcatch (AdbException)won't catch an opted-in operation-failure throw.
- Creating configuration for enabling keep alive on dadb socket
- Various fixes for Windows
- Allow streaming apk install
- Add timeout option when create Dadb
- Fix for install on physical devices
- When generating adb keys, ensure that parent directories are created if needed
- Fix: reverted back refactoring changes from 1.2.1
- Fix slow installation in some cases
- Fix for AdbSync refactor in 1.2.2
AdbServerDadb.createrenamed toAdbServer.createDadbDadb.discovernow supports physical devices (via the adb server)- Added
Dadb.list() - Added default host parameter for
Dadb.discover() - Added
AdbServer.listDadbs(no need to use this directly, useDadb.list())
- Fix push for API 24
- Add experimental API AdbServerDadb.create to connect to an adb server
- Fix unicode handling
- Add Dadb.installMultiple
- Fix: adbkey.pub is no longer required
- Updating version to 1.0.0 to be semantically aligned with other mobile.dev libraries
- Fix bad release
- Make
AdbShellPacketa sealed class
Dadb.create/Dadb.create/Dadb.discover/AdbKey.readDefault()will all generate a key if one is not found in the default location.
- Add support for TCP port forwarding
- Fix
Dadb.pullfor large files
Dadb.installfixed for Android SDK version <= 28Dadb.create/Dadb.discoveruses~/.android/adbkeyby default