From 9672f63cd9ec0b4b5b716690f89e7db92b30e086 Mon Sep 17 00:00:00 2001 From: eric Date: Sat, 4 Apr 2026 16:08:32 -0500 Subject: [PATCH] 's' --- README.md | 18 +++++++++++++----- run_redroid.py | 18 ++++++++++++++++++ 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 56a0f1e..01c22f4 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,16 @@ python tools/compat.py -c podman --gpu-mode auto python redroid.py -mtg -i -m ``` +Build flags (short options): + +| Flag | Long form | Meaning | +|------|-----------|---------| +| **`-mtg`** | `--install-mindthegapps` | Bake **MindTheGapps** (Google apps framework) into the image | +| **`-i`** | `--install-houdini` | Bake **libhoudini** + **redroid houdini hack** (ARM translation on x86) | +| **`-m`** | `--install-magisk` | Bake **Kitsune Mask / Magisk** bootless payload into the image | + +Together they produce `redroid/redroid:13.0.0_mindthegapps_houdini_magisk`. None of these control the **screen**; display is set when you **run** the container (`run_redroid.py`). + Air-gapped (requires a complete `offline/` tree): ```bash @@ -158,13 +168,11 @@ With **`--gpu-mode guest`** (or **`auto`** when no `/dev/dri` exists), the displ ``` The exact device path varies (Intel/AMD/NVIDIA, `nvidia-docker`, etc.); see [redroid-doc](https://github.com/remote-android/redroid-doc) GPU notes. -2. **Stay on software rendering** but tune the virtual panel (sometimes reduces glitches): +2. **Software GLES (`guest`)** — force low load on the virtual display (often reduces black screen / flicker): ```bash - python run_redroid.py ... --adb-insecure \ - --extra-prop androidboot.redroid_width=720 \ - --extra-prop androidboot.redroid_height=1280 \ - --extra-prop androidboot.redroid_fps=15 + python run_redroid.py ... --adb-insecure --gpu-mode guest --soft-display --memory 4g ``` + `--soft-display` sets 720×1280, 15 FPS, dpi 280. You can tune further with `--extra-prop` if needed. 3. **First boot / SetupWizard** can sit on a dark screen for a while. Run **`bootstrap_redroid.py`** once `adb` shows `device` so provisioning and wizard are skipped as intended. diff --git a/run_redroid.py b/run_redroid.py index 9387444..63e3c78 100644 --- a/run_redroid.py +++ b/run_redroid.py @@ -271,6 +271,13 @@ def main(): action="store_true", help="Print the generated command without executing it", ) + parser.add_argument( + "--soft-display", + action="store_true", + help=( + "Lower software-GLES load: 720x1280, fps=15, dpi=280 (helps black screen / flicker with guest GPU)" + ), + ) parser.add_argument( "--extra-prop", action="append", @@ -357,6 +364,15 @@ def main(): cmd.extend(bridge_props(bridge)) cmd.extend(preset_props(preset)) cmd.extend(device_profile_props(device_profile)) + if args.soft_display: + cmd.extend( + [ + "androidboot.redroid_width=720", + "androidboot.redroid_height=1280", + "androidboot.redroid_fps=15", + "androidboot.redroid_dpi=280", + ] + ) cmd.extend(args.extra_prop) if args.replace and not args.dry_run: @@ -376,6 +392,8 @@ def main(): print_color("Selected launch preset: {}".format(preset), bcolors.GREEN) if device_profile != "none": print_color("Selected device profile: {}".format(device_profile), bcolors.GREEN) + if args.soft_display: + print_color("Soft display: 720x1280 @ 15fps (reduced GLES load)", bcolors.GREEN) if args.adb_insecure: print_color( "ADB insecure: injecting boot props immediately after image name "