Skip to content

Releases: yume-chan/ya-webadb

v1.0.0

04 Dec 09:56
c0d0695
Compare
Choose a tag to compare

See upgrade from 0.0.24 for all changes.

v0.0.24

18 Jun 08:10
b62419f
Compare
Choose a tag to compare

What's Changed

@yume-chan/adb

  • Allow streams to accept both Uint8Array and Consumable<Uint8Array> as inputs (doc)
  • Rename AdbDaemonTransport's debugSlowRead option to readTimeLimit. Allow users to specify a custom timeout for read operations. It's still disabled by default.
  • Include unauthorized devices in AdbServerClient#getDevices() and AdbServerClient#trackDevices(). You need to filter them out if you don't need them (doc)
  • Add more methods to AdbServerClient
  • Group AdbServerClient-relating types into namespace. In future, more types will be moved to namespaces.
  • Fix Adb#reverse#list() returning an extra empty object.
  • Fix reverse tunnel handler not invoked.
  • Fix too many event listener warning in Node.js.

@yume-chan/adb-scrcpy

  • Rename AdbScrcpyClient#controlMessageWriter to controller
  • Remove AdbScrcpyClient#deviceMessageStream. Use ScrcpyOptions#clipboard to watch clipboard changes (doc)
  • Allow AdbScrcpyClient#pushServer to accept ReadableStream<Uint8Array> as input
  • Add AV1 video size parsing support
  • Loosen type parameter constraints on AdbScrcpyOptionsX_XX classes, allow them to accept more option types

@yume-chan/android-bin

  • Allow streams to accept both Uint8Array and Consumable<Uint8Array> as inputs (doc)
  • Add all supported fields to DumpSys.Battery.Info

@yume-chan/pcm-player

  • Expose outputLatency from AudioContext

@yume-chan/scrcpy

  • Add AV1 metadata parser Av1
  • Move clipboard stream to ScrcpyOptions#clipboard (doc)
  • Make ScrcpyControlMessageWriter#setClipboard wait for the clipboard to be updated on device (when sequence is not 0)
  • Add options class for version 2.3

@yume-chan/scrcpy-decoder-tinyh264

  • Fix worker constructor parameters
  • Rename frameRendered and frameSkipped to framesRendered and framesSkipped

@yume-chan/scrcpy-decoder-webcodecs

  • Support decoding AV1
  • Add enableCapture option to WebCodecsVideoDecoder which allows renderer.readPixels and renderer.toDataURL to work. The performance will be slightly affected when enabled.

@yume-chan/stream-extra

  • Add MaybeConsumable type. It's also a namespace containing related types.
  • Re-export global TextDecoderStream to replace DecodeUtf8Stream which doesn't work correctly in stream mode
  • Move Consumable related types to the Consumable namespace. In future, more types will be moved to namespaces.

@yume-chan/struct

  • Rename some internal types to make them more distinguishable

@yume-chan/dataview-bigint-polyfill

This package has been removed, as all modern browsers now supports bigint in DataView natively.

Its code is moved to https://github.com/yume-chan/dataview-bigint-polyfill.

To reduce allocating DataViews for small ArrayBuffers, a new package @yume-chan/no-data-view was added.

Full Changelog: v0.0.23...v0.0.24

Note: Rush, the monorepo management tool used by this repository, only works in Git clones. Instead of downloading the attached source code tarball in this release, you must clone this repository and checkout the corresponding tag.

v0.0.23

21 Mar 03:48
adfcc12
Compare
Choose a tag to compare

What's Changed

@yume-chan/adb

  • Add AdbServerClient.trackDevices, which runs a callback function whenever device list changes
  • Add support for delayed ack on Android 14

@yume-chan/adb-daemon-webusb

  • Fix AdbDaemonWebUsbDeviceManager.getDevices doesn't match auto-generated serial number against filters.serialNumber (if the device doesn't have a serial number)

@yume-chan/android-bin

  • Add support for pm install session

