summaryrefslogtreecommitdiff
path: root/static/js/web-install.js
diff options
context:
space:
mode:
authorDaniel Micay <danielmicay@gmail.com>2021-01-05 09:45:09 -0500
committerDaniel Micay <danielmicay@gmail.com>2021-01-05 09:46:56 -0500
commitd78ceb1e9b4c9eb767db994182a547472fcfeef7 (patch)
tree64ae3b7a56a5b30a6f3e57a370cbaee7d1c20214 /static/js/web-install.js
parentebfef1f23b96a9eee63be18febc989d3d1eda880 (diff)
add stub download implementation
Diffstat (limited to 'static/js/web-install.js')
-rw-r--r--static/js/web-install.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/static/js/web-install.js b/static/js/web-install.js
index 1f623fad..85cd195b 100644
--- a/static/js/web-install.js
+++ b/static/js/web-install.js
@@ -28,6 +28,36 @@ async function unlockBootloader() {
await fastboot.receive();
}
+async function downloadRelease() {
+ const webusb = await Adb.open("WebUSB");
+
+ if (!webusb.isFastboot()) {
+ console.log("error: not in fastboot mode");
+ }
+
+ console.log("connecting with fastboot");
+
+ const fastboot = await webusb.connectFastboot();
+ await fastboot.send("getvar:product");
+ const response = await fastboot.receive();
+ if (fastboot.get_cmd(response) == "FAIL") {
+ throw new Error("getvar product failed");
+ }
+ const decoder = new TextDecoder();
+ const product = decoder.decode(fastboot.get_payload(response));
+
+ const baseUrl = "https://releases.grapheneos.org/";
+ const metadata = await (await fetch(baseUrl + product + "-stable")).text();
+ const buildNumber = metadata.split(" ")[0];
+ const downloadUrl = baseUrl + product + "-factory-" + buildNumber + ".zip";
+ console.log(downloadUrl);
+
+ // Download factory images
+ //
+ // Need to do this in a way that works well with huge files, particularly since the zip needs
+ // to be extracted. Could potentially split it up on the server if this works out badly.
+}
+
async function lockBootloader() {
const webusb = await Adb.open("WebUSB");
@@ -53,6 +83,10 @@ if ("usb" in navigator) {
unlockBootloaderButton.disabled = false;
unlockBootloaderButton.onclick = unlockBootloader;
+ const downloadReleaseButton = document.getElementById("download-release");
+ downloadReleaseButton.disabled = false;
+ downloadReleaseButton.onclick = downloadRelease;
+
const lockBootloaderButton = document.getElementById("lock-bootloader");
lockBootloaderButton.disabled = false;
lockBootloaderButton.onclick = lockBootloader;