From a9cc6b7b792664cabfe672112342370355cfd321 Mon Sep 17 00:00:00 2001 From: YusufOzmen01 Date: Sat, 26 Sep 2026 21:50:17 +0300 Subject: [PATCH] Updated README --- README.md | 41 ++++++++++------------------------------- 1 file changed, 10 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index c6efb14..66d9be9 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,25 @@ -# Meta Quest kexec +# Quest-KeXec -An experimental ARM64 kexec implementation for Meta Quest headsets. - -It starts a custom Linux kernel from rooted Android without flashing a -partition. The included RAM-only initramfs provides a BusyBox shell over USB -Ethernet. +A kernel module for Meta Quest headsets that allows you to load a custom kernel without unlocking the bootloader of the headset. Based on [kexec-at-home](https://github.com/provide-salad/kexec-at-home) > **Note:** This project has only been developed and tested on Meta Quest Pro. -> Other Quest headsets require device-specific kernel and loader work. +> Other Quest headsets require device specific kernel and loader work. +> **ROOT IS REQUIRED** -## What works on Quest Pro - -- all 8 CPUs -- DRM and both panels -- USB Ethernet shell -- AOP/QMP handoff -- syncboss -- camera CPAS/CDM -- SPMI and SMB5 charging - -The tested kernel changes are available in: - -https://github.com/YusufOzmen01/oculus-linux-kernel - -Patch copies are also included under `kernel/patches/`. +A modified kernel for this kexec for the Quest Pro is available [from the repository here](https://github.com/YusufOzmen01/oculus-linux-kernel) +The changes done to the kernel are in `kernel/patches/` as patches. ## Basic build -Install Clang/LLD, an `aarch64-linux-gnu-` toolchain, Python 3, `adb`, `dtc`, -`fdtput`, `curl` and `make`. +Install Clang/LLD, an `aarch64-linux-gnu-` toolchain, Python 3, `adb`, `dtc`, `fdtput`, `curl` and `make`. Build the kexec modules against the exact Android kernel running on the headset: ```sh -make module KDIR=/path/to/android-kernel-out \ - LOCALVERSION=-g49638c7a8637 +make module KDIR=/path/to/android-kernel-out LOCALVERSION=-g49638c7a8637 ``` -Build the BusyBox USB-network initramfs: +To build a basic initramfs that has busybox and USB ethernet (to get shell), run: ```sh make initramfs @@ -48,15 +30,12 @@ kernel trees. ## Basic usage -With rooted Android running: - ```sh # Capture the current runtime device tree and kernel information tools/capture.sh out/captured # Prepare the target payload -tools/prep.sh out/captured /path/to/target/Image \ - out/initramfs.gz out/payload +tools/prep.sh out/captured /path/to/target/Image out/initramfs.gz out/payload # Push, verify and boot it tools/run.sh out/payload