Files
gitlab-instance-0a899031_re…/README.md
2026-04-04 00:21:41 -05:00

3.6 KiB

redroid-android13

This repo is the minimal Android 13 redroid bundle that matches the optimized 5570 instance.

It keeps only the parts that were actually used:

  • redroid/redroid:13.0.0
  • MindTheGapps
  • libhoudini
  • Kitsune Mask / Magisk Delta
  • Pixel 7 Pro device profile
  • the post-fs-data fix that keeps Magisk Installed and the settings page healthy

Included files

  • redroid.py
  • run_redroid.py
  • bootstrap_redroid.py
  • verify_offline_bundle.py
  • offline/README.md
  • offline/manifest.json
  • stuff/mindthegapps.py
  • stuff/houdini.py
  • stuff/houdini_hack.py
  • stuff/magisk.py
  • assets/redroid_extreme_post_fs_data.sh
  • local offline/downloads/
  • local offline/images/

Offline archive

The repo tracks the offline bundle metadata under offline. The large zip/apk/tar payloads are intentionally kept out of Git and should be stored locally under offline/downloads/ and offline/images/.

Use offline/manifest.json for checksums and source metadata, and offline/README.md for the expected local layout.

Expected local files:

  • offline/downloads/mindthegapps.zip
  • offline/downloads/libhoudini.zip
  • offline/downloads/libhoudini_hack.zip
  • offline/downloads/magisk.apk
  • offline/downloads/magisk.version
  • offline/images/redroid-redroid-13.0.0-latest.tar

redroid.py now tries to pull redroid/redroid:13.0.0-latest first. If that fails, it falls back to the local image cache, then to offline/images/redroid-redroid-13.0.0-latest.tar.

Dependencies

python -m pip install -r requirements.txt

Verify the offline bundle

python verify_offline_bundle.py

Build the 5570 image

python redroid.py -mtg -i -m

Expected image tag:

redroid/redroid:13.0.0_mindthegapps_houdini_magisk

Launch the container

python run_redroid.py \
  --image redroid/redroid:13.0.0_mindthegapps_houdini_magisk \
  --bridge libhoudini \
  --device-profile pixel-7-pro \
  --data-dir ~/data-redroid13 \
  --port 5570 \
  --replace

Apply the 5570 hardening

python bootstrap_redroid.py \
  --serial 127.0.0.1:5570 \
  --device-profile pixel-7-pro \
  --proxy-host auto \
  --install-extreme-script

This post-boot step:

  • disables SetupWizard
  • marks the device provisioned
  • enables high accuracy location mode
  • allows com.android.shell to use mock location
  • applies the Pixel 7 Pro / user / release-keys / locked / green identity

With --install-extreme-script, the validated script assets/redroid_extreme_post_fs_data.sh is copied to /data/adb/post-fs-data.d/20-redroid-extreme.sh so that:

  • vendor/bin/su stays visible to app namespaces after reboot
  • Pixel 7 Pro properties are re-applied on every boot

Verified 5570 state

The matching 5570 instance was already validated with:

  • ro.product.model=Pixel 7 Pro
  • ro.build.type=user
  • ro.build.tags=release-keys
  • ro.boot.vbmeta.device_state=locked
  • ro.boot.verifiedbootstate=green
  • app UID su -V = 27001
  • app UID su -mm -c id = uid=0(root)
  • Kitsune home page shows a normal Installed state
  • Kitsune settings page opens normally and SuList / MagiskHide is configurable

Current scope

This repo only reproduces the system environment for the optimized 5570 build.

It does not yet include:

  • virtual camera
  • camera HAL
  • TikTok Live specific patches