@onekeyfe/hd-core 1.1.34-alpha.3 → 1.1.34-alpha.4

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 (613) hide show
  1. package/__tests__/DeviceCommands.test.ts +0 -217
  2. package/__tests__/evmLedgerLegacySafety.test.ts +4 -15
  3. package/__tests__/evmSignTransaction.test.ts +1 -1
  4. package/__tests__/evmSignTypedData.test.ts +1 -1
  5. package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +31 -48
  6. package/__tests__/preInitialize.test.ts +0 -33
  7. package/dist/api/BaseMethod.d.ts +0 -12
  8. package/dist/api/BaseMethod.d.ts.map +1 -1
  9. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  10. package/dist/api/CheckBootloaderRelease.d.ts.map +1 -1
  11. package/dist/api/CheckFirmwareRelease.d.ts.map +1 -1
  12. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  13. package/dist/api/FirmwareUpdateV2.d.ts +3 -14
  14. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  15. package/dist/api/FirmwareUpdateV3.d.ts +3 -10
  16. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  17. package/dist/api/GetFeatures.d.ts +1 -1
  18. package/dist/api/GetFeatures.d.ts.map +1 -1
  19. package/dist/api/GetOnekeyFeatures.d.ts.map +1 -1
  20. package/dist/api/GetPassphraseState.d.ts.map +1 -1
  21. package/dist/api/PromptWebDeviceAccess.d.ts.map +1 -1
  22. package/dist/api/SearchDevices.d.ts +1 -5
  23. package/dist/api/SearchDevices.d.ts.map +1 -1
  24. package/dist/api/alephium/AlephiumGetAddress.d.ts +6 -2
  25. package/dist/api/alephium/AlephiumGetAddress.d.ts.map +1 -1
  26. package/dist/api/alephium/AlephiumSignMessage.d.ts +5 -2
  27. package/dist/api/alephium/AlephiumSignMessage.d.ts.map +1 -1
  28. package/dist/api/alephium/AlephiumSignTransaction.d.ts +8 -5
  29. package/dist/api/alephium/AlephiumSignTransaction.d.ts.map +1 -1
  30. package/dist/api/allnetwork/AllNetworkGetAddressBase.d.ts.map +1 -1
  31. package/dist/api/aptos/AptosGetAddress.d.ts.map +1 -1
  32. package/dist/api/benfen/BenfenGetAddress.d.ts +9 -2
  33. package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
  34. package/dist/api/benfen/BenfenGetPublicKey.d.ts +9 -2
  35. package/dist/api/benfen/BenfenGetPublicKey.d.ts.map +1 -1
  36. package/dist/api/benfen/BenfenSignMessage.d.ts +8 -2
  37. package/dist/api/benfen/BenfenSignMessage.d.ts.map +1 -1
  38. package/dist/api/benfen/BenfenSignTransaction.d.ts +8 -2
  39. package/dist/api/benfen/BenfenSignTransaction.d.ts.map +1 -1
  40. package/dist/api/btc/BTCGetAddress.d.ts +11 -1
  41. package/dist/api/btc/BTCGetAddress.d.ts.map +1 -1
  42. package/dist/api/btc/BTCGetPublicKey.d.ts +11 -1
  43. package/dist/api/btc/BTCGetPublicKey.d.ts.map +1 -1
  44. package/dist/api/btc/BTCSignMessage.d.ts +15 -1
  45. package/dist/api/btc/BTCSignMessage.d.ts.map +1 -1
  46. package/dist/api/btc/BTCSignPsbt.d.ts.map +1 -1
  47. package/dist/api/btc/BTCSignTransaction.d.ts +11 -1
  48. package/dist/api/btc/BTCSignTransaction.d.ts.map +1 -1
  49. package/dist/api/btc/BTCVerifyMessage.d.ts +11 -1
  50. package/dist/api/btc/BTCVerifyMessage.d.ts.map +1 -1
  51. package/dist/api/btc/helpers/versionLimit.d.ts +11 -2
  52. package/dist/api/btc/helpers/versionLimit.d.ts.map +1 -1
  53. package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
  54. package/dist/api/conflux/ConfluxSignTransaction.d.ts.map +1 -1
  55. package/dist/api/device/DeviceCancel.d.ts.map +1 -1
  56. package/dist/api/device/DeviceChangePin.d.ts.map +1 -1
  57. package/dist/api/device/DeviceFullyUploadResource.d.ts +2 -1
  58. package/dist/api/device/DeviceFullyUploadResource.d.ts.map +1 -1
  59. package/dist/api/device/DeviceLock.d.ts.map +1 -1
  60. package/dist/api/device/DeviceRebootToBoardloader.d.ts +1 -1
  61. package/dist/api/device/DeviceRebootToBoardloader.d.ts.map +1 -1
  62. package/dist/api/device/DeviceRebootToBootloader.d.ts.map +1 -1
  63. package/dist/api/device/DeviceSettings.d.ts.map +1 -1
  64. package/dist/api/device/DeviceSupportFeatures.d.ts.map +1 -1
  65. package/dist/api/device/DeviceUnlock.d.ts +1 -1
  66. package/dist/api/device/DeviceUnlock.d.ts.map +1 -1
  67. package/dist/api/device/DeviceUpdateBootloader.d.ts +1 -7
  68. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  69. package/dist/api/device/DeviceUploadResource.d.ts.map +1 -1
  70. package/dist/api/device/DeviceVerify.d.ts.map +1 -1
  71. package/dist/api/device/DeviceWipe.d.ts.map +1 -1
  72. package/dist/api/dynex/DnxGetAddress.d.ts.map +1 -1
  73. package/dist/api/dynex/DnxSignTransaction.d.ts.map +1 -1
  74. package/dist/api/evm/EVMGetPublicKey.d.ts.map +1 -1
  75. package/dist/api/evm/EVMSignMessageEIP712.d.ts +8 -2
  76. package/dist/api/evm/EVMSignMessageEIP712.d.ts.map +1 -1
  77. package/dist/api/evm/EVMSignTypedData.d.ts.map +1 -1
  78. package/dist/api/evm/latest/signTypedData.d.ts +1 -1
  79. package/dist/api/evm/latest/signTypedData.d.ts.map +1 -1
  80. package/dist/api/evm/latest/signTypedHash.d.ts.map +1 -1
  81. package/dist/api/evm/legacyV1/getAddress.d.ts.map +1 -1
  82. package/dist/api/evm/legacyV1/getPublicKey.d.ts.map +1 -1
  83. package/dist/api/evm/legacyV1/signMessage.d.ts.map +1 -1
  84. package/dist/api/evm/legacyV1/signTypedData.d.ts +1 -1
  85. package/dist/api/evm/legacyV1/signTypedData.d.ts.map +1 -1
  86. package/dist/api/evm/legacyV1/signTypedHash.d.ts.map +1 -1
  87. package/dist/api/evm/legacyV1/verifyMessage.d.ts.map +1 -1
  88. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +1 -10
  89. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  90. package/dist/api/firmware/bootloaderHelper.d.ts.map +1 -1
  91. package/dist/api/firmware/getBinary.d.ts +0 -11
  92. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  93. package/dist/api/firmware/updateBootloader.d.ts +0 -2
  94. package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
  95. package/dist/api/firmware/uploadFirmware.d.ts +1 -9
  96. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  97. package/dist/api/helpers/batchGetPublickeys.d.ts +0 -3
  98. package/dist/api/helpers/batchGetPublickeys.d.ts.map +1 -1
  99. package/dist/api/index.d.ts +0 -29
  100. package/dist/api/index.d.ts.map +1 -1
  101. package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
  102. package/dist/api/lightning/LnurlAuth.d.ts +0 -4
  103. package/dist/api/lightning/LnurlAuth.d.ts.map +1 -1
  104. package/dist/api/neo/NeoGetAddress.d.ts +8 -2
  105. package/dist/api/neo/NeoGetAddress.d.ts.map +1 -1
  106. package/dist/api/neo/NeoSignTransaction.d.ts +8 -2
  107. package/dist/api/neo/NeoSignTransaction.d.ts.map +1 -1
  108. package/dist/api/nervos/NervosGetAddress.d.ts +9 -2
  109. package/dist/api/nervos/NervosGetAddress.d.ts.map +1 -1
  110. package/dist/api/nervos/NervosSignTransaction.d.ts +12 -9
  111. package/dist/api/nervos/NervosSignTransaction.d.ts.map +1 -1
  112. package/dist/api/nexa/NexaGetAddress.d.ts +8 -2
  113. package/dist/api/nexa/NexaGetAddress.d.ts.map +1 -1
  114. package/dist/api/nexa/NexaSignTransaction.d.ts +9 -2
  115. package/dist/api/nexa/NexaSignTransaction.d.ts.map +1 -1
  116. package/dist/api/polkadot/PolkadotGetAddress.d.ts +0 -3
  117. package/dist/api/polkadot/PolkadotGetAddress.d.ts.map +1 -1
  118. package/dist/api/polkadot/networks.d.ts +0 -3
  119. package/dist/api/polkadot/networks.d.ts.map +1 -1
  120. package/dist/api/scdo/ScdoGetAddress.d.ts +6 -2
  121. package/dist/api/scdo/ScdoGetAddress.d.ts.map +1 -1
  122. package/dist/api/scdo/ScdoSignMessage.d.ts +5 -2
  123. package/dist/api/scdo/ScdoSignMessage.d.ts.map +1 -1
  124. package/dist/api/scdo/ScdoSignTransaction.d.ts +5 -2
  125. package/dist/api/scdo/ScdoSignTransaction.d.ts.map +1 -1
  126. package/dist/api/solana/SolGetAddress.d.ts +0 -1
  127. package/dist/api/solana/SolGetAddress.d.ts.map +1 -1
  128. package/dist/api/solana/SolSignMessage.d.ts +0 -3
  129. package/dist/api/solana/SolSignMessage.d.ts.map +1 -1
  130. package/dist/api/solana/SolSignOffchainMessage.d.ts +0 -3
  131. package/dist/api/solana/SolSignOffchainMessage.d.ts.map +1 -1
  132. package/dist/api/solana/SolSignTransaction.d.ts +0 -6
  133. package/dist/api/solana/SolSignTransaction.d.ts.map +1 -1
  134. package/dist/api/stellar/StellarGetAddress.d.ts +1 -2
  135. package/dist/api/stellar/StellarGetAddress.d.ts.map +1 -1
  136. package/dist/api/stellar/StellarSignTransaction.d.ts +2 -3
  137. package/dist/api/stellar/StellarSignTransaction.d.ts.map +1 -1
  138. package/dist/api/sui/SuiGetAddress.d.ts +0 -3
  139. package/dist/api/sui/SuiGetAddress.d.ts.map +1 -1
  140. package/dist/api/sui/SuiGetPublicKey.d.ts +0 -3
  141. package/dist/api/sui/SuiGetPublicKey.d.ts.map +1 -1
  142. package/dist/api/sui/SuiSignMessage.d.ts +0 -3
  143. package/dist/api/sui/SuiSignMessage.d.ts.map +1 -1
  144. package/dist/api/sui/SuiSignTransaction.d.ts +2 -5
  145. package/dist/api/sui/SuiSignTransaction.d.ts.map +1 -1
  146. package/dist/api/ton/TonGetAddress.d.ts +0 -3
  147. package/dist/api/ton/TonGetAddress.d.ts.map +1 -1
  148. package/dist/api/ton/TonSignData.d.ts +0 -1
  149. package/dist/api/ton/TonSignData.d.ts.map +1 -1
  150. package/dist/api/ton/TonSignMessage.d.ts +0 -3
  151. package/dist/api/ton/TonSignMessage.d.ts.map +1 -1
  152. package/dist/api/ton/TonSignProof.d.ts +0 -3
  153. package/dist/api/ton/TonSignProof.d.ts.map +1 -1
  154. package/dist/api/tron/TronSignMessage.d.ts +0 -3
  155. package/dist/api/tron/TronSignMessage.d.ts.map +1 -1
  156. package/dist/api/tron/TronSignTransaction.d.ts +0 -3
  157. package/dist/api/tron/TronSignTransaction.d.ts.map +1 -1
  158. package/dist/api/utils.d.ts +1 -2
  159. package/dist/api/utils.d.ts.map +1 -1
  160. package/dist/constants/index.d.ts +1 -2
  161. package/dist/constants/index.d.ts.map +1 -1
  162. package/dist/core/RequestQueue.d.ts +1 -19
  163. package/dist/core/RequestQueue.d.ts.map +1 -1
  164. package/dist/core/index.d.ts +1 -4
  165. package/dist/core/index.d.ts.map +1 -1
  166. package/dist/data-manager/DataManager.d.ts +5 -9
  167. package/dist/data-manager/DataManager.d.ts.map +1 -1
  168. package/dist/data-manager/MessagesConfig.d.ts +2 -2
  169. package/dist/data-manager/MessagesConfig.d.ts.map +1 -1
  170. package/dist/data-manager/TransportManager.d.ts +4 -5
  171. package/dist/data-manager/TransportManager.d.ts.map +1 -1
  172. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  173. package/dist/device/Device.d.ts +16 -60
  174. package/dist/device/Device.d.ts.map +1 -1
  175. package/dist/device/DeviceCommands.d.ts +14 -16
  176. package/dist/device/DeviceCommands.d.ts.map +1 -1
  177. package/dist/device/DeviceConnector.d.ts +1 -2
  178. package/dist/device/DeviceConnector.d.ts.map +1 -1
  179. package/dist/device/DevicePool.d.ts +2 -4
  180. package/dist/device/DevicePool.d.ts.map +1 -1
  181. package/dist/events/call.d.ts +0 -7
  182. package/dist/events/call.d.ts.map +1 -1
  183. package/dist/events/core.d.ts +2 -2
  184. package/dist/events/core.d.ts.map +1 -1
  185. package/dist/events/device.d.ts +2 -11
  186. package/dist/events/device.d.ts.map +1 -1
  187. package/dist/events/iframe.d.ts +0 -1
  188. package/dist/events/iframe.d.ts.map +1 -1
  189. package/dist/events/logBlockEvent.d.ts +0 -1
  190. package/dist/events/logBlockEvent.d.ts.map +1 -1
  191. package/dist/events/ui-request.d.ts +2 -26
  192. package/dist/events/ui-request.d.ts.map +1 -1
  193. package/dist/index.d.ts +451 -1797
  194. package/dist/index.d.ts.map +1 -1
  195. package/dist/index.js +5556 -26855
  196. package/dist/inject.d.ts +2 -3
  197. package/dist/inject.d.ts.map +1 -1
  198. package/dist/lowLevelInject.d.ts +1 -2
  199. package/dist/lowLevelInject.d.ts.map +1 -1
  200. package/dist/topLevelInject.d.ts.map +1 -1
  201. package/dist/types/api/checkAllFirmwareRelease.d.ts +2 -4
  202. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  203. package/dist/types/api/deviceSettings.d.ts +0 -9
  204. package/dist/types/api/deviceSettings.d.ts.map +1 -1
  205. package/dist/types/api/deviceUnlock.d.ts +1 -1
  206. package/dist/types/api/deviceUnlock.d.ts.map +1 -1
  207. package/dist/types/api/deviceUpdateBootloader.d.ts +1 -6
  208. package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -1
  209. package/dist/types/api/export.d.ts +1 -4
  210. package/dist/types/api/export.d.ts.map +1 -1
  211. package/dist/types/api/firmwareUpdate.d.ts +1 -114
  212. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  213. package/dist/types/api/getFeatures.d.ts.map +1 -1
  214. package/dist/types/api/getOnekeyFeatures.d.ts.map +1 -1
  215. package/dist/types/api/getPassphraseState.d.ts +1 -2
  216. package/dist/types/api/getPassphraseState.d.ts.map +1 -1
  217. package/dist/types/api/index.d.ts +2 -48
  218. package/dist/types/api/index.d.ts.map +1 -1
  219. package/dist/types/api/searchDevices.d.ts +2 -2
  220. package/dist/types/api/searchDevices.d.ts.map +1 -1
  221. package/dist/types/device.d.ts +5 -207
  222. package/dist/types/device.d.ts.map +1 -1
  223. package/dist/types/params.d.ts +0 -3
  224. package/dist/types/params.d.ts.map +1 -1
  225. package/dist/types/settings.d.ts +0 -33
  226. package/dist/types/settings.d.ts.map +1 -1
  227. package/dist/utils/capabilitieUtils.d.ts.map +1 -1
  228. package/dist/utils/deviceFeaturesUtils.d.ts +9 -17
  229. package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
  230. package/dist/utils/deviceInfoUtils.d.ts +8 -10
  231. package/dist/utils/deviceInfoUtils.d.ts.map +1 -1
  232. package/dist/utils/deviceSettings.d.ts +0 -2
  233. package/dist/utils/deviceSettings.d.ts.map +1 -1
  234. package/dist/utils/deviceVersionUtils.d.ts +5 -6
  235. package/dist/utils/deviceVersionUtils.d.ts.map +1 -1
  236. package/dist/utils/findDefectiveBatchDevice.d.ts +1 -1
  237. package/dist/utils/homescreen.d.ts.map +1 -1
  238. package/dist/utils/index.d.ts +1 -3
  239. package/dist/utils/index.d.ts.map +1 -1
  240. package/dist/utils/patch.d.ts +1 -1
  241. package/dist/utils/patch.d.ts.map +1 -1
  242. package/dist/utils/tracing.d.ts.map +1 -1
  243. package/dist/utils/versionUtils.d.ts +1 -1
  244. package/package.json +4 -4
  245. package/src/api/BaseMethod.ts +23 -60
  246. package/src/api/CheckAllFirmwareRelease.ts +3 -16
  247. package/src/api/CheckBootloaderRelease.ts +2 -1
  248. package/src/api/CheckFirmwareRelease.ts +2 -1
  249. package/src/api/FirmwareUpdate.ts +7 -15
  250. package/src/api/FirmwareUpdateV2.ts +148 -354
  251. package/src/api/FirmwareUpdateV3.ts +62 -376
  252. package/src/api/GetFeatures.ts +4 -12
  253. package/src/api/GetOnekeyFeatures.ts +3 -15
  254. package/src/api/GetPassphraseState.ts +10 -9
  255. package/src/api/PromptWebDeviceAccess.ts +1 -10
  256. package/src/api/SearchDevices.ts +3 -33
  257. package/src/api/alephium/AlephiumGetAddress.ts +2 -6
  258. package/src/api/alephium/AlephiumSignMessage.ts +1 -6
  259. package/src/api/alephium/AlephiumSignTransaction.ts +4 -15
  260. package/src/api/allnetwork/AllNetworkGetAddressBase.ts +21 -25
  261. package/src/api/aptos/AptosGetAddress.ts +3 -2
  262. package/src/api/benfen/BenfenGetAddress.ts +7 -11
  263. package/src/api/benfen/BenfenGetPublicKey.ts +2 -6
  264. package/src/api/benfen/BenfenSignMessage.ts +1 -6
  265. package/src/api/benfen/BenfenSignTransaction.ts +1 -6
  266. package/src/api/btc/BTCGetPublicKey.ts +2 -3
  267. package/src/api/btc/BTCSignPsbt.ts +2 -1
  268. package/src/api/btc/helpers/versionLimit.ts +1 -7
  269. package/src/api/cardano/CardanoSignTransaction.ts +4 -2
  270. package/src/api/conflux/ConfluxSignTransaction.ts +2 -5
  271. package/src/api/device/DeviceCancel.ts +0 -1
  272. package/src/api/device/DeviceChangePin.ts +0 -24
  273. package/src/api/device/DeviceFullyUploadResource.ts +7 -6
  274. package/src/api/device/DeviceLock.ts +3 -2
  275. package/src/api/device/DeviceRebootToBoardloader.ts +1 -11
  276. package/src/api/device/DeviceRebootToBootloader.ts +1 -11
  277. package/src/api/device/DeviceSettings.ts +0 -121
  278. package/src/api/device/DeviceSupportFeatures.ts +13 -2
  279. package/src/api/device/DeviceUnlock.ts +0 -9
  280. package/src/api/device/DeviceUpdateBootloader.ts +11 -175
  281. package/src/api/device/DeviceUploadResource.ts +5 -4
  282. package/src/api/device/DeviceVerify.ts +2 -1
  283. package/src/api/device/DeviceWipe.ts +0 -19
  284. package/src/api/dynex/DnxGetAddress.ts +0 -6
  285. package/src/api/dynex/DnxSignTransaction.ts +0 -6
  286. package/src/api/evm/EVMGetAddress.ts +1 -1
  287. package/src/api/evm/EVMGetPublicKey.ts +4 -3
  288. package/src/api/evm/EVMSignMessage.ts +1 -1
  289. package/src/api/evm/EVMSignMessageEIP712.ts +1 -14
  290. package/src/api/evm/EVMSignTransaction.ts +1 -1
  291. package/src/api/evm/EVMSignTypedData.ts +18 -30
  292. package/src/api/evm/EVMVerifyMessage.ts +1 -1
  293. package/src/api/evm/latest/signTypedHash.ts +4 -2
  294. package/src/api/evm/legacyV1/getAddress.ts +3 -5
  295. package/src/api/evm/legacyV1/getPublicKey.ts +3 -5
  296. package/src/api/evm/legacyV1/signMessage.ts +3 -5
  297. package/src/api/evm/legacyV1/signTypedData.ts +8 -9
  298. package/src/api/evm/legacyV1/signTypedHash.ts +7 -7
  299. package/src/api/evm/legacyV1/verifyMessage.ts +3 -5
  300. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +15 -83
  301. package/src/api/firmware/bootloaderHelper.ts +2 -3
  302. package/src/api/firmware/getBinary.ts +1 -1
  303. package/src/api/firmware/releaseHelper.ts +3 -3
  304. package/src/api/firmware/updateBootloader.ts +4 -19
  305. package/src/api/firmware/uploadFirmware.ts +34 -148
  306. package/src/api/helpers/batchGetPublickeys.ts +6 -51
  307. package/src/api/index.ts +0 -32
  308. package/src/api/kaspa/KaspaSignTransaction.ts +3 -2
  309. package/src/api/lightning/LnurlAuth.ts +0 -4
  310. package/src/api/neo/NeoGetAddress.ts +1 -6
  311. package/src/api/neo/NeoSignTransaction.ts +1 -6
  312. package/src/api/nervos/NervosGetAddress.ts +2 -6
  313. package/src/api/nervos/NervosSignTransaction.ts +4 -14
  314. package/src/api/nexa/NexaGetAddress.ts +2 -6
  315. package/src/api/nexa/NexaSignTransaction.ts +12 -11
  316. package/src/api/polkadot/networks.ts +0 -9
  317. package/src/api/scdo/ScdoGetAddress.ts +2 -6
  318. package/src/api/scdo/ScdoSignMessage.ts +1 -6
  319. package/src/api/scdo/ScdoSignTransaction.ts +2 -6
  320. package/src/api/solana/SolGetAddress.ts +0 -4
  321. package/src/api/solana/SolSignMessage.ts +0 -3
  322. package/src/api/solana/SolSignOffchainMessage.ts +0 -3
  323. package/src/api/solana/SolSignTransaction.ts +0 -6
  324. package/src/api/stellar/StellarGetAddress.ts +1 -10
  325. package/src/api/stellar/StellarSignTransaction.ts +1 -14
  326. package/src/api/sui/SuiGetAddress.ts +3 -5
  327. package/src/api/sui/SuiGetPublicKey.ts +0 -3
  328. package/src/api/sui/SuiSignMessage.ts +0 -3
  329. package/src/api/sui/SuiSignTransaction.ts +12 -14
  330. package/src/api/ton/TonGetAddress.ts +0 -3
  331. package/src/api/ton/TonSignData.ts +3 -6
  332. package/src/api/ton/TonSignMessage.ts +5 -6
  333. package/src/api/ton/TonSignProof.ts +0 -3
  334. package/src/api/tron/TronSignMessage.ts +1 -4
  335. package/src/api/tron/TronSignTransaction.ts +0 -3
  336. package/src/api/utils.ts +3 -7
  337. package/src/api/xrp/XrpSignTransaction.ts +1 -1
  338. package/src/constants/index.ts +1 -7
  339. package/src/core/RequestQueue.ts +4 -124
  340. package/src/core/index.ts +116 -255
  341. package/src/data-manager/DataManager.ts +49 -61
  342. package/src/data-manager/MessagesConfig.ts +14 -14
  343. package/src/data-manager/TransportManager.ts +12 -38
  344. package/src/data-manager/connectSettings.ts +0 -15
  345. package/src/device/Device.ts +164 -759
  346. package/src/device/DeviceCommands.ts +36 -245
  347. package/src/device/DeviceConnector.ts +4 -29
  348. package/src/device/DevicePool.ts +21 -69
  349. package/src/events/call.ts +0 -6
  350. package/src/events/core.ts +0 -2
  351. package/src/events/device.ts +1 -17
  352. package/src/events/iframe.ts +0 -1
  353. package/src/events/logBlockEvent.ts +0 -30
  354. package/src/events/ui-request.ts +2 -32
  355. package/src/index.ts +0 -9
  356. package/src/inject.ts +3 -75
  357. package/src/lowLevelInject.ts +1 -8
  358. package/src/topLevelInject.ts +1 -7
  359. package/src/types/api/checkAllFirmwareRelease.ts +2 -4
  360. package/src/types/api/deviceSettings.ts +0 -9
  361. package/src/types/api/deviceUnlock.ts +1 -1
  362. package/src/types/api/deviceUpdateBootloader.ts +1 -10
  363. package/src/types/api/export.ts +0 -25
  364. package/src/types/api/firmwareUpdate.ts +1 -163
  365. package/src/types/api/getFeatures.ts +0 -3
  366. package/src/types/api/getOnekeyFeatures.ts +0 -3
  367. package/src/types/api/getPassphraseState.ts +2 -10
  368. package/src/types/api/index.ts +2 -89
  369. package/src/types/api/searchDevices.ts +2 -2
  370. package/src/types/device.ts +5 -266
  371. package/src/types/params.ts +0 -11
  372. package/src/types/settings.ts +29 -54
  373. package/src/utils/capabilitieUtils.ts +2 -1
  374. package/src/utils/deviceFeaturesUtils.ts +84 -122
  375. package/src/utils/deviceInfoUtils.ts +87 -38
  376. package/src/utils/deviceSettings.ts +0 -48
  377. package/src/utils/deviceVersionUtils.ts +62 -25
  378. package/src/utils/findDefectiveBatchDevice.ts +8 -8
  379. package/src/utils/homescreen.ts +0 -10
  380. package/src/utils/index.ts +0 -4
  381. package/src/utils/tracing.ts +1 -3
  382. package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +0 -75
  383. package/__tests__/RequestQueue.test.ts +0 -140
  384. package/__tests__/UploadPortfolio.test.ts +0 -46
  385. package/__tests__/connectSettings.test.ts +0 -61
  386. package/__tests__/device-lifecycle-events.test.ts +0 -117
  387. package/__tests__/device-pool-state.test.ts +0 -132
  388. package/__tests__/device-settings.test.ts +0 -286
  389. package/__tests__/device-state-mapper.test.ts +0 -229
  390. package/__tests__/device-utils.test.ts +0 -106
  391. package/__tests__/device-wallet-session-store.test.ts +0 -191
  392. package/__tests__/filesystemValidation.test.ts +0 -53
  393. package/__tests__/firmware-update/firmware-artifact-source.test.ts +0 -119
  394. package/__tests__/firmware-update/firmware-checkpoint.test.ts +0 -105
  395. package/__tests__/firmware-update/firmware-host-binding.test.ts +0 -73
  396. package/__tests__/firmware-update/firmware-update-capabilities.test.ts +0 -17
  397. package/__tests__/firmware-update/firmware-update-plan.test.ts +0 -358
  398. package/__tests__/firmware-update/firmware-update-prepared-plan.test.ts +0 -200
  399. package/__tests__/firmware-update/firmware-update-recovery.test.ts +0 -81
  400. package/__tests__/firmware-update/firmware-upload-source.test.ts +0 -70
  401. package/__tests__/get-device-state.test.ts +0 -403
  402. package/__tests__/logBlockEvent.test.ts +0 -61
  403. package/__tests__/logger.test.ts +0 -34
  404. package/__tests__/open-wallet-session.test.ts +0 -565
  405. package/__tests__/pro2Wallpaper.test.ts +0 -39
  406. package/__tests__/protocol-v2-bootloader-mode.test.ts +0 -37
  407. package/__tests__/protocol-v2-firmware-targets.test.ts +0 -19
  408. package/__tests__/protocol-v2.test.ts +0 -6008
  409. package/__tests__/protocolV2FileWrite.test.ts +0 -67
  410. package/__tests__/public-pro2-api-boundary.test.ts +0 -66
  411. package/__tests__/search-devices.test.ts +0 -136
  412. package/dist/api/ClearSessionCache.d.ts +0 -9
  413. package/dist/api/ClearSessionCache.d.ts.map +0 -1
  414. package/dist/api/DirList.d.ts +0 -10
  415. package/dist/api/DirList.d.ts.map +0 -1
  416. package/dist/api/DirMake.d.ts +0 -9
  417. package/dist/api/DirMake.d.ts.map +0 -1
  418. package/dist/api/DirRemove.d.ts +0 -9
  419. package/dist/api/DirRemove.d.ts.map +0 -1
  420. package/dist/api/FileDelete.d.ts +0 -9
  421. package/dist/api/FileDelete.d.ts.map +0 -1
  422. package/dist/api/FileRead.d.ts +0 -19
  423. package/dist/api/FileRead.d.ts.map +0 -1
  424. package/dist/api/FileWrite.d.ts +0 -25
  425. package/dist/api/FileWrite.d.ts.map +0 -1
  426. package/dist/api/FirmwareUpdateV4.d.ts +0 -75
  427. package/dist/api/FirmwareUpdateV4.d.ts.map +0 -1
  428. package/dist/api/GetDeviceState.d.ts +0 -7
  429. package/dist/api/GetDeviceState.d.ts.map +0 -1
  430. package/dist/api/OpenWalletSession.d.ts +0 -14
  431. package/dist/api/OpenWalletSession.d.ts.map +0 -1
  432. package/dist/api/PathInfo.d.ts +0 -10
  433. package/dist/api/PathInfo.d.ts.map +0 -1
  434. package/dist/api/UploadPortfolio.d.ts +0 -18
  435. package/dist/api/UploadPortfolio.d.ts.map +0 -1
  436. package/dist/api/firmware/FirmwareArtifactSource.d.ts +0 -26
  437. package/dist/api/firmware/FirmwareArtifactSource.d.ts.map +0 -1
  438. package/dist/api/firmware/FirmwareCheckpoint.d.ts +0 -15
  439. package/dist/api/firmware/FirmwareCheckpoint.d.ts.map +0 -1
  440. package/dist/api/firmware/FirmwareHostBinding.d.ts +0 -6
  441. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +0 -1
  442. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts +0 -3
  443. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts.map +0 -1
  444. package/dist/api/firmware/FirmwareUpdatePlan.d.ts +0 -29
  445. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +0 -1
  446. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +0 -25
  447. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +0 -1
  448. package/dist/api/firmware/progressThrottle.d.ts +0 -3
  449. package/dist/api/firmware/progressThrottle.d.ts.map +0 -1
  450. package/dist/api/helpers/filesystemValidation.d.ts +0 -10
  451. package/dist/api/helpers/filesystemValidation.d.ts.map +0 -1
  452. package/dist/api/helpers/protocolV2FileWrite.d.ts +0 -33
  453. package/dist/api/helpers/protocolV2FileWrite.d.ts.map +0 -1
  454. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts +0 -6
  455. package/dist/api/protocol-v2/DeviceFactoryInfoGet.d.ts.map +0 -1
  456. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts +0 -7
  457. package/dist/api/protocol-v2/DeviceFactoryInfoSet.d.ts.map +0 -1
  458. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts +0 -7
  459. package/dist/api/protocol-v2/DeviceFirmwareUpdate.d.ts.map +0 -1
  460. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts +0 -7
  461. package/dist/api/protocol-v2/DeviceGetFirmwareUpdateStatus.d.ts.map +0 -1
  462. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts +0 -6
  463. package/dist/api/protocol-v2/DeviceGetOnboardingStatus.d.ts.map +0 -1
  464. package/dist/api/protocol-v2/DeviceInfoGet.d.ts +0 -28
  465. package/dist/api/protocol-v2/DeviceInfoGet.d.ts.map +0 -1
  466. package/dist/api/protocol-v2/DeviceReboot.d.ts +0 -7
  467. package/dist/api/protocol-v2/DeviceReboot.d.ts.map +0 -1
  468. package/dist/api/protocol-v2/DeviceSessionOpen.d.ts +0 -28
  469. package/dist/api/protocol-v2/DeviceSessionOpen.d.ts.map +0 -1
  470. package/dist/api/protocol-v2/DeviceSettingsGet.d.ts +0 -6
  471. package/dist/api/protocol-v2/DeviceSettingsGet.d.ts.map +0 -1
  472. package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts +0 -16
  473. package/dist/api/protocol-v2/DeviceSettingsPageShow.d.ts.map +0 -1
  474. package/dist/api/protocol-v2/DeviceSettingsSet.d.ts +0 -12
  475. package/dist/api/protocol-v2/DeviceSettingsSet.d.ts.map +0 -1
  476. package/dist/api/protocol-v2/DeviceStatusGet.d.ts +0 -6
  477. package/dist/api/protocol-v2/DeviceStatusGet.d.ts.map +0 -1
  478. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts +0 -26
  479. package/dist/api/protocol-v2/DeviceUploadWallpaper.d.ts.map +0 -1
  480. package/dist/api/protocol-v2/FilesystemFormat.d.ts +0 -6
  481. package/dist/api/protocol-v2/FilesystemFormat.d.ts.map +0 -1
  482. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts +0 -6
  483. package/dist/api/protocol-v2/FilesystemPermissionFix.d.ts.map +0 -1
  484. package/dist/api/protocol-v2/Ping.d.ts +0 -8
  485. package/dist/api/protocol-v2/Ping.d.ts.map +0 -1
  486. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts +0 -6
  487. package/dist/api/protocol-v2/ProtocolInfoRequest.d.ts.map +0 -1
  488. package/dist/api/protocol-v2/helpers.d.ts +0 -42
  489. package/dist/api/protocol-v2/helpers.d.ts.map +0 -1
  490. package/dist/core/deviceEventRegistration.d.ts +0 -11
  491. package/dist/core/deviceEventRegistration.d.ts.map +0 -1
  492. package/dist/device/DeviceFeaturesState.d.ts +0 -4
  493. package/dist/device/DeviceFeaturesState.d.ts.map +0 -1
  494. package/dist/device/DeviceStateMapper.d.ts +0 -13
  495. package/dist/device/DeviceStateMapper.d.ts.map +0 -1
  496. package/dist/device/DeviceStateProjector.d.ts +0 -7
  497. package/dist/device/DeviceStateProjector.d.ts.map +0 -1
  498. package/dist/device/DeviceStateStore.d.ts +0 -21
  499. package/dist/device/DeviceStateStore.d.ts.map +0 -1
  500. package/dist/device/DeviceWalletSessionStore.d.ts +0 -15
  501. package/dist/device/DeviceWalletSessionStore.d.ts.map +0 -1
  502. package/dist/device/cloneDeviceState.d.ts +0 -2
  503. package/dist/device/cloneDeviceState.d.ts.map +0 -1
  504. package/dist/device/deviceIdentity.d.ts +0 -5
  505. package/dist/device/deviceIdentity.d.ts.map +0 -1
  506. package/dist/deviceProfile/buildDeviceFeatures.d.ts +0 -12
  507. package/dist/deviceProfile/buildDeviceFeatures.d.ts.map +0 -1
  508. package/dist/deviceProfile/index.d.ts +0 -2
  509. package/dist/deviceProfile/index.d.ts.map +0 -1
  510. package/dist/protocols/protocol-v2/deviceSession.d.ts +0 -7
  511. package/dist/protocols/protocol-v2/deviceSession.d.ts.map +0 -1
  512. package/dist/protocols/protocol-v2/features.d.ts +0 -88
  513. package/dist/protocols/protocol-v2/features.d.ts.map +0 -1
  514. package/dist/protocols/protocol-v2/firmware.d.ts +0 -15
  515. package/dist/protocols/protocol-v2/firmware.d.ts.map +0 -1
  516. package/dist/protocols/protocol-v2/index.d.ts +0 -5
  517. package/dist/protocols/protocol-v2/index.d.ts.map +0 -1
  518. package/dist/protocols/protocol-v2/lockedError.d.ts +0 -2
  519. package/dist/protocols/protocol-v2/lockedError.d.ts.map +0 -1
  520. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts +0 -16
  521. package/dist/protocols/protocol-v2/settingsUnlockPolicy.d.ts.map +0 -1
  522. package/dist/protocols/protocol-v2/uiInteraction.d.ts +0 -39
  523. package/dist/protocols/protocol-v2/uiInteraction.d.ts.map +0 -1
  524. package/dist/protocols/protocol-v2/unlockRetry.d.ts +0 -11
  525. package/dist/protocols/protocol-v2/unlockRetry.d.ts.map +0 -1
  526. package/dist/protocols/protocol-v2/walletSession.d.ts +0 -21
  527. package/dist/protocols/protocol-v2/walletSession.d.ts.map +0 -1
  528. package/dist/types/api/firmwareUpdateCapabilities.d.ts +0 -13
  529. package/dist/types/api/firmwareUpdateCapabilities.d.ts.map +0 -1
  530. package/dist/types/api/firmwareUpdatePlan.d.ts +0 -35
  531. package/dist/types/api/firmwareUpdatePlan.d.ts.map +0 -1
  532. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts +0 -43
  533. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts.map +0 -1
  534. package/dist/types/api/getDeviceState.d.ts +0 -12
  535. package/dist/types/api/getDeviceState.d.ts.map +0 -1
  536. package/dist/types/api/openWalletSession.d.ts +0 -35
  537. package/dist/types/api/openWalletSession.d.ts.map +0 -1
  538. package/dist/types/api/protocolV2.d.ts +0 -113
  539. package/dist/types/api/protocolV2.d.ts.map +0 -1
  540. package/dist/types/api/sessionCache.d.ts +0 -10
  541. package/dist/types/api/sessionCache.d.ts.map +0 -1
  542. package/dist/utils/deviceFeaturesCompat.d.ts +0 -13
  543. package/dist/utils/deviceFeaturesCompat.d.ts.map +0 -1
  544. package/dist/utils/pro2Wallpaper.d.ts +0 -12
  545. package/dist/utils/pro2Wallpaper.d.ts.map +0 -1
  546. package/src/api/ClearSessionCache.ts +0 -28
  547. package/src/api/DirList.ts +0 -33
  548. package/src/api/DirMake.ts +0 -23
  549. package/src/api/DirRemove.ts +0 -23
  550. package/src/api/FileDelete.ts +0 -23
  551. package/src/api/FileRead.ts +0 -183
  552. package/src/api/FileWrite.ts +0 -71
  553. package/src/api/FirmwareUpdateV4.ts +0 -2279
  554. package/src/api/GetDeviceState.ts +0 -55
  555. package/src/api/OpenWalletSession.ts +0 -211
  556. package/src/api/PathInfo.ts +0 -41
  557. package/src/api/UploadPortfolio.ts +0 -50
  558. package/src/api/firmware/FirmwareArtifactSource.ts +0 -278
  559. package/src/api/firmware/FirmwareCheckpoint.ts +0 -188
  560. package/src/api/firmware/FirmwareHostBinding.ts +0 -108
  561. package/src/api/firmware/FirmwareUpdateCapabilities.ts +0 -13
  562. package/src/api/firmware/FirmwareUpdatePlan.ts +0 -729
  563. package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +0 -403
  564. package/src/api/firmware/progressThrottle.ts +0 -44
  565. package/src/api/helpers/filesystemValidation.ts +0 -112
  566. package/src/api/helpers/protocolV2FileWrite.ts +0 -193
  567. package/src/api/protocol-v2/DeviceFactoryInfoGet.ts +0 -20
  568. package/src/api/protocol-v2/DeviceFactoryInfoSet.ts +0 -32
  569. package/src/api/protocol-v2/DeviceFirmwareUpdate.ts +0 -61
  570. package/src/api/protocol-v2/DeviceGetFirmwareUpdateStatus.ts +0 -55
  571. package/src/api/protocol-v2/DeviceGetOnboardingStatus.ts +0 -18
  572. package/src/api/protocol-v2/DeviceInfoGet.ts +0 -145
  573. package/src/api/protocol-v2/DeviceReboot.ts +0 -26
  574. package/src/api/protocol-v2/DeviceSessionOpen.ts +0 -102
  575. package/src/api/protocol-v2/DeviceSettingsGet.ts +0 -18
  576. package/src/api/protocol-v2/DeviceSettingsPageShow.ts +0 -70
  577. package/src/api/protocol-v2/DeviceSettingsSet.ts +0 -44
  578. package/src/api/protocol-v2/DeviceStatusGet.ts +0 -16
  579. package/src/api/protocol-v2/DeviceUploadWallpaper.ts +0 -131
  580. package/src/api/protocol-v2/FilesystemFormat.ts +0 -19
  581. package/src/api/protocol-v2/FilesystemPermissionFix.ts +0 -16
  582. package/src/api/protocol-v2/Ping.ts +0 -18
  583. package/src/api/protocol-v2/ProtocolInfoRequest.ts +0 -16
  584. package/src/api/protocol-v2/helpers.ts +0 -203
  585. package/src/core/deviceEventRegistration.ts +0 -23
  586. package/src/data/messages/messages-protocol-v2.json +0 -13544
  587. package/src/device/DeviceFeaturesState.ts +0 -34
  588. package/src/device/DeviceStateMapper.ts +0 -348
  589. package/src/device/DeviceStateProjector.ts +0 -95
  590. package/src/device/DeviceStateStore.ts +0 -201
  591. package/src/device/DeviceWalletSessionStore.ts +0 -78
  592. package/src/device/cloneDeviceState.ts +0 -39
  593. package/src/device/deviceIdentity.ts +0 -18
  594. package/src/deviceProfile/buildDeviceFeatures.ts +0 -391
  595. package/src/deviceProfile/index.ts +0 -4
  596. package/src/protocols/protocol-v2/deviceSession.ts +0 -24
  597. package/src/protocols/protocol-v2/features.ts +0 -163
  598. package/src/protocols/protocol-v2/firmware.ts +0 -21
  599. package/src/protocols/protocol-v2/index.ts +0 -18
  600. package/src/protocols/protocol-v2/lockedError.ts +0 -10
  601. package/src/protocols/protocol-v2/settingsUnlockPolicy.ts +0 -61
  602. package/src/protocols/protocol-v2/uiInteraction.ts +0 -210
  603. package/src/protocols/protocol-v2/unlockRetry.ts +0 -76
  604. package/src/protocols/protocol-v2/walletSession.ts +0 -202
  605. package/src/types/api/firmwareUpdateCapabilities.ts +0 -13
  606. package/src/types/api/firmwareUpdatePlan.ts +0 -52
  607. package/src/types/api/firmwareUpdatePreparedPlan.ts +0 -55
  608. package/src/types/api/getDeviceState.ts +0 -19
  609. package/src/types/api/openWalletSession.ts +0 -54
  610. package/src/types/api/protocolV2.ts +0 -244
  611. package/src/types/api/sessionCache.ts +0 -14
  612. package/src/utils/deviceFeaturesCompat.ts +0 -173
  613. package/src/utils/pro2Wallpaper.ts +0 -109
