129 lines
3.6 KiB
Markdown
129 lines
3.6 KiB
Markdown
# 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](C:/Users/admin/Desktop/redroid-android13/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](C:/Users/admin/Desktop/redroid-android13/offline/manifest.json) for checksums and source metadata, and [offline/README.md](C:/Users/admin/Desktop/redroid-android13/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
|
|
|
|
```bash
|
|
python -m pip install -r requirements.txt
|
|
```
|
|
|
|
## Verify the offline bundle
|
|
|
|
```bash
|
|
python verify_offline_bundle.py
|
|
```
|
|
|
|
## Build the 5570 image
|
|
|
|
```bash
|
|
python redroid.py -mtg -i -m
|
|
```
|
|
|
|
Expected image tag:
|
|
|
|
```bash
|
|
redroid/redroid:13.0.0_mindthegapps_houdini_magisk
|
|
```
|
|
|
|
## Launch the container
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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](C:/Users/admin/Desktop/redroid-android13/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
|