@onekeyfe/hd-core 1.2.0-alpha.1 → 1.2.0-alpha.11

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 (210) hide show
  1. package/__tests__/DeviceCommands.test.ts +25 -0
  2. package/__tests__/RequestQueue.test.ts +34 -0
  3. package/__tests__/connectSettings.test.ts +19 -0
  4. package/__tests__/device-wallet-session-store.test.ts +131 -0
  5. package/__tests__/preInitialize.test.ts +33 -0
  6. package/__tests__/pro2Wallpaper.test.ts +50 -0
  7. package/__tests__/protocol-v2-firmware-targets.test.ts +19 -0
  8. package/__tests__/protocol-v2.test.ts +3253 -1605
  9. package/dist/api/BaseMethod.d.ts +4 -0
  10. package/dist/api/BaseMethod.d.ts.map +1 -1
  11. package/dist/api/ClearSessionCache.d.ts +9 -0
  12. package/dist/api/ClearSessionCache.d.ts.map +1 -0
  13. package/dist/api/FileRead.d.ts.map +1 -1
  14. package/dist/api/FileWrite.d.ts.map +1 -1
  15. package/dist/api/FirmwareUpdateV4.d.ts +20 -3
  16. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  17. package/dist/api/GetPassphraseState.d.ts +1 -6
  18. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  19. package/dist/api/UploadPortfolio.d.ts +18 -0
  20. package/dist/api/UploadPortfolio.d.ts.map +1 -0
  21. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +1 -0
  22. package/dist/api/firmware/FirmwareUpdateBaseMethod.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/index.d.ts +13 -10
  28. package/dist/api/index.d.ts.map +1 -1
  29. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +6 -0
  30. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +1 -0
  31. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +7 -0
  32. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +1 -0
  33. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +1 -1
  34. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +1 -1
  35. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +3 -2
  36. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +1 -1
  37. package/dist/api/protocol-v2/{DeviceGetDeviceInfo.d.ts → DeviceInfoGet.d.ts} +10 -10
  38. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +1 -0
  39. package/dist/api/protocol-v2/DeviceSessionGet.d.ts +6 -0
  40. package/dist/api/protocol-v2/DeviceSessionGet.d.ts.map +1 -0
  41. package/dist/api/protocol-v2/DeviceSettingsGet.d.ts +6 -0
  42. package/dist/api/protocol-v2/DeviceSettingsGet.d.ts.map +1 -0
  43. package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts +16 -0
  44. package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts.map +1 -0
  45. package/dist/api/protocol-v2/DeviceSettingsSet.d.ts +12 -0
  46. package/dist/api/protocol-v2/DeviceSettingsSet.d.ts.map +1 -0
  47. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +6 -0
  48. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +1 -0
  49. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +26 -0
  50. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +1 -0
  51. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +1 -1
  52. package/dist/api/protocol-v2/{FilesystemFixPermission.d.ts → FilesystemPermissionFix.d.ts} +2 -2
  53. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +1 -0
  54. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +6 -0
  55. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +1 -0
  56. package/dist/api/protocol-v2/helpers.d.ts +27 -18
  57. package/dist/api/protocol-v2/helpers.d.ts.map +1 -1
  58. package/dist/api/ton/TonSignData.d.ts +1 -5
  59. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  60. package/dist/api/tron/TronSignMessage.d.ts +0 -1
  61. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  62. package/dist/api/tron/TronSignTransaction.d.ts +0 -1
  63. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  64. package/dist/core/RequestQueue.d.ts +2 -0
  65. package/dist/core/RequestQueue.d.ts.map +1 -1
  66. package/dist/core/index.d.ts +1 -0
  67. package/dist/core/index.d.ts.map +1 -1
  68. package/dist/data-manager/DataManager.d.ts +1 -1
  69. package/dist/data-manager/DataManager.d.ts.map +1 -1
  70. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  71. package/dist/device/Device.d.ts +6 -3
  72. package/dist/device/Device.d.ts.map +1 -1
  73. package/dist/device/DeviceCommands.d.ts +4 -4
  74. package/dist/device/DeviceCommands.d.ts.map +1 -1
  75. package/dist/device/DeviceWalletSessionStore.d.ts +15 -0
  76. package/dist/device/DeviceWalletSessionStore.d.ts.map +1 -0
  77. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +1 -1
  78. package/dist/deviceProfile/buildDeviceProfile.d.ts.map +1 -1
  79. package/dist/events/call.d.ts +7 -0
  80. package/dist/events/call.d.ts.map +1 -1
  81. package/dist/events/core.d.ts +2 -2
  82. package/dist/events/core.d.ts.map +1 -1
  83. package/dist/events/iframe.d.ts +1 -0
  84. package/dist/events/iframe.d.ts.map +1 -1
  85. package/dist/index.d.ts +166 -70
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +2659 -1750
  88. package/dist/inject.d.ts +3 -2
  89. package/dist/inject.d.ts.map +1 -1
  90. package/dist/lowLevelInject.d.ts +2 -1
  91. package/dist/lowLevelInject.d.ts.map +1 -1
  92. package/dist/protocols/protocol-v2/features.d.ts +12 -14
  93. package/dist/protocols/protocol-v2/features.d.ts.map +1 -1
  94. package/dist/protocols/protocol-v2/firmware.d.ts +11 -9
  95. package/dist/protocols/protocol-v2/firmware.d.ts.map +1 -1
  96. package/dist/protocols/protocol-v2/index.d.ts +1 -0
  97. package/dist/protocols/protocol-v2/index.d.ts.map +1 -1
  98. package/dist/protocols/protocol-v2/unlockRetry.d.ts +9 -0
  99. package/dist/protocols/protocol-v2/unlockRetry.d.ts.map +1 -0
  100. package/dist/protocols/protocol-v2/walletSession.d.ts +13 -0
  101. package/dist/protocols/protocol-v2/walletSession.d.ts.map +1 -0
  102. package/dist/topLevelInject.d.ts.map +1 -1
  103. package/dist/types/api/firmwareUpdate.d.ts +6 -6
  104. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  105. package/dist/types/api/getDeviceInfo.d.ts +2 -0
  106. package/dist/types/api/getDeviceInfo.d.ts.map +1 -1
  107. package/dist/types/api/getPassphraseState.d.ts +2 -10
  108. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  109. package/dist/types/api/index.d.ts +18 -12
  110. package/dist/types/api/index.d.ts.map +1 -1
  111. package/dist/types/api/protocolV2.d.ts +31 -17
  112. package/dist/types/api/protocolV2.d.ts.map +1 -1
  113. package/dist/types/api/sessionCache.d.ts +10 -0
  114. package/dist/types/api/sessionCache.d.ts.map +1 -0
  115. package/dist/types/device.d.ts +1 -0
  116. package/dist/types/device.d.ts.map +1 -1
  117. package/dist/types/params.d.ts +1 -0
  118. package/dist/types/params.d.ts.map +1 -1
  119. package/dist/types/settings.d.ts +21 -2
  120. package/dist/types/settings.d.ts.map +1 -1
  121. package/dist/utils/deviceFeaturesUtils.d.ts +2 -2
  122. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  123. package/dist/utils/index.d.ts +2 -0
  124. package/dist/utils/index.d.ts.map +1 -1
  125. package/dist/utils/patch.d.ts +1 -1
  126. package/dist/utils/patch.d.ts.map +1 -1
  127. package/dist/utils/pro2Wallpaper.d.ts +12 -0
  128. package/dist/utils/pro2Wallpaper.d.ts.map +1 -0
  129. package/package.json +4 -4
  130. package/src/api/BaseMethod.ts +18 -0
  131. package/src/api/ClearSessionCache.ts +28 -0
  132. package/src/api/FileRead.ts +16 -3
  133. package/src/api/FileWrite.ts +22 -1
  134. package/src/api/FirmwareUpdateV4.ts +1006 -265
  135. package/src/api/GetOnekeyFeatures.ts +1 -1
  136. package/src/api/GetPassphraseState.ts +9 -15
  137. package/src/api/UploadPortfolio.ts +37 -0
  138. package/src/api/device/DeviceRebootToBoardloader.ts +4 -4
  139. package/src/api/device/DeviceRebootToBootloader.ts +4 -4
  140. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +18 -4
  141. package/src/api/firmware/progressThrottle.ts +44 -0
  142. package/src/api/index.ts +13 -10
  143. package/src/api/protocol-v2/{FactoryGetDeviceInfo.ts → DeviceFactoryInfoGet.ts} +3 -3
  144. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +32 -0
  145. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +3 -5
  146. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +39 -5
  147. package/src/api/protocol-v2/{DeviceGetDeviceInfo.ts → DeviceInfoGet.ts} +52 -22
  148. package/src/api/protocol-v2/DeviceReboot.ts +1 -1
  149. package/src/api/protocol-v2/DeviceSessionGet.ts +15 -0
  150. package/src/api/protocol-v2/{DeviceGetOnboardingStatus.ts → DeviceSettingsGet.ts} +3 -3
  151. package/src/api/protocol-v2/DeviceSettingsPageShow.ts +59 -0
  152. package/src/api/protocol-v2/DeviceSettingsSet.ts +39 -0
  153. package/src/api/protocol-v2/DeviceStatusGet.ts +14 -0
  154. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +160 -0
  155. package/src/api/protocol-v2/FilesystemFormat.ts +4 -1
  156. package/src/api/protocol-v2/{FilesystemFixPermission.ts → FilesystemPermissionFix.ts} +2 -2
  157. package/src/api/protocol-v2/{GetProtoVersion.ts → ProtocolInfoRequest.ts} +2 -2
  158. package/src/api/protocol-v2/helpers.ts +71 -47
  159. package/src/api/ton/TonSignData.ts +1 -5
  160. package/src/api/tron/TronSignMessage.ts +0 -1
  161. package/src/api/tron/TronSignTransaction.ts +0 -1
  162. package/src/core/RequestQueue.ts +19 -0
  163. package/src/core/index.ts +29 -6
  164. package/src/data/messages/messages-protocol-v2.json +760 -1110
  165. package/src/data/messages/messages.json +8 -0
  166. package/src/data-manager/DataManager.ts +7 -0
  167. package/src/data-manager/connectSettings.ts +2 -4
  168. package/src/device/Device.ts +103 -70
  169. package/src/device/DeviceCommands.ts +9 -3
  170. package/src/device/DeviceWalletSessionStore.ts +78 -0
  171. package/src/deviceProfile/buildDeviceFeatures.ts +60 -63
  172. package/src/deviceProfile/buildDeviceProfile.ts +77 -58
  173. package/src/events/call.ts +6 -0
  174. package/src/events/core.ts +2 -0
  175. package/src/events/iframe.ts +1 -0
  176. package/src/index.ts +4 -0
  177. package/src/inject.ts +26 -16
  178. package/src/lowLevelInject.ts +3 -0
  179. package/src/protocols/protocol-v2/features.ts +26 -63
  180. package/src/protocols/protocol-v2/firmware.ts +12 -36
  181. package/src/protocols/protocol-v2/index.ts +1 -0
  182. package/src/protocols/protocol-v2/unlockRetry.ts +46 -0
  183. package/src/protocols/protocol-v2/walletSession.ts +92 -0
  184. package/src/topLevelInject.ts +2 -0
  185. package/src/types/api/firmwareUpdate.ts +28 -20
  186. package/src/types/api/getDeviceInfo.ts +2 -0
  187. package/src/types/api/getPassphraseState.ts +2 -11
  188. package/src/types/api/index.ts +29 -21
  189. package/src/types/api/protocolV2.ts +74 -35
  190. package/src/types/api/sessionCache.ts +14 -0
  191. package/src/types/device.ts +1 -0
  192. package/src/types/params.ts +4 -0
  193. package/src/types/settings.ts +42 -35
  194. package/src/utils/deviceFeaturesUtils.ts +46 -20
  195. package/src/utils/index.ts +6 -0
  196. package/src/utils/pro2Wallpaper.ts +111 -0
  197. package/dist/api/protocol-v2/DevReboot.d.ts +0 -7
  198. package/dist/api/protocol-v2/DevReboot.d.ts.map +0 -1
  199. package/dist/api/protocol-v2/DeviceGetDeviceInfo.d.ts.map +0 -1
  200. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +0 -6
  201. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +0 -1
  202. package/dist/api/protocol-v2/FactoryDeviceInfoSettings.d.ts +0 -7
  203. package/dist/api/protocol-v2/FactoryDeviceInfoSettings.d.ts.map +0 -1
  204. package/dist/api/protocol-v2/FactoryGetDeviceInfo.d.ts +0 -6
  205. package/dist/api/protocol-v2/FactoryGetDeviceInfo.d.ts.map +0 -1
  206. package/dist/api/protocol-v2/FilesystemFixPermission.d.ts.map +0 -1
  207. package/dist/api/protocol-v2/GetProtoVersion.d.ts +0 -6
  208. package/dist/api/protocol-v2/GetProtoVersion.d.ts.map +0 -1
  209. package/src/api/protocol-v2/DevReboot.ts +0 -24
  210. package/src/api/protocol-v2/FactoryDeviceInfoSettings.ts +0 -29