@@ -9,6 +9,7 @@ import {
9
9
  getDeviceBLEFirmwareVersion,
10
10
  getDeviceBootloaderVersion,
11
11
  getDeviceFirmwareVersion,
12
+ getDeviceType,
12
13
  getFirmwareType,
13
14
  getLogger,
14
15
  } from '../utils';
@@ -17,23 +18,10 @@ import { DataManager } from '../data-manager';
17
18
  import { FirmwareUpdateBaseMethod } from './firmware/FirmwareUpdateBaseMethod';
18
19
  import { DevicePool } from '../device/DevicePool';
19
20
  import { DEVICE } from '../events';
20
- import { buildProtocolV1FeaturesPayload } from '../deviceProfile';
21
- import { openFirmwareByteSource } from './firmware/FirmwareArtifactSource';
22
- import { FirmwareCheckpointWriter } from './firmware/FirmwareCheckpoint';
23
- import { resolveFirmwareUpdateHostBinding } from './firmware/FirmwareHostBinding';
24
- import {
25
- assertFirmwareUpdatePreparedPlanBinding,
26
- getFirmwareUpdateResourceName,
27
- } from './firmware/FirmwareUpdatePreparedPlan';
28
-
29
- import type {
30
- FirmwareArtifactReference,
31
- FirmwareUpdateV3Params,
32
- } from '../types/api/firmwareUpdate';
21
+
22
+ import type { FirmwareUpdateV3Params } from '../types/api/firmwareUpdate';
33
23
  import type { Deferred, EFirmwareType } from '@onekeyfe/hd-shared';
