1- import Downloader from "./downloader" ;
21import Numworks from "numworks.js" ;
3-
2+ import { betas as betaReleases } from "../firmware/betas" ;
43import {
54 Firmware ,
65 releases as finalReleases ,
7- Releases ,
6+ Releases
87} from "../firmware/firmwares" ;
9- import { betas as betaReleases } from "../firmware/betas" ;
108import 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
1313var 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