@@ -2,22 +2,8 @@ import { EDeviceType, EFirmwareType } from '@onekeyfe/hd-shared';
2
2
 
3
3
  import type { Features } from '../types';
4
4
  import type { PROTO } from '../constants';
5
- import type { DevFirmwareImageInfo, ProtocolV2DeviceInfo } from '@onekeyfe/hd-transport';
6
-
7
- type ProtocolV2DeviceInfoCompat = ProtocolV2DeviceInfo & {
8
- fw?: ProtocolV2DeviceInfo['fw'] & {
9
- application?: DevFirmwareImageInfo | null;
10
- application_data?: DevFirmwareImageInfo | null;
11
- bootloader?: DevFirmwareImageInfo | null;
12
- romloader?: DevFirmwareImageInfo | null;
13
- };
14
- coprocessor?: {
15
- application?: DevFirmwareImageInfo | null;
16
- bootloader?: DevFirmwareImageInfo | null;
17
- bt_adv_name?: string | null;
18
- bt_mac?: unknown;
19
- } | null;
20
- };
5
+ import type { DeviceFirmwareImageInfo, ProtocolV2DeviceInfo } from '@onekeyfe/hd-transport';
6
+ import { isProtocolV2BootloaderDeviceInfo } from '../protocols/protocol-v2/features';
21
7
 
