diff --git a/packages/keepkey-desktop/src/helpers/kk-state-controller/firmwareUtils.ts b/packages/keepkey-desktop/src/helpers/kk-state-controller/firmwareUtils.ts index 1b7cfe4d..a263f9a3 100644 --- a/packages/keepkey-desktop/src/helpers/kk-state-controller/firmwareUtils.ts +++ b/packages/keepkey-desktop/src/helpers/kk-state-controller/firmwareUtils.ts @@ -10,7 +10,7 @@ const FIRMWARE_BASE_URL = 'https://raw.githubusercontent.com/keepkey/keepkey-desktop/master/firmware/' const FIRMWARE_BASE_URL_BETA = - 'https://raw.githubusercontent.com/keepkey/keepkey-desktop/develop/firmware/' + 'https://raw.githubusercontent.com/keepkey/keepkey-desktop/master/firmware/' export const getFirmwareBaseUrl = async () => { return (await settings.allowBetaFirmware) ? FIRMWARE_BASE_URL_BETA : FIRMWARE_BASE_URL diff --git a/packages/keepkey-desktop/src/ipcListeners.ts b/packages/keepkey-desktop/src/ipcListeners.ts index 328e6316..c32e25fe 100644 --- a/packages/keepkey-desktop/src/ipcListeners.ts +++ b/packages/keepkey-desktop/src/ipcListeners.ts @@ -227,7 +227,15 @@ export const ipcListeners: IpcListeners = { async keepkeyUpdateFirmware() { const baseUrl = await getFirmwareBaseUrl() const firmwareData = await getAllFirmwareData(baseUrl) - const url = (await getLatestFirmwareData(firmwareData)).firmware.url + const latestFirmwareData = await getLatestFirmwareData(firmwareData) + const url = latestFirmwareData.firmware.url + + // Verify we're getting the expected version + const expectedVersion = (await settings.allowBetaFirmware) ? firmwareData.beta.firmware.version : firmwareData.latest.firmware.version + if (latestFirmwareData.firmware.version !== expectedVersion) { + throw new Error(`Firmware version mismatch. Expected ${expectedVersion} but got ${latestFirmwareData.firmware.version}`) + } + const firmware = await downloadFirmware(baseUrl, url) if (!firmware) throw new Error(`Failed to load firmware from url '${url}'`) const wallet = kkStateController.wallet