Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
0382a32
chore(scramjet): bump submodule
MovByte Sep 13, 2025
fc91edb
docs: start work on the Interception Proxy Guide
MovByte Sep 13, 2025
9e1e99d
gkgoat (@gkgoat1)'s techniques and notes
gkgoat1 Sep 14, 2025
9af3da7
docs(interception-proxy-guide): restructure "Catch-all SW Request Int…
MovByte Sep 14, 2025
343102b
docs(interception-proxy-guide): create placeholder doc for encoding
MovByte Sep 14, 2025
0d78072
docs(interception-proxy-guide): complete more of the Getting Started doc
MovByte Sep 14, 2025
25505ac
docs(interception-proxy-guide): finish Encoding doc
MovByte Sep 14, 2025
6edd403
docs(interception-proxy-guide): create Testing and CI doc
MovByte Sep 14, 2025
07f6e26
docs(interception-proxy-guide): document Jails method and don't recom…
MovByte Sep 14, 2025
e0c94bf
docs(interception-proxy-guide): explicitly say "`new Function()`"
MovByte Sep 14, 2025
13f64a9
docs(interception-proxy-guide): explain why to use a SW as opposed to…
MovByte Sep 14, 2025
196072f
docs(interception-proxy-guide): add more placeholder sections for the…
MovByte Sep 14, 2025
428290c
docs(interception-proxy-guide): start working on a doc for adding ser…
MovByte Sep 14, 2025
1786e5c
chore: properly ignore directories in formatters
MovByte Sep 14, 2025
b3a3cb7
okie
soap-phia Sep 20, 2025
37650c3
scram
soap-phia Sep 22, 2025
046cfe0
Merge remote-tracking branch 'origin/docs-interception-proxy-guide' i…
soap-phia Sep 22, 2025
76bf9d7
add crimson, fix tsconfig.json
soap-phia Sep 23, 2025
f937f55
oh
soap-phia Sep 23, 2025
30ef93a
redirects
soap-phia Sep 23, 2025
fae0a2d
URL hashes
soap-phia Sep 23, 2025
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
okie
  • Loading branch information
soap-phia committed Sep 20, 2025
commit b3a3cb7dfbcfb60c7783102ee14fda75b2909410
Binary file removed public/img/rigtools2.png
Binary file not shown.
13 changes: 13 additions & 0 deletions src/components/PageHeader.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
const { title, description, author, link, kernver, nolower } = Astro.props;
---