22
8
  type ProtocolV1FeaturesCompat = PROTO.Features &
23
9
  Partial<PROTO.OnekeyFeatures> & {
@@ -26,7 +12,7 @@ type ProtocolV1FeaturesCompat = PROTO.Features &
26
12
  onekey_serial?: string;
27
13
  };
28
14
 
29
- const getImageVersion = (image?: DevFirmwareImageInfo | null) => image?.version ?? null;
15
+ const getImageVersion = (image?: DeviceFirmwareImageInfo | null) => image?.version ?? null;
30
16
 
31
17
  const bytesToHex = (value: unknown): string | undefined => {
32
18
  if (!value) return undefined;
@@ -42,9 +28,9 @@ const bytesToHex = (value: unknown): string | undefined => {
42
28
  return undefined;
43
29
  };
44
30
 
45
- const getImageBuildId = (image?: DevFirmwareImageInfo | null) => image?.build_id ?? undefined;
31
+ const getImageBuildId = (image?: DeviceFirmwareImageInfo | null) => image?.build_id ?? undefined;
46
32
 
47
- const getImageHash = (image?: DevFirmwareImageInfo | null) => bytesToHex(image?.hash);
33
+ const getImageHash = (image?: DeviceFirmwareImageInfo | null) => bytesToHex(image?.hash);
48
34
 
49
35
  const firstValue = <T>(...values: Array<T | null | undefined>) =>
50
36
  values.find(value => value !== undefined && value !== null);
@@ -226,7 +212,7 @@ export const buildProtocolV1FeaturesPayload = (
226
212
  /**
227
213
  * Protocol V2 的结构化 `Features` 构建器。
228
214
  *
229
- * 这是 Device 内部唯一缓存状态。字段只来自 DevGetDeviceInfo 或前一次 features
215
+ * 这是 Device 内部唯一缓存状态。字段只来自 DeviceInfoGet 或前一次 features
230
216
  * 缓存的同名字段级合并;不存在协议等价语义的字段保持 null/空值,不再通过
231
217
  * DeviceProfile 或 transport path 做身份兜底。
232
218
  */
@@ -234,11 +220,12 @@ export const buildProtocolV2FeaturesPayload = (
234
220
  deviceInfo?: ProtocolV2DeviceInfo,
235
221
  previous?: Features
236
222
  ): Features => {
237
- const info = deviceInfo as ProtocolV2DeviceInfoCompat | undefined;
238
- const fwApplication = firstValue(info?.fw?.application, info?.fw?.app);
239
- const fwBootloader = firstValue(info?.fw?.bootloader, info?.fw?.boot);
240
- const fwBoard = firstValue(info?.fw?.application_data, info?.fw?.board);
241
- const bleApplication = firstValue(info?.coprocessor?.application, info?.bt?.app);
223
+ const info = deviceInfo;
224
+ const fwApplication = info?.fw?.application;
225
+ const fwBootloader = info?.fw?.bootloader;
226
+ const fwBoard = firstValue(info?.fw?.application_data, info?.fw?.romloader);
227
+ const bleApplication = info?.coprocessor?.application;
228
+ const status = info?.status;
242
229
 
243
230
  const firmwareVersion = firstMeaningfulVersion(
244
231
  getImageVersion(fwApplication),
@@ -250,17 +237,26 @@ export const buildProtocolV2FeaturesPayload = (
250
237
  );
251
238
  const boardVersion = firstMeaningfulVersion(getImageVersion(fwBoard), previous?.boardVersion);
252
239
  const bleVersion = firstMeaningfulVersion(getImageVersion(bleApplication), previous?.bleVersion);
253
- const deviceId = firstValue(info?.hw?.device_id, previous?.deviceId) ?? null;
240
+ const deviceId = status?.device_id ?? null;
254
241
  const serialNo = firstValue(info?.hw?.serial_no, previous?.serialNo) ?? '';
255
- const label = firstValue(deviceInfo?.status?.label, previous?.label) ?? null;
256
- const bleName = firstValue(info?.coprocessor?.bt_adv_name, info?.bt?.adv_name, previous?.bleName);
257
- const initialized = firstValue(deviceInfo?.status?.init_states, previous?.initialized) ?? null;
258
- const passphraseProtection =
259
- firstValue(deviceInfo?.status?.passphrase_protection, previous?.passphraseProtection) ?? null;
260
- const language = firstValue(deviceInfo?.status?.language, previous?.language) ?? null;
261
- const backupRequired =
262
- firstValue(deviceInfo?.status?.backup_required, previous?.backupRequired) ?? null;
263
- const bleEnabled = firstValue(deviceInfo?.status?.bt_enable, previous?.bleEnabled);
242
+ const label = previous?.label ?? null;
243
+ const bleName = firstValue(info?.coprocessor?.bt_adv_name, previous?.bleName);
244
+ const initialized = firstValue(status?.init_states, previous?.initialized) ?? null;
245
+ const passphraseProtection = status?.passphrase_enabled ?? null;
246
+ const language = previous?.language ?? null;
247
+ const backupRequired = firstValue(status?.backup_required, previous?.backupRequired) ?? null;
248
+ const bleEnabled = previous?.bleEnabled;
249
+ const unlocked = firstValue(status?.unlocked, previous?.unlocked) ?? null;
250
+ const attachToPinEnabled = status?.attach_to_pin_enabled ?? null;
251
+ const unlockedAttachPin = status?.unlocked_by_attach_to_pin ?? undefined;
252
+ const bootloaderMode = isProtocolV2BootloaderDeviceInfo(info);
253
+ const mode = bootloaderMode
254
+ ? 'bootloader'
255
+ : initialized === false
256
+ ? 'notInitialized'
257
+ : initialized === true
258
+ ? 'normal'
259
+ : 'unknown';
264
260
 
265
261
  return {
266
262
  protocol: 'V2',
@@ -274,10 +270,10 @@ export const buildProtocolV2FeaturesPayload = (
274
270
  label,
275
271
  bleName: bleName ?? null,
276
272
  capabilities: [],
277
- mode: initialized === false ? 'notInitialized' : initialized === true ? 'normal' : 'unknown',
273
+ mode,
278
274
  initialized,
279
- bootloaderMode: false,
280
- unlocked: previous?.unlocked ?? null,
275
+ bootloaderMode,
276
+ unlocked,
281
277
  firmwarePresent: previous?.firmwarePresent ?? null,
282
278
  passphraseProtection,
283
279
  pinProtection: null,
@@ -291,6 +287,7 @@ export const buildProtocolV2FeaturesPayload = (
291
287
  sdProtection: null,
292
288
  wipeCodeProtection: null,
293
289
  passphraseAlwaysOnDevice: null,
290
+ attachToPinEnabled,
294
291
  safetyChecks: null,
295
292
  autoLockDelayMs: null,
296
293
  displayRotation: null,
@@ -300,35 +297,35 @@ export const buildProtocolV2FeaturesPayload = (
300
297
  boardVersion,
301
298
  bleVersion,
302
299
  se01Version: firstMeaningfulVersion(
303
- getImageVersion(deviceInfo?.se1?.app),
300
+ getImageVersion(info?.se1?.application),
304
301
  previous?.se01Version
305
302
  ),
306
303
  se02Version: firstMeaningfulVersion(
307
- getImageVersion(deviceInfo?.se2?.app),
304
+ getImageVersion(info?.se2?.application),
308
305
  previous?.se02Version
309
306
  ),
310
307
  se03Version: firstMeaningfulVersion(
311
- getImageVersion(deviceInfo?.se3?.app),
308
+ getImageVersion(info?.se3?.application),
312
309
  previous?.se03Version
313
310
  ),
314
311
  se04Version: firstMeaningfulVersion(
315
- getImageVersion(deviceInfo?.se4?.app),
312
+ getImageVersion(info?.se4?.application),
316
313
  previous?.se04Version
317
314
  ),
318
315
  se01BootVersion: firstMeaningfulVersion(
319
- getImageVersion(deviceInfo?.se1?.boot),
316
+ getImageVersion(info?.se1?.bootloader),
320
317
  previous?.se01BootVersion
321
318
  ),
322
319
  se02BootVersion: firstMeaningfulVersion(
323
- getImageVersion(deviceInfo?.se2?.boot),
320
+ getImageVersion(info?.se2?.bootloader),
324
321
  previous?.se02BootVersion
325
322
  ),
326
323
  se03BootVersion: firstMeaningfulVersion(
327
- getImageVersion(deviceInfo?.se3?.boot),
324
+ getImageVersion(info?.se3?.bootloader),
328
325
  previous?.se03BootVersion
329
326
  ),
330
327
  se04BootVersion: firstMeaningfulVersion(
331
- getImageVersion(deviceInfo?.se4?.boot),
328
+ getImageVersion(info?.se4?.bootloader),
332
329
  previous?.se04BootVersion
333
330
  ),
334
331
  seVersion: previous?.seVersion ?? null,
@@ -341,26 +338,26 @@ export const buildProtocolV2FeaturesPayload = (
341
338
  boardHash: getImageHash(fwBoard) ?? previous?.verify?.boardHash,
342
339
  bleBuildId: getImageBuildId(bleApplication) ?? previous?.verify?.bleBuildId,
343
340
  bleHash: getImageHash(bleApplication) ?? previous?.verify?.bleHash,
344
- se01BuildId: getImageBuildId(deviceInfo?.se1?.app) ?? previous?.verify?.se01BuildId,
345
- se01Hash: getImageHash(deviceInfo?.se1?.app) ?? previous?.verify?.se01Hash,
346
- se02BuildId: getImageBuildId(deviceInfo?.se2?.app) ?? previous?.verify?.se02BuildId,
347
- se02Hash: getImageHash(deviceInfo?.se2?.app) ?? previous?.verify?.se02Hash,
348
- se03BuildId: getImageBuildId(deviceInfo?.se3?.app) ?? previous?.verify?.se03BuildId,
349
- se03Hash: getImageHash(deviceInfo?.se3?.app) ?? previous?.verify?.se03Hash,
350
- se04BuildId: getImageBuildId(deviceInfo?.se4?.app) ?? previous?.verify?.se04BuildId,
351
- se04Hash: getImageHash(deviceInfo?.se4?.app) ?? previous?.verify?.se04Hash,
352
- se01BootBuildId: getImageBuildId(deviceInfo?.se1?.boot) ?? previous?.verify?.se01BootBuildId,
353
- se01BootHash: getImageHash(deviceInfo?.se1?.boot) ?? previous?.verify?.se01BootHash,
354
- se02BootBuildId: getImageBuildId(deviceInfo?.se2?.boot) ?? previous?.verify?.se02BootBuildId,
355
- se02BootHash: getImageHash(deviceInfo?.se2?.boot) ?? previous?.verify?.se02BootHash,
356
- se03BootBuildId: getImageBuildId(deviceInfo?.se3?.boot) ?? previous?.verify?.se03BootBuildId,
357
- se03BootHash: getImageHash(deviceInfo?.se3?.boot) ?? previous?.verify?.se03BootHash,
358
- se04BootBuildId: getImageBuildId(deviceInfo?.se4?.boot) ?? previous?.verify?.se04BootBuildId,
359
- se04BootHash: getImageHash(deviceInfo?.se4?.boot) ?? previous?.verify?.se04BootHash,
341
+ se01BuildId: getImageBuildId(info?.se1?.application) ?? previous?.verify?.se01BuildId,
342
+ se01Hash: getImageHash(info?.se1?.application) ?? previous?.verify?.se01Hash,
343
+ se02BuildId: getImageBuildId(info?.se2?.application) ?? previous?.verify?.se02BuildId,
344
+ se02Hash: getImageHash(info?.se2?.application) ?? previous?.verify?.se02Hash,
345
+ se03BuildId: getImageBuildId(info?.se3?.application) ?? previous?.verify?.se03BuildId,
346
+ se03Hash: getImageHash(info?.se3?.application) ?? previous?.verify?.se03Hash,
347
+ se04BuildId: getImageBuildId(info?.se4?.application) ?? previous?.verify?.se04BuildId,
348
+ se04Hash: getImageHash(info?.se4?.application) ?? previous?.verify?.se04Hash,
349
+ se01BootBuildId: getImageBuildId(info?.se1?.bootloader) ?? previous?.verify?.se01BootBuildId,
350
+ se01BootHash: getImageHash(info?.se1?.bootloader) ?? previous?.verify?.se01BootHash,
351
+ se02BootBuildId: getImageBuildId(info?.se2?.bootloader) ?? previous?.verify?.se02BootBuildId,
352
+ se02BootHash: getImageHash(info?.se2?.bootloader) ?? previous?.verify?.se02BootHash,
353
+ se03BootBuildId: getImageBuildId(info?.se3?.bootloader) ?? previous?.verify?.se03BootBuildId,
354
+ se03BootHash: getImageHash(info?.se3?.bootloader) ?? previous?.verify?.se03BootHash,
355
+ se04BootBuildId: getImageBuildId(info?.se4?.bootloader) ?? previous?.verify?.se04BootBuildId,
356
+ se04BootHash: getImageHash(info?.se4?.bootloader) ?? previous?.verify?.se04BootHash,
360
357
  },
361
358
  sessionId: previous?.sessionId ?? null,
362
359
  passphraseState: previous?.passphraseState,
363
- unlockedAttachPin: previous?.unlockedAttachPin,
360
+ unlockedAttachPin,
364
361
  raw: {
365
362
  protocolV2DeviceInfo: deviceInfo,
366
363
  },
@@ -25,7 +25,8 @@ import type {
25
25
  GetDeviceInfoParams,
26
26
  } from '../types/api/getDeviceInfo';
27
27
  import type { Features, OnekeyFeatures } from '../types';
28
- 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';
29
30
 
30
31
  type BuildProtocolV1ProfileParams = {
31
32
  protocol?: DeviceInfoProtocol;
@@ -68,11 +69,11 @@ const bytesToHex = (value: unknown): string | undefined => {
68
69
  return undefined;
69
70
  };
70
71
 
71
- const getImageVersion = (image?: DevFirmwareImageInfo | null) => image?.version ?? null;
72
+ const getImageVersion = (image?: DeviceFirmwareImageInfo | null) => image?.version ?? null;
72
73
 
73
- const getImageBuildId = (image?: DevFirmwareImageInfo | null) => image?.build_id ?? undefined;
74
+ const getImageBuildId = (image?: DeviceFirmwareImageInfo | null) => image?.build_id ?? undefined;
74
75
 
75
- const getImageHash = (image?: DevFirmwareImageInfo | null) => bytesToHex(image?.hash);
76
+ const getImageHash = (image?: DeviceFirmwareImageInfo | null) => bytesToHex(image?.hash);
76
77
 
77
78
  const shouldIncludeVerify = (scope?: GetDeviceInfoParams['scope']) =>
78
79
  scope === 'verify' || scope === 'full';
@@ -86,6 +87,7 @@ const getDeviceMode = (features?: Features): DeviceInfoStatus['mode'] => {
86
87
  };
87
88
 
88
89
  const getProtocolV2Mode = (deviceInfo?: ProtocolV2DeviceInfo): DeviceInfoStatus['mode'] => {
90
+ if (isProtocolV2BootloaderDeviceInfo(deviceInfo)) return 'bootloader';
89
91
  const initialized = deviceInfo?.status?.init_states;
90
92
  if (initialized === false) return 'notInitialized';
91
93
  if (initialized === true) return 'normal';
@@ -147,20 +149,25 @@ const normalizeV1Versions = (
147
149
  ),
148
150
  });
149
151
 
150
- const normalizeV2Versions = (deviceInfo?: ProtocolV2DeviceInfo): DeviceProfileVersions => ({
151
- firmware: firstMeaningfulVersion(getImageVersion(deviceInfo?.fw?.app)),
152
- bootloader: firstMeaningfulVersion(getImageVersion(deviceInfo?.fw?.boot)),
153
- board: firstMeaningfulVersion(getImageVersion(deviceInfo?.fw?.board)),
154
- ble: firstMeaningfulVersion(getImageVersion(deviceInfo?.bt?.app)),
155
- se01: firstMeaningfulVersion(getImageVersion(deviceInfo?.se1?.app)),
156
- se02: firstMeaningfulVersion(getImageVersion(deviceInfo?.se2?.app)),
157
- se03: firstMeaningfulVersion(getImageVersion(deviceInfo?.se3?.app)),
158
- se04: firstMeaningfulVersion(getImageVersion(deviceInfo?.se4?.app)),
159
- se01Boot: firstMeaningfulVersion(getImageVersion(deviceInfo?.se1?.boot)),
160
- se02Boot: firstMeaningfulVersion(getImageVersion(deviceInfo?.se2?.boot)),
161
- se03Boot: firstMeaningfulVersion(getImageVersion(deviceInfo?.se3?.boot)),
162
- se04Boot: firstMeaningfulVersion(getImageVersion(deviceInfo?.se4?.boot)),
163
- });
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
+ };
164
171
 
165
172
  // V2 状态由 normalizeV2Status 处理,这里只服务 buildProfileFromProtocolV1 的 V1 路径。
166
173
  const normalizeV1Status = (features?: Features): DeviceInfoStatus => ({
@@ -169,23 +176,31 @@ const normalizeV1Status = (features?: Features): DeviceInfoStatus => ({
169
176
  bootloaderMode: features?.bootloaderMode ?? null,
170
177
  unlocked: features?.unlocked ?? null,
171
178
  passphraseProtection: features?.passphraseProtection ?? null,
179
+ attachToPinEnabled: features?.attachToPinEnabled ?? null,
180
+ unlockedAttachPin: features?.unlockedAttachPin ?? null,
172
181
  backupRequired: features?.backupRequired ?? null,
173
182
  noBackup: features?.noBackup ?? null,
174
183
  language: features?.language ?? null,
175
184
  bleEnabled: features?.bleEnabled ?? null,
176
185
  });
177
186
 
178
- const normalizeV2Status = (deviceInfo?: ProtocolV2DeviceInfo): DeviceInfoStatus => ({
179
- mode: getProtocolV2Mode(deviceInfo),
180
- initialized: deviceInfo?.status?.init_states ?? null,
181
- bootloaderMode: false,
182
- unlocked: null,
183
- passphraseProtection: deviceInfo?.status?.passphrase_protection ?? null,
184
- backupRequired: deviceInfo?.status?.backup_required ?? null,
185
- noBackup: null,
186
- language: deviceInfo?.status?.language ?? null,
187
- bleEnabled: deviceInfo?.status?.bt_enable ?? null,
188
- });
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
+ };
189
204
 
190
205
  const normalizeV1Verify = (
191
206
  features?: Features,
@@ -223,32 +238,35 @@ const normalizeV1Verify = (
223
238
  se04BootHash: protocolV1OneKeyFeatures?.onekey_se04_boot_hash ?? features?.verify?.se04BootHash,
224
239
  });
225
240
 
226
- const normalizeV2Verify = (deviceInfo?: ProtocolV2DeviceInfo): DeviceProfileVerify => ({
227
- firmwareBuildId: getImageBuildId(deviceInfo?.fw?.app),
228
- firmwareHash: getImageHash(deviceInfo?.fw?.app),
229
- bootloaderBuildId: getImageBuildId(deviceInfo?.fw?.boot),
230
- bootloaderHash: getImageHash(deviceInfo?.fw?.boot),
231
- boardBuildId: getImageBuildId(deviceInfo?.fw?.board),
232
- boardHash: getImageHash(deviceInfo?.fw?.board),
233
- bleBuildId: getImageBuildId(deviceInfo?.bt?.app),
234
- bleHash: getImageHash(deviceInfo?.bt?.app),
235
- se01BuildId: getImageBuildId(deviceInfo?.se1?.app),
236
- se01Hash: getImageHash(deviceInfo?.se1?.app),
237
- se02BuildId: getImageBuildId(deviceInfo?.se2?.app),
238
- se02Hash: getImageHash(deviceInfo?.se2?.app),
239
- se03BuildId: getImageBuildId(deviceInfo?.se3?.app),
240
- se03Hash: getImageHash(deviceInfo?.se3?.app),
241
- se04BuildId: getImageBuildId(deviceInfo?.se4?.app),
242
- se04Hash: getImageHash(deviceInfo?.se4?.app),
243
- se01BootBuildId: getImageBuildId(deviceInfo?.se1?.boot),
244
- se01BootHash: getImageHash(deviceInfo?.se1?.boot),
245
- se02BootBuildId: getImageBuildId(deviceInfo?.se2?.boot),
246
- se02BootHash: getImageHash(deviceInfo?.se2?.boot),
247
- se03BootBuildId: getImageBuildId(deviceInfo?.se3?.boot),
248
- se03BootHash: getImageHash(deviceInfo?.se3?.boot),
249
- se04BootBuildId: getImageBuildId(deviceInfo?.se4?.boot),
250
- se04BootHash: getImageHash(deviceInfo?.se4?.boot),
251
- });
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
+ };
252
270
 
253
271
  const normalizeRaw = ({
254
272
  features,
@@ -304,10 +322,11 @@ export function buildProfileFromProtocolV2({
304
322
  scope = 'basic',
305
323
  includeRaw = false,
306
324
  }: BuildProtocolV2ProfileParams): DeviceProfile {
307
- const deviceId = deviceInfo?.hw?.device_id || '';
325
+ const info = deviceInfo;
326
+ const deviceId = info?.status?.device_id || '';
308
327
  const serialNo = deviceInfo?.hw?.serial_no || '';
309
- const label = deviceInfo?.status?.label ?? null;
310
- const bleName = deviceInfo?.bt?.adv_name ?? null;
328
+ const label = null;
329
+ const bleName = info?.coprocessor?.bt_adv_name ?? null;
311
330
  const verify = normalizeV2Verify(deviceInfo);
312
331
 
313
332
  return {
@@ -53,6 +53,12 @@ export interface IFrameCancelMessage {
53
53
  payload: { connectId?: string };
54
54
  }
55
55
 
56
+ export interface IFrameCancelOperationMessage {
57
+ event: typeof IFRAME.CANCEL_OPERATION;
58
+ type: typeof IFRAME.CANCEL_OPERATION;
59
+ payload: { operationId: string };
60
+ }
61
+
56
62
  export interface IFrameSwitchTransportMessage {
57
63
  event: typeof IFRAME.SWITCH_TRANSPORT;
58
64
  type: typeof IFRAME.SWITCH_TRANSPORT;
@@ -5,6 +5,7 @@ import type {
5
5
  IFrameCallMessage,
6
6
  IFrameCallbackMessage,
7
7
  IFrameCancelMessage,
8
+ IFrameCancelOperationMessage,
8
9
  IFrameSwitchTransportMessage,
9
10
  } from './call';
10
11
  import type { DeviceEventMessage } from './device';
@@ -23,6 +24,7 @@ export type CoreMessage = {
23
24
  | IFrameEventMessage
24
25
  | IFrameCallMessage
25
26
  | IFrameCancelMessage
27
+ | IFrameCancelOperationMessage
26
28
  | IFrameSwitchTransportMessage
27
29
  | IFrameCallbackMessage
28
30
  | UiResponseMessage
@@ -8,6 +8,7 @@ export const IFRAME = {
8
8
  INIT_BRIDGE: 'iframe-init-bridge',
9
9
  CALL: 'iframe-call',
10
10
  CANCEL: 'iframe-cancel',
11
+ CANCEL_OPERATION: 'iframe-cancel-operation',
11
12
  SWITCH_TRANSPORT: 'iframe-switch-transport',
12
13
  CALLBACK: 'iframe-callback',
13
14
  } as const;
package/src/index.ts CHANGED
@@ -27,6 +27,7 @@ const HardwareSdk = ({
27
27
  eventEmitter,
28
28
  uiResponse,
29
29
  cancel,
30
+ cancelOperation,
30
31
  updateSettings,
31
32
  switchTransport,
32
33
  }: InjectApi): CoreApi =>
@@ -37,6 +38,7 @@ const HardwareSdk = ({
37
38
  eventEmitter,
38
39
  uiResponse,
39
40
  cancel,
41
+ cancelOperation,
40
42
  updateSettings,
41
43
  switchTransport,
42
44
  });
@@ -49,6 +51,7 @@ const HardwareSDKLowLevel = ({
49
51
  addHardwareGlobalEventListener,
50
52
  uiResponse,
51
53
  cancel,
54
+ cancelOperation,
52
55
  updateSettings,
53
56
  switchTransport,
54
57
  }: LowLevelInjectApi): LowLevelCoreApi =>
@@ -60,6 +63,7 @@ const HardwareSDKLowLevel = ({
60
63
  addHardwareGlobalEventListener,
61
64
  uiResponse,
62
65
  cancel,
66
+ cancelOperation,
63
67
  updateSettings,
64
68
  switchTransport,
65
69
  });
package/src/inject.ts CHANGED
@@ -36,12 +36,14 @@ export interface InjectApi {
36
36
  dispose: CoreApi['dispose'];
37
37
  uiResponse: CoreApi['uiResponse'];
38
38
  cancel: CoreApi['cancel'];
39
+ cancelOperation: CoreApi['cancelOperation'];
39
40
  switchTransport: CoreApi['switchTransport'];
40
41
  }
41
42
 
42
43
  export const inject = ({
43
44
  call,
44
45
  cancel,
46
+ cancelOperation,
45
47
  dispose,
46
48
  eventEmitter,
47
49
  init,
@@ -73,6 +75,7 @@ export const inject = ({
73
75
  uiResponse,
74
76
 
75
77
  cancel,
78
+ cancelOperation,
76
79
 
77
80
  updateSettings,
78
81
 
@@ -96,10 +99,12 @@ export const createCoreApi = (
96
99
  | 'dispose'
97
100
  | 'uiResponse'
98
101
  | 'cancel'
102
+ | 'cancelOperation'
99
103
  | 'updateSettings'
100
104
  | 'switchTransport'
101
105
  > => ({
102
106
  getLogs: () => call({ method: 'getLogs' }),
107
+ clearSessionCache: params => call({ ...params, method: 'clearSessionCache' }),
103
108
  /**
104
109
  * 搜索设备
105
110
  */
@@ -151,28 +156,32 @@ export const createCoreApi = (
151
156
  deviceRebootToBootloader: connectId => call({ connectId, method: 'deviceRebootToBootloader' }),
152
157
 
153
158
  // File system & device control API (Protocol V2 only)
154
- getProtoVersion: (connectId, params) => call({ ...params, connectId, method: 'getProtoVersion' }),
159
+ protocolInfoRequest: (connectId, params) =>
160
+ call({ ...params, connectId, method: 'protocolInfoRequest' }),
155
161
  ping: (connectId, params) => call({ ...params, connectId, method: 'ping' }),
156
162
  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' }),
163
+ deviceInfoGet: (connectId, params) => call({ ...params, connectId, method: 'deviceInfoGet' }),
164
+ deviceStatusGet: (connectId, params) => call({ ...params, connectId, method: 'deviceStatusGet' }),
165
+ deviceSessionGet: (connectId, params) =>
166
+ call({ ...params, connectId, method: 'deviceSessionGet' }),
161
167
  deviceFirmwareUpdate: (connectId, params) =>
162
168
  call({ ...params, connectId, method: 'deviceFirmwareUpdate' }),
163
169
  deviceGetFirmwareUpdateStatus: (connectId, params) =>
164
170
  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' }),
171
+ deviceFactoryInfoSet: (connectId, params) =>
172
+ call({ ...params, connectId, method: 'deviceFactoryInfoSet' }),
173
+ deviceFactoryInfoGet: (connectId, params) =>
174
+ call({ ...params, connectId, method: 'deviceFactoryInfoGet' }),
175
+ deviceSettingsGet: (connectId, params) =>
176
+ call({ ...params, connectId, method: 'deviceSettingsGet' }),
177
+ deviceSettingsSet: (connectId, params) =>
178
+ call({ ...params, connectId, method: 'deviceSettingsSet' }),
179
+ deviceSettingsPageShow: (connectId, params) =>
180
+ call({ ...params, connectId, method: 'deviceSettingsPageShow' }),
181
+ deviceUploadWallpaper: (connectId, params) =>
182
+ call({ ...params, connectId, method: 'deviceUploadWallpaper' }),
183
+ filesystemPermissionFix: (connectId, params) =>
184
+ call({ ...params, connectId, method: 'filesystemPermissionFix' }),
176
185
  fileRead: (connectId, params) => call({ ...params, connectId, method: 'fileRead' }),
177
186
  fileWrite: (connectId, params) => call({ ...params, connectId, method: 'fileWrite' }),
178
187
  fileDelete: (connectId, params) => call({ ...params, connectId, method: 'fileDelete' }),
@@ -184,6 +193,7 @@ export const createCoreApi = (
184
193
  call({ ...params, connectId, method: 'filesystemFileRead' }),
185
194
  filesystemFileWrite: (connectId, params) =>
186
195
  call({ ...params, connectId, method: 'filesystemFileWrite' }),
196
+ uploadPortfolio: (connectId, params) => call({ ...params, connectId, method: 'uploadPortfolio' }),
187
197
  filesystemFileDelete: (connectId, params) =>
188
198
  call({ ...params, connectId, method: 'filesystemFileDelete' }),
189
199
  filesystemDirList: (connectId, params) =>
@@ -13,6 +13,7 @@ export interface LowLevelInjectApi {
13
13
  dispose: CoreApi['dispose'];
14
14
  uiResponse: CoreApi['uiResponse'];
15
15
  cancel: CoreApi['cancel'];
16
+ cancelOperation: CoreApi['cancelOperation'];
16
17
  updateSettings: CoreApi['updateSettings'];
17
18
  switchTransport: CoreApi['switchTransport'];
18
19
  addHardwareGlobalEventListener: (listener: IAddHardwareGlobalEventListener) => void;
@@ -25,6 +26,7 @@ export type LowLevelCoreApi = Omit<CoreApi, 'on' | 'off'> & {
25
26
  export const lowLevelInject = ({
26
27
  call,
27
28
  cancel,
29
+ cancelOperation,
28
30
  dispose,
29
31
  eventEmitter,
30
32
  init,
@@ -48,6 +50,7 @@ export const lowLevelInject = ({
48
50
  uiResponse,
49
51
 
50
52
  cancel,
53
+ cancelOperation,
51
54
 
52
55
  updateSettings,
53
56