34
24
  import type { TypedResponseMessage } from '../device/DeviceCommands';
35
- import type { FirmwareByteSource } from './firmware/FirmwareArtifactSource';
36
- import type { Features } from '../types';
37
25
 
38
26
  const Log = getLogger(LoggerNames.Method);
39
27
 
@@ -55,10 +43,6 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
55
43
 
56
44
  private isSwitchFirmware = false;
57
45
 
58
- private artifactSources: FirmwareByteSource[] = [];
59
-
60
- private checkpointWriter?: FirmwareCheckpointWriter;
61
-
62
46
  init() {
63
47
  this.allowDeviceMode = [UI_REQUEST.BOOTLOADER, UI_REQUEST.NOT_INITIALIZE];
64
48
  this.requireDeviceMode = [];
@@ -79,55 +63,8 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
79
63
  { name: 'firmwareType', type: 'string' },
80
64
  { name: 'platform', type: 'string' },
81
65
  ]);
82
- const hostBinding =
83
- payload.artifacts || payload.preparedPlan
84
- ? resolveFirmwareUpdateHostBinding(payload.hostBindingGeneration)
85
- : undefined;
86
- if (hostBinding) {
87
- assertFirmwareUpdatePreparedPlanBinding({
88
- preparedPlan: payload.preparedPlan,
89
- executor: 'v3',
90
- platform: payload.platform,
91
- scopeTargets: ['bootloader', 'firmware', 'resource', 'ble'],
92
- bindings: [
93
- ...(payload.artifacts?.bootloader
94
- ? [
95
- {
96
- target: 'bootloader' as const,
97
- artifact: payload.artifacts.bootloader,
98
- },
99
- ]
100
- : []),
101
- ...(payload.artifacts?.firmware
102
- ? [
103
- {
104
- target: 'firmware' as const,
105
- artifact: payload.artifacts.firmware,
106
- },
107
- ]
108
- : []),
109
- ...(payload.artifacts?.ble
110
- ? [
111
- {
112
- target: 'ble' as const,
113
- artifact: payload.artifacts.ble,
114
- },
115
- ]
116
- : []),
117
- ...(payload.artifacts?.resourceEntries ?? []).map(
118
- (entry: { entryName: string; artifact: FirmwareArtifactReference }) => ({
119
- target: 'resource' as const,
120
- entryName: entry.entryName,
121
- artifact: entry.artifact,
122
- })
123
- ),
124
- ],
125
- });
126
- }
127
66
 