@yume-chan/aoa

  • Replace HidKeyboard.serializeInputReport with updateReport, allowing to reuse the buffer

@yume-chan/fetch-scrcpy-server

  • Fix the generated VERSION constant incorrectly having a v character prefixed

@yume-chan/scrcpy-decoder-tinyh264

  • Add sizeChanged event

@yume-chan/scrcpy-decoder-webcodecs

  • Add sizeChanged event
  • Add WebGL and Bitmap based video renderers, which are 1.5 to 3 times faster on Android devices

@yume-chan/stream-extra

  • Fix ConsumableWritableStream.write calls chunk.consume twice. (doesn't cause any issue)
  • Fix WrapWritableStream might close the inner stream twice. (and throw an error)
  • Remove web-streams-polyfill dependency. The runtime must have global stream implementations (or you can add a polyfill yourself).

@yume-chan/dataview-bigint-polyfill

New Contributors

Full Changelog: v0.0.22...v0.0.23

Note: Rush, the monorepo management tool used by this repository, only works in Git clones. Instead of downloading the attached source code tarball in this release, you must clone this repository and checkout the corresponding tag.

v0.0.22

13 Dec 07:30
6fc88b9
Compare
Choose a tag to compare

What's Changed

@yume-chan/adb

  • Add getListenAddresses method to AdbTcpIpCommand class for retrieving current ADB over WiFi state
  • Add debugSlowRead option to AdbDaemonTransport that throws an error when an ADB socket is stalled for 5 seconds
  • Fix AdbSync#read stuck when there is an error
  • Fix TypeScript build when using AdbSubprocessNoneProtocol without installing web-streams-polyfill package
  • Calling AdbSocket.readable.cancel() or AdbSocket.writable.end() no longer closes the socket. Only AdbSocket.close() does. Calling AdbSocket.readable.cancel() will ignore all the future incoming data, calling AdbSocket.writable.end() won't do anything.

@yume-chan/adb-daemon-webusb

  • Check incoming packet size to prevent Chrome from crashing
  • Add exclusionFilters option to AdbDaemonWebUsbDeviceManager#requestDevice method
  • AdbDaemonWebUsbDevice will generate a fake serial number from vid and pid if the device serial number is empty

@yume-chan/scrcpy

  • Fix parsing sps_max_dec_pic_buffering_minus1 in H.265 SPS
  • Support parsing vui_hrd_parameters in H.265 SPS
  • Add support for Scrcpy 2.2

Full Changelog: v0.0.21...v0.0.22

Note: Rush, the monorepo management tool used by this repository, only works in Git clones. Instead of downloading the attached source code tarball in this release, you must clone this repository and checkout the corresponding tag.

v0.0.21

09 Sep 17:09
c48ffc1
Compare
Choose a tag to compare

What's Changed

@yume-chan/adb

  • Change AdbSync to throws AdbSyncError for errors returned by ADB Daemon
  • Allow daemon credential manager to provide a name for each key
  • Add typed errors for framebuffer command when current app disables screen capture
  • Change AdbDaemonTransport class to automatically close the connection by default, unless the new preserveConnection option is true
  • Add recursive and force options to rm method, allow deleting folders

@yume-chan/adb-credential-web

  • Add name for keys
  • Change to save private keys in IndexedDB, allow usage from Web Workers

@yume-chan/scrcpy

  • Add support for Scrcpy server version 2.1 and 2.1.1
  • Move the fetching server binary script to @yume-chan/scrcpy-fetch-server package

@yume-chan/adb-scrcpy

  • Add support for Scrcpy server version 2.1 and 2.1.1

@yume-chan/android-bin

  • Add wrapper for bu
  • Remove the last \n from Settings#get
  • Add wrappers for dumpsys diskstats and dumpsys battery
  • Add wrapper for pm list packages
  • Rewrite Settings to use Cmd if available
  • Add support to stop bugreport generation using AbortSiganl
  • Merge bugreport and bugreportz wrappers, providing an automatic method to choose the best available bugreport method

@yume-chan/stream-extra

  • Replace GatherStringStream with ConcatStringStream which can be treated as a Promise

Full Changelog: v0.0.20...v0.0.21

Note: Rush, the monorepo management tool used by this repository, only works in Git clones. Instead of downloading the attached source code tarball in this release, you must clone this repository and checkout the corresponding tag.

v0.0.20

05 Jun 03:09
d91fef0
Compare
Choose a tag to compare

What's Changed

All

  • Use ECMAScript private class fields syntax (supported by Chrome 74, Firefox 90, Safari 14.1 and Node.js 12.0.0).

@yume-chan/adb

  • Refactor AdbSubprocessShellProtocol class, this should improve some performance.
  • Split mode parameter in AdbSync#write() into type and permission for ease of use.
  • Add AdbReverseCommand#addExternal(). This only register the reverse tunnel to the device, the handler should already exists (for example you are adding a reverse tunnel for an external program that's already listening on the port). In ADB direct connection, this should do nothing, because the reverse tunnel is handled by this library and there is no mean of "external" handler.
  • Change AdbTcpIpCommand#setPort and AdbTcpIpCommand#disable to return or throw the response text. This can be displayed to the user to know what's wrong.
  • Add support for connecting to ADB servers. Because a USB device can only be used by one process at a time, the ADB server is the process that manages all connected devices. The server proxies and multiplexes connections from ADB clients so multiple adb commands can be executed on one device at the same time. The Adb class is no longer responsible for connecting and authenticating with ADB daemons. The AdbTransport interface and its two implementations AdbDaemonTransport and AdbServerTransport was added to connect to either ADB daemons or servers in compatible environments. Read the PR for details, migration paths, and examples. (#549)
  • Add serial field to Adb class.
  • Group product, model, device and features fields on Adb class to the banner field with type of AdbBanner.

@yume-chan/adb-credential-web

  • Change AdbWebCredentialStore to save private keys in IndexedDB, so it can be used in Web Workers. Previously saved keys in localStorage will be ignored and a new key will be generated.

adb-daemon-webusb

  • Rename package to @yume-chan/adb-daemon-webusb following the renaming of AdbDaemonTransport.
  • Rename AdbWebUsbBackend to AdbDaemonWebUsbDevice following the renaming of AdbDaemonTransport.
  • Add Support for detecting device disconnects. It no longer throws an NetworkError when the device is disconnected.
  • Add filters parameter to AdbDaemonWebUsbDeviceManager#getDevices. The filtration is manually implemented because WebUSB's getDevice API doesn't support filters.

@yume-chan/scrcpy

  • Add support for Scrcpy 2.0. New features including audio forwarding (supports PCM, AAC and OPUS encoding) and other video codecs (supports H.264 and H.265, AV1 not supported). Read the PR for new options and breaking changes. (#495)
  • Move ADB related code to @yume-chan/adb-scrcpy package. This package now only implements the Scrcpy protocol.

@yume-chan/scrcpy-decoder-webcodecs

  • Add support for decoding H.265 on supported browsers (Chrome works, Microsoft Edge with HEVC Video Extension from Microsoft Store doesn't decode H.265 correctly).

@yume-chan/stream-extra

  • Fix a bug where BufferedReadableStream#release might output duplicate data.

@yume-chan/struct

  • Rename StructDeserializeStream and StructAsyncDeserializeStream to ExactReadable and AsyncExactReadable. Rename its read method to readExactly. Add a position field so the caller can check how many bytes have been read.
  • Improve performance for decoding integers.
  • Rename Struct#fields to Struct#concat. Now Struct#fields returns an array of [name: PropertyKey, definition: StructFieldDefinition<any, any, any>] tuples.

Full Changelog: v0.0.19...v0.0.20

Note: Rush, the monorepo management tool used by this repository, only works in Git clones. Instead of downloading the attached source code tarball in this release, you must clone this repository and checkout the corresponding tag.

v0.0.19

09 Apr 06:23
d6fc80c
Compare
Choose a tag to compare

What's Changed

@yume-chan/adb

  • Remove Adb#install in favor of PackageManager#install from @yume-chan/android-bin package
  • Change AdbSync#write to take a ReadableStream<Uint8Array> instead of returning a WritableStream<Uint8Array>
  • Add buffering in sync module to improve transfer speed
  • Add AdbReverseError and AdbReverseNotSupportedError for better error handling in reverse tunnel command.

@yume-chan/adb-backend-webusb

  • Add the AdbWebUsbBackendManager class to simplify the usage with custom WebUSB implementations (for example the usb NPM package).

@yume-chan/android-bin

  • Add wrapper for cmd, with support for Android Binder Bridge (abb)
  • Add wrapper for pm install/cmd package install, with support for streaming installation.
  • Add OverlayDisplay wrapper for managing overlay displays

@yume-chan/scrcpy

  • Change AdbScrcpyClient#pushServer to take a ReadableStream<Uint8Array> instead of returning a WritableStream<Uint8Array>
  • Add AdbReverseNotSupportedError handling and automatically switch to forward tunnel in AdbScrcpyClient.
  • Update AndroidKeyCode enum to align with Web KeyboardEvent.code

@yume-chan/stream-extra

  • Add an option to combine small chunks into target size in ChunkStream, and rename it to DistributionStream

Full Changelog: v0.0.18...v0.0.19

Note: Rush, the monorepo management tool used by this repository, only works in Git clones. Instead of downloading the attached source code tarball in this release, you must clone this repository and checkout the corresponding tag.

v0.0.18

25 Jan 21:54
9705738
Compare
Choose a tag to compare

What's Changed

@yume-chan/adb-backend-webusb

  • Add an option to specify USB filters

@yume-chan/scrcpy

  • Move @yume-chan/adb to peerDependencies. You need to install it manually if you want to use Adb* types.
  • Add support for Scrcpy server version 1.25
  • Add support for SetClipboard control message and AckClipboard device message

@yume-chan/scrcpy-decoder-webcodecs

  • Change to not use vertical sync to minimize latency

@yume-chan/stream-extra

  • Change to load native Web Streams API implementation from globalThis if available. No longer need to import ReadableStream, WritableStream and TransformStream from @yume-chan/stream-extra if you are sure the runtime supports them natively.

@yume-chan/struct

  • Refactor number types for easier extending (see ScrcpyFloatToInt16FieldDefinition for an example)

Full Changelog: v0.0.17...v0.0.18

Note: Rush, the monorepo management tool used by this repository, only works in Git clones. Instead of downloading the attached source code tarball in this release, you must clone this repository and checkout the corresponding tag.

v0.0.17

18 Oct 10:14
b157c68
Compare
Choose a tag to compare

What's Changed

This release doesn't have many new features, but mainly focus on API clean up.

  • The stream related utilities are now moved to its own package @yume-chan/stream-extras
  • @yume-chan/scrcpy has heavy API changes to make it easier to be integrated into other backend or frontend, see its README for details
  • Scrcpy video decoders are now separated to their own packages @yume-chan/scrcpy-decoder-webcodecs and @yume-chan/scrcpy-decoder-tinyh264

Full Changelog: v0.0.16...v0.0.17

Note: Rush, the monorepo management tool used by this repository, only works in Git clones. Instead of downloading the attached source code tarball in this release, you must clone this repository and checkout the corresponding tag.

v0.0.16

28 May 04:45
9265c72
Compare
Choose a tag to compare

What's Changed

  • Upgrade TypeScript to 4.7.2 to enable Node.js ESM
  • Upgrade web-streams-polyfill to 4.0.0-beta.3, fix an issue where Adb#close() doesn't release the connection.
  • Fix an issue where AdbSocket#readable#cancel() stalls the connection.
  • Massive performance and memory usage improvements.
  • Added Enter Key + non-alphanumeric char compatibility to scrcpy by @LordGiacomoS in #415

New Contributors

Full Changelog: v0.0.15...v0.0.16