Skip to content

Commit 944b4c7

Browse files
committed
Fixed installer for O2.0.0 on N0110
1 parent 0b99ee8 commit 944b4c7

File tree

1 file changed

+42
-21
lines changed

1 file changed

+42
-21
lines changed

src/dfu/installer.ts

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import Downloader from "./downloader";
21
import Numworks from "numworks.js";
3-
2+
import { betas as betaReleases } from "../firmware/betas";
43
import {
54
Firmware,
65
releases as finalReleases,
7-
Releases,
6+
Releases
87
} from "../firmware/firmwares";
9-
import { betas as betaReleases } from "../firmware/betas";
108
import Install from "../pages/Install";
9+
import Downloader from "./downloader";
10+
1111

1212
// use JSON.parse(JSON.stringify()) to do a deep copy to avoid problems
1313
var releasesList: Releases = JSON.parse(JSON.stringify(finalReleases));
@@ -261,6 +261,29 @@ export default class Installer {
261261
);
262262
}
263263

264+
let externalFirmware = await externalBlob.arrayBuffer();
265+
266+
// FIXME: Username ain't working
267+
if (this.firmwareInfos?.headerVersion === 2) {
268+
// Add username to the binary.
269+
if (this.installInstance.state.getname) {
270+
let externalBuffer = new Uint8Array(
271+
externalFirmware
272+
);
273+
const username =
274+
this.installInstance.state.customname;
275+
276+
let encoder = new TextEncoder();
277+
let encoded = encoder.encode(username + "\0");
278+
if (encoded.length > 16) {
279+
encoded[15] = 0;
280+
encoded = encoded.slice(0, 16);
281+
}
282+
283+
externalBuffer.set(encoded, 0x1003c);
284+
}
285+
}
286+
264287
await this.calculator.flashExternal(
265288
await externalBlob.arrayBuffer()
266289
);
@@ -269,24 +292,22 @@ export default class Installer {
269292

270293
let internalFirmware = await internalBlob.arrayBuffer();
271294

272-
// Add username to the binary.
273-
if (this.installInstance.state.getname) {
274-
let internalBuffer = new Uint8Array(
275-
internalFirmware
276-
);
277-
const username =
278-
this.installInstance.state.customname;
279-
280-
let encoder = new TextEncoder();
281-
let encoded = encoder.encode(username + "\0");
282-
if (encoded.length > 16) {
283-
encoded[15] = 0;
284-
encoded = encoded.slice(0, 16);
285-
}
295+
if (this.firmwareInfos?.headerVersion !== 2) {
296+
// Add username to the binary.
297+
if (this.installInstance.state.getname) {
298+
let internalBuffer = new Uint8Array(
299+
internalFirmware
300+
);
301+
const username =
302+
this.installInstance.state.customname;
303+
304+
let encoder = new TextEncoder();
305+
let encoded = encoder.encode(username + "\0");
306+
if (encoded.length > 16) {
307+
encoded[15] = 0;
308+
encoded = encoded.slice(0, 16);
309+
}
286310

287-
if (this.firmwareInfos?.headerVersion === 2) {
288-
internalBuffer.set(encoded, 0x1003c);
289-
} else {
290311
internalBuffer.set(encoded, 0x1f8);
291312
}
292313
}

0 commit comments

Comments
 (0)