128
67
  this.params = {
129
- preparedPlan: payload.preparedPlan,
130
- hostBindingGeneration: payload.hostBindingGeneration,
131
68
  bleBinary: payload.bleBinary,
132
69
  firmwareBinary: payload.firmwareBinary,
133
70
  forcedUpdateRes: payload.forcedUpdateRes,
@@ -138,37 +75,15 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
138
75
  resourceBinary: payload.resourceBinary,
139
76
  firmwareType: payload.firmwareType,
140
77
  platform: payload.platform,
141
- artifactReader: hostBinding?.artifactReader ?? payload.artifactReader,
142
- artifacts: payload.artifacts,
143
- checkpointSink: hostBinding?.checkpointSink ?? payload.checkpointSink,
144
- checkpointSequenceStart: payload.checkpointSequenceStart,
145
- resumeCheckpoint: payload.resumeCheckpoint,
146
78
  };
147
79
  }
148
80
 
149
81
  async run() {
150
- if (this.device.isProtocolV2()) {
151
- throw ERRORS.TypedError(
152
- HardwareErrorCode.RuntimeError,
153
- 'Protocol V2 firmware update must use firmwareUpdateV4'
154
- );
155
- }
156
- Log.debug('FirmwareUpdateV3 strategy: Protocol V1');
157
- return this.runProtocolV1();
158
- }
159
-
160
- /**
161
- * Protocol V1 firmware update strategy for existing Pro devices.
162
- */
163
- private async runProtocolV1() {
164
82
  const { device } = this;
165
83
  const { features } = device;
166
- this.checkpointWriter = new FirmwareCheckpointWriter(this.params, {
167
- required: !!this.params.artifactReader,
168
- });
169
84
 
170
- const deviceType = device.getCurrentDeviceType();
171
- const bootloaderCurrVersion = device.getCurrentBootloaderVersionString() ?? '0.0.0';
85
+ const deviceType = getDeviceType(features);
86
+ const bootloaderCurrVersion = getDeviceBootloaderVersion(features).join('.');
172
87
 
173
88
  this.validateDeviceAndVersion(deviceType, bootloaderCurrVersion);
174
89
 
@@ -176,98 +91,38 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
176
91
  throw ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'Device features not available');
