LumiROM is a custom ROM created to provide a totally new experience to low-end MediaTek devices. It focuses on stability while upgrading the Android version, so you can test new One UI releases and enjoy new features such as Galaxy AI ✨
- Just want the ROM? Download the latest release from my Telegram channel and head over to Installing the ROM.
- Want to build it yourself? Pick one of the methods in How to Use.
It downloads the firmware from Samsung servers using samloader, extracts the partition images and then applies all the features implemented in the repository - Galaxy AI, heavy debloat, Knox patches, performance tweaks and QoL improvements - so the device can be used again with a fresh and modern experience.
The whole process can run either on GitHub Actions or locally on your machine (requires Ubuntu/Debian distro or WSL).
Check the changelogs folder to learn more about each release and useful information.
| Device | Model | Fingerprint | Base |
|---|---|---|---|
| Samsung Galaxy A22 | SM-A225F | Side-FP | SM-A245F (A24) |
| Samsung Galaxy A22 5G | SM-A226B | Side-FP | SM-A245F (A24) |
| Samsung Galaxy A32 | SM-A325F | FOD | SM-A346B (A34) |
| Samsung Galaxy A32 | SM-A325M | FOD | SM-A346B (A34) |
| Samsung Galaxy F22 | SM-E225F | Side-FP | SM-A245F (A24) |
| Samsung Galaxy M32 | SM-M325F | FOD | SM-A346B (A34) |
Where:
- Fingerprint: FOD means fingerprint under display, Side-FP means side-mounted fingerprint (power button).
- Base: the newer Samsung device whose firmware LumiROM downloads and uses to build the port for your phone, so it can run a modern One UI build on older hardware.
- Heavy debloated system (150+ bloatware apps removed).
- Deodexed ROM for cleaner and smaller partitions.
- Improved performance and smoother UI experience.
- Optimized background processes.
- Better battery efficiency.
- Enhanced CPU responsiveness and processing.
- HighEnd launcher animations.
- EROFS filesystem - compressed, read-only, saves storage space.
- Disabled file-based encryption (FBE) and full-disk encryption (FDE).
- VNDK and SELinux fixes applied per-device.
- Init tweaks for extra performance.
- VoLTE fix.
- Custom wallpapers included.
- Call assist - change the caller's voice and make real-time translated calls.
- Writing assist - compose and translate text, summarize long texts and more.
- Note assist - automatic text organization and summarization.
- Transcript assist - AI-powered voice transcriptions.
- Browsing assist - summarized web browsing.
- Photo assist - AI photo editing and object removal.
- Weather wallpaper - wallpapers that change based on time and weather conditions.
- Now brief - smart notification summaries.
- Now nudge - intelligent reminders and prompts.
- Health assist - AI-powered health assistance.
- Screenshot anywhere (enabled globally).
- More floating features enabled.
- Screen recorder support.
- Bluetooth recording support.
- Built-in Cloudy app - download and install new ROM versions directly from the phone, even from a ZIP stored on the sdcard (available since 8.6.4).
Knox functionality is patched directly via smali modifications - no modules or root required:
- Knox Guard - disabled to prevent carrier locking.
- Flag Secure - bypassed to allow screenshots everywhere.
- Secure Folder - patched to work without Knox integrity checks.
- Private Share - patched for integrity verification bypass.
- Signature Verification - minimum scheme lowered for sideloading.
- SSRM - patched to match stock device policies.
- ICCC - removed to prevent soft-bootloops.
- KnoxGuard app - removed from system.
- Auto Blocker
- Samsung Cloud (FMM, Enhanced data protection)
- Samsung Flow
- Samsung Health
- Samsung Health Monitor
- Secure Folder
- Secure Wi-Fi
- SmartThings
These apps will work without installing any module or having root on the device.
Give a ⭐ star to the repository. Fork the repository to your GitHub account.
Open your forked repository.
- Go to the Actions tab.
- Select LumiROM Tools.
- Click Run workflow.
Fill in the STOCK_DEVICE and TARGET_DEVICE options:
STOCK_DEVICE: your phone's model. If it is present in the /LumiROM/Devices folder of this repository (see Supported Devices), the tool will work for your device. If not, it will not work.TARGET_DEVICE,TARGET_CSCandTARGET_IMEI: refer to your device's Base from the Supported Devices table - the base model, a region code and a valid 15-digit IMEI of that base device.
Note
The All Devices workflow (Matrix) is only intended for the developer, as it builds LumiROM for every supported device at once in a single run. If you are building from a fork, always use the LumiROM Tools workflow instead.
Tick this option only if your kernel BPF version is lower than 5.10 (e.g. 5.4); otherwise leave it disabled. You can check your kernel version under Settings → About phone → Software information → Kernel version.
All supported devices in this repository already have BPF 5.10-compatible kernels, so leave it disabled when building for them.
The tool builds the images in EROFS format because:
- It is recommended for devices with small partitions.
- It saves storage space.
- Compression allows fitting more content in the image.
Note
The only downside is that your kernel must support EROFS, but all supported devices already use EROFS kernels, so there is no problem.
Use the DESTINATION option to choose where the ROM will be uploaded - Hugging Face or GoFile (GoFile is the default, since it doesn't need any account):
- If you choose Hugging Face, the ROM will be auto uploaded to Hugging Face servers using a custom upload mechanism, but you need to create an account and set up two things on your fork before running the workflow:
Tip
- Create a Hugging Face account.
- Go to Settings and then to Access Tokens. Create a new token with write permissions and copy it.
- Go back to the repository, go to Settings → Secrets and variables → Actions and add the token as a repository secret with the name
HF_TOKEN. - On the same page, in the Variables tab, add a repository variable with the name
HF_USERand your Hugging Face username as the value.
- If you choose GoFile, it will generate a link once the ROM is uploaded, ready to be downloaded. No need for any account.
Tick the ZIP_IMG option if you want the partition images (.img) inside a ZIP instead of a flashable ROM - useful if you prefer flashing the images yourself. Leave it disabled to get the normal flashable ZIP.
You can also build LumiROM directly on your Linux machine using the local build script. This method includes a firmware cache system so you only need to download the firmware once.
- A Linux machine with Ubuntu/Debian (or WSL on Windows).
- Around 15 GB of free disk space for the firmware download and the build.
git clone https://github.com/Luminous418/LumiROM.git
cd LumiROMOnly the stock model, region and IMEI are required - everything else has a default:
bash build_local.sh -s SM-A325F -c DBT -i 353117555323497| Option | Meaning |
|---|---|
-s, --stock |
Your phone model - must be one of the supported models (e.g. SM-A325F) |
-c, --csc |
Region code of the base firmware (e.g. DBT) |
-i, --imei |
A valid 15-digit IMEI of the base device - you can find examples inside build_local.sh |
-t, --target |
Base device to port from - auto-derived from your stock model if omitted (see the Base column of the Supported Devices table) |
-m, --maintainer |
Your name - defaults to your git username |
--no-mods |
Exclude mods (Cloudy app, Vulkan fix, VoLTE fix, tweaks, wallpapers) |
--no-ai |
Exclude Galaxy AI features |
--bpf-legacy |
Enable only if your kernel BPF is lower than 5.10 |
--img-zip |
Deliver the partition images (.img) in a ZIP instead of a flashable ROM |
-h, --help |
Show all options and the supported devices |
Tip
If you omit a required option, the script asks for it interactively, so running bash build_local.sh alone also works.
Add any extra options you need:
bash build_local.sh -s SM-A225F -c DBT -i 358212589089183 --no-mods --img-zipThe script will install dependencies, download firmware (if not cached), apply all patches and build the ROM. The output ZIP will be in the `ROM/` folder.
Before building, the script validates all your inputs intensively (models, CSC, IMEI) and detects the One UI version automatically, so you don't need to configure anything else. Builds made locally are tagged as Unofficial.
Use the cache manager to check, list or clear your cached firmware images:
bash scripts/firmware/cache_manager.sh status # Show cache status
bash scripts/firmware/cache_manager.sh check # Verify required images
bash scripts/firmware/cache_manager.sh size # Show cache size
bash scripts/firmware/cache_manager.sh list # List all images with sizes
bash scripts/firmware/cache_manager.sh clear # Clear cached imagesImportant
If you're building locally, the script logs everything it does. If something fails, please report the error to me via GitHub issues or on my Telegram channel, attaching the LOGS folder.
Note
If you don't want to mess with the repo or don't know how to do any of this, I will keep releasing updates of my ROM on my Telegram channel. Suggestions are welcome too - I'm still learning from this project, so if you find a bug or want to make the code a bit easier to understand, feel free to open a pull request!
Warning
Flashing a custom ROM will erase all data on your device. Back up everything before continuing. You are doing this at your own risk - I am not responsible for any lost data or damaged devices.
Once you have downloaded or built LumiROM, there are three ways to install it:
Starting from LumiROM 8.6.4, the ROM includes Cloudy, which handles the whole installation process for you:
- Open Cloudy and download the ROM directly from inside the app, or
- Tap Select ROM from internal storage and pick the ZIP if you already downloaded it.
If you don't have the Cloudy app:
- Download the ROM ZIP.
- Reboot your phone into recovery mode.
- Select the ROM ZIP and flash it.
- Install ADB on your PC.
- Download the ROM ZIP and open a terminal in the folder where it is located.
- Reboot your phone into recovery mode and select Apply update from ADB (sideload mode).
- From the PC, run:
adb sideload <rom>.zipThis project is licensed under the MIT License - see the LICENSE file for details.
- android-tools - Licensed under Apache License 2.0
- apktool - Licensed under Apache License 2.0
- erofs-utils - Dual licensed (GPL-2.0, Apache-2.0)
- platform_build - Licensed under Apache License 2.0
- e2fsprogs - Licensed under GPL-2.0 / LGPL-2.1
- img2sdat - Licensed under the MIT License
- samloader - Licensed under GPL-3.0