{link && (<><a href={link}>{link}</a><br/><br/></>)}
{description}<br/>
{author && <small><i>By {author}</i><br/></small>}
{nolower &&
<br/><div class="starlight-aside starlight-aside--caution">
<p class="starlight-aside__title" aria-hidden="true"><svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor" class="starlight-aside__icon"><path d="M12 16C11.8022 16 11.6089 16.0587 11.4444 16.1686C11.28 16.2784 11.1518 16.4346 11.0761 16.6173C11.0004 16.8001 10.9806 17.0011 11.0192 17.1951C11.0578 17.3891 11.153 17.5673 11.2929 17.7071C11.4327 17.847 11.6109 17.9422 11.8049 17.9808C11.9989 18.0194 12.2 17.9996 12.3827 17.9239C12.5654 17.8482 12.7216 17.72 12.8315 17.5556C12.9413 17.3911 13 17.1978 13 17C13 16.7348 12.8946 16.4805 12.7071 16.2929C12.5196 16.1054 12.2652 16 12 16ZM22.67 17.47L14.62 3.47003C14.3598 3.00354 13.9798 2.61498 13.5192 2.3445C13.0586 2.07401 12.5341 1.9314 12 1.9314C11.4659 1.9314 10.9414 2.07401 10.4808 2.3445C10.0202 2.61498 9.64019 3.00354 9.38 3.47003L1.38 17.47C1.11079 17.924 0.966141 18.441 0.960643 18.9688C0.955144 19.4966 1.089 20.0166 1.34868 20.4761C1.60837 20.9356 1.9847 21.3185 2.43968 21.5861C2.89466 21.8536 3.41218 21.9964 3.94 22H20.06C20.5921 22.0053 21.1159 21.8689 21.5779 21.6049C22.0399 21.341 22.4234 20.9589 22.689 20.4978C22.9546 20.0368 23.0928 19.5134 23.0895 18.9814C23.0862 18.4493 22.9414 17.9277 22.67 17.47ZM20.94 19.47C20.8523 19.626 20.7245 19.7556 20.5697 19.8453C20.4149 19.935 20.2389 19.9815 20.06 19.98H3.94C3.76111 19.9815 3.5851 19.935 3.43032 19.8453C3.27553 19.7556 3.14765 19.626 3.06 19.47C2.97223 19.318 2.92602 19.1456 2.92602 18.97C2.92602 18.7945 2.97223 18.622 3.06 18.47L11.06 4.47003C11.1439 4.30623 11.2714 4.16876 11.4284 4.07277C11.5855 3.97678 11.766 3.92599 11.95 3.92599C12.134 3.92599 12.3145 3.97678 12.4716 4.07277C12.6286 4.16876 12.7561 4.30623 12.84 4.47003L20.89 18.47C20.9892 18.6199 21.0462 18.7937 21.055 18.9732C21.0638 19.1527 21.0241 19.3312 20.94 19.49V19.47ZM12 8.00003C11.7348 8.00003 11.4804 8.10538 11.2929 8.29292C11.1054 8.48046 11 8.73481 11 9.00003V13C11 13.2652 11.1054 13.5196 11.2929 13.7071C11.4804 13.8947 11.7348 14 12 14C12.2652 14 12.5196 13.8947 12.7071 13.7071C12.8946 13.5196 13 13.2652 13 13V9.00003C13 8.73481 12.8946 8.48046 12.7071 8.29292C12.5196 8.10538 12.2652 8.00003 12 8.00003Z"></path></svg>Caution</p>
<div class="starlight-aside__content"><p>{title} can not be used on lower Kernvers than Kernver {kernver}</p></div>
</div>
}
7 changes: 5 additions & 2 deletions src/content/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,21 @@ export const collections = {
"official-link": z.string().optional(),
kernver: z.number().optional(),
unenrollment: z.boolean().optional(),
nolower: z.boolean().optional(),
}),
}),
}),
};

export async function getkajigs(u: boolean) {
const kajigs = ( await getCollection("docs")).filter((doc) => doc.id.startsWith("kajigs/") && doc.data.kernver !== undefined && (!u || doc.data.unenrollment === true));
const kernver: Record<number, { title: string; slug: string }[]> = {};
const kernver: Record<number, { title: string; slug: string; color: string }[]> = {};
for (const doc of kajigs) {
const key = doc.data.kernver!;
let color = "default";
if (doc.data.nolower) color = "#FF69B4";
if (!kernver[key]) kernver[key] = [];
kernver[key].push({ title: doc.data.title, slug: `/${doc.slug}` });
kernver[key].push({ title: doc.data.title, slug: `/${doc.slug}`, color: color });
}
return kernver;
}
Expand Down
18 changes: 10 additions & 8 deletions src/content/docs/kajigs/aurora.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,33 +9,35 @@ sidebar:
kernver: 0
---

{frontmatter.link && (<><a href={frontmatter.link}>{frontmatter.link}</a><br/></>)}
{frontmatter.description}<br/>
{frontmatter.author && <small><i>By {frontmatter.author}</i><br/></small>}
import PageHeader from "/src/components/PageHeader.astro";

<PageHeader title={frontmatter.title} description={frontmatter.description} author={frontmatter.author} link={frontmatter.link} kernver={frontmatter.kernver} nolower={frontmatter.nolower}/>

#### What are the features?
- Recovery
- Payloads
- Booting other shims
- Wifi connectivity

## Prebuilts
## Flashing

