Note
Check here for video demonstration
Note
This guide works on Chromebooks with Android subsystem support (ARC++/ARCVM)
Tested on ChromeOS Flex v134.0.6998.130
| #include "websocket.h" | |
| #define HTTP_WRONG_PROTOCOL_HEADERS \ | |
| "HTTP/1.1 405 Method Not Allowed\r\n" \ | |
| "Connection: closed\r\n" \ | |
| "\r\n" | |
| #define HTTP_UPGRADE_HEADERS \ | |
| "HTTP/1.1 101 Switching Protocols\r\n" \ | |
| "Connection: upgrade\r\n" \ |
| #define _GNU_SOURCE | |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <string.h> | |
| #include <unistd.h> | |
| #include <link.h> | |
| #include <linux/limits.h> | |
| #include <gnu/libc-version.h> | |
| char *crew_prefix, crew_glibc_prefix[PATH_MAX], crew_libc_so_path[PATH_MAX]; |
| #define _GNU_SOURCE | |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <stdbool.h> | |
| #include <unistd.h> | |
| #include <errno.h> | |
| #include <string.h> | |
| #include <linux/limits.h> | |
| #include <sys/mman.h> |
| #!/bin/bash | |
| function get_coord_index() { | |
| local array_width=$1 | |
| local i=$2 | |
| local j=$3 | |
| echo "$(((i * $array_width) + j))" | |
| } |
Note
Check here for video demonstration
Note
This guide works on Chromebooks with Android subsystem support (ARC++/ARCVM)
Tested on ChromeOS Flex v134.0.6998.130
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <X11/Xlib.h> | |
| #include <X11/Xatom.h> | |
| int main(int argc, char** argv) { | |
| Window win = strtoul(argv[1], NULL, 16); | |
| Display *display = XOpenDisplay(getenv("ORIGDISP")); | |
| XEvent ev; |
As you might know, all Crostini containers are running under the "unprivileged container" mode and are kind of restricted, which means:
So what's the solution? This guide will cover things below:
In some scenarios, it is inconvenient/unnecessary to login with a password, for example, when using Chromebook as a home server or kiosk.
However, ChromeOS doesn't provide any way to enable auto-login or to disable the sign-in password (there was such a feature on macOS many years ago). And Google have no interest in adding this functionality also.
Recently I installed ChromeOS on my HTPC, planning to use it as a TV box (and the same trouble annoyed me). So I created a program to do it for me.
| RELEASE=release-R123-15786.B-chromeos-6.1 | |
| LLVM_VERSION=18 | |
| curl -L https://apt.llvm.org/llvm.sh | sudo bash -s "${LLVM_VERSION}" | |
| for f in clang clang++ ld.lld llvm-objdump llvm-ar llvm-nm llvm-strip llvm-objcopy llvm-readelf; do | |
| sudo ln -sf $f-$LLVM_VERSION /usr/bin/$f | |
| done | |
| git clone https://chromium.googlesource.com/chromiumos/third_party/kernel.git -b ${RELEASE} --depth=1 |
Note
This tutorial is also available on Reddit
Overview
Notes