better error messages
This commit is contained in:
116
index.html
116
index.html
@@ -1,48 +1,33 @@
|
|||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
|
||||||
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>Notaquest</title>
|
<title>Notaquest</title>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/tweetnacl@1.0.3/nacl-fast.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/tweetnacl@1.0.3/nacl-fast.min.js"></script>
|
||||||
<link
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css" />
|
||||||
rel="stylesheet"
|
|
||||||
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<meta
|
<meta name="description"
|
||||||
name="description"
|
content="Enable ADB on your Meta Quest without creating a developer organization or verifying with a credit card. One-click tool using Web Bluetooth." />
|
||||||
content="Enable ADB on your Meta Quest without creating a developer organization or verifying with a credit card. One-click tool using Web Bluetooth."
|
<meta name="keywords"
|
||||||
/>
|
content="meta quest, quest 3, adb, developer mode, sideload, sidequest, no organization, web bluetooth" />
|
||||||
<meta
|
|
||||||
name="keywords"
|
|
||||||
content="meta quest, quest 3, adb, developer mode, sideload, sidequest, no organization, web bluetooth"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- Open Graph (social sharing) -->
|
<!-- Open Graph (social sharing) -->
|
||||||
<meta
|
<meta property="og:title" content="Notaquest - Enable ADB on Meta Quest without a developer org" />
|
||||||
property="og:title"
|
<meta property="og:description"
|
||||||
content="Notaquest - Enable ADB on Meta Quest without a developer org"
|
content="Skip the organization, skip the credit card. Enable ADB on your Quest from a web page." />
|
||||||
/>
|
|
||||||
<meta
|
|
||||||
property="og:description"
|
|
||||||
content="Skip the organization, skip the credit card. Enable ADB on your Quest from a web page."
|
|
||||||
/>
|
|
||||||
<meta property="og:url" content="https://notaquest.owendeed.com" />
|
<meta property="og:url" content="https://notaquest.owendeed.com" />
|
||||||
<meta property="og:type" content="website" />
|
<meta property="og:type" content="website" />
|
||||||
|
|
||||||
<!-- Twitter/X -->
|
<!-- Twitter/X -->
|
||||||
<meta name="twitter:card" content="summary" />
|
<meta name="twitter:card" content="summary" />
|
||||||
<meta
|
<meta name="twitter:title" content="Notaquest - Enable ADB on Meta Quest without a developer org" />
|
||||||
name="twitter:title"
|
<meta name="twitter:description"
|
||||||
content="Notaquest - Enable ADB on Meta Quest without a developer org"
|
content="Skip the organization, skip the credit card. Enable ADB on your Quest from a web page." />
|
||||||
/>
|
</head>
|
||||||
<meta
|
|
||||||
name="twitter:description"
|
<body>
|
||||||
content="Skip the organization, skip the credit card. Enable ADB on your Quest from a web page."
|
|
||||||
/>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<main class="container">
|
<main class="container">
|
||||||
<h1>Notaquest</h1>
|
<h1>Notaquest</h1>
|
||||||
<p>
|
<p>
|
||||||
@@ -79,7 +64,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
currently only tested on meta quest 3 but should work on other devices.
|
currently only tested on meta quest 3 but should work on other devices.
|
||||||
make a gitea issue (link at the bottom) if it doesn't work for any
|
make a github issue (link at the bottom) if it doesn't work for any
|
||||||
reason.
|
reason.
|
||||||
</p>
|
</p>
|
||||||
<details>
|
<details>
|
||||||
@@ -88,9 +73,7 @@
|
|||||||
meta's api blocks requests from websites (CORS). the proxy forwards
|
meta's api blocks requests from websites (CORS). the proxy forwards
|
||||||
your request to graph.oculus.com and nothing else. nothing is stored
|
your request to graph.oculus.com and nothing else. nothing is stored
|
||||||
or logged. you can
|
or logged. you can
|
||||||
<a href="https://api.notaquest.owendeed.com" target="_blank"
|
<a href="https://api.notaquest.owendeed.com" target="_blank">view the live worker source code</a>
|
||||||
>view the live worker source code</a
|
|
||||||
>
|
|
||||||
or check the network tab yourself. the code is a literal quine
|
or check the network tab yourself. the code is a literal quine
|
||||||
program, if i change it, it will change.
|
program, if i change it, it will change.
|
||||||
</p>
|
</p>
|
||||||
@@ -152,14 +135,10 @@
|
|||||||
</details>
|
</details>
|
||||||
<br />
|
<br />
|
||||||
<a href="https://www.tampermonkey.net/">tampermonkey website</a><br />
|
<a href="https://www.tampermonkey.net/">tampermonkey website</a><br />
|
||||||
<a
|
<a href="https://chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo">chrome (+chromium
|
||||||
href="https://chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo"
|
based browsers) extension</a>
|
||||||
>chrome (+chromium based browsers) extension</a
|
|
||||||
>
|
|
||||||
<br />
|
<br />
|
||||||
<a href="https://addons.mozilla.org/firefox/addon/tampermonkey/"
|
<a href="https://addons.mozilla.org/firefox/addon/tampermonkey/">firefox (+firefox based browsers) extension</a>
|
||||||
>firefox (+firefox based browsers) extension</a
|
|
||||||
>
|
|
||||||
</details>
|
</details>
|
||||||
<details>
|
<details>
|
||||||
<summary>automated method (tampermonkey required)</summary>
|
<summary>automated method (tampermonkey required)</summary>
|
||||||
@@ -183,11 +162,9 @@
|
|||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<button
|
<button onclick="
|
||||||
onclick="
|
|
||||||
window.location.href = 'https://secure.oculus.com/#notaquest'
|
window.location.href = 'https://secure.oculus.com/#notaquest'
|
||||||
"
|
">
|
||||||
>
|
|
||||||
get token automatically (tampermonkey script must be installed)
|
get token automatically (tampermonkey script must be installed)
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
@@ -201,11 +178,7 @@
|
|||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li>
|
||||||
Log into
|
Log into
|
||||||
<a
|
<a href="https://developers.meta.com/horizon/manage/" target="_blank">developers.meta.com/horizon/manage/</a>
|
||||||
href="https://developers.meta.com/horizon/manage/"
|
|
||||||
target="_blank"
|
|
||||||
>developers.meta.com/horizon/manage/</a
|
|
||||||
>
|
|
||||||
</li>
|
</li>
|
||||||
<li>Press F12 to open developer tools</li>
|
<li>Press F12 to open developer tools</li>
|
||||||
<li>Application -> Cookies -> click the site</li>
|
<li>Application -> Cookies -> click the site</li>
|
||||||
@@ -213,11 +186,7 @@
|
|||||||
<li>Paste it below</li>
|
<li>Paste it below</li>
|
||||||
</ol>
|
</ol>
|
||||||
</details>
|
</details>
|
||||||
<input
|
<input id="token" placeholder="paste your Meta token here" style="width: 100%; max-width: 500px" />
|
||||||
id="token"
|
|
||||||
placeholder="paste your Meta token here"
|
|
||||||
style="width: 100%; max-width: 500px"
|
|
||||||
/>
|
|
||||||
<br /><br />
|
<br /><br />
|
||||||
<button onclick="showQR()">
|
<button onclick="showQR()">
|
||||||
generate prefilled token qr code for mobile
|
generate prefilled token qr code for mobile
|
||||||
@@ -229,12 +198,8 @@
|
|||||||
<button id="go" onclick="enableADB()">enable adb</button>
|
<button id="go" onclick="enableADB()">enable adb</button>
|
||||||
<p id="nobt" style="display: none"></p>
|
<p id="nobt" style="display: none"></p>
|
||||||
<p id="status"></p>
|
<p id="status"></p>
|
||||||
<a href="https://github.com/owenthepuppy/notaquest/issues"
|
<a href="https://github.com/owenthepuppy/notaquest/issues">report an issue here</a><br />
|
||||||
>report an issue here</a
|
<a href="https://gitea.owendeed.com/Toasterkitten/notaquest">view the source here</a><br />
|
||||||
><br />
|
|
||||||
<a href="https://gitea.owendeed.com/Toasterkitten/notaquest"
|
|
||||||
>view the source here</a
|
|
||||||
><br />
|
|
||||||
<a href="https://owenfeldman.com">a project by owenfeldman.com</a>
|
<a href="https://owenfeldman.com">a project by owenfeldman.com</a>
|
||||||
</main>
|
</main>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/qrcode-generator@1.4.4/qrcode.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/qrcode-generator@1.4.4/qrcode.min.js"></script>
|
||||||
@@ -509,15 +474,29 @@
|
|||||||
encrypt(devReq, sharedKey),
|
encrypt(devReq, sharedKey),
|
||||||
);
|
);
|
||||||
if (devRespRaw.length) {
|
if (devRespRaw.length) {
|
||||||
var devResp = parseProto(decrypt(devRespRaw, sharedKey));
|
var decrypted = decrypt(devRespRaw, sharedKey);
|
||||||
|
if (decrypted) {
|
||||||
|
var devResp = parseProto(decrypted);
|
||||||
if (devResp[2] === 0) {
|
if (devResp[2] === 0) {
|
||||||
status(
|
status("done! adb should be enabled. restarting your headset may be required for it to work.");
|
||||||
"done! adb should be enabled. restarting your headset may be required for it to work.",
|
|
||||||
);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (devResp[3]) {
|
||||||
|
var errMsg = new TextDecoder().decode(devResp[3]);
|
||||||
|
if (errMsg.toLowerCase().includes("internet")) {
|
||||||
|
status("your quest isn't connected to wifi. connect it to wifi and try again.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
status("quest rejected the command in a way i don't understand. do basic debugging, reboot, new token, all the normal stuff. if not working still, send a github issue with this data (it shouldn't have private info): " + errMsg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
status("quest responded but said something i don't understand. this is not an issue i have encountered yet. do basic debugging, reboot, new token, all the normal stuff. if not working still, send a github issue with this data (it shouldn't have private info): response fields: " + JSON.stringify(Object.fromEntries(Object.entries(devResp).map(([k, v]) => [k, v instanceof Uint8Array ? Array.from(v).map(b => b.toString(16)).join('') : v]))));
|
||||||
|
} else {
|
||||||
|
status("quest responded but decryption failed. something went very wrong, try a new token, if that doesn't work, make a github issue. raw length: " + devRespRaw.length);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
status("no response from quest for dev mode command. BLE connection may have dropped, or the Quest refused something silently.");
|
||||||
}
|
}
|
||||||
status("sent! check if adb is enabled.");
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
status(
|
status(
|
||||||
"error: " +
|
"error: " +
|
||||||
@@ -527,5 +506,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
Reference in New Issue
Block a user