Project Status
This project is still in its early development stage. Functionality may be incomplete and build results may contain unknown issues.
If you encounter any problems, please open an Issue.
This project uses GitHub Actions to automatically build a Fedora root filesystem for the Xiaomi Pad 6S Pro (sheng), providing a flashable rootfs.img and boot.img.
Simply start a workflow in your own repository and you will have a ready-to-use Fedora environment.
Click the Fork button at the top right to copy the repository to your GitHub account.
Navigate to the Actions tab of your forked repository.
If Actions are disabled, click I understand my workflows, go ahead and enable them.
In the Actions page, select "Build Fedora RootFS" from the left sidebar, then click the Run workflow dropdown on the right.
You will see a list of configurable options (see Advanced Configuration for details).
If you leave everything unchanged, the build will proceed with the default settings.
Click the green Run workflow button to start the build.
Once the workflow finishes, open the summary page of that run.
Under the Artifacts section, download rootfs-*.zip and boot-*.zip (GitHub Actions compresses the raw .img files into zip archives).
When you trigger the Build Fedora RootFS workflow via workflow_dispatch, the following inputs are available:
| Parameter | Description | Options | Default |
|---|---|---|---|
| Fedora Version | Fedora version to install | 43 / 44 / 45 / rawhide |
44 |
| Enable Third-Party | Enable third-party repositories | true / false |
false |
| Desktop | Desktop environment to install | GNOME / KDE Plasma / Denial / server |
GNOME |
| GNOME Mobile | Use GNOME Mobile from @mobility/gnome-mobile COPR (requires Enable Third-Party). Package availability differs per Fedora release — see the CRITICAL WARNING below and check the COPR Monitor before building. | true / false |
false |
| Plasma Mobile | Use Plasma Mobile shell instead of Plasma Desktop (only when Desktop=KDE Plasma). Only Fedora 43 confirmed working. Crashes on fc44/45/rawhide. SDDM has been replaced with plasma-login-manager which may fix this, but untested. | true / false |
false |
| Denial: Mobile mode | Denial: launch in Mobile mode (Android-like tablet UI) instead of Desktop mode (no on-screen keyboard) (only when Desktop=Denial). | true / false |
true |
| Denial: Plugin manager | Also install Denial's plugin manager and plugin build kit (only when Desktop=Denial). Adds about 82 MB, and nothing else in this image has been exercised against it. | true / false |
false |
| Quiet Boot | Enable Plymouth splash screen and quiet boot messages | true / false |
true |
| Autologin | Whether the created user should be logged in automatically | true / false |
true |
| Username | Username for the non-root user | string | username |
| Hostname | System hostname | string | xiaomi-sheng |
| System language | System locale | None (C.UTF-8) / en_US.UTF-8 / zh_CN.UTF-8 / zh_TW.UTF-8 / ja_JP.UTF-8 / ko_KR.UTF-8 / de_DE.UTF-8 / fr_FR.UTF-8 / es_ES.UTF-8 / ru_RU.UTF-8 |
None (C.UTF-8) |
| Boot mode | Which partition Fedora boots from | single (userdata) / dual (linux) / custom |
dual (linux) |
| Custom partition | Partition name (required when boot_mode=custom) | any partition name | (empty) |
| Extra packages | Extra packages to install (space-separated) | string | (empty) |
🚫 CRITICAL WARNING
- Fedora 43: gnome-settings-daemon 49 is expired from COPR and the latest mutter build fails. The repo still serves gsd=51~beta alongside mutter+shell=49^mobile (built 2026-03), so selecting GNOME Mobile on fc43 produces a mixed build. This version mismatch may cause runtime issues or instability. Use at your own risk.
- Fedora 44: only gnome-settings-daemon (51~beta) is published; gnome-shell and mutter are missing (latest mutter build failed, gnome-shell build forked). GNOME Mobile cannot be assembled, so the build falls back to the original Fedora GNOME. This project is NOT responsible for fc44 builds that end up with standard GNOME instead of GNOME Mobile.
- Fedora 45 / rawhide: the complete mobile set — gnome-shell, mutter and gnome-settings-daemon 51.1.mobile.3, built 2026-10-20 — is available for both aarch64 and x86_64.
- If unsure, check the COPR Monitor to verify packages are available before building.
Fedora 45 and rawhide are fully supported for GNOME Mobile as of October 2026.
| Parameter | Description | Options | Default |
|---|---|---|---|
| Kernel Source | Use prebuilt kernel or build from source | prebuilt / custom_build |
prebuilt |
| Kernel Prebuilt Source | Where to get the prebuilt kernel (only when prebuilt) | upstream / own |
upstream |
| Kernel Repo URL | Git repo for kernel source (only when custom_build) | valid Git URL | https://github.com/ianchb/sm8550-mainline |
| Kernel Branch | Kernel branch name or release tag (custom_build: upstream branch to clone; prebuilt: release tag to download) | branch name / tag | sheng-7.3.0 |
| Kernel Config | Config file path in repo (only when custom_build) | file path | sm8550.config |
| Parameter | Description | Options | Default |
|---|---|---|---|
| Firmware Repo URL | Git repository URL for device firmware files | valid Git URL | https://github.com/ianchb/sheng-firmware |
| Firmware Branch | Branch to checkout from the firmware repository | branch name | master |
Notes
- To use a custom password, you must create a repository secret named
ROOTFS_PASSWORDbefore running the workflow.- If
ROOTFS_PASSWORDis not set, the password will fall back to the insecure default:password.- If you choose Boot mode =
custom, you must fill in the Custom partition field.
If you want to use a custom kernel instead of the prebuilt one:
- Set Kernel Source to
custom_build - Fill in Kernel Repo URL, Kernel Branch, and Kernel Config
- Run the workflow — it will compile the kernel and include it in the artifacts
- Run a
custom_buildworkflow to build the kernel - Download the
kernel-sheng.zipartifact from the Actions run - Create a release with any tag name you like (e.g.
my-kernel-v1) - Upload the
kernel-sheng.zipto that release (file must be namedkernel-sheng.zip) - Set Kernel Source to
prebuilt, Kernel Prebuilt Source toown - Enter your tag name in Kernel Branch
- Run the workflow — it will download the kernel RPM from your release
| Package | Description |
|---|---|
| firmware-xiaomi-sheng | Device firmware blobs (WiFi, Bluetooth, DSP, etc.) |
| sheng-devauth | Device authorization daemon |
| xiaomi-mipps-auth | MIPPS authentication for fast charging |
| xiaomi-charger-mode | Charging screen when charger connected while device is off |
| xiaomi-sheng-thp | Touch data processing for finger and stylus |
| xiaomi-pen-status | Stylus connection/battery status display |
| xiaomi-sheng-fingerprint | FPC1553 fingerprint sensor support (libfprint + fprintd) |
| xiaomi-sheng-keyboard-helper | Keyboard microphone indicator and angle-based input control |
| xiaomi-sheng-keyboard-backlight | Keyboard backlight brightness control |
| fastrpc | Qualcomm FastRPC for DSP communication |
| libssc | Qualcomm Sensor Core userspace library |
| iio-sensor-proxy | IIO sensor proxy daemon |
| sheng-gnome-fix | GNOME auto-rotation, power-key display toggle, suspend disabled system-wide |
| Denial | Flutter-native Wayland compositor (ARM64 packages built from a pinned upstream revision; upstream publishes no ARM64 binaries) |
| sheng-sensors | Device-specific sensor configuration and udev rules |
| alsa-xiaomi-sheng | ALSA UCM2 audio configuration |
- Device with an unlocked bootloader
- TWRP recovery installed
fastbootproperly set up on your computer
Warning
The following steps modify device partitions and may brick your device or cause data loss. Back up your important data and make sure you understand each command.
-
Dual boot (keep existing OS)
Inside TWRP, usepartedto shrink theuserdatapartition and create a new partition at the end, named e.g.linux. -
Single boot (replace OS completely)
Use theuserdatapartition directly for Fedora (erasing all previous data).
The commands below assume:
- You will boot Fedora using slot B
- The Fedora partition is named linux
# 1. Erase dtbo
fastboot erase dtbo_b
# 2. Flash the boot image
fastboot flash boot_b boot.img
# 3. Flash the root filesystem to the linux partition
fastboot flash linux rootfs.img
# 4. Reboot
fastboot rebootAfter rebooting, the device should start from slot B and boot into Fedora.
- Sensor orientation may be "undefined" for a few minutes after boot – The accelerometer orientation may show as "undefined" within the first few minutes after boot, causing auto-rotation to not work. It recovers to "normal" automatically.
- Package status differs per Fedora release – see the CRITICAL WARNING under Advanced Configuration and check the COPR Monitor before building. As of October 2026, Fedora 45 and rawhide are fully supported; Fedora 43 and 44 are not.
- Random crashes back to GDM – GNOME Mobile may randomly crash and drop back to the GDM login screen. This is an upstream issue, also reproducible on Debian.
- GDM password input invisible – The password input field on GDM may appear blank, but typing still works. This is also an upstream issue present on Debian.
- Plasma Mobile crashes on Fedora 44, 45, and rawhide – Desktop crashes during startup. Only Fedora 43 is confirmed working.
- Partial mobile UI is accessible – Even when the desktop crashes, some mobile shell components still function: the first-boot setup wizard, lock screen password input, and the power menu (shutdown/restart/logout).
- I switched from SDDM to
plasma-login-manager(SDDM is deprecated on Fedora). This may resolve the Plasma Mobile crash, but I have not tested it yet. Feedback welcome.
This project benefits from the following outstanding work and community support:
- map220v – for TWRP, the mainline kernel port and many device-specific adaptations that make Linux run on the Xiaomi Pad 6S Pro (sheng)
- ianchb – for maintaining the debian-sheng project, userspace drivers and various device-specific packages, from which this project is derived
- alghiffaryfa19 – for the Qualcomm sensor configuration files (sheng-sensors-file)
- slhssb – for the keyboard backlight driver (xiaomi-sheng-keyboard-backlight)
- GhfunNiHe – for the automatic partition resize (growfs) implementation, taken from debian-sheng
- code002-2 – for the WiFi firmware warning reference
- DotRedstone – for the nixos-sheng project, whose
fake-tablet-modelid blanking,sheng-power-key-display-toggleservice anddocs/hall-sensor-rotation.mddebugging notes form the basis of the cover/power-key handling in thesheng-gnome-fixpackage - CFM880 – for nabu-accelerometer, whose
userspace/nabu-tablet-mode.c(GPL-2.0-only) is the source of the new tablet-mode core insheng-gnome-fix
- debian-sheng - Debian version for Xiaomi Pad 6S Pro
- sm8550-mainline - Mainline kernel for SM8550
- sheng-firmware - Device firmware files