@onekeyfe/hd-core 1.2.0-alpha.155 → 1.2.0-alpha.157

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.
@@ -88,9 +88,9 @@ describe('Device state events', () => {
88
88
  expect(device.getCurrentDeviceType()).toBe(EDeviceType.Pro2);
89
89
  expect(device.getCurrentDeviceId()).toBe('wallet-id');
90
90
  expect(device.getCurrentSerialNo()).toBe('SERIAL-PRO2');
91
- expect(device.getCurrentBleName()).toBe('Pro2 1234');
91
+ expect(device.getCurrentBleName()).toBe('Pro 2 1234');
92
92
  expect(device.getCurrentLabel()).toBeNull();
93
- expect((device as any).getCurrentDisplayName()).toBe('Pro2 1234');
93
+ expect((device as any).getCurrentDisplayName()).toBe('Pro 2 1234');
94
94
  expect(device.getCurrentPassphraseProtection()).toBe(false);
95
95
  expect(device.getCurrentFirmwareVersionString()).toBe('5.1.2');
96
96
  expect(device.getCurrentBLEFirmwareVersionString()).toBe('0.0.0');
@@ -136,7 +136,7 @@ describe('DeviceStateMapper', () => {
136
136
  expect(patch.identity).toMatchObject({
137
137
  deviceType: EDeviceType.Pro2,
138
138
  serialNo: 'SERIAL-1',
139
- bleName: 'Pro2 1234',
139
+ bleName: 'Pro 2 1234',
140
140
  });
141
141
  expect(patch.versions).toMatchObject({
142
142
  firmware: '5.0.0',
@@ -178,7 +178,16 @@ describe('DeviceStateMapper', () => {
178
178
  coprocessor: { bt_adv_name: 'Pro2 22D8 - Fin' },
179
179
  });
180
180
 
181
- expect(patch.identity?.bleName).toBe('Pro2 22D8');
181
+ expect(patch.identity?.bleName).toBe('Pro 2 22D8');
182
+ });
183
+
184
+ test('canonicalizes a spaced Pro2 advertisement name from DeviceInfo', () => {
185
+ const patch = mapProtocolV2DeviceInfoToState({
186
+ hw: { Device_type: DeviceType.PRO2, serial_no: 'SERIAL-1' },
187
+ coprocessor: { bt_adv_name: 'Pro 2 0088 - Find My' },
188
+ });
189
+
190
+ expect(patch.identity?.bleName).toBe('Pro 2 0088');
182
191
  });
183
192
 
184
193
  test('maps the hardware model independently from Protocol V2', () => {
@@ -131,6 +131,10 @@ describe('device feature selectors', () => {
131
131
  expect(getDeviceTypeByBleName('Pro2 A1B2')).toBe(EDeviceType.Pro2);
132
132
  expect(getDeviceTypeByBleName('Pro2A1B2')).toBe(EDeviceType.Pro2);
133
133
  expect(getDeviceTypeByBleName('OneKeyPro2A1B2')).toBe(EDeviceType.Pro2);
134
+ expect(getDeviceTypeByBleName('Pro 2 A1B2')).toBe(EDeviceType.Pro2);
135
+ expect(getDeviceTypeByBleName('Pro 2 0088')).toBe(EDeviceType.Pro2);
136
+ expect(getDeviceTypeByBleName('OneKey Pro 2 A1B2')).toBe(EDeviceType.Pro2);
137
+ expect(getDeviceTypeByBleName('Pro A1B2')).toBe(EDeviceType.Pro);
134
138
  });
135
139
 
136
140
  test.each([EDeviceType.Pro2, EDeviceType.Neo])(
@@ -179,7 +179,7 @@ describe('FirmwareUpdatePreparedPlan', () => {
179
179
  ).toThrow('plan digest is invalid');
180
180
  });
181
181
 
182
- test('projects portable archive paths to unique device resource names', () => {
182
+ test('keeps ZIP entries unique by archive path, not basename', () => {
183
183
  const plan = buildPlan();
184
184
  const buildArtifacts = (entryNames: string[]) => [
185
185
  {
@@ -200,7 +200,20 @@ describe('FirmwareUpdatePreparedPlan', () => {
200
200
  prepareFirmwareUpdatePlan({
201
201
  plan,
202
202
  leaseRef: 'fwlease:00000000-0000-4000-8000-000000000001',
203
- artifacts: buildArtifacts(['icons/index.bin', 'fonts/index.bin']),
203
+ artifacts: buildArtifacts([
204
+ 'loaders/bootloader/params-pro2-prod_resource-unsigned.okpkg',
205
+ 'loaders/rom/params-pro2-prod_resource-unsigned.okpkg',
206
+ ]),
207
+ })
208
+ ).not.toThrow();
209
+ expect(() =>
210
+ prepareFirmwareUpdatePlan({
211
+ plan,
212
+ leaseRef: 'fwlease:00000000-0000-4000-8000-000000000001',
213
+ artifacts: buildArtifacts([
214
+ 'loaders/rom/params.okpkg',
215
+ 'loaders/rom/params.okpkg',
216
+ ]),
204
217
  })
205
218
  ).toThrow('duplicate entry names');
206
219
  expect(() =>
@@ -248,7 +261,7 @@ describe('FirmwareUpdatePreparedPlan', () => {
248
261
  materializedEntries: [
249
262
  ...(resourceArtifact.materializedEntries ?? []),
250
263
  {
251
- entryName: 'other/index.bin',
264
+ entryName: 'resource/index.bin',
252
265
  artifact: artifact('d'.repeat(64), 2),
253
266
  },
254
267
  ],
@@ -3,6 +3,7 @@ import { EDeviceType, EFirmwareType, HardwareErrorCode } from '@onekeyfe/hd-shar
3
3
 
4
4
  import { DataManager } from '../src/data-manager';
5
5
  import {
6
+ isProtocolV2ResourceArchiveEntryName,
6
7
  parseProtocolV2ResourcePackage,
7
8
  parseProtocolV2Resources,
8
9
  } from '../src/protocols/protocol-v2/resources';
@@ -104,6 +105,24 @@ describe('Pro2 resource configuration', () => {
104
105
  });
105
106
  });
106
107
 
108
+ test('ignores macOS ZIP metadata that only looks like a resource package', () => {
109
+ expect(
110
+ isProtocolV2ResourceArchiveEntryName(
111
+ 'bundles/firmware_logo-pro2-prod_resource-signed.okpkg'
112
+ )
113
+ ).toBe(true);
114
+ expect(
115
+ isProtocolV2ResourceArchiveEntryName(
116
+ '__MACOSX/pro2-prod_resource 2/bundles/._firmware_logo-pro2-prod_resource-signed.okpkg'
117
+ )
118
+ ).toBe(false);
119
+ expect(
120
+ isProtocolV2ResourceArchiveEntryName(
121
+ 'bundles/._firmware_logo-pro2-prod_resource-signed.okpkg'
122
+ )
123
+ ).toBe(false);
124
+ });
125
+
107
126
  test('reads the version, hashes, and direct device path from a RESC package', () => {
108
127
  expect(
109
128
  parseProtocolV2ResourcePackage(createResourcePackage('vol0:/bundles/images.okpkg'))
@@ -116,14 +135,30 @@ describe('Pro2 resource configuration', () => {
116
135
  });
117
136
  });
118
137
 
119
- test('accepts the boot resource staging path and rejects paths outside resource roots', () => {
138
+ test('uses the RESC header device path and only rejects malformed paths', () => {
120
139
  expect(
121
140
  parseProtocolV2ResourcePackage(
122
141
  createResourcePackage('vol0:/loaders/bootloader/boot_resource.okpkg.staging')
123
142
  ).devicePath
124
143
  ).toBe('vol0:/loaders/bootloader/boot_resource.okpkg.staging');
125
- expect(() =>
144
+ expect(
145
+ parseProtocolV2ResourcePackage(
146
+ createResourcePackage('vol0:/loaders/bootloader/params.okpkg.staging')
147
+ ).devicePath
148
+ ).toBe('vol0:/loaders/bootloader/params.okpkg.staging');
149
+ expect(
150
+ parseProtocolV2ResourcePackage(createResourcePackage('vol0:/loaders/rom/params.okpkg'))
151
+ .devicePath
152
+ ).toBe('vol0:/loaders/rom/params.okpkg');
153
+ expect(
126
154
  parseProtocolV2ResourcePackage(createResourcePackage('vol0:/unexpected/images.okpkg'))
155
+ .devicePath
156
+ ).toBe('vol0:/unexpected/images.okpkg');
157
+ expect(() =>
158
+ parseProtocolV2ResourcePackage(createResourcePackage('vol0:/bundles/../images.okpkg'))
159
+ ).toThrow('device path');
160
+ expect(() =>
161
+ parseProtocolV2ResourcePackage(createResourcePackage('vol0://bundles/images.okpkg'))
127
162
  ).toThrow('device path');
128
163
  });
129
164
 
@@ -744,7 +744,7 @@ describe('Protocol V2 feature adapter', () => {
744
744
  expect(features).toMatchObject({
745
745
  deviceId: 'P2-DYNAMIC',
746
746
  serialNo: 'P2-STATIC',
747
- bleName: 'Pro2 STATIC',
747
+ bleName: 'Pro 2 STATIC',
748
748
  initialized: true,
749
749
  unlocked: true,
750
750
  passphraseProtection: true,
@@ -865,7 +865,7 @@ describe('Protocol V2 feature adapter', () => {
865
865
  expect(features.boardVersion).toBe('0.1.0');
866
866
  expect(features.verify?.boardBuildId).toBe('rom-build');
867
867
  expect(features.verify?.boardHash).toBe('0102ff');
868
- expect(features.bleName).toBe('Pro2 BLE');
868
+ expect(features.bleName).toBe('Pro 2 BLE');
869
869
  expect(features.bleVersion).toBe('4.5.6');
870
870
  expect(features.verify?.bleHash).toBe('0c0d');
871
871
  expect(features.se01Version).toBe('7.8.9');
@@ -2806,9 +2806,9 @@ describe('Protocol V2 feature adapter', () => {
2806
2806
 
2807
2807
  expect(device.toMessageObject()).toMatchObject({
2808
2808
  serialNo: 'PR9999999999',
2809
- bleName: 'Pro2 6136',
2810
- name: 'Pro2 6136',
2811
- label: 'Pro2 6136',
2809
+ bleName: 'Pro 2 6136',
2810
+ name: 'Pro 2 6136',
2811
+ label: 'Pro 2 6136',
2812
2812
  });
2813
2813
  expect(device.features?.label).toBeNull();
2814
2814
  });
@@ -2823,8 +2823,8 @@ describe('Protocol V2 feature adapter', () => {
2823
2823
 
2824
2824
  expect(device.getCurrentDisplayName()).toBe('My Pro 2');
2825
2825
  expect(device.toMessageObject()).toMatchObject({
2826
- bleName: 'Pro2 6136',
2827
- name: 'Pro2 6136',
2826
+ bleName: 'Pro 2 6136',
2827
+ name: 'Pro 2 6136',
2828
2828
  label: 'My Pro 2',
2829
2829
  });
2830
2830
  });
@@ -7720,6 +7720,10 @@ describe('Protocol V2 firmware update targets', () => {
7720
7720
  zip.file('pro2-resource/bundles/images/images.okpkg', imagesBinary);
7721
7721
  zip.file('pro2-resource/loaders/bootloader/boot_resource.okpkg', bootResourceBinary);
7722
7722
  zip.file('pro2-resource/build-info.txt', 'ignored');
7723
+ zip.file(
7724
+ '__MACOSX/pro2-resource 2/bundles/._images.okpkg',
7725
+ new Uint8Array([0x00, 0x05, 0x16, 0x07])
7726
+ );
7723
7727
  const method = new FirmwareUpdateV4({
7724
7728
  id: 1,
7725
7729
  payload: {
@@ -151,9 +151,10 @@ describe('SearchDevices', () => {
151
151
  );
152
152
 
153
153
  test.each([
154
- ['Pro2 A1B2 - Find My', undefined, 'Pro2 A1B2'],
155
- ['Pro2 5E9D - Finde My', undefined, 'Pro2 5E9D'],
156
- ['Pro2 22D8FindMy', undefined, 'Pro2 22D8'],
154
+ ['Pro2 A1B2 - Find My', undefined, 'Pro 2 A1B2'],
155
+ ['Pro2 5E9D - Finde My', undefined, 'Pro 2 5E9D'],
156
+ ['Pro2 22D8FindMy', undefined, 'Pro 2 22D8'],
157
+ ['Pro 2 A1B2 - Find My', undefined, 'Pro 2 A1B2'],
157
158
  [undefined, 'OneKey Pro 2 A1B2 - Find My', 'OneKey Pro 2 A1B2'],
158
159
  ])(
159
160
  'BLE discovery normalizes the Find My display name from name=%s localName=%s',
@@ -1 +1 @@
1
- {"version":3,"file":"FirmwareUpdateV4.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV4.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FirmwareUpdateV4.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV4.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FirmwareUpdatePreparedPlan.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdatePreparedPlan.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,8BAA8B,EAC9B,mCAAmC,EAEnC,0BAA0B,EAC3B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAwB7E,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,MA8B9D,CAAC;AAgGF,eAAO,MAAM,yBAAyB;UAK9B,kBAAkB;cACd,MAAM;eACL,mCAAmC,EAAE;MAC9C,0BAmBH,CAAC;AAEF,eAAO,MAAM,kCAAkC,UAAW,OAAO,KAAG,0BA0GnE,CAAC;AAEF,eAAO,MAAM,oCAAoC;kBAKjC,OAAO;YACb,8BAA8B,CAAC,QAAQ,CAAC;UAC1C,8BAA8B,CAAC,MAAM,CAAC;MAC1C,8BAOH,CAAC;AA4BF,eAAO,MAAM,gDAAgD,uBACvC,MAAM,KACzB,IAEF,CAAC;AAEF,eAAO,MAAM,8CAA8C;kBAM3C,OAAO;oBACL,MAAM,GAAG,SAAS;;;MAKhC,0BAsCH,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,EAAE,yBAAyB,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAUF,eAAO,MAAM,uCAAuC;kBAQpC,OAAO;cACX,0BAA0B,CAAC,UAAU,CAAC;;;kBAGlC,0BAA0B,CAAC,iBAAiB,CAAC;cACjD,6BAA6B,EAAE;MACvC,0BAmDH,CAAC"}
1
+ {"version":3,"file":"FirmwareUpdatePreparedPlan.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdatePreparedPlan.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,8BAA8B,EAC9B,mCAAmC,EAEnC,0BAA0B,EAC3B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAwB7E,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,MA8B9D,CAAC;AAkGF,eAAO,MAAM,yBAAyB;UAK9B,kBAAkB;cACd,MAAM;eACL,mCAAmC,EAAE;MAC9C,0BAmBH,CAAC;AAEF,eAAO,MAAM,kCAAkC,UAAW,OAAO,KAAG,0BA0GnE,CAAC;AAEF,eAAO,MAAM,oCAAoC;kBAKjC,OAAO;YACb,8BAA8B,CAAC,QAAQ,CAAC;UAC1C,8BAA8B,CAAC,MAAM,CAAC;MAC1C,8BAOH,CAAC;AA4BF,eAAO,MAAM,gDAAgD,uBACvC,MAAM,KACzB,IAEF,CAAC;AAEF,eAAO,MAAM,8CAA8C;kBAM3C,OAAO;oBACL,MAAM,GAAG,SAAS;;;MAKhC,0BAsCH,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,EAAE,yBAAyB,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAUF,eAAO,MAAM,uCAAuC;kBAQpC,OAAO;cACX,0BAA0B,CAAC,UAAU,CAAC;;;kBAGlC,0BAA0B,CAAC,iBAAiB,CAAC;cACjD,6BAA6B,EAAE;MACvC,0BAmDH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TransportManager.d.ts","sourceRoot":"","sources":["../../src/data-manager/TransportManager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,6BAA6B,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAgBzC,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC;IAE5B,MAAM,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEnD,MAAM,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEnD,MAAM,CAAC,eAAe,UAAS;IAE/B,MAAM,CAAC,uBAAuB,EAAE,uBAAuB,CAAqB;IAE5E,MAAM,CAAC,MAAM,EAAE,6BAA6B,GAAG,IAAI,CAAQ;IAE3D,MAAM,CAAC,IAAI;WAOE,SAAS;WAqDT,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAyB5C,MAAM,CAAC,YAAY,CAAC,oBAAoB,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,6BAA6B;IA6BrF,MAAM,CAAC,YAAY;mBAIE,2BAA2B;IAShD,MAAM,CAAC,kBAAkB;IAIzB,MAAM,CAAC,kBAAkB;IAIzB,MAAM,CAAC,0BAA0B;CAGlC"}
1
+ {"version":3,"file":"TransportManager.d.ts","sourceRoot":"","sources":["../../src/data-manager/TransportManager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,6BAA6B,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAgBzC,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC;IAE5B,MAAM,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEnD,MAAM,CAAC,eAAe,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEnD,MAAM,CAAC,eAAe,UAAS;IAE/B,MAAM,CAAC,uBAAuB,EAAE,uBAAuB,CAAqB;IAE5E,MAAM,CAAC,MAAM,EAAE,6BAA6B,GAAG,IAAI,CAAQ;IAE3D,MAAM,CAAC,IAAI;WAOE,SAAS;WAmDT,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ;IAyB5C,MAAM,CAAC,YAAY,CAAC,oBAAoB,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,6BAA6B;IA6BrF,MAAM,CAAC,YAAY;mBAIE,2BAA2B;IAShD,MAAM,CAAC,kBAAkB;IAIzB,MAAM,CAAC,kBAAkB;IAIzB,MAAM,CAAC,0BAA0B;CAGlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../../src/device/Device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../../src/device/Device.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildDeviceFeatures.d.ts","sourceRoot":"","sources":["../../src/deviceProfile/buildDeviceFeatures.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAEV,YAAY,EACZ,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAsB,QAAQ,EAAE,MAAM,UAAU,CAAC;AA6C7D,eAAO,MAAM,8BAA8B,uBACrB,cAAc,aACvB,QAAQ,KAClB,QA+HF,CAAC;AASF,eAAO,MAAM,8BAA8B;;;;;MAUvC,QAsLH,CAAC"}
1
+ {"version":3,"file":"buildDeviceFeatures.d.ts","sourceRoot":"","sources":["../../src/deviceProfile/buildDeviceFeatures.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAEV,YAAY,EACZ,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAsB,QAAQ,EAAE,MAAM,UAAU,CAAC;AA6C7D,eAAO,MAAM,8BAA8B,uBACrB,cAAc,aACvB,QAAQ,KAClB,QA+HF,CAAC;AASF,eAAO,MAAM,8BAA8B;;;;;MAUvC,QAuLH,CAAC"}
package/dist/index.js CHANGED
@@ -419,7 +419,8 @@ const resolveDeviceBleName = (features) => {
419
419
  if (!features)
420
420
  return null;
421
421
  const compatible = asCompatibleFeatures(features);
422
- return ((_a = firstNonEmptyString(compatible.bleName, compatible.onekey_ble_name, compatible.ble_name)) !== null && _a !== void 0 ? _a : null);
422
+ const bleName = (_a = firstNonEmptyString(compatible.bleName, compatible.onekey_ble_name, compatible.ble_name)) !== null && _a !== void 0 ? _a : null;
423
+ return bleName ? hdShared.canonicalizePro2BleAdvertisementName(bleName) : null;
423
424
  };
424
425
  const resolveDeviceFirmwareVersion = (features) => {
425
426
  var _a;
@@ -1135,6 +1136,10 @@ const getFirmwareUpdateResourceName = (value) => {
1135
1136
  }
1136
1137
  return resourceName;
1137
1138
  };
1139
+ const getPreparedEntryIdentity = (entryName) => {
1140
+ getFirmwareUpdateResourceName(entryName);
1141
+ return entryName.toLowerCase();
1142
+ };
1138
1143
  const assertPreparedEntry = (value) => {
1139
1144
  if (!value || typeof value !== 'object' || Array.isArray(value)) {
1140
1145
  return preparedPlanError('Firmware prepared plan entry must be an object');
@@ -1187,7 +1192,8 @@ const assertPreparedArtifacts = ({ plan, artifacts, }) => {
1187
1192
  return preparedPlanError('Firmware prepared plan materialization is incomplete');
1188
1193
  }
1189
1194
  if (materializedEntries &&
1190
- new Set(materializedEntries.map(entry => getFirmwareUpdateResourceName(entry.entryName).toLowerCase())).size !== materializedEntries.length) {
1195
+ new Set(materializedEntries.map(entry => getPreparedEntryIdentity(entry.entryName))).size !==
1196
+ materializedEntries.length) {
1191
1197
  return preparedPlanError('Firmware prepared plan contains duplicate entry names');
1192
1198
  }
1193
1199
  return Object.assign(Object.assign(Object.assign(Object.assign({ artifactId: planArtifact.artifactId, role: planArtifact.role, target: planArtifact.target, container: planArtifact.container }, (planArtifact.logicalName ? { logicalName: planArtifact.logicalName } : {})), (planArtifact.targetVersion ? { targetVersion: planArtifact.targetVersion } : {})), { artifact: Object.assign(Object.assign({}, artifact), { sha256: artifact.sha256.toLowerCase() }) }), ((materializedEntries === null || materializedEntries === void 0 ? void 0 : materializedEntries.length) ? { materializedEntries } : {}));
@@ -1293,7 +1299,7 @@ const validateFirmwareUpdatePreparedPlan = (value) => {
1293
1299
  assertFirmwareArtifactReference(artifact.artifact);
1294
1300
  const materializedEntryNames = (_d = (_c = artifact.materializedEntries) === null || _c === void 0 ? void 0 : _c.map(entry => {
1295
1301
  assertPreparedEntry(entry);
1296
- return getFirmwareUpdateResourceName(entry.entryName).toLowerCase();
1302
+ return getPreparedEntryIdentity(entry.entryName);
1297
1303
  })) !== null && _d !== void 0 ? _d : [];
1298
1304
  if (new Set(materializedEntryNames).size !== materializedEntryNames.length) {
1299
1305
  return preparedPlanError('Firmware prepared plan contains duplicate entry names');
@@ -40716,21 +40722,26 @@ function parseProtocolV2Resources(value) {
40716
40722
  },
40717
40723
  };
40718
40724
  }
40719
- const PROTOCOL_V2_RESOURCE_DEVICE_ROOTS = ['vol0:/bundles/', 'vol0:/loaders/rom/'];
40720
- function isAllowedResourceDevicePath(path) {
40721
- if (path.includes('\\') ||
40725
+ function isProtocolV2ResourceArchiveEntryName(entryName) {
40726
+ var _a;
40727
+ const normalized = entryName.replace(/\\/g, '/');
40728
+ if (!normalized.toLowerCase().endsWith('.okpkg')) {
40729
+ return false;
40730
+ }
40731
+ const parts = normalized.split('/');
40732
+ const fileName = (_a = parts[parts.length - 1]) !== null && _a !== void 0 ? _a : '';
40733
+ return (fileName.length > 0 &&
40734
+ !fileName.startsWith('.') &&
40735
+ !parts.some(part => part === '__MACOSX' || part === '.' || part === '..' || part === ''));
40736
+ }
40737
+ function isSafeResourceDevicePath(path) {
40738
+ return !(path.includes('\\') ||
40722
40739
  path.includes('//') ||
40723
40740
  [...path].some(char => {
40724
40741
  const code = char.charCodeAt(0);
40725
40742
  return code <= 0x1f || code === 0x7f;
40726
40743
  }) ||
40727
- path.split('/').some(part => part === '.' || part === '..')) {
40728
- return false;
40729
- }
40730
- if (path === PROTOCOL_V2_BOOT_RESOURCE_PACKAGE_STAGING_PATH) {
40731
- return true;
40732
- }
40733
- return (path.endsWith('.okpkg') && PROTOCOL_V2_RESOURCE_DEVICE_ROOTS.some(root => path.startsWith(root)));
40744
+ path.split('/').some(part => part === '.' || part === '..'));
40734
40745
  }
40735
40746
  function readAscii(bytes, offset, length) {
40736
40747
  return Array.from(bytes.slice(offset, offset + length))
@@ -40748,7 +40759,7 @@ function readResourceDevicePath(bytes) {
40748
40759
  throw new Error('Invalid Pro2 RESOURCE package device path metadata');
40749
40760
  }
40750
40761
  const path = readAscii(pathBytes, 0, pathBytes.byteLength);
40751
- if (!isAllowedResourceDevicePath(path)) {
40762
+ if (!isSafeResourceDevicePath(path)) {
40752
40763
  throw new Error(`Invalid Pro2 RESOURCE package device path: ${path}`);
40753
40764
  }
40754
40765
  return path;
@@ -43419,7 +43430,7 @@ class TransportManager {
43419
43430
  yield this.transport.init(WebBleLogger, DevicePool.emitter);
43420
43431
  }
43421
43432
  else if (env === 'webusb' || env === 'desktop-webusb') {
43422
- yield this.transport.init(WebUsbLogger, DevicePool.emitter);
43433
+ yield this.transport.init(WebUsbLogger);
43423
43434
  }
43424
43435
  else {
43425
43436
  yield this.transport.init(HttpLogger);
@@ -44531,7 +44542,7 @@ const mapProtocolV2DeviceInfoToState = (info, mode = 'unknown') => {
44531
44542
  vendor: 'onekey.so',
44532
44543
  serialNo: (_b = info.hw) === null || _b === void 0 ? void 0 : _b.serial_no,
44533
44544
  bleName: ((_c = info.coprocessor) === null || _c === void 0 ? void 0 : _c.bt_adv_name)
44534
- ? hdShared.normalizePro2FindMyAdvertisementName(info.coprocessor.bt_adv_name)
44545
+ ? hdShared.canonicalizePro2BleAdvertisementName(info.coprocessor.bt_adv_name)
44535
44546
  : undefined,
44536
44547
  deviceId: loader ? null : undefined,
44537
44548
  }),
@@ -45412,7 +45423,8 @@ class Device extends events.exports {
45412
45423
  }
45413
45424
  getCurrentBleName() {
45414
45425
  var _a, _b;
45415
- return (_b = (_a = this.state) === null || _a === void 0 ? void 0 : _a.identity.bleName) !== null && _b !== void 0 ? _b : null;
45426
+ const bleName = (_b = (_a = this.state) === null || _a === void 0 ? void 0 : _a.identity.bleName) !== null && _b !== void 0 ? _b : null;
45427
+ return bleName ? hdShared.canonicalizePro2BleAdvertisementName(bleName) : null;
45416
45428
  }
45417
45429
  getCurrentLabel() {
45418
45430
  var _a, _b;
@@ -46923,7 +46935,7 @@ class SearchDevices extends BaseMethod {
46923
46935
  if (!seenIds.has(lowerId)) {
46924
46936
  seenIds.add(lowerId);
46925
46937
  const rawBleName = (_e = (_d = device.name) !== null && _d !== void 0 ? _d : device.localName) !== null && _e !== void 0 ? _e : '';
46926
- const bleName = hdShared.normalizePro2FindMyAdvertisementName(rawBleName);
46938
+ const bleName = hdShared.canonicalizePro2BleAdvertisementName(rawBleName);
46927
46939
  devices.push(Object.assign(Object.assign({}, device), { connectId: device.id, serialNo: null, uuid: '', deviceId: null, name: bleName || device.name, deviceType: getDeviceTypeByBleName(bleName) }));
46928
46940
  }
46929
46941
  }
@@ -51906,8 +51918,12 @@ const PROTOCOL_V2_REMOTE_COMPONENT_TARGETS = {
51906
51918
  },
51907
51919
  };
51908
51920
  const PROTOCOL_V2_FIRMWARE_STAGING_PATHS = new Set(Object.values(PROTOCOL_V2_REMOTE_COMPONENT_TARGETS).map(target => `${PROTOCOL_V2_FIRMWARE_STAGING_VOLUME}${target.fileName}`));
51909
- const isProtocolV2BootResourcePackagePath = (devicePath) => typeof devicePath === 'string' &&
51910
- devicePath.toLowerCase() === PROTOCOL_V2_BOOT_RESOURCE_PACKAGE_STAGING_PATH;
51921
+ const isProtocolV2BootResourcePackagePath = (devicePath) => {
51922
+ if (typeof devicePath !== 'string')
51923
+ return false;
51924
+ const normalized = devicePath.toLowerCase();
51925
+ return (normalized.startsWith('vol0:/loaders/bootloader/') && normalized.endsWith('.okpkg.staging'));
51926
+ };
51911
51927
  const PROTOCOL_V2_UPDATE_TARGET_BY_TARGET_ID = new Map([
51912
51928
  [ProtocolV2FirmwareTargetType.FW_MGMT_TARGET_BOOTLOADER, 'boot'],
51913
51929
  [ProtocolV2FirmwareTargetType.FW_MGMT_TARGET_APPLICATION_P1, 'app_v1'],
@@ -52552,7 +52568,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
52552
52568
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 resource ZIP cannot be parsed', { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
52553
52569
  }
52554
52570
  const zipEntries = Object.values(zip.files);
52555
- const resourceEntries = zipEntries.filter(entry => !entry.dir && entry.name.toLowerCase().endsWith('.okpkg'));
52571
+ const resourceEntries = zipEntries.filter(entry => !entry.dir && isProtocolV2ResourceArchiveEntryName(entry.name));
52556
52572
  if (resourceEntries.length === 0 ||
52557
52573
  resourceEntries.length > PROTOCOL_V2_RESOURCE_FILE_MAX_COUNT) {
52558
52574
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 resource ZIP has no valid resource package set', { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
@@ -4,6 +4,7 @@ export declare const PROTOCOL_V2_BOOT_RESOURCE_PACKAGE_STAGING_PATH: string;
4
4
  export declare const PROTOCOL_V2_ROM_PARAMS_PACKAGE_PATH = "vol0:/loaders/rom/params.okpkg";
5
5
  export declare const PROTOCOL_V2_RESOURCE_PACKAGE_HEADER_SIZE = 24464;
6
6
  export declare function parseProtocolV2Resources(value: unknown): IProtocolV2Resources | undefined;
7
+ export declare function isProtocolV2ResourceArchiveEntryName(entryName: string): boolean;
7
8
  export type ProtocolV2ResourcePackageHeader = {
8
9
  version: IVersionArray;
9
10
  payloadLength: number;
@@ -1 +1 @@
1
- {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/protocols/protocol-v2/resources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvE,eAAO,MAAM,sCAAsC,iDACH,CAAC;AACjD,eAAO,MAAM,8CAA8C,QAAsD,CAAC;AAClH,eAAO,MAAM,mCAAmC,mCAAmC,CAAC;AACpF,eAAO,MAAM,wCAAwC,QAAS,CAAC;AAW/D,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,GAAG,SAAS,CA8BzF;AAoDD,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,MAAM,GAClB,+BAA+B,CAyCjC;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,WAAW,GAAG,UAAU,GAC/B,+BAA+B,CAGjC"}
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/protocols/protocol-v2/resources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvE,eAAO,MAAM,sCAAsC,iDACH,CAAC;AACjD,eAAO,MAAM,8CAA8C,QAAsD,CAAC;AAClH,eAAO,MAAM,mCAAmC,mCAAmC,CAAC;AACpF,eAAO,MAAM,wCAAwC,QAAS,CAAC;AAW/D,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,GAAG,SAAS,CA8BzF;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAY/E;AA0CD,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,MAAM,GAClB,+BAA+B,CAyCjC;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,WAAW,GAAG,UAAU,GAC/B,+BAA+B,CAGjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deviceFeaturesCompat.d.ts","sourceRoot":"","sources":["../../src/utils/deviceFeaturesCompat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AAoB5D,eAAO,MAAM,qBAAqB,cAAe,mBAAmB,KAAG,MAWtE,CAAC;AAEF,eAAO,MAAM,2BAA2B,cAAe,mBAAmB,KAAG,OAI5E,CAAC;AAEF,eAAO,MAAM,iBAAiB,cAAe,mBAAmB,KAAG,WAqDlE,CAAC;AAEF,eAAO,MAAM,yBAAyB,cAAe,mBAAmB,KAAG,aAsB1E,CAAC;AAEF,eAAO,MAAM,oBAAoB,cAAe,mBAAmB,KAAG,MAAM,GAAG,IAM9E,CAAC;AAEF,eAAO,MAAM,4BAA4B,cAAe,mBAAmB,KAAG,MAAM,GAAG,IAgBtF,CAAC;AAEF,eAAO,MAAM,8BAA8B,cAAe,mBAAmB,KAAG,MAAM,GAAG,IAiBxF,CAAC;AAEF,eAAO,MAAM,yBAAyB,cAAe,mBAAmB,KAAG,MAAM,GAAG,IAUnF,CAAC;AAEF,eAAO,MAAM,+BAA+B,cAAe,mBAAmB,KAAG,MAAM,GAAG,IASzF,CAAC"}
1
+ {"version":3,"file":"deviceFeaturesCompat.d.ts","sourceRoot":"","sources":["../../src/utils/deviceFeaturesCompat.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAEd,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AAoB5D,eAAO,MAAM,qBAAqB,cAAe,mBAAmB,KAAG,MAWtE,CAAC;AAEF,eAAO,MAAM,2BAA2B,cAAe,mBAAmB,KAAG,OAI5E,CAAC;AAEF,eAAO,MAAM,iBAAiB,cAAe,mBAAmB,KAAG,WAqDlE,CAAC;AAEF,eAAO,MAAM,yBAAyB,cAAe,mBAAmB,KAAG,aAsB1E,CAAC;AAEF,eAAO,MAAM,oBAAoB,cAAe,mBAAmB,KAAG,MAAM,GAAG,IAO9E,CAAC;AAEF,eAAO,MAAM,4BAA4B,cAAe,mBAAmB,KAAG,MAAM,GAAG,IAgBtF,CAAC;AAEF,eAAO,MAAM,8BAA8B,cAAe,mBAAmB,KAAG,MAAM,GAAG,IAiBxF,CAAC;AAEF,eAAO,MAAM,yBAAyB,cAAe,mBAAmB,KAAG,MAAM,GAAG,IAUnF,CAAC;AAEF,eAAO,MAAM,+BAA+B,cAAe,mBAAmB,KAAG,MAAM,GAAG,IASzF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-core",
3
- "version": "1.2.0-alpha.155",
3
+ "version": "1.2.0-alpha.157",
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.155",
29
- "@onekeyfe/hd-transport": "1.2.0-alpha.155",
28
+ "@onekeyfe/hd-shared": "1.2.0-alpha.157",
29
+ "@onekeyfe/hd-transport": "1.2.0-alpha.157",
30
30
  "axios": "1.15.2",
31
31
  "bignumber.js": "^9.0.2",
32
32
  "buffer": "^6.0.3",
@@ -46,5 +46,5 @@
46
46
  "@types/w3c-web-usb": "^1.0.10",
47
47
  "@types/web-bluetooth": "^0.0.21"
48
48
  },
49
- "gitHead": "922cb4e29b2d89511c9b67c25840294335cb8005"
49
+ "gitHead": "1e9aaf5fbf64562504ebc22dc34fb22220ba0b0b"
50
50
  }
@@ -34,6 +34,7 @@ import { requestProtocolV2DeviceInfo } from '../protocols/protocol-v2/features';
34
34
  import {
35
35
  PROTOCOL_V2_BOOT_RESOURCE_PACKAGE_STAGING_PATH,
36
36
  PROTOCOL_V2_RESOURCE_PACKAGE_HEADER_SIZE,
37
+ isProtocolV2ResourceArchiveEntryName,
37
38
  parseProtocolV2ResourcePackage,
38
39
  parseProtocolV2ResourcePackageHeader,
39
40
  type ProtocolV2ResourcePackageHeader,
@@ -301,9 +302,13 @@ const PROTOCOL_V2_FIRMWARE_STAGING_PATHS = new Set(
301
302
  )
302
303
  );
303
304
 
304
- const isProtocolV2BootResourcePackagePath = (devicePath: string) =>
305
- typeof devicePath === 'string' &&
306
- devicePath.toLowerCase() === PROTOCOL_V2_BOOT_RESOURCE_PACKAGE_STAGING_PATH;
305
+ const isProtocolV2BootResourcePackagePath = (devicePath: string) => {
306
+ if (typeof devicePath !== 'string') return false;
307
+ const normalized = devicePath.toLowerCase();
308
+ return (
309
+ normalized.startsWith('vol0:/loaders/bootloader/') && normalized.endsWith('.okpkg.staging')
310
+ );
311
+ };
307
312
 
308
313
  const PROTOCOL_V2_UPDATE_TARGET_BY_TARGET_ID = new Map<
309
314
  number,
@@ -1206,7 +1211,7 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
1206
1211
  }
1207
1212
  const zipEntries = Object.values(zip.files);
1208
1213
  const resourceEntries = zipEntries.filter(
1209
- entry => !entry.dir && entry.name.toLowerCase().endsWith('.okpkg')
1214
+ entry => !entry.dir && isProtocolV2ResourceArchiveEntryName(entry.name)
1210
1215
  );
1211
1216
  if (
1212
1217
  resourceEntries.length === 0 ||
@@ -1,4 +1,4 @@
1
- import { normalizePro2FindMyAdvertisementName } from '@onekeyfe/hd-shared';
1
+ import { canonicalizePro2BleAdvertisementName } from '@onekeyfe/hd-shared';
2
2
 
3
3
  import { BaseMethod } from './BaseMethod';
4
4
  import TransportManager from '../data-manager/TransportManager';
@@ -40,7 +40,7 @@ export default class SearchDevices extends BaseMethod {
40
40
  seenIds.add(lowerId);
41
41
  const rawBleName =
42
42
  device.name ?? (device as unknown as { localName?: string }).localName ?? '';
43
- const bleName = normalizePro2FindMyAdvertisementName(rawBleName);
43
+ const bleName = canonicalizePro2BleAdvertisementName(rawBleName);
44
44
  devices.push({
45
45
  ...device,
46
46
  connectId: device.id,
@@ -71,6 +71,11 @@ export const getFirmwareUpdateResourceName = (value: unknown): string => {
71
71
  return resourceName;
72
72
  };
73
73
 
74
+ const getPreparedEntryIdentity = (entryName: unknown): string => {
75
+ getFirmwareUpdateResourceName(entryName);
76
+ return (entryName as string).toLowerCase();
77
+ };
78
+
74
79
  const assertPreparedEntry = (value: unknown): FirmwareUpdatePreparedEntry => {
75
80
  if (!value || typeof value !== 'object' || Array.isArray(value)) {
76
81
  return preparedPlanError('Firmware prepared plan entry must be an object');
@@ -141,11 +146,8 @@ const assertPreparedArtifacts = ({
141
146
  }
142
147
  if (
143
148
  materializedEntries &&
144
- new Set(
145
- materializedEntries.map(entry =>
146
- getFirmwareUpdateResourceName(entry.entryName).toLowerCase()
147
- )
148
- ).size !== materializedEntries.length
149
+ new Set(materializedEntries.map(entry => getPreparedEntryIdentity(entry.entryName))).size !==
150
+ materializedEntries.length
149
151
  ) {
150
152
  return preparedPlanError('Firmware prepared plan contains duplicate entry names');
151
153
  }
@@ -281,7 +283,7 @@ export const validateFirmwareUpdatePreparedPlan = (value: unknown): FirmwareUpda
281
283
  const materializedEntryNames =
282
284
  artifact.materializedEntries?.map(entry => {
283
285
  assertPreparedEntry(entry);
284
- return getFirmwareUpdateResourceName(entry.entryName).toLowerCase();
286
+ return getPreparedEntryIdentity(entry.entryName);
285
287
  }) ?? [];
286
288
  if (new Set(materializedEntryNames).size !== materializedEntryNames.length) {
287
289
  return preparedPlanError('Firmware prepared plan contains duplicate entry names');
@@ -69,9 +69,7 @@ export default class TransportManager {
69
69
  } else if (env === 'desktop-web-ble') {
70
70
  await this.transport.init(WebBleLogger, DevicePool.emitter);
71
71
  } else if (env === 'webusb' || env === 'desktop-webusb') {
72
- // The emitter is what turns a navigator.usb 'disconnect' into a
73
- // DEVICE.DISCONNECT; without it WebUSB never reports device removal.
74
- await this.transport.init(WebUsbLogger, DevicePool.emitter);
72
+ await this.transport.init(WebUsbLogger);
75
73
  } else {
76
74
  await this.transport.init(HttpLogger);
77
75
  }
@@ -9,6 +9,7 @@ import {
9
9
  ERROR_CODES_REQUIRE_RELEASE,
10
10
  HardwareError,
11
11
  HardwareErrorCode,
12
+ canonicalizePro2BleAdvertisementName,
12
13
  createDeferred,
13
14
  createDeviceNotSupportMethodError,
14
15
  } from '@onekeyfe/hd-shared';
@@ -672,7 +673,8 @@ export class Device extends EventEmitter {
672
673
  }
673
674
 
674
675
  getCurrentBleName() {
675
- return this.state?.identity.bleName ?? null;
676
+ const bleName = this.state?.identity.bleName ?? null;
677
+ return bleName ? canonicalizePro2BleAdvertisementName(bleName) : null;
676
678
  }
677
679
 
678
680
  getCurrentLabel() {
@@ -1,4 +1,4 @@
1
- import { EFirmwareType, normalizePro2FindMyAdvertisementName } from '@onekeyfe/hd-shared';
1
+ import { EFirmwareType, canonicalizePro2BleAdvertisementName } from '@onekeyfe/hd-shared';
2
2
 
3
3
  import { buildProtocolV1FeaturesPayload } from '../deviceProfile/buildDeviceFeatures';
4
4
  import { resolveProtocolV2DeviceIdentity } from '../deviceProfile/protocolV2DeviceIdentity';
@@ -248,7 +248,7 @@ export const mapProtocolV2DeviceInfoToState = (
248
248
  vendor: 'onekey.so',
249
249
  serialNo: info.hw?.serial_no,
250
250
  bleName: info.coprocessor?.bt_adv_name
251
- ? normalizePro2FindMyAdvertisementName(info.coprocessor.bt_adv_name)
251
+ ? canonicalizePro2BleAdvertisementName(info.coprocessor.bt_adv_name)
252
252
  : undefined,
253
253
  deviceId: loader ? null : undefined,
254
254
  }),
@@ -1,4 +1,8 @@
1
- import { EDeviceType, EFirmwareType } from '@onekeyfe/hd-shared';
1
+ import {
2
+ EDeviceType,
3
+ EFirmwareType,
4
+ canonicalizePro2BleAdvertisementName,
5
+ } from '@onekeyfe/hd-shared';
2
6
 
3
7
  import {
4
8
  resolveDeviceBleFirmwareVersion,
@@ -245,7 +249,8 @@ export const buildProtocolV2FeaturesPayload = ({
245
249
  const deviceId = status?.device_id ?? cached?.deviceId ?? null;
246
250
  const serialNo = firstValue(incomingSerialNo, cached?.serialNo) ?? '';
247
251
  const label = cached?.label ?? null;
248
- const bleName = firstValue(info?.coprocessor?.bt_adv_name, cached?.bleName);
252
+ const rawBleName = firstValue(info?.coprocessor?.bt_adv_name, cached?.bleName);
253
+ const bleName = rawBleName ? canonicalizePro2BleAdvertisementName(rawBleName) : rawBleName;
249
254
  const initialized = firstValue(status?.init_states, cached?.initialized) ?? null;
250
255
  // passphrase_enabled from a locked Pro2 is not authoritative. Only DeviceStatus
251
256
  // after PIN unlock can determine the final passphrase setting.
@@ -49,10 +49,22 @@ export function parseProtocolV2Resources(value: unknown): IProtocolV2Resources |
49
49
  };
50
50
  }
51
51
 
52
- const PROTOCOL_V2_RESOURCE_DEVICE_ROOTS = ['vol0:/bundles/', 'vol0:/loaders/rom/'] as const;
52
+ export function isProtocolV2ResourceArchiveEntryName(entryName: string): boolean {
53
+ const normalized = entryName.replace(/\\/g, '/');
54
+ if (!normalized.toLowerCase().endsWith('.okpkg')) {
55
+ return false;
56
+ }
57
+ const parts = normalized.split('/');
58
+ const fileName = parts[parts.length - 1] ?? '';
59
+ return (
60
+ fileName.length > 0 &&
61
+ !fileName.startsWith('.') &&
62
+ !parts.some(part => part === '__MACOSX' || part === '.' || part === '..' || part === '')
63
+ );
64
+ }
53
65
 
54
- function isAllowedResourceDevicePath(path: string): boolean {
55
- if (
66
+ function isSafeResourceDevicePath(path: string): boolean {
67
+ return !(
56
68
  path.includes('\\') ||
57
69
  path.includes('//') ||
58
70
  [...path].some(char => {
@@ -60,14 +72,6 @@ function isAllowedResourceDevicePath(path: string): boolean {
60
72
  return code <= 0x1f || code === 0x7f;
61
73
  }) ||
62
74
  path.split('/').some(part => part === '.' || part === '..')
63
- ) {
64
- return false;
65
- }
66
- if (path === PROTOCOL_V2_BOOT_RESOURCE_PACKAGE_STAGING_PATH) {
67
- return true;
68
- }
69
- return (
70
- path.endsWith('.okpkg') && PROTOCOL_V2_RESOURCE_DEVICE_ROOTS.some(root => path.startsWith(root))
71
75
  );
72
76
  }
73
77
 
@@ -93,7 +97,7 @@ function readResourceDevicePath(bytes: Uint8Array): string {
93
97
  throw new Error('Invalid Pro2 RESOURCE package device path metadata');
94
98
  }
95
99
  const path = readAscii(pathBytes, 0, pathBytes.byteLength);
96
- if (!isAllowedResourceDevicePath(path)) {
100
+ if (!isSafeResourceDevicePath(path)) {
97
101
  throw new Error(`Invalid Pro2 RESOURCE package device path: ${path}`);
98
102
  }
99
103
  return path;
@@ -1,4 +1,8 @@
1
- import { EDeviceType, EFirmwareType } from '@onekeyfe/hd-shared';
1
+ import {
2
+ EDeviceType,
3
+ EFirmwareType,
4
+ canonicalizePro2BleAdvertisementName,
5
+ } from '@onekeyfe/hd-shared';
2
6
  import { Enum_Capability } from '@onekeyfe/hd-transport';
3
7
 
4
8
  import type { PROTO } from '../constants';
@@ -125,9 +129,10 @@ export const resolveDeviceFirmwareType = (features?: DeviceFeaturesInput): EFirm
125
129
  export const resolveDeviceBleName = (features?: DeviceFeaturesInput): string | null => {
126
130
  if (!features) return null;
127
131
  const compatible = asCompatibleFeatures(features);
128
- return (
129
- firstNonEmptyString(compatible.bleName, compatible.onekey_ble_name, compatible.ble_name) ?? null
130
- );
132
+ const bleName =
133
+ firstNonEmptyString(compatible.bleName, compatible.onekey_ble_name, compatible.ble_name) ??
134
+ null;
135
+ return bleName ? canonicalizePro2BleAdvertisementName(bleName) : null;
131
136
  };
132
137
 
133
138
  export const resolveDeviceFirmwareVersion = (features?: DeviceFeaturesInput): string | null => {