diff options
| author | Daniel Micay <danielmicay@gmail.com> | 2021-01-05 04:16:42 -0500 |
|---|---|---|
| committer | Daniel Micay <danielmicay@gmail.com> | 2021-01-05 05:34:45 -0500 |
| commit | fe063f50fec346b57453f541308ad5ffa7454398 (patch) | |
| tree | 21589782d7d2b1c08133ebc485fb506e1bc8f71d /static | |
| parent | f9328e24c1b4adf2d6e5f36a471fd504fa8dd8f7 (diff) | |
add foundation for WebUSB-based install page
Diffstat (limited to 'static')
| -rw-r--r-- | static/js/web-install.js | 32 | ||||
| -rw-r--r-- | static/web-install.html | 65 |
2 files changed, 97 insertions, 0 deletions
diff --git a/static/js/web-install.js b/static/js/web-install.js new file mode 100644 index 00000000..5899fc9b --- /dev/null +++ b/static/js/web-install.js @@ -0,0 +1,32 @@ +// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT + +async function doConnect() { + const webusb = await Adb.open("WebUSB"); + + console.log("connected"); + + if (webusb.isAdb()) { + console.log("adb"); + const adb = await webusb.connectAdb("host::"); + await adb.reboot("bootloader"); + return; + } + + if (webusb.isFastboot()) { + console.log("fastboot"); + const fastboot = await webusb.connectFastboot(); + await fastboot.send("flashing unlock"); + await fastboot.receive(); + } +} + +if ("usb" in navigator) { + console.log("WebUSB available"); + + const connect = document.getElementById("connect"); + connect.onclick = doConnect; +} else { + console.log("WebUSB unavailable"); +} + +// @license-end diff --git a/static/web-install.html b/static/web-install.html new file mode 100644 index 00000000..b7a70440 --- /dev/null +++ b/static/web-install.html @@ -0,0 +1,65 @@ +<!DOCTYPE html> +<html lang="en" prefix="og: https://ogp.me/ns#"> + <head> + <meta charset="utf-8"/> + <title>Web install | GrapheneOS</title> + <meta name="description" content="Web-based installer for GrapheneOS"/> + <meta name="theme-color" content="#212121"/> + <meta name="msapplication-TileColor" content="#ffffff"/> + <meta name="viewport" content="width=device-width, initial-scale=1"/> + <meta name="twitter:site" content="@GrapheneOS"/> + <meta name="twitter:creator" content="@GrapheneOS"/> + <meta property="og:title" content="GrapheneOS web install"/> + <meta property="og:description" content="Web-based installer for GrapheneOS"/> + <meta property="og:type" content="website"/> + <meta property="og:image" content="https://grapheneos.org/opengraph.png"/> + <meta property="og:image:width" content="512"/> + <meta property="og:image:height" content="512"/> + <meta property="og:image:alt" content="GrapheneOS logo"/> + <meta property="og:url" content="https://grapheneos.org/web-install"/> + <meta property="og:site_name" content="GrapheneOS"/> + <link rel="icon" sizes="16x16 24x24 32x32 48x48 64x64" type="image/vnd.microsoft.icon" href="/favicon.ico"/> + <link rel="icon" sizes="any" type="image/svg+xml" href="/mask-icon.svg"/> + <link rel="mask-icon" href="/mask-icon.svg" color="#1a1a1a"/> + <link rel="apple-touch-icon" href="/apple-touch-icon.png"/> + <link rel="stylesheet" href="/grapheneos.css?29"/> + <link rel="manifest" href="/manifest.webmanifest"/> + <link rel="canonical" href="https://grapheneos.org/web-install"/> + <link rel="license" href="/LICENSE.txt"/> + <script defer="defer" src="/js/webadb.js?0"></script> + <script defer="defer" src="/js/web-install.js?0"></script> + </head> + <body> + <header> + <nav id="site-menu"> + <ul> + <li><a href="/">GrapheneOS</a></li> + <li><a href="/features">Features</a></li> + <li><a href="/install">Install</a></li> + <li><a href="/build">Build</a></li> + <li><a href="/usage">Usage</a></li> + <li><a href="/faq">FAQ</a></li> + <li><a href="/releases">Releases</a></li> + <li><a href="/source">Source</a></li> + <li><a href="/articles/">Articles</a></li> + <li><a href="/donate">Donate</a></li> + <li><a href="/contact">Contact</a></li> + </ul> + </nav> + </header> + <main id="web-install"> + <h1><a href="#web-install">Web install</a></h1> + + <button id="connect">Connect</button> + </main> + <footer> + <a href="/"><img src="/logo.png" width="512" height="512" alt=""/>GrapheneOS</a> + <ul id="social"> + <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li> + <li><a href="https://github.com/GrapheneOS">GitHub</a></li> + <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li> + <li><a href="https://www.linkedin.com/company/grapheneos/">LinkedIn</a></li> + </ul> + </footer> + </body> +</html> |
