@onekeyfe/hd-core 1.2.0-alpha.85 → 1.2.0-alpha.86

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 (31) hide show
  1. package/__tests__/check-all-firmware-release-protocol-v2.test.ts +74 -37
  2. package/__tests__/check-firmware-release-protocol-v2.test.ts +1 -2
  3. package/__tests__/firmware-memory-host.test.ts +3 -0
  4. package/__tests__/firmware-update/device-update-bootloader.test.ts +4 -1
  5. package/__tests__/firmware-update/firmware-host-binding.test.ts +9 -0
  6. package/__tests__/protocol-v2-resources.test.ts +59 -1
  7. package/__tests__/protocol-v2.test.ts +61 -1
  8. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  9. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  10. package/dist/api/firmware/FirmwareHostBinding.d.ts +1 -1
  11. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +1 -1
  12. package/dist/api/firmware/FirmwareMemoryHost.d.ts.map +1 -1
  13. package/dist/data-manager/DataManager.d.ts +3 -1
  14. package/dist/data-manager/DataManager.d.ts.map +1 -1
  15. package/dist/index.d.ts +8 -6
  16. package/dist/index.js +51 -30
  17. package/dist/types/api/checkAllFirmwareRelease.d.ts +0 -1
  18. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  19. package/dist/types/api/firmwareUpdate.d.ts +1 -0
  20. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  21. package/dist/types/settings.d.ts +3 -4
  22. package/dist/types/settings.d.ts.map +1 -1
  23. package/package.json +4 -4
  24. package/src/api/CheckAllFirmwareRelease.ts +2 -7
  25. package/src/api/FirmwareUpdateV4.ts +18 -11
  26. package/src/api/firmware/FirmwareHostBinding.ts +16 -3
  27. package/src/api/firmware/FirmwareMemoryHost.ts +4 -1
  28. package/src/data-manager/DataManager.ts +33 -13
  29. package/src/types/api/checkAllFirmwareRelease.ts +0 -1
  30. package/src/types/api/firmwareUpdate.ts +2 -0
  31. package/src/types/settings.ts +3 -5
