From 8ad12b5feeddacfcfd7c6631eb71bb13ea2e746e Mon Sep 17 00:00:00 2001
From: kxtzownsu <kxtzownsu@gmail.com>
Date: Mon, 11 Mar 2024 08:24:12 -0400
Subject: [PATCH] ui touches (I think) and site creation

---
 app.js                                   | 113 +++++++++++++++++++++++
 builder/root/usr/sbin/factory_install.sh |   2 +-
 index.html                               |  52 +++++++++++
 particles.json                           | 110 ++++++++++++++++++++++
 style.css                                |  64 +++++++++++++
 5 files changed, 340 insertions(+), 1 deletion(-)
 create mode 100644 app.js
 create mode 100644 index.html
 create mode 100644 particles.json
 create mode 100644 style.css

diff --git a/app.js b/app.js
new file mode 100644
index 0000000..f02ba9f
--- /dev/null
+++ b/app.js
@@ -0,0 +1,113 @@
+document.addEventListener("DOMContentLoaded", function() {
+  particlesJS('particles-js', {
+    "particles": {
+      "number": {
+        "value": 80,
+        "density": {
+          "enable": true,
+          "value_area": 800
+        }
+      },
+      "color": {
+        "value": "#cba6f7"
+      },
+      "shape": {
+        "type": "circle",
+        "stroke": {
+          "width": 0,
+          "color": "#000000"
+        },
+        "polygon": {
+          "nb_sides": 5
+        },
+        "image": {
+          "src": "img/github.svg",
+          "width": 100,
+          "height": 100
+        }
+      },
+      "opacity": {
+        "value": 1,
+        "random": false,
+        "anim": {
+          "enable": false,
+          "speed": 1,
+          "opacity_min": 0.1,
+          "sync": false
+        }
+      },
+      "size": {
+        "value": 6,
+        "random": true,
+        "anim": {
+          "enable": false,
+          "speed": 0,
+          "size_min": 0.1,
+          "sync": false
+        }
+      },
+      "line_linked": {
+        "enable": false,
+        "distance": 150,
+        "color": "#ffffff",
+        "opacity": 0.4,
+        "width": 1
+      },
+      "move": {
+        "enable": true,
+        "speed": 2,
+        "direction": "left",
+        "random": false,
+        "straight": false,
+        "out_mode": "out",
+        "bounce": false,
+        "attract": {
+          "enable": false,
+          "rotateX": 600,
+          "rotateY": 1200
+        }
+      }
+    },
+    "interactivity": {
+      "detect_on": "canvas",
+      "events": {
+        "onhover": {
+          "enable": false,
+          "mode": "grab"
+        },
+        "onclick": {
+          "enable": false,
+          "mode": "remove"
+        },
+        "resize": true
+      },
+      "modes": {
+        "grab": {
+          "distance": 150,
+          "line_linked": {
+            "opacity": 1
+          }
+        },
+        "bubble": {
+          "distance": 400,
+          "size": 40,
+          "duration": 2,
+          "opacity": 8,
+          "speed": 3
+        },
+        "repulse": {
+          "distance": 200,
+          "duration": 0.4
+        },
+        "push": {
+          "particles_nb": 4
+        },
+        "remove": {
+          "particles_nb": 2
+        }
+      }
+    },
+    "selector": ".header",
+    "retina_detect": true
+  });
+});
diff --git a/builder/root/usr/sbin/factory_install.sh b/builder/root/usr/sbin/factory_install.sh
index 8082dc6..1cbf177 100755
--- a/builder/root/usr/sbin/factory_install.sh
+++ b/builder/root/usr/sbin/factory_install.sh
@@ -69,7 +69,7 @@ credits(){
   echo "TPMD: $tpmdaemon"
   echo "-=-=-=-=-=-=-=-=-=-=-"
   echo "kxtzownsu - Writing KVS, Providing kernver 0 & kernver 1 files."
-  echo "crossystem - Providing kernver 2 files."
+  echo "planetearth1363 - Providing kernver 2 files."
   echo "miimaker - Providing kernver 3 files."
   echo "OlyB - Helping me figure out the shim builder, seriously, thanks."
   echo "Google - Writing the 'tpmc' command :3"
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..e45c86c
--- /dev/null
+++ b/index.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML>
+<html>
+  <head>
+    <title>KVS - Kernel Version Switcher</title>
+    <link href="style.css" rel="stylesheet" type="text/css">
+  </head>
+  <body style="padding-bottom: 3%;">
+    <script src="https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
+	  <script src="app.js"></script>
+    <div class="header" style="z-index:0;padding:0;margin:0;">
+      <div id="particles-js" style="z-index:-1;"></div>
+      <h1>KVS</h1>
+      <p>Kernel Version Switcher</p>
+    </div>
+    <div class="main" style="padding-bottom: 3%;">
+      <div class="about">
+        <h3>What is KVS?</h3>
+        <p>KVS is a side project of mine that will change your current tpm_kernver to ANY version between 0 and 3.</p>
+        <p>This works using the hexdumps of 0x1008 (kernver TPM index) and <code>tpmc</code> to write the hexdumps of your selected kernver to the 0x1008 TPM index.</p>
+      </div>
+      <div class="installation">
+        <h3>How do I use this?</h3>
+        <p>To use KVS, you must download your shim from <a href="https://dl.kxtz.dev/shims/KVS/">kxtz' shim mirror</a></p>
+        <p>After downloading, flash your USB/SD with the file, I recommend Chrome Recovery Utility.</p>
+      </div>
+      <div class="faq">
+        <h3>FAQ</h3>
+        <h4><p><b>Q: </b>Will this brick my device?</p></h4>
+        <p><b>A: </b>No, KVS has no way to permanantly brick / hard brick a device. At most, it will make ChromeOS stop booting, but you will still be able to boot shims to recover the kernver index.</p>
+        <h4><b>Q: </b>What kernvers are there?</h4>
+        <p><b>A: </b>There are 4 valid kernvers, 0, 1, 2, and 3. </p>
+        <h4><b>Q: </b>What versions can I downgrade to with kernver _</h4>
+        <p><b>A: </b>Heres what versions you can downgrade to with each kernver</p>
+        <p>kernver 0: any</p>
+        <p>kernver 1: any</p>
+        <p>kernver 2: 112 - 119</p>
+        <p>kernver 3: 120 - latest</p>
+        <h4><b>Q: </b>What is the difference between kernver 0 and kernver 1?</h4>
+        <p><b>A: </b>Both kernver 0 and kernver 1 can downgrade to any version, but kernver 0 doesn't get overriden if you recover to a newer version.</p>
+      </div>
+      <div class="credits">
+        <h3>Credits</h3>
+        <p><b>kxtzownsu</b> - Writing KVS, Providing kernver 0 & kernver 1 files.</p>
+        <p><b>planetearth1363</b> - Providing kernver 2 files</p>
+        <p><b>miimaker</b> - Providing kernver 3 files</p>
+        <p><b>OlyB</b> - Helping me with the shim builder, most of the shim builder wouldn't exist without him.</p>
+        <p><b>Google</b> - Writing the <code>tpmc</code> command :3</p>
+      </div>
+      <div style="padding-bottom: 3%;"></div>
+    </div>
+  </body>
+</html>
\ No newline at end of file
diff --git a/particles.json b/particles.json
new file mode 100644
index 0000000..c24e693
--- /dev/null
+++ b/particles.json
@@ -0,0 +1,110 @@
+{
+  "particles": {
+    "number": {
+      "value": 80,
+      "density": {
+        "enable": true,
+        "value_area": 800
+      }
+    },
+    "color": {
+      "value": "#cba6f7"
+    },
+    "shape": {
+      "type": "circle",
+      "stroke": {
+        "width": 0,
+        "color": "#000000"
+      },
+      "polygon": {
+        "nb_sides": 5
+      },
+      "image": {
+        "src": "img/github.svg",
+        "width": 100,
+        "height": 100
+      }
+    },
+    "opacity": {
+      "value": 1,
+      "random": false,
+      "anim": {
+        "enable": false,
+        "speed": 1,
+        "opacity_min": 0.1,
+        "sync": false
+      }
+    },
+    "size": {
+      "value": 6,
+      "random": true,
+      "anim": {
+        "enable": false,
+        "speed": 0,
+        "size_min": 0.1,
+        "sync": false
+      }
+    },
+    "line_linked": {
+      "enable": false,
+      "distance": 150,
+      "color": "#ffffff",
+      "opacity": 0.4,
+      "width": 1
+    },
+    "move": {
+      "enable": true,
+      "speed": 2,
+      "direction": "left",
+      "random": false,
+      "straight": false,
+      "out_mode": "out",
+      "bounce": false,
+      "attract": {
+        "enable": false,
+        "rotateX": 600,
+        "rotateY": 1200
+      }
+    }
+  },
+  "interactivity": {
+    "detect_on": "canvas",
+    "events": {
+      "onhover": {
+        "enable": false,
+        "mode": "grab"
+      },
+      "onclick": {
+        "enable": false,
+        "mode": "remove"
+      },
+      "resize": true
+    },
+    "modes": {
+      "grab": {
+        "distance": 150,
+        "line_linked": {
+          "opacity": 1
+        }
+      },
+      "bubble": {
+        "distance": 400,
+        "size": 40,
+        "duration": 2,
+        "opacity": 8,
+        "speed": 3
+      },
+      "repulse": {
+        "distance": 200,
+        "duration": 0.4
+      },
+      "push": {
+        "particles_nb": 4
+      },
+      "remove": {
+        "particles_nb": 2
+      }
+    }
+  },
+  "retina_detect": true
+}
\ No newline at end of file
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..4f90782
--- /dev/null
+++ b/style.css
@@ -0,0 +1,64 @@
+@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk&family=Sofia+Sans&family=Exo:wght@500&display=swap");
+
+body {
+  position: relative;
+  background-color: #1b1b29;
+  color: #cba6f7;
+  margin: 0;
+  padding: 0;
+  font-family: "Exo", sans-serif;
+  text-align: center;
+  justify-content: center;
+  align-items: center;
+  min-height: 100vh;
+}
+
+code {
+  background-color: #11111b;
+  color: #a6e3a1;
+  padding: 0.2%;
+}
+
+.header {
+  position: relative;
+  margin: 0;
+  width: 100%;
+  text-align: center;
+  color: #cba6f7;
+  background-color: #1e1e2e;
+}
+
+.header h1 {
+  font-size: 10vw;
+  padding-top: 3%;
+  margin: 0;
+  font-family: "Sofia Sans", sans-serif;
+}
+
+.header p{
+  padding-bottom: 3%;
+}
+
+h3 {
+  font-family: "Space Grotesk", monospace;
+  font-size: 50px;
+}
+
+.main {
+  background-color: #1b1b29;
+  height: 100vh;
+  margin-left: 3%;
+  margin-right: 3%;
+  margin-bottom: 3%;
+}
+
+#particles-js {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%; /* Match width of .header */
+  height: 100%; /* Match height of .header */
+  padding: 0;
+  z-index: -1;
+  background-color: transparent;
+}