177
92
  }
178
93
 
179
- const deviceFirmwareType = device.getCurrentFirmwareType();
94
+ const deviceFirmwareType = getFirmwareType(features);
180
95
  const firmwareType = this.params.firmwareType ?? deviceFirmwareType;
181
96
  this.isSwitchFirmware = firmwareType !== deviceFirmwareType;
182
97
 
183
- const reconciled = await this.reconcileInterruptedInstall(features);
184
- if (reconciled) return reconciled;
185
-
186
98
  let resourceBinary: ArrayBuffer | null = null;
187
- let resourceEntries: Array<{ entryName: string; source: FirmwareByteSource }> = [];
188
- let fwSources: Array<{ fileName: string; source: FirmwareByteSource }> = [];
189
- let bootloaderSource: FirmwareByteSource | null = null;
99
+ let fwBinaryMap: { fileName: string; binary: ArrayBuffer }[] = [];
100
+ let bootloaderBinary: ArrayBuffer | null = null;
190
101
  try {
191
102
  this.postTipMessage(FirmwareUpdateTipMessage.StartDownloadFirmware);
192
- const resourceInput = await this.prepareResourceInput(firmwareType);
193
- resourceBinary = resourceInput.resourceBinary;
194
- resourceEntries = resourceInput.resourceEntries;
195
- fwSources = await this.prepareFirmwareAndBleSources(firmwareType);
196
- bootloaderSource = await this.prepareBootloaderSource(firmwareType);
103
+ resourceBinary = await this.prepareResourceBinary(firmwareType);
104
+ fwBinaryMap = await this.prepareFirmwareAndBleBinary(firmwareType);
105
+ bootloaderBinary = await this.prepareBootloaderBinary(firmwareType);
197
106
  this.postTipMessage(FirmwareUpdateTipMessage.FinishDownloadFirmware);
198
107
  } catch (err) {
199
- await this.closeArtifactSources();
200
108
  throw ERRORS.TypedError(HardwareErrorCode.FirmwareUpdateDownloadFailed, err.message ?? err);
201
109
  }
