Loading app/public/resources/GS290.json +40 −21 Original line number Diff line number Diff line { "$schema": "../schemas/devices.schema.json", "skip_clear_halt": true, "steps": [ { "mode": "bootloader", "command": ["reboot bootloader", "delay 15"] }, { "id": "connect-bootloader", "command": ["connect bootloader", "flashing unlock unlocked"], "command": ["connect bootloader"], "needUserGesture": true }, { "id": "unlocking-gs290", "needUserGesture": true "needUserGesture": true, "command": ["flashing unlock goto_flashing", "delay 5"] }, { "id": "flashing", "mode": "bootloader", "command": [ "flash system system.img", "flash vendor vendor.img", "flash boot boot.img", "flash dtbo dtbo.img", "flash recovery recovery.img", "flash logo logo.img", "flash md1dsp md1dsp.img", "flash md1img md1img.img", "flash spmfw spmfw.img", "flash lk lk.img", "flash lk2 lk.img", "flash sspm_1 sspm.img", "flash sspm_2 sspm.img", "flash tee1 trustzone1.bin", "flash tee2 trustzone2.bin", "flash preloader preloader.img", "erase userdata", "erase metadata", "reboot adb" "reboot recovery" ] }, { "id": "format-device", "needUserGesture": true }, { "id": "go-to-apply-update", "needUserGesture": true }, { "id": "sideload", "command": "sideload GS290-sideload-rom.zip" }, { "id": "sideload-ended", "needUserGesture": true }, { "id": "connect-bootloader", "command": ["connect bootloader", "reboot"], "needUserGesture": true }, { "id": "murena-workspace-account", "needUserGesture": true Loading @@ -46,9 +56,18 @@ ], "folder": [ { "name": "GS290 installer", "name": "GS290-recovery-images.zip", "path": "https://images.ecloud.global/official/GS290/recovery-IMG-e-latest-a15-official-GS290.zip", "unzip": true, "path": "https://images.ecloud.global/official/GS290/IMG-e-latest-s-official-GS290.zip" "mapping": { "^dtbo.*img$": "dtbo.img", "^boot.*img$": "boot.img", "^recovery.*img$": "recovery.img" } }, { "name": "GS290-sideload-rom.zip", "path": "https://images.ecloud.global/official/GS290/e-latest-a15-official-GS290.zip" } ] } app/src/lib/adb/adb-device.ts +4 −1 Original line number Diff line number Diff line Loading @@ -234,10 +234,13 @@ export class AdbDevice { onProgress?: SideloadProgressCallback, ): Promise<void> { this.ensureConnected(); // Set 5min as uperbound timeout; userdebug devices stop sending ack after vertification stage // and actual install starts after that. const SIDELOAD_TIMEOUT_MS = 5 * 60_000; await performSideload( this._transport, blob, () => this.receivePacket(), () => readPacket((length) => this._transport.receiveWithTimeout(length, SIDELOAD_TIMEOUT_MS)), undefined, onProgress, ); Loading Loading
app/public/resources/GS290.json +40 −21 Original line number Diff line number Diff line { "$schema": "../schemas/devices.schema.json", "skip_clear_halt": true, "steps": [ { "mode": "bootloader", "command": ["reboot bootloader", "delay 15"] }, { "id": "connect-bootloader", "command": ["connect bootloader", "flashing unlock unlocked"], "command": ["connect bootloader"], "needUserGesture": true }, { "id": "unlocking-gs290", "needUserGesture": true "needUserGesture": true, "command": ["flashing unlock goto_flashing", "delay 5"] }, { "id": "flashing", "mode": "bootloader", "command": [ "flash system system.img", "flash vendor vendor.img", "flash boot boot.img", "flash dtbo dtbo.img", "flash recovery recovery.img", "flash logo logo.img", "flash md1dsp md1dsp.img", "flash md1img md1img.img", "flash spmfw spmfw.img", "flash lk lk.img", "flash lk2 lk.img", "flash sspm_1 sspm.img", "flash sspm_2 sspm.img", "flash tee1 trustzone1.bin", "flash tee2 trustzone2.bin", "flash preloader preloader.img", "erase userdata", "erase metadata", "reboot adb" "reboot recovery" ] }, { "id": "format-device", "needUserGesture": true }, { "id": "go-to-apply-update", "needUserGesture": true }, { "id": "sideload", "command": "sideload GS290-sideload-rom.zip" }, { "id": "sideload-ended", "needUserGesture": true }, { "id": "connect-bootloader", "command": ["connect bootloader", "reboot"], "needUserGesture": true }, { "id": "murena-workspace-account", "needUserGesture": true Loading @@ -46,9 +56,18 @@ ], "folder": [ { "name": "GS290 installer", "name": "GS290-recovery-images.zip", "path": "https://images.ecloud.global/official/GS290/recovery-IMG-e-latest-a15-official-GS290.zip", "unzip": true, "path": "https://images.ecloud.global/official/GS290/IMG-e-latest-s-official-GS290.zip" "mapping": { "^dtbo.*img$": "dtbo.img", "^boot.*img$": "boot.img", "^recovery.*img$": "recovery.img" } }, { "name": "GS290-sideload-rom.zip", "path": "https://images.ecloud.global/official/GS290/e-latest-a15-official-GS290.zip" } ] }
app/src/lib/adb/adb-device.ts +4 −1 Original line number Diff line number Diff line Loading @@ -234,10 +234,13 @@ export class AdbDevice { onProgress?: SideloadProgressCallback, ): Promise<void> { this.ensureConnected(); // Set 5min as uperbound timeout; userdebug devices stop sending ack after vertification stage // and actual install starts after that. const SIDELOAD_TIMEOUT_MS = 5 * 60_000; await performSideload( this._transport, blob, () => this.receivePacket(), () => readPacket((length) => this._transport.receiveWithTimeout(length, SIDELOAD_TIMEOUT_MS)), undefined, onProgress, ); Loading