@onekeyfe/hd-core 1.2.0-alpha.0 → 1.2.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/__tests__/connectSettings.test.ts +19 -0
  2. package/__tests__/device-wallet-session-store.test.ts +131 -0
  3. package/__tests__/preInitialize.test.ts +33 -0
  4. package/__tests__/protocol-v2-firmware-targets.test.ts +19 -0
  5. package/__tests__/protocol-v2.test.ts +1930 -765
  6. package/dist/api/ClearSessionCache.d.ts +9 -0
  7. package/dist/api/ClearSessionCache.d.ts.map +1 -0
  8. package/dist/api/FileRead.d.ts.map +1 -1
  9. package/dist/api/FileWrite.d.ts.map +1 -1
  10. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  11. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  12. package/dist/api/FirmwareUpdateV4.d.ts +26 -5
  13. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  14. package/dist/api/GetDeviceInfo.d.ts.map +1 -1
  15. package/dist/api/GetFeatures.d.ts +1 -1
  16. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  17. package/dist/api/GetPassphraseState.d.ts +4 -4
  18. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  19. package/dist/api/device/DeviceUnlock.d.ts +1 -1
  20. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +1 -0
  21. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  22. package/dist/api/firmware/bootloaderHelper.d.ts.map +1 -1
  23. package/dist/api/firmware/getBinary.d.ts +4 -0
  24. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  25. package/dist/api/firmware/progressThrottle.d.ts +3 -0
  26. package/dist/api/firmware/progressThrottle.d.ts.map +1 -0
  27. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  28. package/dist/api/index.d.ts +8 -10
  29. package/dist/api/index.d.ts.map +1 -1
  30. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +6 -0
  31. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -0
  32. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +7 -0
  33. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -0
  34. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +1 -1
  35. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
  36. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +3 -2
  37. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
  38. package/dist/api/protocol-v2/{DeviceGetDeviceInfo.d.ts → DeviceInfoGet.d.ts} +10 -10
  39. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -0
  40. package/dist/api/protocol-v2/DeviceSessionGet.d.ts +9 -0
  41. package/dist/api/protocol-v2/DeviceSessionGet.d.ts.map +1 -0
  42. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +6 -0
  43. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -0
  44. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
  45. package/dist/api/protocol-v2/{FilesystemFixPermission.d.ts → FilesystemPermissionFix.d.ts} +2 -2
  46. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -0
  47. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +6 -0
  48. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -0
  49. package/dist/api/protocol-v2/helpers.d.ts +27 -19
  50. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  51. package/dist/api/ton/TonSignData.d.ts +1 -5
  52. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  53. package/dist/api/tron/TronSignMessage.d.ts +0 -1
  54. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  55. package/dist/api/tron/TronSignTransaction.d.ts +0 -1
  56. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  57. package/dist/constants/index.d.ts +2 -1
  58. package/dist/constants/index.d.ts.map +1 -1
  59. package/dist/core/index.d.ts.map +1 -1
  60. package/dist/data-manager/DataManager.d.ts +1 -1
  61. package/dist/data-manager/DataManager.d.ts.map +1 -1
  62. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  63. package/dist/device/Device.d.ts +17 -18
  64. package/dist/device/Device.d.ts.map +1 -1
  65. package/dist/device/DeviceWalletSessionStore.d.ts +15 -0
  66. package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -0
  67. package/dist/deviceProfile/buildDeviceFeatures.d.ts +6 -0
  68. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -0
  69. package/dist/deviceProfile/buildDeviceProfile.d.ts +3 -4
  70. package/dist/deviceProfile/buildDeviceProfile.d.ts.map +1 -1
  71. package/dist/deviceProfile/index.d.ts +1 -1
  72. package/dist/deviceProfile/index.d.ts.map +1 -1
  73. package/dist/index.d.ts +657 -539
  74. package/dist/index.js +2579 -2161
  75. package/dist/inject.d.ts.map +1 -1
  76. package/dist/protocols/protocol-v2/features.d.ts +12 -14
  77. package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
  78. package/dist/protocols/protocol-v2/firmware.d.ts +11 -9
  79. package/dist/protocols/protocol-v2/firmware.d.ts.map +1 -1
  80. package/dist/protocols/protocol-v2/index.d.ts +1 -0
  81. package/dist/protocols/protocol-v2/index.d.ts.map +1 -1
  82. package/dist/protocols/protocol-v2/walletSession.d.ts +13 -0
  83. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -0
  84. package/dist/types/api/firmwareUpdate.d.ts +4 -6
  85. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  86. package/dist/types/api/getDeviceInfo.d.ts +4 -2
  87. package/dist/types/api/getDeviceInfo.d.ts.map +1 -1
  88. package/dist/types/api/getPassphraseState.d.ts +4 -4
  89. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  90. package/dist/types/api/index.d.ts +11 -11
  91. package/dist/types/api/index.d.ts.map +1 -1
  92. package/dist/types/api/protocolV2.d.ts +16 -17
  93. package/dist/types/api/protocolV2.d.ts.map +1 -1
  94. package/dist/types/api/sessionCache.d.ts +10 -0
  95. package/dist/types/api/sessionCache.d.ts.map +1 -0
  96. package/dist/types/device.d.ts +88 -8
  97. package/dist/types/device.d.ts.map +1 -1
  98. package/dist/types/params.d.ts +1 -0
  99. package/dist/types/params.d.ts.map +1 -1
  100. package/dist/types/settings.d.ts +21 -1
  101. package/dist/types/settings.d.ts.map +1 -1
  102. package/dist/utils/capabilitieUtils.d.ts.map +1 -1
  103. package/dist/utils/deviceFeaturesUtils.d.ts +2 -0
  104. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  105. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  106. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  107. package/dist/utils/findDefectiveBatchDevice.d.ts +1 -1
  108. package/dist/utils/patch.d.ts +1 -1
  109. package/dist/utils/patch.d.ts.map +1 -1
  110. package/package.json +4 -4
  111. package/src/api/ClearSessionCache.ts +28 -0
  112. package/src/api/FileRead.ts +16 -3
  113. package/src/api/FileWrite.ts +14 -1
  114. package/src/api/FirmwareUpdateV2.ts +9 -2
  115. package/src/api/FirmwareUpdateV3.ts +2 -1
  116. package/src/api/FirmwareUpdateV4.ts +1089 -285
  117. package/src/api/GetDeviceInfo.ts +6 -13
  118. package/src/api/GetOnekeyFeatures.ts +3 -14
  119. package/src/api/GetPassphraseState.ts +7 -4
  120. package/src/api/device/DeviceRebootToBoardloader.ts +4 -4
  121. package/src/api/device/DeviceRebootToBootloader.ts +4 -4
  122. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +18 -4
  123. package/src/api/firmware/bootloaderHelper.ts +3 -2
  124. package/src/api/firmware/getBinary.ts +1 -1
  125. package/src/api/firmware/progressThrottle.ts +44 -0
  126. package/src/api/firmware/releaseHelper.ts +3 -3
  127. package/src/api/firmware/uploadFirmware.ts +5 -2
  128. package/src/api/index.ts +8 -10
  129. package/src/api/protocol-v2/{FactoryGetDeviceInfo.ts → DeviceFactoryInfoGet.ts} +3 -3
  130. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +32 -0
  131. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +3 -5
  132. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +39 -5
  133. package/src/api/protocol-v2/{DeviceGetDeviceInfo.ts → DeviceInfoGet.ts} +52 -22
  134. package/src/api/protocol-v2/DeviceReboot.ts +2 -2
  135. package/src/api/protocol-v2/DeviceSessionGet.ts +26 -0
  136. package/src/api/protocol-v2/DeviceStatusGet.ts +14 -0
  137. package/src/api/protocol-v2/FilesystemFormat.ts +4 -1
  138. package/src/api/protocol-v2/{FilesystemFixPermission.ts → FilesystemPermissionFix.ts} +2 -2
  139. package/src/api/protocol-v2/{GetProtoVersion.ts → ProtocolInfoRequest.ts} +2 -2
  140. package/src/api/protocol-v2/helpers.ts +58 -59
  141. package/src/api/ton/TonSignData.ts +1 -5
  142. package/src/api/tron/TronSignMessage.ts +0 -1
  143. package/src/api/tron/TronSignTransaction.ts +0 -1
  144. package/src/constants/index.ts +10 -1
  145. package/src/core/index.ts +22 -10
  146. package/src/data/messages/messages-protocol-v2.json +992 -1420
  147. package/src/data/messages/messages.json +8 -0
  148. package/src/data-manager/DataManager.ts +11 -4
  149. package/src/data-manager/connectSettings.ts +4 -0
  150. package/src/device/Device.ts +158 -294
  151. package/src/device/DevicePool.ts +9 -9
  152. package/src/device/DeviceWalletSessionStore.ts +78 -0
  153. package/src/deviceProfile/buildDeviceFeatures.ts +365 -0
  154. package/src/deviceProfile/buildDeviceProfile.ts +165 -200
  155. package/src/deviceProfile/index.ts +4 -1
  156. package/src/inject.ts +13 -16
  157. package/src/protocols/protocol-v2/features.ts +28 -67
  158. package/src/protocols/protocol-v2/firmware.ts +12 -36
  159. package/src/protocols/protocol-v2/index.ts +1 -0
  160. package/src/protocols/protocol-v2/walletSession.ts +83 -0
  161. package/src/types/api/firmwareUpdate.ts +16 -20
  162. package/src/types/api/getDeviceInfo.ts +4 -2
  163. package/src/types/api/getPassphraseState.ts +4 -4
  164. package/src/types/api/index.ts +17 -20
  165. package/src/types/api/protocolV2.ts +35 -40
  166. package/src/types/api/sessionCache.ts +14 -0
  167. package/src/types/device.ts +98 -34
  168. package/src/types/params.ts +4 -0
  169. package/src/types/settings.ts +42 -30
  170. package/src/utils/capabilitieUtils.ts +1 -2
  171. package/src/utils/deviceFeaturesUtils.ts +54 -29
  172. package/src/utils/deviceInfoUtils.ts +11 -29
  173. package/src/utils/deviceVersionUtils.ts +7 -25
  174. package/src/utils/findDefectiveBatchDevice.ts +6 -6
  175. package/dist/api/protocol-v2/DevReboot.d.ts +0 -7
  176. package/dist/api/protocol-v2/DevReboot.d.ts.map +0 -1
  177. package/dist/api/protocol-v2/DeviceGetDeviceInfo.d.ts.map +0 -1
  178. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +0 -6
  179. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +0 -1
  180. package/dist/api/protocol-v2/FactoryDeviceInfoSettings.d.ts +0 -7
  181. package/dist/api/protocol-v2/FactoryDeviceInfoSettings.d.ts.map +0 -1
  182. package/dist/api/protocol-v2/FactoryGetDeviceInfo.d.ts +0 -6
  183. package/dist/api/protocol-v2/FactoryGetDeviceInfo.d.ts.map +0 -1
  184. package/dist/api/protocol-v2/FilesystemFixPermission.d.ts.map +0 -1
  185. package/dist/api/protocol-v2/GetProtoVersion.d.ts +0 -6
  186. package/dist/api/protocol-v2/GetProtoVersion.d.ts.map +0 -1
  187. package/dist/deviceProfile/legacyFeaturesView.d.ts +0 -5
  188. package/dist/deviceProfile/legacyFeaturesView.d.ts.map +0 -1
  189. package/src/api/protocol-v2/DevReboot.ts +0 -24
  190. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +0 -16
  191. package/src/api/protocol-v2/FactoryDeviceInfoSettings.ts +0 -29
  192. package/src/deviceProfile/legacyFeaturesView.ts +0 -123