First, obtain an image of Aurora.
### Prebuilts
Prebuilts are located at https://dl.mrwork.shop/aurora
## Building
### Building
```
git clone https://github.com/AerialiteLabs/Aurora.git
cd Aurora
```
Run the next command with a raw shim or nanoshim
```
sudo bash Aurora /path/to/shim.bin
sudo bash Aurora -i /path/to/shim.bin
```
Alternatively, you can automatically download a shim and build it with the following command:
```
sudo bash Aurora <board> --auto
```

## Flashing
Linux: (Replace /dev/sdX with your flash drive/sd card)
```
sudo dd if=/path/to/board-aurora.bin of=/dev/sdX bs=1M status=progress
Expand Down Expand Up @@ -64,4 +66,4 @@ ChromeOS: Download [Chromebook Recovery Utility](https://chromewebstore.google.c
```
:::note
ChromeOS' Files app will NOT WORK! Use VT2 or Crostini USB passthrough if you must.
:::
:::
6 changes: 3 additions & 3 deletions src/content/docs/kajigs/badrecovery.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ kernver: 3
unenrollment: true
---

{frontmatter.link && (<><a href={frontmatter.link}>{frontmatter.link}</a><br/></>)}
{frontmatter.description}<br/>
{frontmatter.author && <small><i>By {frontmatter.author}</i><br/></small>}
import PageHeader from "/src/components/PageHeader.astro";

<PageHeader title={frontmatter.title} description={frontmatter.description} author={frontmatter.author} link={frontmatter.link} kernver={frontmatter.kernver} nolower={frontmatter.nolower}/>

## Steps

Expand Down
8 changes: 4 additions & 4 deletions src/content/docs/kajigs/br0ker.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ kernver: 5
unenrollment: true
---

{frontmatter.link && (<><a href={frontmatter.link}>{frontmatter.link}</a><br/></>)}
{frontmatter.description}<br/>
{frontmatter.author && <small><i>By {frontmatter.author}</i><br/></small>}
import PageHeader from "/src/components/PageHeader.astro";

<PageHeader title={frontmatter.title} description={frontmatter.description} author={frontmatter.author} link={frontmatter.link} kernver={frontmatter.kernver} nolower={frontmatter.nolower}/>

It requires you to be on v132 or lower, which can be achieved by downgrading to v132 LTS. You can also get the bundled update with Sh1mmer, by building with it's [update payload](/kajigs/sh1mmer#update-payload)

