1
1
import {
2
- getDeviceBootloaderVersion ,
3
- getDeviceFirmwareVersion ,
4
- getDeviceType ,
5
- getDeviceUUID ,
6
- } from '@onekeyfe/hd-core ' ;
7
- import type { Features , OnekeyFeatures } from '@onekeyfe/hd-transport' ;
2
+ getHardwareInfoFromFeatures ,
3
+ getFirmwareInfoFromFeatures ,
4
+ getSeInfoFromFeatures ,
5
+ EDeviceType ,
6
+ } from '@onekeyfe/hd-shared ' ;
7
+ import type { Features } from '@onekeyfe/hd-transport' ;
8
8
9
9
export const getReleaseUrl = ( { features } : { features ?: Features } ) => {
10
- const deviceType = getDeviceType ( features ) ?. toUpperCase ( ) || 'UNKNOWN' ;
11
- // const { firmwareUrl, bleVersion } = getDeviceBasicInfo(features, onekeyFeatures);
10
+ if ( ! features )
11
+ return {
12
+ onekey_boot_url : '' ,
13
+ onekey_firmware_url : '' ,
14
+ onekey_ble_url : '' ,
15
+ } ;
16
+ const { firmwareVersion, bootloaderVersion, bleVersion } = getFirmwareInfoFromFeatures ( features ) ;
17
+ const { deviceType } = getHardwareInfoFromFeatures ( features ) ;
12
18
// classic 类型(包括classci 1s, mini, classic),不需要更新bootloader
13
- const firmwareVersion = getDeviceFirmwareVersion ( features ) . join ( '.' ) ;
14
- const bootloaderVersion = `${ getDeviceBootloaderVersion ( features ) ?. join ( '.' ) } ` ;
15
19
switch ( deviceType ) {
16
- case 'CLASSIC1S' :
20
+ case EDeviceType . Classic1s :
21
+ case EDeviceType . ClassicPure :
17
22
return {
18
23
onekey_boot_url : '' ,
19
24
onekey_firmware_url : firmwareVersion
20
25
? `https://github.com/OneKeyHQ/firmware-classic1s/releases/tag/v${ firmwareVersion } `
21
26
: '' ,
22
- onekey_ble_url : features ?. ble_ver
23
- ? `https://github.com/OneKeyHQ/bluetooth-firmware-classic/releases/tag/v${ features ?. ble_ver } `
27
+ onekey_ble_url : bleVersion
28
+ ? `https://github.com/OneKeyHQ/bluetooth-firmware-classic/releases/tag/v${ bleVersion } `
24
29
: '' ,
25
30
} ;
26
- case 'PRO' :
31
+ case EDeviceType . Pro :
27
32
return {
28
33
onekey_boot_url : bootloaderVersion
29
34
? `https://github.com/OneKeyHQ/firmware-pro/releases/tag/bootloader-v${ bootloaderVersion } `
30
35
: '' ,
31
36
onekey_firmware_url : firmwareVersion
32
37
? `https://github.com/OneKeyHQ/firmware-pro/releases/tag/v${ firmwareVersion } `
33
38
: '' ,
34
- onekey_ble_url : features ?. ble_ver
35
- ? `https://github.com/OneKeyHQ/bluetooth-firmware-pro/releases/tag/v${ features ?. ble_ver } `
39
+ onekey_ble_url : bleVersion
40
+ ? `https://github.com/OneKeyHQ/bluetooth-firmware-pro/releases/tag/v${ bleVersion } `
36
41
: '' ,
37
42
} ;
38
43
default :
@@ -44,27 +49,31 @@ export const getReleaseUrl = ({ features }: { features?: Features }) => {
44
49
}
45
50
} ;
46
51
47
- export function getDeviceBasicInfo (
48
- features : Features | undefined ,
49
- onekeyFeatures : OnekeyFeatures | undefined
50
- ) {
51
- const deviceType = getDeviceType ( features ) ?. toUpperCase ( ) || 'UNKNOWN' ;
52
- const serialNumber = features && getDeviceUUID ( features ) ;
53
-
54
- const bleBuildId = onekeyFeatures ?. onekey_ble_build_id || features ?. onekey_ble_build_id ;
55
- const bleVersion = `${ features ?. ble_ver } -${ bleBuildId } ` ;
56
-
57
- const bootloaderBuildId = onekeyFeatures ?. onekey_boot_build_id || features ?. onekey_boot_build_id ;
58
- const bootloaderVersion =
59
- features && `${ getDeviceBootloaderVersion ( features ) ?. join ( '.' ) } -${ bootloaderBuildId } ` ;
60
-
61
- const boardloaderVersion =
62
- features && `${ features ?. onekey_board_version } -${ onekeyFeatures ?. onekey_board_build_id } ` ;
63
-
64
- const firmwareBuildId =
65
- onekeyFeatures ?. onekey_firmware_build_id || features ?. onekey_firmware_build_id ;
66
- const firmwareVersion =
67
- features && `${ getDeviceFirmwareVersion ( features ) ?. join ( '.' ) } -${ firmwareBuildId } ` ;
52
+ export function getDeviceBasicInfo ( features : Features | undefined ) {
53
+ if ( ! features )
54
+ return {
55
+ deviceType : '' ,
56
+ serialNumber : '' ,
57
+ bleVersion : '' ,
58
+ bootloaderVersion : '' ,
59
+ boardloaderVersion : '' ,
60
+ firmwareVersion : '' ,
61
+ boardloaderBuildId : '' ,
62
+ bootloaderBuildId : '' ,
63
+ firmwareBuildId : '' ,
64
+ bleBuildId : '' ,
65
+ } ;
66
+ const {
67
+ bootloaderVersion,
68
+ boardloaderVersion,
69
+ firmwareVersion,
70
+ firmwareBuildId,
71
+ bootloaderBuildId,
72
+ boardloaderBuildId,
73
+ bleVersion,
74
+ bleBuildId,
75
+ } = getFirmwareInfoFromFeatures ( features ) ;
76
+ const { deviceType, serialNumber } = getHardwareInfoFromFeatures ( features ) ;
68
77
69
78
const {
70
79
onekey_firmware_url : firmwareUrl ,
@@ -81,49 +90,46 @@ export function getDeviceBasicInfo(
81
90
bootloaderVersion,
82
91
boardloaderVersion,
83
92
firmwareVersion,
93
+ bootloaderBuildId,
94
+ boardloaderBuildId,
95
+ firmwareBuildId,
96
+ bleBuildId,
84
97
bootUrl,
85
98
firmwareUrl,
86
99
bleUrl,
87
100
} ;
88
101
}
89
102
90
- export function getDeviceInfo (
91
- features : Features | undefined ,
92
- onekeyFeatures : OnekeyFeatures | undefined
93
- ) {
103
+ export function getDeviceInfo ( features : Features | undefined , onekeyFeatures : any | undefined ) {
104
+ if ( ! features ) throw new Error ( 'features is undefined' ) ;
105
+ const _features = {
106
+ ...features ,
107
+ ...onekeyFeatures ,
108
+ } ;
109
+ console . error ( 'caikaisheng _features' , _features ) ;
94
110
const {
95
111
deviceType,
96
112
serialNumber,
97
113
bleVersion,
98
114
bootloaderVersion,
99
115
boardloaderVersion,
100
116
firmwareVersion,
101
- } = getDeviceBasicInfo ( features , onekeyFeatures ) ;
102
-
103
- const firmwareHash = onekeyFeatures ?. onekey_firmware_hash || features ?. onekey_firmware_hash ;
104
-
105
- const bootloaderHash =
106
- onekeyFeatures ?. onekey_boot_hash || features ?. onekey_boot_hash || features ?. bootloader_hash ;
107
-
108
- const se01BuildId = onekeyFeatures ?. onekey_se01_build_id || features ?. onekey_se01_build_id ;
109
- const se01Version = `${ features ?. onekey_se01_version || features ?. se_ver } -${ se01BuildId } ` ;
110
- const se01Hash = onekeyFeatures ?. onekey_se01_hash ;
111
-
112
- const se02BuildId = onekeyFeatures ?. onekey_se02_build_id ;
113
- const se02Version = `${ features ?. onekey_se02_version } -${ se02BuildId } ` ;
114
- const se02Hash = onekeyFeatures ?. onekey_se02_hash ;
115
-
116
- const se03BuildId = onekeyFeatures ?. onekey_se03_build_id ;
117
- const se03Version = `${ features ?. onekey_se03_version } -${ se03BuildId } ` ;
118
- const se03Hash = onekeyFeatures ?. onekey_se03_hash ;
119
-
120
- const se04BuildId = onekeyFeatures ?. onekey_se04_build_id ;
121
- const se04Version = `${ features ?. onekey_se04_version } -${ se04BuildId } ` ;
122
- const se04Hash = onekeyFeatures ?. onekey_se04_hash ;
117
+ } = getDeviceBasicInfo ( _features as Features ) ;
123
118
124
- const boardloaderHash = onekeyFeatures ?. onekey_board_hash || features ?. onekey_board_hash ;
119
+ const { firmwareHash, bootloaderHash, boardloaderHash, bleHash } = getFirmwareInfoFromFeatures (
120
+ _features as Features
121
+ ) ;
125
122
126
- const bleHash = onekeyFeatures ?. onekey_ble_hash || features ?. onekey_ble_hash ;
123
+ const {
124
+ se01Version,
125
+ se01Hash,
126
+ se02Version,
127
+ se02Hash,
128
+ se03Version,
129
+ se03Hash,
130
+ se04Version,
131
+ se04Hash,
132
+ } = getSeInfoFromFeatures ( _features as Features ) ;
127
133
128
134
return {
129
135
deviceType,
@@ -146,3 +152,80 @@ export function getDeviceInfo(
146
152
bleHash,
147
153
} ;
148
154
}
155
+
156
+ export function getFeaturesBetweenProtocol ( features : Features | undefined ) {
157
+ if ( ! features ) return { } ;
158
+
159
+ const hardwareInfo = getHardwareInfoFromFeatures ( features ) ;
160
+ const firmwareInfo = getFirmwareInfoFromFeatures ( features ) ;
161
+ const seInfo = getSeInfoFromFeatures ( features ) ;
162
+
163
+ return {
164
+ ...features ,
165
+
166
+ // Firmware info
167
+ onekey_firmware_version : firmwareInfo . firmwareVersion ,
168
+ onekey_firmware_hash : firmwareInfo . firmwareHash ,
169
+ onekey_firmware_build_id : firmwareInfo . firmwareBuildId ,
170
+
171
+ onekey_boot_version : firmwareInfo . bootloaderVersion ,
172
+ onekey_boot_build_id : firmwareInfo . bootloaderBuildId ,
173
+ onekey_boot_hash : firmwareInfo . bootloaderHash ,
174
+ onekey_board_version : firmwareInfo . boardloaderVersion ,
175
+ onekey_board_build_id : firmwareInfo . boardloaderBuildId ,
176
+ onekey_board_hash : firmwareInfo . boardloaderHash ,
177
+ onekey_ble_version : firmwareInfo . bleVersion ,
178
+ onekey_ble_name : firmwareInfo . bleName ,
179
+ onekey_ble_build_id : firmwareInfo . bleBuildId ,
180
+ onekey_ble_hash : firmwareInfo . bleHash ,
181
+ bleMac : firmwareInfo . bleMac ,
182
+
183
+ // SE info
184
+ onekey_se_type : seInfo . seType ,
185
+ onekey_se01_type : seInfo . se01Type ,
186
+ onekey_se02_type : seInfo . se02Type ,
187
+ onekey_se03_type : seInfo . se03Type ,
188
+ onekey_se04_type : seInfo . se04Type ,
189
+ onekey_se01_version : seInfo . se01Version ,
190
+ onekey_se02_version : seInfo . se02Version ,
191
+ onekey_se03_version : seInfo . se03Version ,
192
+ onekey_se04_version : seInfo . se04Version ,
193
+ onekey_se01_hash : seInfo . se01Hash ,
194
+ onekey_se02_hash : seInfo . se02Hash ,
195
+ onekey_se03_hash : seInfo . se03Hash ,
196
+ onekey_se04_hash : seInfo . se04Hash ,
197
+ onekey_se01_boot_version : seInfo . se01BootVersion ,
198
+ onekey_se02_boot_version : seInfo . se02BootVersion ,
199
+ onekey_se03_boot_version : seInfo . se03BootVersion ,
200
+ onekey_se04_boot_version : seInfo . se04BootVersion ,
201
+ onekey_se01_boot_hash : seInfo . se01BootHash ,
202
+ onekey_se02_boot_hash : seInfo . se02BootHash ,
203
+ onekey_se03_boot_hash : seInfo . se03BootHash ,
204
+ onekey_se04_boot_hash : seInfo . se04BootHash ,
205
+ onekey_se01_boot_build_id : seInfo . se01BootBuildId ,
206
+ onekey_se02_boot_build_id : seInfo . se02BootBuildId ,
207
+ onekey_se03_boot_build_id : seInfo . se03BootBuildId ,
208
+ onekey_se04_boot_build_id : seInfo . se04BootBuildId ,
209
+ onekey_se01_build_id : seInfo . se01BuildId ,
210
+ onekey_se02_build_id : seInfo . se02BuildId ,
211
+ onekey_se03_build_id : seInfo . se03BuildId ,
212
+ onekey_se04_build_id : seInfo . se04BuildId ,
213
+ onekey_se01_state : seInfo . se01State ,
214
+ onekey_se02_state : seInfo . se02State ,
215
+ onekey_se03_state : seInfo . se03State ,
216
+ onekey_se04_state : seInfo . se04State ,
217
+
218
+ // Hardware info
219
+ device_id : hardwareInfo . serialNumber ,
220
+ label : hardwareInfo . label ,
221
+ onekey_device_type : hardwareInfo . deviceType ,
222
+ hardwareVersion : hardwareInfo . hardwareVersion ,
223
+ hardwareVersionRawAdc : hardwareInfo . hardwareVersionRawAdc ,
224
+ onekey_serial : hardwareInfo . serialNumber ,
225
+ onekey_serial_no : hardwareInfo . serialNumber ,
226
+ serial_no : hardwareInfo . serialNumber ,
227
+ init_state : hardwareInfo . init_state ,
228
+ language : hardwareInfo . language ,
229
+ passphrase_protection : hardwareInfo . passphrase_protection ,
230
+ } ;
231
+ }
0 commit comments