Skip to Content
En esta página

firmwareUpdateV4

Actualización del firmware de Protocol V2 para OneKey Pro 2 y OneKey Neo.

No llames a este método en Classic / Mini / Touch / Pro. Esos dispositivos usan firmwareUpdateV2 o firmwareUpdateV3.

Ejecuta este método solo después de que el usuario seleccione el dispositivo de destino y apruebe la actualización. Las variables binarias siguientes deben contener artefactos verificados para ese modelo, proporcionados por tu flujo de publicación.

const res = await HardwareSDK.firmwareUpdateV4(connectId, { platform: 'desktop', // 'native' | 'desktop' | 'ext' | 'web' | 'web-embed' bootloaderBinary, applicationP1Binary, applicationP2Binary, coprocessorBinary, resourceArchiveBinary, }); if (!res.success) throw new Error(res.payload.error);

El método instala los binarios que le pasas y después informa del progreso mediante FIRMWARE_PROGRESS / FIRMWARE_TIP. Después de DeviceFirmwareUpdateRequest el dispositivo puede reiniciarse; el SDK vuelve a conectarse con el mismo protocolo.

Parámetros

Parámetros comunes opcionales

ParámetroTipoObligatorioNotas
platform'native' | 'desktop' | 'ext' | 'web' | 'web-embed'SíEntorno del host
bootloaderBinaryArrayBufferNoImagen de Bootloader
applicationP1BinaryArrayBufferNoPartición de aplicación 1
applicationP2BinaryArrayBufferNoPartición de aplicación 2
coprocessorBinaryArrayBufferNoImagen BLE / del coprocesador
resourceArchiveBinaryArrayBufferNoZIP completo de recursos de Protocol V2. Core escribe únicamente los archivos modificados
forcedUpdateResbooleanNoForzar la actualización de recursos
expectedDeviceIdstringNoRechazar la continuación si la identidad del dispositivo cambia durante la actualización

Romloader no se puede instalar mediante firmwareUpdateV4. Las imágenes SE (se01Binary … se04Binary) se aceptan en el tipo, pero no son una vía de integración general.

OneKey App usa un flujo de plan preparado / asociación al host para las versiones oficiales. Los hosts de terceros deben pasar binarios que ya hayan verificado.

Resultado

{ success: true, payload: { bleVersion: string, firmwareVersion: string, bootloaderVersion: string, } }

Error

{ success: false, payload: { error: string, code?: string | number, } }

Recuerda: no reintentar automáticamente firmwareUpdateV4 tras un tiempo de espera del transporte agotado o una desconexión. Es posible que el dispositivo ya esté instalando. Vuelve a leer su estado y luego decide.

La confirmación mediante botón durante la actualización es informativa (REQUEST_BUTTON con reason='firmware-update'). No llames a uiResponse() para ese aviso. Si el usuario cancela el aviso, cancela la llamada al SDK; no envíes un segundo Cancel.

Última actualización el