202
110
 
203
- if (!bootloaderSource && fwSources.length === 0) {
204
- await this.closeArtifactSources();
111
+ if (!bootloaderBinary && fwBinaryMap.length === 0) {
205
112
  throw ERRORS.TypedError(
206
113
  HardwareErrorCode.FirmwareUpdateDownloadFailed,
207
114
  'No firmware to update'
208
115
  );
209
116
  }
210
117
 
211
- try {
212
- await this.enterBootloaderMode(this.checkpointWriter);
213
- return await this.executeUpdate({
214
- resourceBinary,
215
- resourceEntries,
216
- fwSources,
217
- bootloaderSource,
218
- });
219
- } finally {
220
- await this.closeArtifactSources();
221
- }
222
- }
118
+ await this.enterBootloaderMode();
223
119
 
224
- private async reconcileInterruptedInstall(features: Features) {
225
- const checkpoint = this.params.resumeCheckpoint;
226
- if (
227
- !checkpoint ||
228
- !['INSTALL_REQUESTED', 'INSTALL_ACCEPTED', 'FINAL_VERIFIED'].includes(checkpoint.stage)
229
- ) {
230
- return undefined;
231
- }
232
-
233
- const versions = {
234
- bootloaderVersion: getDeviceBootloaderVersion(features).join('.'),
235
- bleVersion: getDeviceBLEFirmwareVersion(features).join('.'),
236
- firmwareVersion: getDeviceFirmwareVersion(features).join('.'),
237
- };
238
- const expectedVersions = [
239
- [this.params.bootloaderVersion, versions.bootloaderVersion],
240
- [this.params.bleVersion, versions.bleVersion],
241
- [this.params.firmwareVersion, versions.firmwareVersion],
242
- ] as const;
243
- const hasExpectedVersion = expectedVersions.some(([expected]) => !!expected);
244
- const versionsMatch =
245
- hasExpectedVersion &&
246
- expectedVersions.every(([expected, actual]) => !expected || expected.join('.') === actual);
247
- const firmwareTypeMatches =
248
- this.params.firmwareType === undefined ||
249
- getFirmwareType(features) === this.params.firmwareType;
250
-
251
- if (versionsMatch && firmwareTypeMatches) {
252
- await this.checkpointWriter?.commit({
253
- stage: 'FINAL_VERIFIED',
254
- target: 'firmware',
255
- });
256
- return versions;
257
- }
258
-
259
- throw ERRORS.TypedError(
260
- HardwareErrorCode.RuntimeError,
261
- checkpoint.stage === 'FINAL_VERIFIED'
262
- ? 'Firmware recovery final state conflicts with the checkpoint'
263
- : 'Firmware install status cannot be safely reconciled',
264
- {
265
- firmwareUpdateCode:
266
- checkpoint.stage === 'FINAL_VERIFIED'
267
- ? 'FirmwareTransactionConflict'
268
- : 'FirmwareReconciliationUnavailable',
269
- }
270
- );
120
+ const updateResult = await this.executeUpdate({
121
+ resourceBinary,
122
+ fwBinaryMap,
123
+ bootloaderBinary,
124
+ });
125
+ return updateResult;
271
126
  }