Expand Down Expand Up @@ -62,4 +62,4 @@ Sh1ttyOOBE + BadBr0ker (v135-137)
mount --bind /tmp/chrome_dev.conf /etc/chrome_dev.conf
initctl restart ui
```
4. Press [Ctrl+Alt+GoBack] and set up the device fully through the setup process. DO NOT POWER OFF THE DEVICE UNTIL FULLY SETUP, OR UNENROLLMENT WILL FAIL.
4. Press [Ctrl+Alt+GoBack] and set up the device fully through the setup process. DO NOT POWER OFF THE DEVICE UNTIL FULLY SETUP, OR UNENROLLMENT WILL FAIL.
13 changes: 8 additions & 5 deletions src/content/docs/kajigs/caub.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ link: https://caub.blobfox.org
kernver: 4
---

{frontmatter.link && (<><a href={frontmatter.link}>{frontmatter.link}</a><br/></>)}
{frontmatter.description}<br/>
{frontmatter.author && <small><i>By {frontmatter.author}</i><br/></small>}
import PageHeader from "/src/components/PageHeader.astro";

<PageHeader title={frontmatter.title} description={frontmatter.description} author={frontmatter.author} link={frontmatter.link} kernver={frontmatter.kernver} nolower={frontmatter.nolower}/>

:::note
This relies on you being under version 128. See [ChromeOS Versions](/kajigs/crosver).
These rely on you being under version 128. See [ChromeOS Versions](/kajigs/crosver).
:::

Caub sets networks as "metered" so that ChromeOS believes they are on hotspots and is less likely to update. It still updates half the time.
Expand All @@ -26,13 +26,16 @@ Caub sets networks as "metered" so that ChromeOS believes they are on hotspots a

This is what [caudns](/kajigs/caudns) is derived off of, and is for slightly more advanced users.

#### Steps

1. Download [this file](/assets/caubdns_editor.html) onto a USB drive
2. Put it in a chromebook and open the HTML file
3. Follow onscreen instructions
<div id="caudns">

### CauDNS

Go to the CauDNS website [https://caudns.vercel.app/](https://caudns.vercel.app/) and follow the instructions. If it goes down and the source code is also gone, contact [Crystals](https://omada.cafe/contact/crystals/).

## [Source Code](https://github.com/dragon731012/cauDNS)
</div>
</div>
8 changes: 4 additions & 4 deletions src/content/docs/kajigs/cryptosmite.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ kernver: 2
unenrollment: true
---

{frontmatter.link && (<><a href={frontmatter.link}>{frontmatter.link}</a><br/></>)}
{frontmatter.description}<br/>
{frontmatter.author && <small><i>By {frontmatter.author}</i><br/></small>}
import PageHeader from "/src/components/PageHeader.astro";

<PageHeader title={frontmatter.title} description={frontmatter.description} author={frontmatter.author} link={frontmatter.link} kernver={frontmatter.kernver} nolower={frontmatter.nolower}/>

### Steps
1. Boot [Sh1mmer](/kajigs/sh1mmer#booting)
2. Select `Payloads`
3. Select `Cryptosmite (unenrollment up to r119, by writable)`
3. Select `Cryptosmite (unenrollment up to r119, by writable)`
6 changes: 3 additions & 3 deletions src/content/docs/kajigs/dump-kiosk.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ keywords: ["chromeos exploits"]
kernver: 0
---

{frontmatter.link && (<><a href={frontmatter.link}>{frontmatter.link}</a><br/></>)}
{frontmatter.description}<br/>
{frontmatter.author && <small><i>By {frontmatter.author}</i><br/></small>}
import PageHeader from "/src/components/PageHeader.astro";

<PageHeader title={frontmatter.title} description={frontmatter.description} author={frontmatter.author} link={frontmatter.link} kernver={frontmatter.kernver} nolower={frontmatter.nolower}/>

:::note
You need to have linux experience for this.
Expand Down
6 changes: 3 additions & 3 deletions src/content/docs/kajigs/extensions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ description: Various exploits to disable managed extensions
kernver: 0
---

{frontmatter.link && (<><a href={frontmatter.link}>{frontmatter.link}</a><br/></>)}
{frontmatter.description}<br/>
{frontmatter.author && <small><i>By {frontmatter.author}</i><br/></small>}
import PageHeader from "/src/components/PageHeader.astro";

<PageHeader title={frontmatter.title} description={frontmatter.description} author={frontmatter.author} link={frontmatter.link} kernver={frontmatter.kernver} nolower={frontmatter.nolower}/>

### DPS

Expand Down
32 changes: 32 additions & 0 deletions src/content/docs/kajigs/galapagos.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: Galapagos
description: Documentation for Galapagos.
keywords: ["chromeos exploits"]
author: Rafflesia
---

import PageHeader from "/src/components/PageHeader.astro";

<PageHeader title={frontmatter.title} description={frontmatter.description} author={frontmatter.author} link={frontmatter.link} kernver={frontmatter.kernver} nolower={frontmatter.nolower}/>

Galapagos is not an exploit, but rather a tool designed to help you find oversights in AppLocker.
The tool will scan AppLocker rules on your PC to find locations where they are not enforced, and where you may be able to run executables.

# Requirements

- Windows 7+
- Microsoft Excel

# USAGE

1. Download linked file
2. Go to properties and then select unblock and apply
3. Open the file
4. Enable editing
5. Enable content
6. Click run GALAPAGOS
7. Begin the system analysis

Once the analysis is done, you will be left with paths where EXEs are allowed to run. Put your EXE into one of these paths (and rename them if required) and then execute them.

## [Download](https://alicesworld-my.sharepoint.com/:x:/g/personal/alice_alicesworld_tech/EW0LkXUOkq5Ogjexme-rtToBp5WQ5BfV27ZHf5tGjHusHg?e=y2dtJg)
51 changes: 51 additions & 0 deletions src/content/docs/kajigs/hsts.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
title: HSTS (Cisco, iboss)
description: Documentation for HSTS (Cisco, iboss).
keywords: ["chromeos exploits"]
author: 9fps
---

import PageHeader from "/src/components/PageHeader.astro";

<PageHeader title={frontmatter.title} description={frontmatter.description} author={frontmatter.author} link={frontmatter.link} kernver={frontmatter.kernver} nolower={frontmatter.nolower}/>

If a blocking system requires both an extension and a Chrome App to function, the extension may communicate with the Chrome App over HTTP on the `lo` (local) network interface. If that's the case, HSTS can most likely be used to bypass it.

:::noteRequirements

- `chrome://net-internals` unblocked
- A Chrome Extension that comes with a helper Chrome App
:::

