add stub download implementation

This commit is contained in:
Daniel Micay 2021-01-05 09:45:09 -05:00
parent ebfef1f23b
commit d78ceb1e9b
2 changed files with 47 additions and 0 deletions

View File

@ -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;

View File

@ -139,6 +139,19 @@
confirm.</p>
</section>
<section id="obtaining-factory-images">
<h2><a href="#obtaining-factory-images">Obtaining factory images</a></h2>
<p>You need to obtain the GrapheneOS factory images for your device to proceed with
the installation process.</p>
<p>Press the button below to start the download:</p>
<button id="download-release" disabled="disabled">Download release</button>
<p><strong>Download not implemented yet.</strong></p>
</section>
<section>
<h2>Incomplete</h2>
</section>