📈 GH Trending Explorer 🎲 Surprise me

← all repos

MysticGSI / mysticgsi

git clone https://github.com/MysticGSI/mysticgsi.git

A tool to build a Generic System Image from (almost) any stock firmware

—
stars, 24h
—
stars, 7 days
+232
stars, 30 days · #1,128
232
★ total
76
forks · 1 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageShell
LicenseApache-2.0
Created2026-09-25 (25d ago)
Last push10d ago
Watchers5
OwnerOrganization

Links

README excerpt
# MysticGSI
A tool to build a GSI (Generic System Image) from stock Android firmware.
Supported firmware: 
- full OTA zips (`payload.bin`) 
- fastboot packages 
- `super.img`, sparse images 
- `system.new.dat` 
- Samsung tars 
- Huawei `UPDATE.APP` 
- Unisoc `.pac` 
- LG `.kdz` 
- Oppo `.ozip` 
- QFIL packages 
- Sony `.sin` 
- Pixel factory images 
Partitions can be ext4, EROFS or F2FS.
## Setup
This project requires Python 3.10+.
### Automatic setup
#### macOS / Linux
On macOS, install Homebrew and Xcode Command Line Tools first.
 [code] 
#### Windows
Install Python 3 and Git if you haven't already. Make sure both are added to PATH.
We recommend using WinGet:
 [code] 
 [code] 
On macOS, Debian/Ubuntu, Arch and Windows, the script installs system packages and
creates `.venv`. On NixOS, it checks the development shell. Native image
tools and the Apktool JAR are bundled with the repository.
### Manual setup
Swap `requirements.txt` for `requirements-dev.txt` if you want the dev tools.
The bundled Apktool JAR needs Java; native image tools are under
`tools/bin/ / `.
 macOS 
 [code] 
 Ubuntu / Debian 
 [code] 
 Arch 
 [code] 
 NixOS 
 [code] 
 Windows 
 [code] 
## Usage
 [code] 
On Windows, run from the repository root:
 [code] 
F2FS extraction on Windows needs a local NTFS working directory that allows
case sensitivity. Use an up-to-date Python for Windows directory permissions.
### Commands
 [code] 
### Command-line options
 [code] 
By default, an image is signed with AOSP's AVB RSA-2048 test key. You can pass `--avb-key /path/to/key.pem` to sign with your own RSA private key.
To keep separate system and product partitions:
 [code] 
This writes `*-system.img`, `*-product.img`, and images for any other partitions
normally merged into system. Partitions already inside system stay there.
The ZIP contains each image as ` .img`; `rebuild` keeps this layout.
These images require a device that mounts the separate partitions.
Example:
 [code] 
## Development
See CONTRIBUTING.md before opening a pull request.
 [code] 
Patch files of 50 MiB or more are stored xz-compressed (` .xz`) and unpacked during builds. After adding one, run `./tools/assets.py pack` and commit the `.xz` files (or `.xz.000`, `.xz.001`, ... for split archives). 
`./tools/assets.py status` shows what's packed.
## License
Apache License 2.0, see LICENSE. Bundled avbtool is MIT-licensed;
see tools/avb/LICENSE. Third-party files under `patches/`
have separate terms; see NOTICE.