## Steps

1. Verify that you have an extension that's affected (if you don't, it doesn't hurt to go for it anyways, because this is easy to undo).
2. Open `chrome://net-internals` on your school device.
3. Go to the "Domain Security Policy" tab.
4. Put `127.0.0.1` in the "Add HSTS domain"'s "Domain" text box.
5. Click "Add".
6. Repeat Steps 4 and 5, but use `localhost` instead of `127.0.0.1`.
7. Open `chrome://restart`.

## Known Working Extensions

- Cisco Umbrella
- iboss

## Known Not Working Extensions

- Securly
- GoGuardian
- Anything that doesn't have both a Chrome App and Extension

:::noteIssues

- If you have a force-installed extension and have a Chrome App from the same developer force-installed, it's worth giving this a try.
- If you discover another filter this works with, reply with the name.
- If you want someone to check whether an extension is exploitable, just send the application's and extension's Chrome Web Store URLs in a reply.
- You might have to log out and back in for this to work with certain extensions (this may apply to iboss).
:::

## How this works

Most websites use HTTPS, but that's impossible on localhost, so they have to use HTTP (since they can't get a TLS certificate). Of course, when you start talking HTTPS with an HTTP server, it can't understand, so if you use this, the extension and the app are effectively firewalled from each other, so the extension can't ask the app whether a site should be blocked or not.
8 changes: 4 additions & 4 deletions src/content/docs/kajigs/icarus.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ kernver: 4
unenrollment: true
---

{frontmatter.link && (<><a href={frontmatter.link}>{frontmatter.link}</a><br/></>)}
{frontmatter.description}<br/>
{frontmatter.author && <small><i>By {frontmatter.author}</i><br/></small>}
import PageHeader from "/src/components/PageHeader.astro";

<PageHeader title={frontmatter.title} description={frontmatter.description} author={frontmatter.author} link={frontmatter.link} kernver={frontmatter.kernver} nolower={frontmatter.nolower}/>

:::note
Icarus is REALLY annoying to do! [Br0ker](/kajigs/br0ker) is far easier and reccomended instead.

Extensive steps for Icarus will not be provided in these docs.
:::