@@ -1,5 +1,4 @@
1
1
  import { EDeviceType, EFirmwareType } from '@onekeyfe/hd-shared';
2
- import { OneKeyDeviceType, OneKeySEState, OneKeySeType } from '@onekeyfe/hd-transport';
3
2
 
4
3
  import {
5
4
  getDeviceBLEFirmwareVersion,
@@ -26,12 +25,13 @@ import type {
26
25
  GetDeviceInfoParams,
27
26
  } from '../types/api/getDeviceInfo';
28
27
  import type { Features, OnekeyFeatures } from '../types';
29
- import type { DevFirmwareImageInfo, ProtocolV2DeviceInfo } from '@onekeyfe/hd-transport';
28
+ import type { DeviceFirmwareImageInfo, ProtocolV2DeviceInfo } from '@onekeyfe/hd-transport';
29
+ import { isProtocolV2BootloaderDeviceInfo } from '../protocols/protocol-v2/features';
30
30
 
31
31
  type BuildProtocolV1ProfileParams = {
32
32
  protocol?: DeviceInfoProtocol;
33
33
  features?: Features;
34
- onekeyFeatures?: OnekeyFeatures;
34
+ protocolV1OneKeyFeatures?: OnekeyFeatures;
35
35
  sources?: DeviceInfoSource[];
36
36
  scope?: GetDeviceInfoParams['scope'];
37
37
  includeRaw?: boolean;
@@ -42,17 +42,11 @@ type BuildProtocolV2ProfileParams = {
42
42
  sources?: DeviceInfoSource[];
43
43
  scope?: GetDeviceInfoParams['scope'];
44
44
  includeRaw?: boolean;
45
- /**
46
- * hw.serial_no 为空时的回退身份(通常传 transport 层的 device path)。
47
- * 早期 Pro2 工程板没有烧录 serial_no,空 serialNo 会导致设备无法进入
48
- * DevicePool 的 devices 字典,后续 getDevice(connectId) 必然失败。
49
- */
50
- fallbackSerialNo?: string;
51
45
  };
52
46
 
53
47
  const isMeaningfulVersion = (version?: string | null) => Boolean(version && version !== '0.0.0');
54
48
 
55
- const firstVersion = (...versions: Array<string | null | undefined>) =>
49
+ const firstMeaningfulVersion = (...versions: Array<string | null | undefined>) =>
56
50
  versions.find(isMeaningfulVersion) ?? null;
57
51
 
58
52
  const versionArrayToString = (version?: Array<number | string | null> | null) => {
@@ -75,24 +69,25 @@ const bytesToHex = (value: unknown): string | undefined => {
75
69
  return undefined;
76
70
  };
77
71
 
78
- const getImageVersion = (image?: DevFirmwareImageInfo | null) => image?.version ?? null;
72
+ const getImageVersion = (image?: DeviceFirmwareImageInfo | null) => image?.version ?? null;
79
73
 
80
- const getImageBuildId = (image?: DevFirmwareImageInfo | null) => image?.build_id ?? undefined;
74
+ const getImageBuildId = (image?: DeviceFirmwareImageInfo | null) => image?.build_id ?? undefined;
81
75
 
82
- const getImageHash = (image?: DevFirmwareImageInfo | null) => bytesToHex(image?.hash);
76
+ const getImageHash = (image?: DeviceFirmwareImageInfo | null) => bytesToHex(image?.hash);
83
77
 
84
78
  const shouldIncludeVerify = (scope?: GetDeviceInfoParams['scope']) =>
85
79
  scope === 'verify' || scope === 'full';
86
80
 
87
81
  const getDeviceMode = (features?: Features): DeviceInfoStatus['mode'] => {
88
82
  if (!features) return 'unknown';
89
- if (features.bootloader_mode === true) return 'bootloader';
83
+ if (features.bootloaderMode === true) return 'bootloader';
90
84
  if (features.initialized === false) return 'notInitialized';
91
85
  if (features.initialized === true) return 'normal';
92
86
  return 'unknown';
93
87
  };
94
88
 
95
89
  const getProtocolV2Mode = (deviceInfo?: ProtocolV2DeviceInfo): DeviceInfoStatus['mode'] => {
90
+ if (isProtocolV2BootloaderDeviceInfo(deviceInfo)) return 'bootloader';
96
91
  const initialized = deviceInfo?.status?.init_states;
97
92
  if (initialized === false) return 'notInitialized';
98
93
  if (initialized === true) return 'normal';
@@ -101,246 +96,220 @@ const getProtocolV2Mode = (deviceInfo?: ProtocolV2DeviceInfo): DeviceInfoStatus[
101
96
 
102
97
  const normalizeV1Versions = (
103
98
  features?: Features,
104
- onekeyFeatures?: OnekeyFeatures
99
+ protocolV1OneKeyFeatures?: OnekeyFeatures
105
100
  ): DeviceProfileVersions => ({
106
- firmware: firstVersion(
107
- onekeyFeatures?.onekey_firmware_version,
101
+ firmware: firstMeaningfulVersion(
102
+ protocolV1OneKeyFeatures?.onekey_firmware_version,
108
103
  versionArrayToString(getDeviceFirmwareVersion(features))
109
104
  ),
110
- bootloader: firstVersion(
111
- onekeyFeatures?.onekey_boot_version,
105
+ bootloader: firstMeaningfulVersion(
106
+ protocolV1OneKeyFeatures?.onekey_boot_version,
112
107
  versionArrayToString(getDeviceBootloaderVersion(features))
113
108
  ),
114
- board: firstVersion(
115
- onekeyFeatures?.onekey_board_version,
109
+ board: firstMeaningfulVersion(
110
+ protocolV1OneKeyFeatures?.onekey_board_version,
116
111
  versionArrayToString(features ? getDeviceBoardloaderVersion(features) : undefined)
117
112
  ),
118
- ble: firstVersion(
119
- onekeyFeatures?.onekey_ble_version,
120
- features?.onekey_ble_version,
121
- features?.ble_ver,
113
+ ble: firstMeaningfulVersion(
114
+ protocolV1OneKeyFeatures?.onekey_ble_version,
115
+ features?.bleVersion,
122
116
  versionArrayToString(features ? getDeviceBLEFirmwareVersion(features) : undefined)
123
117
  ),
124
- se01: firstVersion(onekeyFeatures?.onekey_se01_version, features?.onekey_se01_version),
125
- se02: firstVersion(onekeyFeatures?.onekey_se02_version, features?.onekey_se02_version),
126
- se03: firstVersion(onekeyFeatures?.onekey_se03_version, features?.onekey_se03_version),
127
- se04: firstVersion(onekeyFeatures?.onekey_se04_version, features?.onekey_se04_version),
128
- se01Boot: firstVersion(
129
- onekeyFeatures?.onekey_se01_boot_version,
130
- features?.onekey_se01_boot_version
118
+ se01: firstMeaningfulVersion(
119
+ protocolV1OneKeyFeatures?.onekey_se01_version,
120
+ features?.se01Version
131
121
  ),
132
- se02Boot: firstVersion(
133
- onekeyFeatures?.onekey_se02_boot_version,
134
- features?.onekey_se02_boot_version
122
+ se02: firstMeaningfulVersion(
123
+ protocolV1OneKeyFeatures?.onekey_se02_version,
124
+ features?.se02Version
135
125
  ),
136
- se03Boot: firstVersion(
137
- onekeyFeatures?.onekey_se03_boot_version,
138
- features?.onekey_se03_boot_version
126
+ se03: firstMeaningfulVersion(
127
+ protocolV1OneKeyFeatures?.onekey_se03_version,
128
+ features?.se03Version
139
129
  ),
140
- se04Boot: firstVersion(
141
- onekeyFeatures?.onekey_se04_boot_version,
142
- features?.onekey_se04_boot_version
130
+ se04: firstMeaningfulVersion(
131
+ protocolV1OneKeyFeatures?.onekey_se04_version,
132
+ features?.se04Version
133
+ ),
134
+ se01Boot: firstMeaningfulVersion(
135
+ protocolV1OneKeyFeatures?.onekey_se01_boot_version,
136
+ features?.se01BootVersion
137
+ ),
138
+ se02Boot: firstMeaningfulVersion(
139
+ protocolV1OneKeyFeatures?.onekey_se02_boot_version,
140
+ features?.se02BootVersion
141
+ ),
142
+ se03Boot: firstMeaningfulVersion(
143
+ protocolV1OneKeyFeatures?.onekey_se03_boot_version,
144
+ features?.se03BootVersion
145
+ ),
146
+ se04Boot: firstMeaningfulVersion(
147
+ protocolV1OneKeyFeatures?.onekey_se04_boot_version,
148
+ features?.se04BootVersion
143
149
  ),
144
150
  });
145
151
 
146
- const normalizeV2Versions = (deviceInfo?: ProtocolV2DeviceInfo): DeviceProfileVersions => ({
147
- firmware: firstVersion(getImageVersion(deviceInfo?.fw?.app)),
148
- bootloader: firstVersion(getImageVersion(deviceInfo?.fw?.boot)),
149
- board: firstVersion(getImageVersion(deviceInfo?.fw?.board)),
150
- ble: firstVersion(getImageVersion(deviceInfo?.bt?.app)),
151
- se01: firstVersion(getImageVersion(deviceInfo?.se1?.app)),
152
- se02: firstVersion(getImageVersion(deviceInfo?.se2?.app)),
153
- se03: firstVersion(getImageVersion(deviceInfo?.se3?.app)),
154
- se04: firstVersion(getImageVersion(deviceInfo?.se4?.app)),
155
- se01Boot: firstVersion(getImageVersion(deviceInfo?.se1?.boot)),
156
- se02Boot: firstVersion(getImageVersion(deviceInfo?.se2?.boot)),
157
- se03Boot: firstVersion(getImageVersion(deviceInfo?.se3?.boot)),
158
- se04Boot: firstVersion(getImageVersion(deviceInfo?.se4?.boot)),
159
- });
152
+ const normalizeV2Versions = (deviceInfo?: ProtocolV2DeviceInfo): DeviceProfileVersions => {
153
+ const info = deviceInfo;
154
+ return {
155
+ firmware: firstMeaningfulVersion(getImageVersion(info?.fw?.application)),
156
+ bootloader: firstMeaningfulVersion(getImageVersion(info?.fw?.bootloader)),
157
+ board: firstMeaningfulVersion(
158
+ getImageVersion(info?.fw?.application_data ?? info?.fw?.romloader)
159
+ ),
160
+ ble: firstMeaningfulVersion(getImageVersion(info?.coprocessor?.application)),
161
+ se01: firstMeaningfulVersion(getImageVersion(info?.se1?.application)),
162
+ se02: firstMeaningfulVersion(getImageVersion(info?.se2?.application)),
163
+ se03: firstMeaningfulVersion(getImageVersion(info?.se3?.application)),
164
+ se04: firstMeaningfulVersion(getImageVersion(info?.se4?.application)),
165
+ se01Boot: firstMeaningfulVersion(getImageVersion(info?.se1?.bootloader)),
166
+ se02Boot: firstMeaningfulVersion(getImageVersion(info?.se2?.bootloader)),
167
+ se03Boot: firstMeaningfulVersion(getImageVersion(info?.se3?.bootloader)),
168
+ se04Boot: firstMeaningfulVersion(getImageVersion(info?.se4?.bootloader)),
169
+ };
170
+ };
160
171
 
161
172
  // V2 状态由 normalizeV2Status 处理,这里只服务 buildProfileFromProtocolV1 的 V1 路径。
162
173
  const normalizeV1Status = (features?: Features): DeviceInfoStatus => ({
163
174
  mode: getDeviceMode(features),
164
175
  initialized: features?.initialized ?? null,
165
- bootloaderMode: features?.bootloader_mode ?? null,
176
+ bootloaderMode: features?.bootloaderMode ?? null,
166
177
  unlocked: features?.unlocked ?? null,
167
- passphraseProtection: features?.passphrase_protection ?? null,
168
- backupRequired: features?.needs_backup ?? null,
169
- noBackup: features?.no_backup ?? null,
178
+ passphraseProtection: features?.passphraseProtection ?? null,
179
+ attachToPinEnabled: features?.attachToPinEnabled ?? null,
180
+ unlockedAttachPin: features?.unlockedAttachPin ?? null,
181
+ backupRequired: features?.backupRequired ?? null,
182
+ noBackup: features?.noBackup ?? null,
170
183
  language: features?.language ?? null,
171
- bleEnabled: features?.ble_enable ?? null,
184
+ bleEnabled: features?.bleEnabled ?? null,
172
185
  });
173
186
 
174
- const normalizeV2Status = (deviceInfo?: ProtocolV2DeviceInfo): DeviceInfoStatus => ({
175
- mode: getProtocolV2Mode(deviceInfo),
176
- initialized: deviceInfo?.status?.init_states ?? null,
177
- bootloaderMode: false,
178
- unlocked: null,
179
- passphraseProtection: deviceInfo?.status?.passphrase_protection ?? null,
180
- backupRequired: deviceInfo?.status?.backup_required ?? null,
181
- noBackup: null,
182
- language: deviceInfo?.status?.language ?? null,
183
- bleEnabled: deviceInfo?.status?.bt_enable ?? null,
184
- });
187
+ const normalizeV2Status = (deviceInfo?: ProtocolV2DeviceInfo): DeviceInfoStatus => {
188
+ const status = deviceInfo?.status;
189
+ const bootloaderMode = isProtocolV2BootloaderDeviceInfo(deviceInfo);
190
+ return {
191
+ mode: getProtocolV2Mode(deviceInfo),
192
+ initialized: status?.init_states ?? null,
193
+ bootloaderMode,
194
+ unlocked: status?.unlocked ?? null,
195
+ passphraseProtection: status?.passphrase_enabled ?? null,
196
+ attachToPinEnabled: status?.attach_to_pin_enabled ?? null,
197
+ unlockedAttachPin: status?.unlocked_by_attach_to_pin ?? null,
198
+ backupRequired: status?.backup_required ?? null,
199
+ noBackup: null,
200
+ language: null,
201
+ bleEnabled: null,
202
+ };
203
+ };
185
204
 
186
205
  const normalizeV1Verify = (
187
206
  features?: Features,
188
- onekeyFeatures?: OnekeyFeatures
207
+ protocolV1OneKeyFeatures?: OnekeyFeatures
189
208
  ): DeviceProfileVerify => ({
190
- firmwareBuildId: onekeyFeatures?.onekey_firmware_build_id ?? features?.onekey_firmware_build_id,
191
- firmwareHash: onekeyFeatures?.onekey_firmware_hash ?? features?.onekey_firmware_hash,
192
- bootloaderBuildId: onekeyFeatures?.onekey_boot_build_id ?? features?.onekey_boot_build_id,
193
- bootloaderHash: onekeyFeatures?.onekey_boot_hash ?? features?.onekey_boot_hash,
194
- boardBuildId: onekeyFeatures?.onekey_board_build_id ?? features?.onekey_board_build_id,
195
- boardHash: onekeyFeatures?.onekey_board_hash ?? features?.onekey_board_hash,
196
- bleBuildId: onekeyFeatures?.onekey_ble_build_id ?? features?.onekey_ble_build_id,
197
- bleHash: onekeyFeatures?.onekey_ble_hash ?? features?.onekey_ble_hash,
198
- se01BuildId: onekeyFeatures?.onekey_se01_build_id ?? features?.onekey_se01_build_id,
199
- se01Hash: onekeyFeatures?.onekey_se01_hash ?? features?.onekey_se01_hash,
200
- se02BuildId: onekeyFeatures?.onekey_se02_build_id ?? features?.onekey_se02_build_id,
201
- se02Hash: onekeyFeatures?.onekey_se02_hash ?? features?.onekey_se02_hash,
202
- se03BuildId: onekeyFeatures?.onekey_se03_build_id ?? features?.onekey_se03_build_id,
203
- se03Hash: onekeyFeatures?.onekey_se03_hash ?? features?.onekey_se03_hash,
204
- se04BuildId: onekeyFeatures?.onekey_se04_build_id ?? features?.onekey_se04_build_id,
205
- se04Hash: onekeyFeatures?.onekey_se04_hash ?? features?.onekey_se04_hash,
206
- se01BootBuildId: onekeyFeatures?.onekey_se01_boot_build_id ?? features?.onekey_se01_boot_build_id,
207
- se01BootHash: onekeyFeatures?.onekey_se01_boot_hash ?? features?.onekey_se01_boot_hash,
208
- se02BootBuildId: onekeyFeatures?.onekey_se02_boot_build_id ?? features?.onekey_se02_boot_build_id,
209
- se02BootHash: onekeyFeatures?.onekey_se02_boot_hash ?? features?.onekey_se02_boot_hash,
210
- se03BootBuildId: onekeyFeatures?.onekey_se03_boot_build_id ?? features?.onekey_se03_boot_build_id,
211
- se03BootHash: onekeyFeatures?.onekey_se03_boot_hash ?? features?.onekey_se03_boot_hash,
212
- se04BootBuildId: onekeyFeatures?.onekey_se04_boot_build_id ?? features?.onekey_se04_boot_build_id,
213
- se04BootHash: onekeyFeatures?.onekey_se04_boot_hash ?? features?.onekey_se04_boot_hash,
209
+ firmwareBuildId:
210
+ protocolV1OneKeyFeatures?.onekey_firmware_build_id ?? features?.verify?.firmwareBuildId,
211
+ firmwareHash: protocolV1OneKeyFeatures?.onekey_firmware_hash ?? features?.verify?.firmwareHash,
212
+ bootloaderBuildId:
213
+ protocolV1OneKeyFeatures?.onekey_boot_build_id ?? features?.verify?.bootloaderBuildId,
214
+ bootloaderHash: protocolV1OneKeyFeatures?.onekey_boot_hash ?? features?.verify?.bootloaderHash,
215
+ boardBuildId: protocolV1OneKeyFeatures?.onekey_board_build_id ?? features?.verify?.boardBuildId,
216
+ boardHash: protocolV1OneKeyFeatures?.onekey_board_hash ?? features?.verify?.boardHash,
217
+ bleBuildId: protocolV1OneKeyFeatures?.onekey_ble_build_id ?? features?.verify?.bleBuildId,
218
+ bleHash: protocolV1OneKeyFeatures?.onekey_ble_hash ?? features?.verify?.bleHash,
219
+ se01BuildId: protocolV1OneKeyFeatures?.onekey_se01_build_id ?? features?.verify?.se01BuildId,
220
+ se01Hash: protocolV1OneKeyFeatures?.onekey_se01_hash ?? features?.verify?.se01Hash,
221
+ se02BuildId: protocolV1OneKeyFeatures?.onekey_se02_build_id ?? features?.verify?.se02BuildId,
222
+ se02Hash: protocolV1OneKeyFeatures?.onekey_se02_hash ?? features?.verify?.se02Hash,
223
+ se03BuildId: protocolV1OneKeyFeatures?.onekey_se03_build_id ?? features?.verify?.se03BuildId,
224
+ se03Hash: protocolV1OneKeyFeatures?.onekey_se03_hash ?? features?.verify?.se03Hash,
225
+ se04BuildId: protocolV1OneKeyFeatures?.onekey_se04_build_id ?? features?.verify?.se04BuildId,
226
+ se04Hash: protocolV1OneKeyFeatures?.onekey_se04_hash ?? features?.verify?.se04Hash,
227
+ se01BootBuildId:
228
+ protocolV1OneKeyFeatures?.onekey_se01_boot_build_id ?? features?.verify?.se01BootBuildId,
229
+ se01BootHash: protocolV1OneKeyFeatures?.onekey_se01_boot_hash ?? features?.verify?.se01BootHash,
230
+ se02BootBuildId:
231
+ protocolV1OneKeyFeatures?.onekey_se02_boot_build_id ?? features?.verify?.se02BootBuildId,
232
+ se02BootHash: protocolV1OneKeyFeatures?.onekey_se02_boot_hash ?? features?.verify?.se02BootHash,
233
+ se03BootBuildId:
234
+ protocolV1OneKeyFeatures?.onekey_se03_boot_build_id ?? features?.verify?.se03BootBuildId,
235
+ se03BootHash: protocolV1OneKeyFeatures?.onekey_se03_boot_hash ?? features?.verify?.se03BootHash,
236
+ se04BootBuildId:
237
+ protocolV1OneKeyFeatures?.onekey_se04_boot_build_id ?? features?.verify?.se04BootBuildId,
238
+ se04BootHash: protocolV1OneKeyFeatures?.onekey_se04_boot_hash ?? features?.verify?.se04BootHash,
214
239
  });
215
240
 
216
- const normalizeV2Verify = (deviceInfo?: ProtocolV2DeviceInfo): DeviceProfileVerify => ({
217
- firmwareBuildId: getImageBuildId(deviceInfo?.fw?.app),
218
- firmwareHash: getImageHash(deviceInfo?.fw?.app),
219
- bootloaderBuildId: getImageBuildId(deviceInfo?.fw?.boot),
220
- bootloaderHash: getImageHash(deviceInfo?.fw?.boot),
221
- boardBuildId: getImageBuildId(deviceInfo?.fw?.board),
222
- boardHash: getImageHash(deviceInfo?.fw?.board),
223
- bleBuildId: getImageBuildId(deviceInfo?.bt?.app),
224
- bleHash: getImageHash(deviceInfo?.bt?.app),
225
- se01BuildId: getImageBuildId(deviceInfo?.se1?.app),
226
- se01Hash: getImageHash(deviceInfo?.se1?.app),
227
- se02BuildId: getImageBuildId(deviceInfo?.se2?.app),
228
- se02Hash: getImageHash(deviceInfo?.se2?.app),
229
- se03BuildId: getImageBuildId(deviceInfo?.se3?.app),
230
- se03Hash: getImageHash(deviceInfo?.se3?.app),
231
- se04BuildId: getImageBuildId(deviceInfo?.se4?.app),
232
- se04Hash: getImageHash(deviceInfo?.se4?.app),
233
- se01BootBuildId: getImageBuildId(deviceInfo?.se1?.boot),
234
- se01BootHash: getImageHash(deviceInfo?.se1?.boot),
235
- se02BootBuildId: getImageBuildId(deviceInfo?.se2?.boot),
236
- se02BootHash: getImageHash(deviceInfo?.se2?.boot),
237
- se03BootBuildId: getImageBuildId(deviceInfo?.se3?.boot),
238
- se03BootHash: getImageHash(deviceInfo?.se3?.boot),
239
- se04BootBuildId: getImageBuildId(deviceInfo?.se4?.boot),
240
- se04BootHash: getImageHash(deviceInfo?.se4?.boot),
241
- });
241
+ const normalizeV2Verify = (deviceInfo?: ProtocolV2DeviceInfo): DeviceProfileVerify => {
242
+ const info = deviceInfo;
243
+ return {
244
+ firmwareBuildId: getImageBuildId(info?.fw?.application),
245
+ firmwareHash: getImageHash(info?.fw?.application),
246
+ bootloaderBuildId: getImageBuildId(info?.fw?.bootloader),
247
+ bootloaderHash: getImageHash(info?.fw?.bootloader),
248
+ boardBuildId: getImageBuildId(info?.fw?.application_data ?? info?.fw?.romloader),
249
+ boardHash: getImageHash(info?.fw?.application_data ?? info?.fw?.romloader),
250
+ bleBuildId: getImageBuildId(info?.coprocessor?.application),
251
+ bleHash: getImageHash(info?.coprocessor?.application),
252
+ se01BuildId: getImageBuildId(info?.se1?.application),
253
+ se01Hash: getImageHash(info?.se1?.application),
254
+ se02BuildId: getImageBuildId(info?.se2?.application),
255
+ se02Hash: getImageHash(info?.se2?.application),
256
+ se03BuildId: getImageBuildId(info?.se3?.application),
257
+ se03Hash: getImageHash(info?.se3?.application),
258
+ se04BuildId: getImageBuildId(info?.se4?.application),
259
+ se04Hash: getImageHash(info?.se4?.application),
260
+ se01BootBuildId: getImageBuildId(info?.se1?.bootloader),
261
+ se01BootHash: getImageHash(info?.se1?.bootloader),
262
+ se02BootBuildId: getImageBuildId(info?.se2?.bootloader),
263
+ se02BootHash: getImageHash(info?.se2?.bootloader),
264
+ se03BootBuildId: getImageBuildId(info?.se3?.bootloader),
265
+ se03BootHash: getImageHash(info?.se3?.bootloader),
266
+ se04BootBuildId: getImageBuildId(info?.se4?.bootloader),
267
+ se04BootHash: getImageHash(info?.se4?.bootloader),
268
+ };
269
+ };
242
270
 
243
271
  const normalizeRaw = ({
244
272
  features,
245
- onekeyFeatures,
273
+ protocolV1OneKeyFeatures,
246
274
  protocolV2DeviceInfo,
247
275
  }: {
248
276
  features?: Features;
249
- onekeyFeatures?: OnekeyFeatures;
277
+ protocolV1OneKeyFeatures?: OnekeyFeatures;
250
278
  protocolV2DeviceInfo?: ProtocolV2DeviceInfo;
251
279
  }): DeviceProfileRaw => ({
252
280
  ...(features ? { features } : {}),
253
- ...(onekeyFeatures ? { onekeyFeatures } : {}),
281
+ ...(protocolV1OneKeyFeatures ? { protocolV1OneKeyFeatures } : {}),
254
282
  ...(protocolV2DeviceInfo ? { protocolV2DeviceInfo } : {}),
255
283
  });
256
284
 
257
- /**
258
- * V1 profile 构建用的 features 合并视图。
259
- *
260
- * OnekeyFeatures 与 Features 的同名字段(onekey_device_type / onekey_se_type /
261
- * onekey_se0X_state)wire 同源:传输层解码会把 proto 枚举输出为名称字符串,与
262
- * Features 侧的 string 声明一致,仅生成类型分别声明为枚举/字符串,这里按
263
- * Features 的声明显式归一,避免整体 as Features 断言。
264
- */
265
- const mergeV1Features = (
266
- features?: Features,
267
- onekeyFeatures?: OnekeyFeatures
268
- ): Features | undefined => {
269
- if (!features && !onekeyFeatures) return undefined;
270
-
271
- const {
272
- onekey_device_type: onekeyDeviceType,
273
- onekey_se_type: onekeySeType,
274
- onekey_se01_state: onekeySe01State,
275
- onekey_se02_state: onekeySe02State,
276
- onekey_se03_state: onekeySe03State,
277
- onekey_se04_state: onekeySe04State,
278
- ...restOnekeyFeatures
279
- } = onekeyFeatures ?? {};
280
-
281
- const toEnumName = (
282
- enumObject: Record<string | number, string | number>,
283
- value: number | string | null | undefined
284
- ): string | null | undefined => {
285
- if (value == null || typeof value === 'string') return value;
286
- const label = enumObject[value];
287
- return typeof label === 'string' ? label : String(value);
288
- };
289
-
290
- return {
291
- // 仅 onekeyFeatures 的场景没有完整 Features 底座(与历史 as Features 行为一致,
292
- // 该路径目前没有调用方触达:两处调用都至少携带 features)。
293
- ...((features ?? {}) as Features),
294
- ...restOnekeyFeatures,
295
- ...(onekeyDeviceType !== undefined
296
- ? { onekey_device_type: toEnumName(OneKeyDeviceType, onekeyDeviceType) }
297
- : {}),
298
- ...(onekeySeType !== undefined
299
- ? { onekey_se_type: toEnumName(OneKeySeType, onekeySeType) }
300
- : {}),
301
- ...(onekeySe01State !== undefined
302
- ? { onekey_se01_state: toEnumName(OneKeySEState, onekeySe01State) }
303
- : {}),
304
- ...(onekeySe02State !== undefined
305
- ? { onekey_se02_state: toEnumName(OneKeySEState, onekeySe02State) }
306
- : {}),
307
- ...(onekeySe03State !== undefined
308
- ? { onekey_se03_state: toEnumName(OneKeySEState, onekeySe03State) }
309
- : {}),
310
- ...(onekeySe04State !== undefined
311
- ? { onekey_se04_state: toEnumName(OneKeySEState, onekeySe04State) }
312
- : {}),
313
- };
314
- };
315
-
316
285
  export function buildProfileFromProtocolV1({
317
286
  protocol = 'V1',
318
287
  features,
319
- onekeyFeatures,
288
+ protocolV1OneKeyFeatures,
320
289
  sources = ['features'],
321
290
  scope = 'basic',
322
291
  includeRaw = false,
323
292
  }: BuildProtocolV1ProfileParams): DeviceProfile {
324
- const sourceFeatures = mergeV1Features(features, onekeyFeatures);
325
- const verify = normalizeV1Verify(sourceFeatures, onekeyFeatures);
293
+ const sourceFeatures = features;
294
+ const verify = normalizeV1Verify(sourceFeatures, protocolV1OneKeyFeatures);
326
295
 
327
296
  return {
328
297
  protocol,
329
298
  sources,
330
299
  deviceType: getDeviceType(sourceFeatures),
331
300
  firmwareType: getFirmwareType(sourceFeatures),
332
- deviceId: sourceFeatures?.device_id || (sourceFeatures ? getDeviceUUID(sourceFeatures) : ''),
301
+ deviceId: sourceFeatures?.deviceId || (sourceFeatures ? getDeviceUUID(sourceFeatures) : ''),
333
302
  serialNo: sourceFeatures ? getDeviceUUID(sourceFeatures) : '',
334
303
  label: getDeviceLabel(sourceFeatures),
335
304
  bleName: getDeviceBleName(sourceFeatures),
336
305
  status: normalizeV1Status(sourceFeatures),
337
- versions: normalizeV1Versions(sourceFeatures, onekeyFeatures),
306
+ versions: normalizeV1Versions(sourceFeatures, protocolV1OneKeyFeatures),
338
307
  ...(shouldIncludeVerify(scope) ? { verify } : {}),
339
308
  ...(includeRaw
340
309
  ? {
341
310
  raw: normalizeRaw({
342
311
  features,
343
- onekeyFeatures,
312
+ protocolV1OneKeyFeatures,
344
313
  }),
345
314
  }
346
315
  : {}),
@@ -352,12 +321,12 @@ export function buildProfileFromProtocolV2({
352
321
  sources = ['deviceInfo'],
353
322
  scope = 'basic',
354
323
  includeRaw = false,
355
- fallbackSerialNo,
356
324
  }: BuildProtocolV2ProfileParams): DeviceProfile {
357
- // 早期工程板 hw.serial_no 为空串,回退到调用方提供的 transport path(mock 身份)。
358
- const serialNo = deviceInfo?.hw?.serial_no || fallbackSerialNo || '';
359
- const label = deviceInfo?.status?.label ?? null;
360
- const bleName = deviceInfo?.bt?.adv_name ?? null;
325
+ const info = deviceInfo;
326
+ const deviceId = info?.status?.device_id || '';
327
+ const serialNo = deviceInfo?.hw?.serial_no || '';
328
+ const label = null;
329
+ const bleName = info?.coprocessor?.bt_adv_name ?? null;
361
330
  const verify = normalizeV2Verify(deviceInfo);
362
331
 
363
332
  return {
@@ -365,11 +334,7 @@ export function buildProfileFromProtocolV2({
365
334
  sources,
366
335
  deviceType: EDeviceType.Pro2,
367
336
  firmwareType: EFirmwareType.Universal,
368
- // Protocol V2 的 DevGetDeviceInfo 没有 device_id 字段(固件 proto 仅提供 hw.serial_no),
369
- // 这里只能回退 serialNo。注意语义差异:V1 的 device_id 随擦除/换种子轮换,serialNo 永不变化。
370
- // 固件在 DevStatus 暴露 device_id 后,此处必须改为读取它,否则 wipe 后基于 deviceId 的
371
- // session 缓存(deviceSessionCache)不会自然失效。
372
- deviceId: serialNo,
337
+ deviceId,
373
338
  serialNo,
374
339
  label,
375
340
  bleName,
@@ -1,2 +1,5 @@
1
1
  export { buildProfileFromProtocolV1, buildProfileFromProtocolV2 } from './buildDeviceProfile';
2
- export { buildProtocolV2GetFeaturesPayload } from './legacyFeaturesView';
2
+ export {
3
+ buildProtocolV1FeaturesPayload,
4
+ buildProtocolV2FeaturesPayload,
5
+ } from './buildDeviceFeatures';
package/src/inject.ts CHANGED
@@ -100,6 +100,7 @@ export const createCoreApi = (
100
100
  | 'switchTransport'
101
101
  > => ({
102
102
  getLogs: () => call({ method: 'getLogs' }),
103
+ clearSessionCache: params => call({ ...params, method: 'clearSessionCache' }),
103
104
  /**
104
105
  * 搜索设备
105
106
  */
@@ -151,28 +152,24 @@ export const createCoreApi = (
151
152
  deviceRebootToBootloader: connectId => call({ connectId, method: 'deviceRebootToBootloader' }),
152
153
 
153
154
  // File system & device control API (Protocol V2 only)
154
- getProtoVersion: (connectId, params) => call({ ...params, connectId, method: 'getProtoVersion' }),
155
+ protocolInfoRequest: (connectId, params) =>
156
+ call({ ...params, connectId, method: 'protocolInfoRequest' }),
155
157
  ping: (connectId, params) => call({ ...params, connectId, method: 'ping' }),
156
158
  deviceReboot: (connectId, params) => call({ ...params, connectId, method: 'deviceReboot' }),
157
- deviceGetDeviceInfo: (connectId, params) =>
158
- call({ ...params, connectId, method: 'deviceGetDeviceInfo' }),
159
- deviceGetOnboardingStatus: (connectId, params) =>
160
- call({ ...params, connectId, method: 'deviceGetOnboardingStatus' }),
159
+ deviceInfoGet: (connectId, params) => call({ ...params, connectId, method: 'deviceInfoGet' }),
160
+ deviceStatusGet: (connectId, params) => call({ ...params, connectId, method: 'deviceStatusGet' }),
161
+ deviceSessionGet: (connectId, params) =>
162
+ call({ ...params, connectId, method: 'deviceSessionGet' }),
161
163
  deviceFirmwareUpdate: (connectId, params) =>
162
164
  call({ ...params, connectId, method: 'deviceFirmwareUpdate' }),
163
165
  deviceGetFirmwareUpdateStatus: (connectId, params) =>
164
166
  call({ ...params, connectId, method: 'deviceGetFirmwareUpdateStatus' }),
165
- devReboot: (connectId, params) => call({ ...params, connectId, method: 'devReboot' }),
166
- devGetDeviceInfo: (connectId, params) =>
167
- call({ ...params, connectId, method: 'devGetDeviceInfo' }),
168
- devFirmwareUpdate: (connectId, params) =>
169
- call({ ...params, connectId, method: 'devFirmwareUpdate' }),
170
- devGetFirmwareUpdateStatus: (connectId, params) =>
171
- call({ ...params, connectId, method: 'devGetFirmwareUpdateStatus' }),
172
- factoryDeviceInfoSettings: (connectId, params) =>
173
- call({ ...params, connectId, method: 'factoryDeviceInfoSettings' }),
174
- factoryGetDeviceInfo: connectId => call({ connectId, method: 'factoryGetDeviceInfo' }),
175
- filesystemFixPermission: connectId => call({ connectId, method: 'filesystemFixPermission' }),
167
+ deviceFactoryInfoSet: (connectId, params) =>
168
+ call({ ...params, connectId, method: 'deviceFactoryInfoSet' }),
169
+ deviceFactoryInfoGet: (connectId, params) =>
170
+ call({ ...params, connectId, method: 'deviceFactoryInfoGet' }),
171
+ filesystemPermissionFix: (connectId, params) =>
172
+ call({ ...params, connectId, method: 'filesystemPermissionFix' }),
176
173
  fileRead: (connectId, params) => call({ ...params, connectId, method: 'fileRead' }),
177
174
  fileWrite: (connectId, params) => call({ ...params, connectId, method: 'fileWrite' }),
178
175
  fileDelete: (connectId, params) => call({ ...params, connectId, method: 'fileDelete' }),