272
127
 
273
128
  private validateDeviceAndVersion(deviceType: EDeviceType, bootloaderVersion: string) {
@@ -287,81 +142,12 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
287
142
  }
288
143
  }
289
144
 
290
- private async openArtifactSource(
291
- binary: ArrayBuffer | undefined,
292
- artifact: FirmwareArtifactReference | undefined
293
- ) {
294
- const source = await openFirmwareByteSource({
295
- binary,
296
- artifact,
297
- reader: this.params.artifactReader,
298
- });
299
- if (source) {
300
- this.artifactSources.push(source);
301
- }
302
- return source;
303
- }
304
-
305
- private async closeArtifactSources() {
306
- const sources = this.artifactSources.splice(0);
307
- await Promise.all(sources.map(source => source.close().catch(() => undefined)));
308
- }
309
-
310
- private assertSdkDownloadAllowed(artifactName: string) {
311
- if (
312
- this.params.artifactReader ||
313
- DataManager.getSettings('firmwareManifestMode') === 'external-only'
314
- ) {
315
- throw ERRORS.TypedError(
316
- HardwareErrorCode.RuntimeError,
317
- `${artifactName} must be prepared by the external firmware host`,
318
- {
319
- firmwareUpdateCode: 'FirmwareArtifactsNotPrepared',
320
- artifactName,
321
- }
322
- );
323
- }
324
- }
325
-
326
- private async prepareResourceInput(firmwareType: EFirmwareType) {
327
- const preparedEntries = this.params.artifacts?.resourceEntries;
328
- if (preparedEntries?.length && this.params.resourceBinary) {
329
- throw ERRORS.TypedError(
330
- HardwareErrorCode.RuntimeError,
331
- 'Firmware resource input must not contain both archive binary and prepared entries'
332
- );
333
- }
334
- if (preparedEntries?.length) {
335
- const resourceEntries: Array<{ entryName: string; source: FirmwareByteSource }> = [];
336
- for (const entry of preparedEntries) {
337
- const resourceName = getFirmwareUpdateResourceName(entry.entryName);
338
- const source = await this.openArtifactSource(undefined, entry.artifact);
339
- if (!source) {
340
- throw ERRORS.TypedError(
341
- HardwareErrorCode.RuntimeError,
342
- `Firmware resource entry ${entry.entryName} is not prepared`
343
- );
344
- }
345
- resourceEntries.push({ entryName: resourceName, source });
346
- }
347
- return {
348
- resourceBinary: null,
349
- resourceEntries,
350
- };
351
- }
145
+ private async prepareResourceBinary(firmwareType: EFirmwareType) {
352
146
  if (this.params.resourceBinary) {
353
- return {
354
- resourceBinary: this.params.resourceBinary,
355
- resourceEntries: [],
356
- };
147
+ return this.params.resourceBinary;
357
148
  }
358
149
  const { features } = this.device;
359
- if (!features) {
360
- return {
361
- resourceBinary: null,
362
- resourceEntries: [],
363
- };
364
- }
150
+ if (!features) return null;
365
151
  const resourceUrl = DataManager.getSysResourcesLatestRelease({
366
152
  features,
367
153
  forcedUpdateRes: this.params.forcedUpdateRes,
@@ -369,27 +155,16 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
369
155
  });
370
156
 
371
157
  if (resourceUrl) {
372
- this.assertSdkDownloadAllowed('resource');
373
- return {
374
- resourceBinary: (await getSysResourceBinary(resourceUrl)).binary,
375
- resourceEntries: [],
376
- };
158
+ const resource = (await getSysResourceBinary(resourceUrl)).binary;
159
+ return resource;
377
160
  }
378
161
  Log.warn('No resource url found');
379
- return {
380
- resourceBinary: null,
381
- resourceEntries: [],
382
- };
162
+ return null;
383
163
  }
384
164
 
385
- private async prepareBootloaderSource(
386
- firmwareType: EFirmwareType
387
- ): Promise<FirmwareByteSource | null> {
388
- if (this.params.bootloaderBinary || this.params.artifacts?.bootloader) {
389
- return this.openArtifactSource(
390
- this.params.bootloaderBinary,
391
- this.params.artifacts?.bootloader
392
- );
165
+ private async prepareBootloaderBinary(firmwareType: EFirmwareType): Promise<ArrayBuffer | null> {
166
+ if (this.params.bootloaderBinary) {
167
+ return this.params.bootloaderBinary;
393
168
  }
394
169
  const { features } = this.device;
395
170
  if (!features) return null;
@@ -397,35 +172,23 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
397
172
  if (this.params.bootloaderVersion) {
398
173
  const bootResourceUrl = DataManager.getBootloaderResource(features, firmwareType);
399
174
  if (bootResourceUrl) {
400
- this.assertSdkDownloadAllowed('bootloader');
401
175
  const bootBinary = (await getSysResourceBinary(bootResourceUrl)).binary;
402
- return this.openArtifactSource(bootBinary, undefined);
176
+ return bootBinary;
403
177
  }
404
178
  }
405
179
  return null;
406
180
  }
407
181
 
408
- private async prepareFirmwareAndBleSources(firmwareType: EFirmwareType) {
409
- const fwSources: Array<{ fileName: string; source: FirmwareByteSource }> = [];
410
- if (this.params.firmwareBinary || this.params.artifacts?.firmware) {
411
- const source = await this.openArtifactSource(
412
- this.params.firmwareBinary,
413
- this.params.artifacts?.firmware
414
- );
415
- if (!source) {
416
- throw ERRORS.TypedError(
417
- HardwareErrorCode.RuntimeError,
418
- 'Firmware artifact is not prepared'
419
- );
420
- }
421
- fwSources.push({
182
+ private async prepareFirmwareAndBleBinary(firmwareType: EFirmwareType) {
183
+ const fwBinaryMap: { fileName: string; binary: ArrayBuffer }[] = [];
184
+ if (this.params.firmwareBinary) {
185
+ fwBinaryMap.push({
422
186
  fileName: 'firmware.bin',
423
- source,
187
+ binary: this.params.firmwareBinary,
424
188
  });
425
189
  } else if (this.params.firmwareVersion) {
426
190
  const { features } = this.device;
427
191
  if (features) {
428
- this.assertSdkDownloadAllowed('firmware');
429
192
  const firmwareBinary = (
430
193
  await getBinary({
431
194
  features,
@@ -435,65 +198,44 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
435
198
  firmwareType,
436
199
  })
437
200
  ).binary;
438
- const source = await this.openArtifactSource(firmwareBinary, undefined);
439
- if (!source) {
440
- throw ERRORS.TypedError(
441
- HardwareErrorCode.RuntimeError,
442
- 'Firmware binary is not prepared'
443
- );
444
- }
445
- fwSources.push({
201
+ fwBinaryMap.push({
446
202
  fileName: 'firmware.bin',
447
- source,
203
+ binary: firmwareBinary,
448
204
  });
449
205
  }
450
206
  }
451
207
 
452
- if (this.params.bleBinary || this.params.artifacts?.ble) {
453
- const source = await this.openArtifactSource(
454
- this.params.bleBinary,
455
- this.params.artifacts?.ble
456
- );
457
- if (!source) {
458
- throw ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'BLE artifact is not prepared');
459
- }
460
- fwSources.push({
208
+ if (this.params.bleBinary) {
209
+ fwBinaryMap.push({
461
210
  fileName: 'ble-firmware.bin',
462
- source,
211
+ binary: this.params.bleBinary,
463
212
  });
464
213
  } else if (this.params.bleVersion) {
465
214
  const { features } = this.device;
466
215
  if (features) {
467
- this.assertSdkDownloadAllowed('ble');
468
216
  const bleBinary = await getBinary({
469
217
  features,
470
218
  version: this.params.bleVersion,
471
219
  updateType: 'ble',
472
220
  firmwareType,
473
221
  });
474
- const source = await this.openArtifactSource(bleBinary.binary, undefined);
475
- if (!source) {
476
- throw ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'BLE binary is not prepared');
477
- }
478
- fwSources.push({
222
+ fwBinaryMap.push({
479
223
  fileName: 'ble-firmware.bin',
480
- source,
224
+ binary: bleBinary.binary,
481
225
  });
482
226
  }
483
227
  }
484
- return fwSources;
228
+ return fwBinaryMap;
485
229
  }
486
230
 
487
231
  private async executeUpdate({
488
232
  resourceBinary,
489
- resourceEntries,
490
- fwSources,
491
- bootloaderSource,
233
+ fwBinaryMap,
234
+ bootloaderBinary,
492
235
  }: {
493
236
  resourceBinary: ArrayBuffer | null;
494
- resourceEntries: Array<{ entryName: string; source: FirmwareByteSource }>;
495
- fwSources: Array<{ fileName: string; source: FirmwareByteSource }>;
496
- bootloaderSource: FirmwareByteSource | null;
237
+ fwBinaryMap: { fileName: string; binary: ArrayBuffer }[];
238
+ bootloaderBinary: ArrayBuffer | null;
497
239
  }) {
498
240
  let totalSize = 0;
499
241
  let processedSize = 0;
@@ -501,18 +243,14 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
501
243
  if (resourceBinary) {
502
244
  totalSize += resourceBinary.byteLength;
503
245
  }
504
- for (const entry of resourceEntries) {
505
- totalSize += entry.source.size;
246
+ for (const fwbinary of fwBinaryMap) {
247
+ totalSize += fwbinary.binary.byteLength;
506
248
  }
507
- for (const firmware of fwSources) {
508
- totalSize += firmware.source.size;
509
- }
510
- if (bootloaderSource) {
511
- totalSize += bootloaderSource.size;
249
+ if (bootloaderBinary) {
250
+ totalSize += bootloaderBinary.byteLength;
512
251
  }
513
252
 
514
253
  this.postTipMessage(FirmwareUpdateTipMessage.StartTransferData);
515
-
516
254
  // Process resource zip contents
517
255
  if (resourceBinary) {
518
256
  const file = await JSZip.loadAsync(resourceBinary);
@@ -521,91 +259,43 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
521
259
  const name = fileName.split('/').pop();
522
260
  if (!file.dir && fileName.indexOf('__MACOSX') === -1 && name) {
523
261
  const data = await file.async('arraybuffer');
524
- await this.checkpointWriter?.commit({
525
- stage: 'FILE_TRANSFER_STARTED',
526
- target: `resource:${name}`,
527
- });
528
262
  processedSize = await this.emmcCommonUpdateProcess({
529
263
  payload: data,
530
264
  filePath: `0:res/${name}`,
531
265
  processedSize,
532
266
  totalSize,
533
267
  });
534
- await this.checkpointWriter?.commit({
535
- stage: 'FILE_TRANSFER_COMPLETED',
536
- target: `resource:${name}`,
537
- });
538
268
  }
539
269
  }
540
270
  }
541
271
 
542
- for (const entry of resourceEntries) {
543
- await this.checkpointWriter?.commit({
544
- stage: 'FILE_TRANSFER_STARTED',
545
- target: `resource:${entry.entryName}`,
546
- });
547
- processedSize = await this.emmcCommonUpdateProcessFromSource({
548
- source: entry.source,
549
- filePath: `0:res/${entry.entryName}`,
550
- processedSize,
551
- totalSize,
552
- });
553
- await this.checkpointWriter?.commit({
554
- stage: 'FILE_TRANSFER_COMPLETED',
555
- target: `resource:${entry.entryName}`,
556
- });
557
- }
558
-
559
- if (bootloaderSource) {
560
- await this.checkpointWriter?.commit({
561
- stage: 'FILE_TRANSFER_STARTED',
562
- target: 'bootloader',
563
- });
564
- processedSize = await this.emmcCommonUpdateProcessFromSource({
565
- source: bootloaderSource,
272
+ if (bootloaderBinary) {
273
+ processedSize = await this.emmcCommonUpdateProcess({
274
+ payload: bootloaderBinary,
566
275
  filePath: `0:boot/bootloader.bin`,
567
276
  processedSize,
568
277
  totalSize,
569
278
  });
570
- await this.checkpointWriter?.commit({
571
- stage: 'FILE_TRANSFER_COMPLETED',
572
- target: 'bootloader',
573
- });
574
279
  }
575
280
 
576
281
  await this.createUpdatesFolderIfNotExists(`0:updates/`);
577
282
 
578
- for (const firmware of fwSources) {
579
- if (firmware) {
580
- const target = firmware.fileName === 'ble-firmware.bin' ? 'ble' : 'firmware';
581
- await this.checkpointWriter?.commit({
582
- stage: 'FILE_TRANSFER_STARTED',
583
- target,
584
- });
585
- processedSize = await this.emmcCommonUpdateProcessFromSource({
586
- source: firmware.source,
587
- filePath: `0:updates/${firmware.fileName}`,
283
+ for (const fwbinary of fwBinaryMap) {
284
+ if (fwbinary) {
285
+ processedSize = await this.emmcCommonUpdateProcess({
286
+ payload: fwbinary.binary,
287
+ filePath: `0:updates/${fwbinary.fileName}`,
588
288
  processedSize,
589
289
  totalSize,
590
290
  });
591
- await this.checkpointWriter?.commit({
592
- stage: 'FILE_TRANSFER_COMPLETED',
593
- target,
594
- });
595
291
  }
596
292
  }
597
293
 
598
- // trigger firmware update
294
+ // trigger firmware update, support folder updates
599
295
  try {
600
296
  this.postTipMessage(FirmwareUpdateTipMessage.ConfirmOnDevice);
601
- await this.checkpointWriter?.commit({
602
- stage: 'INSTALL_REQUESTED',
603
- target: 'firmware',
604
- });
605
- await this.startEmmcFirmwareUpdate({ path: '0:updates' });
606
- await this.checkpointWriter?.commit({
607
- stage: 'INSTALL_ACCEPTED',
608
- target: 'firmware',
297
+ await this.startEmmcFirmwareUpdate({
298
+ path: '0:updates',
609
299
  });
610
300
  } catch (error) {
611
301
  Log.error('triggerFirmwareUpdateEmmc error: ', error);
@@ -683,7 +373,7 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
683
373
  }),
684
374
  ]);
685
375
  getFeaturesTimeoutCount = 0;
686
- const features = buildProtocolV1FeaturesPayload(featuresRes.message, this.device.features);
376
+ const features = featuresRes.message;
687
377
  const bootloaderVersion = getDeviceBootloaderVersion(features).join('.');
688
378
  const bleVersion = getDeviceBLEFirmwareVersion(features).join('.');
689
379
  const firmwareVersion = getDeviceFirmwareVersion(features).join('.');
@@ -691,10 +381,6 @@ export default class FirmwareUpdateV3 extends FirmwareUpdateBaseMethod<FirmwareU
691
381
  if (firmwareVersion !== '0.0.0') {
692
382
  this.postTipMessage(FirmwareUpdateTipMessage.FirmwareUpdateCompleted);
693
383
  DevicePool.resetState();
694
- await this.checkpointWriter?.commit({
695
- stage: 'FINAL_VERIFIED',
696
- target: 'firmware',
697
- });
698
384
  return {
699
385
  bootloaderVersion,
700
386
  bleVersion,
@@ -1,12 +1,10 @@
1
- import { ERRORS, HardwareErrorCode, createDeviceNotSupportMethodError } from '@onekeyfe/hd-shared';
1
+ import { ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
2
2
 
3
3
  import { UI_REQUEST } from '../constants/ui-request';
4
- import { projectFeatures } from '../device/DeviceStateProjector';
5
4
  import { BaseMethod } from './BaseMethod';
6
5
 
7
6
  export default class GetFeatures extends BaseMethod {
8
7
  init() {
9
- this.unlockPolicy = 'none';
10
8
  this.allowDeviceMode = [
11
9
  ...this.allowDeviceMode,
12
10
  UI_REQUEST.NOT_INITIALIZE,
@@ -16,16 +14,10 @@ export default class GetFeatures extends BaseMethod {
16
14
  this.skipForceUpdateCheck = true;
17
15
  }
18
16
 
19
- async run() {
20
- if (this.payload?.detectBootloaderDevice && this.device.isBootloader()) {
17
+ run() {
18
+ if (this.payload?.detectBootloaderDevice && this.device.features?.bootloader_mode) {
21
19
  return Promise.reject(ERRORS.TypedError(HardwareErrorCode.DeviceDetectInBootloaderMode));
22
20
  }
23
- if (this.device.isProtocolV2()) {
24
- throw createDeviceNotSupportMethodError(this.name, this.device.getCurrentFirmwareType());
25
- }
26
- const state = await this.device.getDeviceState({
27
- includeRaw: true,
28
- });
29
- return projectFeatures(state);
21
+ return Promise.resolve(this.device.features);
30
22
  }
31
23
  }