If you ***really*** want to use Icarus, follow the guide at [this link](https://github.com/cosmicdevv/Icarus-Lite?tab=readme-ov-file#usage-instructions).
If you ***really*** want to use Icarus, follow the guide at [this link](https://github.com/cosmicdevv/Icarus-Lite?tab=readme-ov-file#usage-instructions).
6 changes: 3 additions & 3 deletions src/content/docs/kajigs/incognito.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ keywords: ["chromeos exploits"]
kernver: 4
---

{frontmatter.link && (<><a href={frontmatter.link}>{frontmatter.link}</a><br/></>)}
{frontmatter.description}<br/>
{frontmatter.author && <small><i>By {frontmatter.author}</i><br/></small>}
import PageHeader from "/src/components/PageHeader.astro";

<PageHeader title={frontmatter.title} description={frontmatter.description} author={frontmatter.author} link={frontmatter.link} kernver={frontmatter.kernver} nolower={frontmatter.nolower}/>

:::note
This relies on you being between version 123 and version 127. See [ChromeOS Versions](/kajigs/crosver).
Expand Down
33 changes: 27 additions & 6 deletions src/content/docs/kajigs/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ sidebar:
order: 1
---

{frontmatter.link && (<><a href={frontmatter.link}>{frontmatter.link}</a><br/></>)}
{frontmatter.description}<br/>
{frontmatter.author && <small><i>By {frontmatter.author}</i><br/></small>}
import PageHeader from "/src/components/PageHeader.astro";

<PageHeader title={frontmatter.title} description={frontmatter.description} author={frontmatter.author} link={frontmatter.link} kernver={frontmatter.kernver} nolower={frontmatter.nolower}/>

## What is a kajig?
Kajigs are exploits/tools, typically made for use on managed devices.
Expand All @@ -26,7 +26,28 @@ Kajigs can be posted by anyone with the `Programmer` or `samyk` roles in the Dis

<div id="kajigs">
### What kajigs can I use?
Most kajigs can be used in all previous Kernvers.

This depends. For extension bypasses, Please see [Non-ChromeOS Exploits](/kajigs/notcros)

For ChromeOS Exploits, Refer to the information below.

#### What is a Kernver?

A Kernver is ChromeOS's ***Kern***el ***Ver***sion. (Hence, Kernver)

Kernvers are used by Google to lock the Chromebook to a range of ChromeOS versions, with the purpose of patching exploits.

While your device is in a Kernver (read which versions those encapsulate below), the lowest recoverable ChromeOS version is the bottom of the Kernver's range.

[Read more about downgrading and how to recover here.](/kajigs/versions)

Now, about the table below. If you are at a ***higher*** Kernver than a listed kajig, you cannot use it.

If you are at a ***lower*** Kernver, you can do it. If a kajig cannot be used on a lower Kernver, it will be highlighted a vibrant pink and stated in the kajig's page.

:::note
If you are able and willing to, you can change your Kernver [Unenrolling](/kajigs/unenrollment) and [Changing your Kernver](/kajigs/set-kernver).
:::

import { getkajigs, kernvers } from '../../config.ts';
export const kernver = await getkajigs()
Expand All @@ -44,7 +65,7 @@ export const kernver = await getkajigs()
<tr key={kv}>
<td>{Array.isArray(ver) ? ver[0] : kv}</td>
<td>{Array.isArray(ver) ? ver[1] : ver}</td>
<td>{kernver[kv]?.map((k) => <a href={k.slug}>{k.title}</a>).reduce((a, b) => [a, ", ", b])}</td>
<td>{kernver[kv]?.map((k) => <a style={{ textDecoration: "none", color: k.color }} href={k.slug}>{k.title}</a>).reduce((a, b) => [a, ", ", b])}</td>
</tr>
))}
</tbody>
Expand All @@ -53,4 +74,4 @@ export const kernver = await getkajigs()
:::note
If you are on Kernver 1, you can recover to any version. However, if a kajig is listed as Kernver 1, it can only be done below v112.
:::
</div>
</div>
6 changes: 3 additions & 3 deletions src/content/docs/kajigs/legacy-kajigs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ description: Documentation for Legacy Kajigs.
keywords: ["chromeos exploits"]
---

{frontmatter.link && (<><a href={frontmatter.link}>{frontmatter.link}</a><br/></>)}
{frontmatter.description}<br/>
{frontmatter.author && <small><i>By {frontmatter.author}</i><br/></small>}
import PageHeader from "/src/components/PageHeader.astro";

<PageHeader title={frontmatter.title} description={frontmatter.description} author={frontmatter.author} link={frontmatter.link} kernver={frontmatter.kernver} nolower={frontmatter.nolower}/>

:::note
Most if not all of these kajigs no longer work, and are only here for legacy reasons. On slightly modern ChromeOS, these will NOT work!
Expand Down
Loading