11import {
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' ;
88
99export 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 ) ;
1218 // classic 类型(包括classci 1s, mini, classic),不需要更新bootloader
13- const firmwareVersion = getDeviceFirmwareVersion ( features ) . join ( '.' ) ;
14- const bootloaderVersion = `${ getDeviceBootloaderVersion ( features ) ?. join ( '.' ) } ` ;
1519 switch ( deviceType ) {
16- case 'CLASSIC1S' :
20+ case EDeviceType . Classic1s :
21+ case EDeviceType . ClassicPure :
1722 return {
1823 onekey_boot_url : '' ,
1924 onekey_firmware_url : firmwareVersion
2025 ? `https://github.com/OneKeyHQ/firmware-classic1s/releases/tag/v${ firmwareVersion } `
2126 : '' ,
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 } `
2429 : '' ,
2530 } ;
26- case 'PRO' :
31+ case EDeviceType . Pro :
2732 return {
2833 onekey_boot_url : bootloaderVersion
2934 ? `https://github.com/OneKeyHQ/firmware-pro/releases/tag/bootloader-v${ bootloaderVersion } `
3035 : '' ,
3136 onekey_firmware_url : firmwareVersion
3237 ? `https://github.com/OneKeyHQ/firmware-pro/releases/tag/v${ firmwareVersion } `
3338 : '' ,
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 } `
3641 : '' ,
3742 } ;
3843 default :
@@ -44,27 +49,31 @@ export const getReleaseUrl = ({ features }: { features?: Features }) => {
4449 }
4550} ;
4651
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 ) ;
6877
6978 const {
7079 onekey_firmware_url : firmwareUrl ,
@@ -81,49 +90,46 @@ export function getDeviceBasicInfo(
8190 bootloaderVersion,
8291 boardloaderVersion,
8392 firmwareVersion,
93+ bootloaderBuildId,
94+ boardloaderBuildId,
95+ firmwareBuildId,
96+ bleBuildId,
8497 bootUrl,
8598 firmwareUrl,
8699 bleUrl,
87100 } ;
88101}
89102
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 ) ;
94110 const {
95111 deviceType,
96112 serialNumber,
97113 bleVersion,
98114 bootloaderVersion,
99115 boardloaderVersion,
100116 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 ) ;
123118
124- const boardloaderHash = onekeyFeatures ?. onekey_board_hash || features ?. onekey_board_hash ;
119+ const { firmwareHash, bootloaderHash, boardloaderHash, bleHash } = getFirmwareInfoFromFeatures (
120+ _features as Features
121+ ) ;
125122
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 ) ;
127133
128134 return {
129135 deviceType,
@@ -146,3 +152,80 @@ export function getDeviceInfo(
146152 bleHash,
147153 } ;
148154}
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