package/dist/index.js CHANGED
@@ -1347,6 +1347,8 @@ class FirmwareHostBindingRegistry {
1347
1347
  register(binding) {
1348
1348
  var _a;
1349
1349
  if (!binding ||
1350
+ typeof binding.preparedPlanDigest !== 'string' ||
1351
+ !/^[0-9a-f]{64}$/i.test(binding.preparedPlanDigest) ||
1350
1352
  typeof ((_a = binding.artifactReader) === null || _a === void 0 ? void 0 : _a.open) !== 'function' ||
1351
1353
  typeof binding.artifactReader.read !== 'function' ||
1352
1354
  typeof binding.artifactReader.close !== 'function') {
@@ -1367,7 +1369,7 @@ class FirmwareHostBindingRegistry {
1367
1369
  getGeneration() {
1368
1370
  return this.generation;
1369
1371
  }
1370
- resolve(generation) {
1372
+ resolve(generation, preparedPlanDigest) {
1371
1373
  if (!Number.isSafeInteger(generation) ||
1372
1374
  generation <= 0 ||
1373
1375
  generation !== this.generation ||
@@ -1375,12 +1377,17 @@ class FirmwareHostBindingRegistry {
1375
1377
  return bindingError(`Firmware host binding generation ${generation} is stale`);
1376
1378
  }
1377
1379
  const { binding } = this;
1380
+ if (preparedPlanDigest !== undefined &&
1381
+ binding.preparedPlanDigest.toLowerCase() !== preparedPlanDigest.toLowerCase()) {
1382
+ return bindingError(`Firmware host binding generation ${generation} does not match the prepared plan`);
1383
+ }
1378
1384
  const assertCurrent = () => {
1379
1385
  if (generation !== this.generation || binding !== this.binding) {
1380
1386
  bindingError(`Firmware host binding generation ${generation} is stale`);
1381
1387
  }
1382
1388
  };
1383
1389
  return {
1390
+ preparedPlanDigest: binding.preparedPlanDigest,
1384
1391
  artifactReader: {
1385
1392
  open: (input) => __awaiter(this, void 0, void 0, function* () {
1386
1393
  assertCurrent();
@@ -1413,7 +1420,7 @@ const firmwareHostBindingRegistry = new FirmwareHostBindingRegistry();
1413
1420
  const registerFirmwareUpdateHostBinding = (binding) => firmwareHostBindingRegistry.register(binding);
1414
1421
  const unregisterFirmwareUpdateHostBinding = (generation) => firmwareHostBindingRegistry.unregister(generation);
1415
1422
  const getFirmwareUpdateHostBindingGeneration = () => firmwareHostBindingRegistry.getGeneration();
1416
- const resolveFirmwareUpdateHostBinding = (generation) => firmwareHostBindingRegistry.resolve(generation !== null && generation !== void 0 ? generation : Number.NaN);
1423
+ const resolveFirmwareUpdateHostBinding = (generation, preparedPlanDigest) => firmwareHostBindingRegistry.resolve(generation !== null && generation !== void 0 ? generation : Number.NaN, preparedPlanDigest);
1417
1424
 
1418
1425
  const callbackManager = new Map();
1419
1426
  const generateCallbackId = () => `callback_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
@@ -40798,6 +40805,7 @@ class DataManager {
40798
40805
  return __awaiter(this, void 0, void 0, function* () {
40799
40806
  this.settings = settings;
40800
40807
  this.protocolV2ResourcesConfigError = undefined;
40808
+ this.protocolV2NeoResourcesConfigError = undefined;
40801
40809
  const manifestMode = (_b = settings.firmwareManifestMode) !== null && _b !== void 0 ? _b : (settings.fetchConfig ? 'sdk-managed' : undefined);
40802
40810
  if (settings.preloadedConfig) {
40803
40811
  this.applyRemoteConfig(settings.preloadedConfig);
@@ -40858,12 +40866,19 @@ class DataManager {
40858
40866
  let neoResources;
40859
40867
  try {
40860
40868
  pro2Resources = parseProtocolV2Resources((_b = data.pro2) === null || _b === void 0 ? void 0 : _b.resources);
40861
- neoResources = parseProtocolV2Resources((_c = data.neo) === null || _c === void 0 ? void 0 : _c.resources);
40862
40869
  }
40863
40870
  catch (error) {
40864
40871
  this.protocolV2ResourcesConfigError =
40865
40872
  error instanceof Error ? error : new Error(String(error));
40866
- Log$k.warn('[DataConfig] Ignoring invalid Protocol V2 resources config:', error);
40873
+ Log$k.warn('[DataConfig] Ignoring invalid Pro2 resources config:', error);
40874
+ }
40875
+ try {
40876
+ neoResources = parseProtocolV2Resources((_c = data.neo) === null || _c === void 0 ? void 0 : _c.resources);
40877
+ }
40878
+ catch (error) {
40879
+ this.protocolV2NeoResourcesConfigError =
40880
+ error instanceof Error ? error : new Error(String(error));
40881
+ Log$k.warn('[DataConfig] Ignoring invalid Neo resources config:', error);
40867
40882
  }
40868
40883
  const enrichedPro2Config = this.enrichFirmwareReleaseInfo(data.pro2);
40869
40884
  const enrichedNeoConfig = this.enrichFirmwareReleaseInfo(data.neo);
@@ -40901,16 +40916,20 @@ class DataManager {
40901
40916
  }
40902
40917
  });
40903
40918
  }
40904
- static forceReloadData({ requireResources = false, } = {}) {
40919
+ static forceReloadData({ requireResources = false, resourceDeviceType = hdShared.EDeviceType.Pro2, } = {}) {
40905
40920
  return __awaiter(this, void 0, void 0, function* () {
40921
+ const resourceDeviceName = resourceDeviceType === hdShared.EDeviceType.Pro2 ? 'Pro2' : 'Neo';
40906
40922
  if (!this.settings) {
40907
40923
  throw new Error('Remote config settings are not initialized');
40908
40924
  }
40909
40925
  const hasFreshConfig = this.lastCheckTimestamp > 0 &&
40910
40926
  getTimeStamp() - this.lastCheckTimestamp <= FIRMWARE_UPDATE_CONFIG_FRESHNESS_MS;
40911
40927
  if (hasFreshConfig) {
40912
- if (requireResources && this.protocolV2ResourcesConfigError) {
40913
- throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareUpdateDownloadFailed, `Invalid Pro2 resources config: ${this.protocolV2ResourcesConfigError.message}`);
40928
+ const resourcesConfigError = resourceDeviceType === hdShared.EDeviceType.Pro2
40929
+ ? this.protocolV2ResourcesConfigError
40930
+ : this.protocolV2NeoResourcesConfigError;
40931
+ if (requireResources && resourcesConfigError) {
40932
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareUpdateDownloadFailed, `Invalid ${resourceDeviceName} resources config: ${resourcesConfigError.message}`);
40914
40933
  }
40915
40934
  return;
40916
40935
  }
@@ -40918,8 +40937,11 @@ class DataManager {
40918
40937
  if (!loaded) {
40919
40938
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.NetworkError, 'Unable to refresh the latest remote config');
40920
40939
  }
40921
- if (requireResources && this.protocolV2ResourcesConfigError) {
40922
- throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareUpdateDownloadFailed, `Invalid Pro2 resources config: ${this.protocolV2ResourcesConfigError.message}`);
40940
+ const resourcesConfigError = resourceDeviceType === hdShared.EDeviceType.Pro2
40941
+ ? this.protocolV2ResourcesConfigError
40942
+ : this.protocolV2NeoResourcesConfigError;
40943
+ if (requireResources && resourcesConfigError) {
40944
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareUpdateDownloadFailed, `Invalid ${resourceDeviceName} resources config: ${resourcesConfigError.message}`);
40923
40945
  }
40924
40946
  this.lastCheckTimestamp = getTimeStamp();
40925
40947
  });
@@ -40963,12 +40985,10 @@ DataManager.deviceMap = {
40963
40985
  ble: [],
40964
40986
  },
40965
40987
  [hdShared.EDeviceType.Pro2]: {
40966
- firmware: [],
40967
- ble: [],
40988
+ 'firmware-v1': [],
40968
40989
  },
40969
40990
  [hdShared.EDeviceType.Neo]: {
40970
- firmware: [],
40971
- ble: [],
40991
+ 'firmware-v1': [],
40972
40992
  },
40973
40993
  [hdShared.EDeviceType.ClassicPure]: {
40974
40994
  firmware: [],
@@ -47750,7 +47770,6 @@ class CheckAllFirmwareRelease extends BaseMethod {
47750
47770
  const resourceDeviceType = state.identity.deviceType === 'neo' ? hdShared.EDeviceType.Neo : hdShared.EDeviceType.Pro2;
47751
47771
  const resourceSource = DataManager.getProtocolV2ResourceSource(resourceDeviceType);
47752
47772
  const resourceStatus = 'unknown';
47753
- const resourcePreparationRequired = !!resourceSource;
47754
47773
  const detectedComponentTargets = validatedForceUpdateTargets.includes('firmware')
47755
47774
  ? plan.components.flatMap(component => component.updateTarget ? [component.updateTarget] : [])
47756
47775
  : plan.targetsToUpdate;
@@ -47762,7 +47781,7 @@ class CheckAllFirmwareRelease extends BaseMethod {
47762
47781
  validatedProtocolV2ForceUpdateTargets.includes('resource');
47763
47782
  const targetsToUpdate = Array.from(new Set([
47764
47783
  ...componentTargetsToUpdate,
47765
- ...(resourcePreparationRequired || forceResourceUpdate ? ['resource'] : []),
47784
+ ...(forceResourceUpdate ? ['resource'] : []),
47766
47785
  ]));
47767
47786
  let firmwareUpdatePlan;
47768
47787
  try {
@@ -47802,9 +47821,7 @@ class CheckAllFirmwareRelease extends BaseMethod {
47802
47821
  const firmwarePlan = summarizeProtocolV2FirmwareRelease(plan, PROTOCOL_V2_MAIN_FIRMWARE_TARGETS);
47803
47822
  const blePlan = summarizeProtocolV2FirmwareRelease(plan, PROTOCOL_V2_BLE_TARGETS);
47804
47823
  const bootloaderPlan = summarizeProtocolV2FirmwareRelease(plan, PROTOCOL_V2_BOOTLOADER_TARGETS);
47805
- const status = resourcePreparationRequired && (plan.status === 'valid' || plan.status === 'unavailable')
47806
- ? 'unknown'
47807
- : plan.status;
47824
+ const { status } = plan;
47808
47825
  return Object.assign(Object.assign({ firmware: toProtocolV2FirmwareReleaseInfo({ plan: firmwarePlan, state, release }), ble: toProtocolV2FirmwareReleaseInfo({
47809
47826
  plan: blePlan,
47810
47827
  state,
@@ -47814,7 +47831,7 @@ class CheckAllFirmwareRelease extends BaseMethod {
47814
47831
  state,
47815
47832
  release: getProtocolV2ComponentReleaseInfo(plan, 'BOOTLOADER'),
47816
47833
  }), features, protocol: 'V2', deviceType: state.identity.deviceType }, plan), { status,
47817
- resourceStatus, resourceArchive: resourceSource, resourcePreparationRequired, hasUpgrade: targetsToUpdate.length > 0, targetsToUpdate,
47834
+ resourceStatus, resourceArchive: resourceSource, hasUpgrade: targetsToUpdate.length > 0, targetsToUpdate,
47818
47835
  firmwareUpdatePlan });
47819
47836
  });
47820
47837
  }
@@ -51534,14 +51551,16 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
51534
51551
  (payload.expectedDeviceId.length === 0 || payload.expectedDeviceId.length > 160)) {
51535
51552
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodInvalidParameter, 'Protocol V2 expected device identity is invalid');
51536
51553
  }
51537
- const hostBinding = payload.preparedPlan || payload.componentArtifacts
51538
- ? resolveFirmwareUpdateHostBinding(payload.hostBindingGeneration)
51554
+ const preparedPlan = payload.preparedPlan
51555
+ ? validateFirmwareUpdatePreparedPlan(payload.preparedPlan)
51556
+ : undefined;
51557
+ const hostBinding = preparedPlan || payload.componentArtifacts
51558
+ ? resolveFirmwareUpdateHostBinding(payload.hostBindingGeneration, preparedPlan === null || preparedPlan === void 0 ? void 0 : preparedPlan.preparedPlanDigest)
51539
51559
  : undefined;
51540
51560
  if (hostBinding) {
51541
51561
  const componentArtifacts = ((_a = payload.componentArtifacts) !== null && _a !== void 0 ? _a : {});
51542
- const preparedPlan = validateFirmwareUpdatePreparedPlan(payload.preparedPlan);
51543
51562
  assertFirmwareUpdatePreparedPlanBinding({
51544
- preparedPlan,
51563
+ preparedPlan: preparedPlan !== null && preparedPlan !== void 0 ? preparedPlan : payload.preparedPlan,
51545
51564
  executor: 'v4',
51546
51565
  platform: payload.platform,
51547
51566
  scopeTargets: ['boot', 'app_v1', 'app_v2', 'coprocessor', 'se01', 'se02', 'se03', 'se04'],
@@ -51558,9 +51577,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
51558
51577
  });
51559
51578
  }
51560
51579
  this.params = {
51561
- preparedPlan: payload.preparedPlan
51562
- ? validateFirmwareUpdatePreparedPlan(payload.preparedPlan)
51563
- : undefined,
51580
+ preparedPlan,
51564
51581
  chunkSize: payload.chunkSize,
51565
51582
  forcedUpdateRes: payload.forcedUpdateRes,
51566
51583
  bootloaderBinary: payload.bootloaderBinary,
@@ -52148,7 +52165,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
52148
52165
  return `vol0:${path}`;
52149
52166
  return `vol0:/${path}`;
52150
52167
  }
52151
- readProtocolV2DeviceFileHeader(path) {
52168
+ readProtocolV2DeviceFileHeader(path, expectedSize) {
52152
52169
  var _a, _b, _c, _d;
52153
52170
  return __awaiter(this, void 0, void 0, function* () {
52154
52171
  const typedCall = this.device.getCommands().typedCall.bind(this.device.getCommands());
@@ -52160,7 +52177,8 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
52160
52177
  if (!((_b = pathInfoRes.message) === null || _b === void 0 ? void 0 : _b.exist) ||
52161
52178
  ((_c = pathInfoRes.message) === null || _c === void 0 ? void 0 : _c.directory) ||
52162
52179
  fileSize === undefined ||
52163
- fileSize < PROTOCOL_V2_OKPP_HEADER_SIZE) {
52180
+ fileSize < PROTOCOL_V2_OKPP_HEADER_SIZE ||
52181
+ (expectedSize !== undefined && fileSize !== expectedSize)) {
52164
52182
  return null;
52165
52183
  }
52166
52184
  const chunkSize = this.getProtocolV2FirmwareChunkSize('read');
@@ -52200,7 +52218,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
52200
52218
  if (!bundle.payloadHash || !bundle.headerHash)
52201
52219
  return false;
52202
52220
  try {
52203
- const header = yield this.readProtocolV2DeviceFileHeader(bundle.devicePath);
52221
+ const header = yield this.readProtocolV2DeviceFileHeader(bundle.devicePath, bundle.source.size);
52204
52222
  if (!header)
52205
52223
  return false;
52206
52224
  if (bundle.version) {
@@ -65103,7 +65121,10 @@ function prepareFirmwareUpdateV4MemoryHost({ sdk, plan, artifacts, }) {
65103
65121
  return Promise.resolve();
65104
65122
  },
65105
65123
  };
65106
- const hostBindingGeneration = sdk.registerFirmwareUpdateHostBinding({ artifactReader });
65124
+ const hostBindingGeneration = sdk.registerFirmwareUpdateHostBinding({
65125
+ artifactReader,
65126
+ preparedPlanDigest: preparedPlan.preparedPlanDigest,
65127
+ });
65107
65128
  const componentArtifacts = {};
65108
65129
  const expectedTargetVersions = {};
65109
65130
  for (const artifact of preparedPlan.artifacts) {
@@ -49,7 +49,6 @@ export type AllFirmwareRelease = {
49
49
  required?: boolean;
50
50
  resourceStatus?: 'valid' | 'outdated' | 'unknown';
51
51
  resourceArchive?: IProtocolV2ResourceSource;
52
- resourcePreparationRequired?: boolean;
53
52
  currentVersions?: DeviceStateVersions;
54
53
  components?: ProtocolV2FirmwareComponentRelease[];
55
54
  targetsToUpdate?: FirmwareUpdateV4Target[];
@@ -1 +1 @@
1
- {"version":3,"file":"checkAllFirmwareRelease.d.ts","sourceRoot":"","sources":["../../../src/types/api/checkAllFirmwareRelease.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkAllFirmwareRelease.d.ts","sourceRoot":"","sources":["../../../src/types/api/checkAllFirmwareRelease.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAE9F,MAAM,MAAM,8BAA8B,GAAG,4BAA4B,GAAG;IAC1E,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,kCAAkC,CAAC;IACpD,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,EAAE,CAAC;IACJ,OAAO,EACH,uBAAuB,GACvB,oBAAoB,GACpB,8BAA8B,GAC9B,SAAS,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,0BAA0B,EAAE,SAAS,CAAC,GAAG;IACnF,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,wCAAwC,GAChD,OAAO,GACP,UAAU,GACV,SAAS,GACT,aAAa,CAAC;AAElB,MAAM,MAAM,+BAA+B,GACvC,aAAa,GACb,OAAO,GACP,SAAS,GACT,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,MAAM,kCAAkC,GAAG;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,kCAAkC,CAAC;IACpD,YAAY,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC5C,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,wCAAwC,CAAC;IACjD,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,0BAA0B,CAAC;IACrC,GAAG,EAAE,0BAA0B,CAAC;IAChC,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,MAAM,CAAC,EAAE,+BAA+B,CAAC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IAClD,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,UAAU,CAAC,EAAE,kCAAkC,EAAE,CAAC;IAClD,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,WAAW,CAAC;IAC9D,kBAAkB,CAAC,EAAE,6BAA6B,EAAE,CAAC;IACrD,4BAA4B,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACzD,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,YAAY,GAAG,6BAA6B,GACpD,QAAQ,CAAC,kBAAkB,CAAC,CAAC"}
@@ -30,6 +30,7 @@ export interface FirmwareArtifactReader {
30
30
  }
31
31
  export interface FirmwareUpdateHostBinding {
32
32
  artifactReader: FirmwareArtifactReader;
33
+ preparedPlanDigest: string;
33
34
  }
34
35
  export interface FirmwareUpdateBinaryParams {
35
36
  binary: ArrayBuffer;
@@ -1 +1 @@
1
- {"version":3,"file":"firmwareUpdate.d.ts","sourceRoot":"","sources":["../../../src/types/api/firmwareUpdate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firmwareUpdate.d.ts","sourceRoot":"","sources":["../../../src/types/api/firmwareUpdate.ts"],"names":[],"mappings":"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"}
@@ -114,18 +114,17 @@ export type IBLEFirmwareReleaseInfo = {
114
114
  };
115
115
  };
116
116
  type IKnownDevice = Exclude<IDeviceType, 'unknown'>;
117
- type ILegacyKnownDevice = Exclude<IKnownDevice, 'neo'>;
118
117
  type IDeviceReleaseInfo = {
119
- firmware: IFirmwareReleaseInfo[];
118
+ firmware?: IFirmwareReleaseInfo[];
120
119
  'firmware-v1'?: IFirmwareReleaseInfo[];
121
120
  'firmware-v2'?: IFirmwareReleaseInfo[];
122
121
  'firmware-v8'?: IFirmwareReleaseInfo[];
123
122
  'firmware-btc-v8'?: IFirmwareReleaseInfo[];
124
- ble: IBLEFirmwareReleaseInfo[];
123
+ ble?: IBLEFirmwareReleaseInfo[];
125
124
  resources?: IProtocolV2Resources;
126
125
  };
127
126
  export type DeviceTypeMap = {
128
- [k in ILegacyKnownDevice]: IDeviceReleaseInfo;
127
+ [k in Exclude<IKnownDevice, 'neo'>]: IDeviceReleaseInfo;
129
128
  } & {
130
129
  neo?: IDeviceReleaseInfo;
131
130
  };
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,KAAK,GACL,cAAc,GACd,UAAU,GACV,cAAc,GACd,QAAQ,GACR,gBAAgB,GAChB,iBAAiB,GACjB,UAAU,GACV,UAAU,GACV,UAAU,CAAC;AACf,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,GAAG,EAAE,YAAY,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,aAAa,GAAG,eAAe,CAAC;IACvD,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAExC,MAAM,MAAM,kCAAkC,GAC1C,WAAW,GACX,YAAY,GACZ,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,kCAAkC,CAAC;IAC3C,GAAG,EAAE,MAAM,CAAC;IAEZ,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,yBAAyB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,CAAC,CAAC;IACV,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,mBAAmB,CAAC;IAClC,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,KAAK,EAAE,+BAA+B,EAAE,CAAC;CAC1C,CAAC;AAGF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IAKZ,YAAY,CAAC,EAAE,aAAa,CAAC;IAE7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAClC,wBAAwB,CAAC,EAAE,aAAa,CAAC;IACzC,gCAAgC,CAAC,EAAE,aAAa,CAAC;IACjD,WAAW,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;IAC1D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,CAAC,EAAE;SACnB,CAAC,IAAI,OAAO,GAAG,MAAM;KACvB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE;SACR,CAAC,IAAI,OAAO,GAAG,MAAM;KACvB,CAAC;CACH,CAAC;AAGF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,OAAO,CAAC;IAElB,GAAG,EAAE,MAAM,CAAC;IAEZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE;SACR,CAAC,IAAI,OAAO,GAAG,MAAM;KACvB,CAAC;CACH,CAAC;AAEF,KAAK,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACpD,KAAK,kBAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAEvD,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IAEjC,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACvC,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACvC,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACvC,iBAAiB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC3C,GAAG,EAAE,uBAAuB,EAAE,CAAC;IAE/B,SAAS,CAAC,EAAE,oBAAoB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,kBAAkB,GAAG,kBAAkB;CAC9C,GAAG;IAEF,GAAG,CAAC,EAAE,kBAAkB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE;QACN,OAAO,EAAE,aAAa,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE;aACR,CAAC,IAAI,OAAO,GAAG,MAAM;SACvB,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;CAC7B,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-core",
3
- "version": "1.2.0-alpha.85",
3
+ "version": "1.2.0-alpha.86",
4
4
  "description": "Core processes and APIs for communicating with OneKey hardware devices.",
5
5
  "author": "OneKey",
6
6
  "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
@@ -25,8 +25,8 @@
25
25
  "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
26
26
  },
27
27
  "dependencies": {
28
- "@onekeyfe/hd-shared": "1.2.0-alpha.85",
29
- "@onekeyfe/hd-transport": "1.2.0-alpha.85",
28
+ "@onekeyfe/hd-shared": "1.2.0-alpha.86",
29
+ "@onekeyfe/hd-transport": "1.2.0-alpha.86",
30
30
  "axios": "1.15.2",
31
31
  "bignumber.js": "^9.0.2",
32
32
  "bytebuffer": "^5.0.1",
@@ -44,5 +44,5 @@
44
44
  "@types/w3c-web-usb": "^1.0.10",
45
45
  "@types/web-bluetooth": "^0.0.21"
46
46
  },
47
- "gitHead": "dd005dc6340613bb5d43234473ce454c89f7b5ac"
47
+ "gitHead": "1db5bcce604523bf3b0ee5079c76bdebb328088c"
48
48
  }
@@ -416,7 +416,6 @@ export default class CheckAllFirmwareRelease extends BaseMethod {
416
416
  state.identity.deviceType === 'neo' ? EDeviceType.Neo : EDeviceType.Pro2;
417
417
  const resourceSource = DataManager.getProtocolV2ResourceSource(resourceDeviceType);
418
418
  const resourceStatus = 'unknown' as const;
419
- const resourcePreparationRequired = !!resourceSource;
420
419
  const detectedComponentTargets = validatedForceUpdateTargets.includes('firmware')
421
420
  ? plan.components.flatMap(component =>
422
421
  component.updateTarget ? [component.updateTarget] : []
@@ -434,7 +433,7 @@ export default class CheckAllFirmwareRelease extends BaseMethod {
434
433
  const targetsToUpdate = Array.from(
435
434
  new Set([
436
435
  ...componentTargetsToUpdate,
437
- ...(resourcePreparationRequired || forceResourceUpdate ? (['resource'] as const) : []),
436
+ ...(forceResourceUpdate ? (['resource'] as const) : []),
438
437
  ])
439
438
  );
440
439
  let firmwareUpdatePlan: FirmwareUpdatePlan | undefined;
@@ -483,10 +482,7 @@ export default class CheckAllFirmwareRelease extends BaseMethod {
483
482
  );
484
483
  const blePlan = summarizeProtocolV2FirmwareRelease(plan, PROTOCOL_V2_BLE_TARGETS);
485
484
  const bootloaderPlan = summarizeProtocolV2FirmwareRelease(plan, PROTOCOL_V2_BOOTLOADER_TARGETS);
486
- const status =
487
- resourcePreparationRequired && (plan.status === 'valid' || plan.status === 'unavailable')
488
- ? 'unknown'
489
- : plan.status;
485
+ const { status } = plan;
490
486
 
491
487
  return {
492
488
  firmware: toProtocolV2FirmwareReleaseInfo({ plan: firmwarePlan, state, release }),
@@ -507,7 +503,6 @@ export default class CheckAllFirmwareRelease extends BaseMethod {
507
503
  status,
508
504
  resourceStatus,
509
505
  resourceArchive: resourceSource,
510
- resourcePreparationRequired,
511
506
  hasUpgrade: targetsToUpdate.length > 0,
512
507
  targetsToUpdate,
513
508
  firmwareUpdatePlan,
@@ -555,17 +555,22 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
555
555
  'Protocol V2 expected device identity is invalid'
556
556
  );
557
557
  }
558
+ const preparedPlan = payload.preparedPlan
559
+ ? validateFirmwareUpdatePreparedPlan(payload.preparedPlan)
560
+ : undefined;
558
561
  const hostBinding =
559
- payload.preparedPlan || payload.componentArtifacts
560
- ? resolveFirmwareUpdateHostBinding(payload.hostBindingGeneration)
562
+ preparedPlan || payload.componentArtifacts
563
+ ? resolveFirmwareUpdateHostBinding(
564
+ payload.hostBindingGeneration,
565
+ preparedPlan?.preparedPlanDigest
566
+ )
561
567
  : undefined;
562
568
  if (hostBinding) {
563
569
  const componentArtifacts = (payload.componentArtifacts ?? {}) as NonNullable<
564
570
  FirmwareUpdateV4Params['componentArtifacts']
565
571
  >;
566
- const preparedPlan = validateFirmwareUpdatePreparedPlan(payload.preparedPlan);
567
572
  assertFirmwareUpdatePreparedPlanBinding({
568
- preparedPlan,
573
+ preparedPlan: preparedPlan ?? payload.preparedPlan,
569
574
  executor: 'v4',
570
575
  platform: payload.platform,
571
576
  scopeTargets: ['boot', 'app_v1', 'app_v2', 'coprocessor', 'se01', 'se02', 'se03', 'se04'],
@@ -585,9 +590,7 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
585
590
  }
586
591
 
587
592
  this.params = {
588
- preparedPlan: payload.preparedPlan
589
- ? validateFirmwareUpdatePreparedPlan(payload.preparedPlan)
590
- : undefined,
593
+ preparedPlan,
591
594
  chunkSize: payload.chunkSize,
592
595
  forcedUpdateRes: payload.forcedUpdateRes,
593
596
  bootloaderBinary: payload.bootloaderBinary,
@@ -1352,7 +1355,7 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
1352
1355
  return `vol0:/${path}`;
1353
1356
  }
1354
1357
 
1355
- private async readProtocolV2DeviceFileHeader(path: string) {
1358
+ private async readProtocolV2DeviceFileHeader(path: string, expectedSize?: number) {
1356
1359
  const typedCall = this.device.getCommands().typedCall.bind(this.device.getCommands());
1357
1360
  const filePath = this.getProtocolV2ResourceFilePath(path);
1358
1361
  const pathInfoRes = await typedCall('FilesystemPathInfoQuery', 'FilesystemPathInfo', {
@@ -1363,7 +1366,8 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
1363
1366
  !pathInfoRes.message?.exist ||
1364
1367
  pathInfoRes.message?.directory ||
1365
1368
  fileSize === undefined ||
1366
- fileSize < PROTOCOL_V2_OKPP_HEADER_SIZE
1369
+ fileSize < PROTOCOL_V2_OKPP_HEADER_SIZE ||
1370
+ (expectedSize !== undefined && fileSize !== expectedSize)
1367
1371
  ) {
1368
1372
  return null;
1369
1373
  }
@@ -1401,14 +1405,17 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
1401
1405
  private async isProtocolV2ResourceBundleUpToDate(
1402
1406
  bundle: Pick<
1403
1407
  ProtocolV2ResourceBundleSource,
1404
- 'name' | 'devicePath' | 'version' | 'payloadHash' | 'headerHash'
1408
+ 'name' | 'source' | 'devicePath' | 'version' | 'payloadHash' | 'headerHash'
1405
1409
  >
1406
1410
  ): Promise<boolean> {
1407
1411
  if (this.params?.forcedUpdateRes) return false;
1408
1412
  if (!bundle.payloadHash || !bundle.headerHash) return false;
1409
1413
 
1410
1414
  try {
1411
- const header = await this.readProtocolV2DeviceFileHeader(bundle.devicePath);
1415
+ const header = await this.readProtocolV2DeviceFileHeader(
1416
+ bundle.devicePath,
1417
+ bundle.source.size
1418
+ );
1412
1419
  if (!header) return false;
1413
1420
 
1414
1421
  if (bundle.version) {
@@ -16,6 +16,8 @@ class FirmwareHostBindingRegistry {
16
16
  register(binding: FirmwareUpdateHostBinding): number {
17
17
  if (
18
18
  !binding ||
19
+ typeof binding.preparedPlanDigest !== 'string' ||
20
+ !/^[0-9a-f]{64}$/i.test(binding.preparedPlanDigest) ||
19
21
  typeof binding.artifactReader?.open !== 'function' ||
20
22
  typeof binding.artifactReader.read !== 'function' ||
21
23
  typeof binding.artifactReader.close !== 'function'
@@ -40,7 +42,7 @@ class FirmwareHostBindingRegistry {
40
42
  return this.generation;
41
43
  }
42
44
 
43
- resolve(generation: number): FirmwareUpdateHostBinding {
45
+ resolve(generation: number, preparedPlanDigest?: string): FirmwareUpdateHostBinding {
44
46
  if (
45
47
  !Number.isSafeInteger(generation) ||
46
48
  generation <= 0 ||
@@ -50,12 +52,21 @@ class FirmwareHostBindingRegistry {
50
52
  return bindingError(`Firmware host binding generation ${generation} is stale`);
51
53
  }
52
54
  const { binding } = this;
55
+ if (
56
+ preparedPlanDigest !== undefined &&
57
+ binding.preparedPlanDigest.toLowerCase() !== preparedPlanDigest.toLowerCase()
58
+ ) {
59
+ return bindingError(
60
+ `Firmware host binding generation ${generation} does not match the prepared plan`
61
+ );
62
+ }
53
63
  const assertCurrent = () => {
54
64
  if (generation !== this.generation || binding !== this.binding) {
55
65
  bindingError(`Firmware host binding generation ${generation} is stale`);
56
66
  }
57
67
  };
58
68
  return {
69
+ preparedPlanDigest: binding.preparedPlanDigest,
59
70
  artifactReader: {
60
71
  open: async input => {
61
72
  assertCurrent();
@@ -96,5 +107,7 @@ export const getFirmwareUpdateHostBindingGeneration = (): number =>
96
107
  firmwareHostBindingRegistry.getGeneration();
97
108
 
98
109
  export const resolveFirmwareUpdateHostBinding = (
99
- generation: number | undefined
100
- ): FirmwareUpdateHostBinding => firmwareHostBindingRegistry.resolve(generation ?? Number.NaN);
110
+ generation: number | undefined,
111
+ preparedPlanDigest?: string
112
+ ): FirmwareUpdateHostBinding =>
113
+ firmwareHostBindingRegistry.resolve(generation ?? Number.NaN, preparedPlanDigest);
@@ -144,7 +144,10 @@ export function prepareFirmwareUpdateV4MemoryHost({
144
144
  return Promise.resolve();
145
145
  },
146
146
  };
147
- const hostBindingGeneration = sdk.registerFirmwareUpdateHostBinding({ artifactReader });
147
+ const hostBindingGeneration = sdk.registerFirmwareUpdateHostBinding({
148
+ artifactReader,
149
+ preparedPlanDigest: preparedPlan.preparedPlanDigest,
150
+ });
148
151
  const componentArtifacts: FirmwareUpdateV4MemoryHost['componentArtifacts'] = {};
149
152
  const expectedTargetVersions: FirmwareUpdateV4MemoryHost['expectedTargetVersions'] = {};
150
153
  for (const artifact of preparedPlan.artifacts) {
@@ -94,12 +94,10 @@ export default class DataManager {
94
94
  ble: [],
95
95
  },
96
96
  [EDeviceType.Pro2]: {
97
- firmware: [],
98
- ble: [],
97
+ 'firmware-v1': [],
99
98
  },
100
99
  [EDeviceType.Neo]: {
101
- firmware: [],
102
- ble: [],
100
+ 'firmware-v1': [],
103
101
  },
104
102
  [EDeviceType.ClassicPure]: {
105
103
  firmware: [],
@@ -121,6 +119,8 @@ export default class DataManager {
121
119
 
122
120
  static protocolV2ResourcesConfigError: Error | undefined;
123
121
 
122
+ private static protocolV2NeoResourcesConfigError: Error | undefined;
123
+
124
124
  static getFirmwareStatus = (
125
125
  features: Features,
126
126
  firmwareType: EFirmwareType
@@ -410,6 +410,7 @@ export default class DataManager {
410
410
  static async load(settings: ConnectSettings): Promise<boolean> {
411
411
  this.settings = settings;
412
412
  this.protocolV2ResourcesConfigError = undefined;
413
+ this.protocolV2NeoResourcesConfigError = undefined;
413
414
  const manifestMode =
414
415
  settings.firmwareManifestMode ?? (settings.fetchConfig ? 'sdk-managed' : undefined);
415
416
  if (settings.preloadedConfig) {
@@ -476,15 +477,21 @@ export default class DataManager {
476
477
  pro2Resources = parseProtocolV2Resources(
477
478
  (data.pro2 as { resources?: unknown } | undefined)?.resources
478
479
  );
479
- neoResources = parseProtocolV2Resources(
480
- (data.neo as { resources?: unknown } | undefined)?.resources
481
- );
482
480
  } catch (error) {
483
481
  // Firmware resource metadata is not required for base communication. If the
484
482
  // remote config is temporarily incomplete, disable this resource update only.
485
483
  this.protocolV2ResourcesConfigError =
486
484
  error instanceof Error ? error : new Error(String(error));
487
- Log.warn('[DataConfig] Ignoring invalid Protocol V2 resources config:', error);
485
+ Log.warn('[DataConfig] Ignoring invalid Pro2 resources config:', error);
486
+ }
487
+ try {
488
+ neoResources = parseProtocolV2Resources(
489
+ (data.neo as { resources?: unknown } | undefined)?.resources
490
+ );
491
+ } catch (error) {
492
+ this.protocolV2NeoResourcesConfigError =
493
+ error instanceof Error ? error : new Error(String(error));
494
+ Log.warn('[DataConfig] Ignoring invalid Neo resources config:', error);
488
495
  }
489
496
  const enrichedPro2Config = this.enrichFirmwareReleaseInfo(data.pro2);
490
497
  const enrichedNeoConfig = this.enrichFirmwareReleaseInfo(data.neo);
@@ -537,7 +544,12 @@ export default class DataManager {
537
544
  /** Force a fresh remote config before an update is allowed to mutate the device. */
538
545
  static async forceReloadData({
539
546
  requireResources = false,
540
- }: { requireResources?: boolean } = {}): Promise<void> {
547
+ resourceDeviceType = EDeviceType.Pro2,
548
+ }: {
549
+ requireResources?: boolean;
550
+ resourceDeviceType?: EDeviceType.Pro2 | EDeviceType.Neo;
551
+ } = {}): Promise<void> {
552
+ const resourceDeviceName = resourceDeviceType === EDeviceType.Pro2 ? 'Pro2' : 'Neo';
541
553
  if (!this.settings) {
542
554
  throw new Error('Remote config settings are not initialized');
543
555
  }
@@ -545,10 +557,14 @@ export default class DataManager {
545
557
  this.lastCheckTimestamp > 0 &&
546
558
  getTimeStamp() - this.lastCheckTimestamp <= FIRMWARE_UPDATE_CONFIG_FRESHNESS_MS;
547
559
  if (hasFreshConfig) {
548
- if (requireResources && this.protocolV2ResourcesConfigError) {
560
+ const resourcesConfigError =
561
+ resourceDeviceType === EDeviceType.Pro2
562
+ ? this.protocolV2ResourcesConfigError
563
+ : this.protocolV2NeoResourcesConfigError;
564
+ if (requireResources && resourcesConfigError) {
549
565
  throw ERRORS.TypedError(
550
566
  HardwareErrorCode.FirmwareUpdateDownloadFailed,
551
- `Invalid Pro2 resources config: ${this.protocolV2ResourcesConfigError.message}`
567
+ `Invalid ${resourceDeviceName} resources config: ${resourcesConfigError.message}`
552
568
  );
553
569
  }
554
570
  return;
@@ -560,10 +576,14 @@ export default class DataManager {
560
576
  'Unable to refresh the latest remote config'
561
577
  );
562
578
  }
563
- if (requireResources && this.protocolV2ResourcesConfigError) {
579
+ const resourcesConfigError =
580
+ resourceDeviceType === EDeviceType.Pro2
581
+ ? this.protocolV2ResourcesConfigError
582
+ : this.protocolV2NeoResourcesConfigError;
583
+ if (requireResources && resourcesConfigError) {
564
584
  throw ERRORS.TypedError(
565
585
  HardwareErrorCode.FirmwareUpdateDownloadFailed,
566
- `Invalid Pro2 resources config: ${this.protocolV2ResourcesConfigError.message}`
586
+ `Invalid ${resourceDeviceName} resources config: ${resourcesConfigError.message}`
567
587
  );
568
588
  }
569
589
  this.lastCheckTimestamp = getTimeStamp();