Skip to content

Commit 08a7edd

Browse files
committed
backend/usb: fix potential macOS communication issue with BitBox02
``` go get github.com/BitBoxSwiss/bitbox02-api-go@35af5fe go mod tidy go mod vendor ```
1 parent baafefe commit 08a7edd

File tree

6 files changed

+65
-7
lines changed

6 files changed

+65
-7
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
## Unreleased
44

5+
## v4.48.4
6+
- macOS: fix potential USB communication issue with BitBox02 bootloaders <v1.1.2 and firmwares <v9.23.1
7+
58
## v4.48.3
69
- Linux: fix compatiblity with some versions of Mesa also when using the AppImage
710

backend/devices/usb/hid.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"runtime"
2121

2222
"github.com/BitBoxSwiss/bitbox-wallet-app/util/logging"
23+
"github.com/BitBoxSwiss/bitbox02-api-go/communication/u2fhid"
2324
"github.com/karalabe/hid"
2425
)
2526

@@ -101,7 +102,7 @@ func (info hidDeviceInfo) Identifier() string {
101102
// singleThreadedDevice runs all hidapi functions in the same OS thread. See the docs of the
102103
// `funcCalls` variable for more info. Implements io.ReadWriteCloser, like `hid.Device`.
103104
type singleThreadedDevice struct {
104-
device hid.Device
105+
device io.ReadWriteCloser
105106
}
106107

107108
// Write wraps hid.Device.Write to run in a dedicated OS thread.
@@ -147,9 +148,13 @@ func (info hidDeviceInfo) Open() (io.ReadWriteCloser, error) {
147148
if result.err != nil {
148149
return nil, result.err
149150
}
150-
return singleThreadedDevice{device: result.value}, nil
151+
return singleThreadedDevice{device: u2fhid.NewHidDevice(result.value)}, nil
151152
}
152-
return info.DeviceInfo.Open()
153+
hidDevice, err := info.DeviceInfo.Open()
154+
if err != nil {
155+
return nil, err
156+
}
157+
return u2fhid.NewHidDevice(hidDevice), nil
153158
}
154159

155160
// DeviceInfos returns a slice of all recognized devices.

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/BitBoxSwiss/bitbox-wallet-app
33
go 1.23
44

55
require (
6-
github.com/BitBoxSwiss/bitbox02-api-go v0.0.0-20250624081228-dba834f08d4b
6+
github.com/BitBoxSwiss/bitbox02-api-go v0.0.0-20250812130951-35af5fe7a036
77
github.com/BitBoxSwiss/block-client-go v0.0.0-20241009081439-924dde98b9c1
88
github.com/btcsuite/btcd v0.24.2
99
github.com/btcsuite/btcd/btcec/v2 v2.3.4

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
github.com/BitBoxSwiss/bitbox02-api-go v0.0.0-20250624081228-dba834f08d4b h1:b7btgkW7SJ/Q48ePS5ExybsP95YoaWidn0o2axt9Fws=
2-
github.com/BitBoxSwiss/bitbox02-api-go v0.0.0-20250624081228-dba834f08d4b/go.mod h1:lyYwD22hA6TQ8XNXx37VE75Exp6qYdgZgUAO4+lyhSU=
1+
github.com/BitBoxSwiss/bitbox02-api-go v0.0.0-20250812130951-35af5fe7a036 h1:odkevMKSWjMjdWoQHodlKjwgqtB6RXX5imQHZl2/9S4=
2+
github.com/BitBoxSwiss/bitbox02-api-go v0.0.0-20250812130951-35af5fe7a036/go.mod h1:lyYwD22hA6TQ8XNXx37VE75Exp6qYdgZgUAO4+lyhSU=
33
github.com/BitBoxSwiss/block-client-go v0.0.0-20241009081439-924dde98b9c1 h1:5hjP8mYSVKFibesrz8L6U0Vp5zSJt0LwXB3DSZGhnSo=
44
github.com/BitBoxSwiss/block-client-go v0.0.0-20241009081439-924dde98b9c1/go.mod h1:SJTiQZU9ggBzVKMni97rpNS9GddPKErndFXNSDrfEGc=
55
github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ=

vendor/github.com/BitBoxSwiss/bitbox02-api-go/communication/u2fhid/hiddevice.go

Lines changed: 50 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/modules.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# github.com/BitBoxSwiss/bitbox02-api-go v0.0.0-20250624081228-dba834f08d4b
1+
# github.com/BitBoxSwiss/bitbox02-api-go v0.0.0-20250812130951-35af5fe7a036
22
## explicit; go 1.22
33
github.com/BitBoxSwiss/bitbox02-api-go/api/bootloader
44
github.com/BitBoxSwiss/bitbox02-api-go/api/common

0 commit comments

Comments
 (0)