-
Notifications
You must be signed in to change notification settings - Fork 116
Build Guide
Requirements:
- Some kind of Linux PC (WSL may work, although be sure to use an EXT4 filesystem and a distro with f2fs support)
- About 150GB of free space (on the pc)
- Around 8GB of RAM (less may work I just haven't tested)
- A functioning brain
This is Linux only, I recommend using Ubuntu 24.04 LTS for this guide.
Firstly, start of by installing the required dependencies.
For Ubuntu/Debian based distros :
sudo apt update && sudo apt upgrade -y && sudo apt install -y attr ccache clang git golang libbrotli-dev libgtest-dev liblz4-dev libpcre2-dev libprotobuf-dev libunwind-dev libusb-1.0-0-dev libzstd-dev lld openjdk-11-jdk python3.12-venv protobuf-compiler zip zipalign make cmake npm lz4 brotli pcre2-utils patchelf curl xxd bison flexFor Arch based distros :
sudo pacman -Sy && sudo pacman -Syu --noconfirm && sudo pacman -S --noconfirm attr ccache clang git go brotli gtest lz4 pcre2 protobuf libunwind libusb zstd lld jdk11-openjdk zip make cmake npm patchelf curl xxd bison flex && paru -S --noconfirm android-sdk-build-toolsFor Fedora based distros :
sudo dnf install -y attr ccache clang git golang brotli-devel gtest-devel lz4-devel pcre2-devel protobuf-devel libunwind-devel libusb1-devel libzstd-devel lld java-11-openjdk-devel protobuf-compiler zip make cmake npm lz4 brotli patchelf curl xxd bison flexYou may need to run this twice for it to install all of them successfully.
If you are using Debian bookworm, you might need to run this command to download openjdk-11-jdk due to Debian defaulting to openjdk-17-jdk now.
echo "deb http://deb.debian.org/debian bullseye main" | sudo tee /etc/apt/sources.list.d/bullseye.list && sudo apt updateAfter running this, just run the original dependency command again.
After you have got all the dependencies to install, start off by cloning this Repo with GIT
git clone --recurse-submodules https://github.com/ExtremeXT/ExtremeROM.gitAfter this add your email to GIT with the following command
git config --global user.email [Your Email]Replace [Your Email] with your email!
After this add your name to GIT with the following command
git config --global user.name [Your name]Replace [Your name] with your name!
Now you can cd to your cloned ExtremeROM repo.
cd ExtremeROMNow that you are in your ExtremeROM folder, Setup your build environment for the device you would like to build for.
. buildenv.sh [Codename]If you are unsure of your codename, Please check with either . buildenv.sh or checking the Supported Models wiki.
Now that your build environment is setup, you can start compiling it with the command below!
mExtremeROM Nexus should start building instantly, starting by downloading the firmwares, extracting them then making the ROM!
Once it is done compiling, the output should be in ExtremeROM/out
If you would like to build for another device you can clean up your build enviroment ready for another device!
This can be done with the following command
erom cleanup work_dir If there has been a new commit to ExtremeROM Nexus and you would like to build according to this new update, instead of recloning you can pull the new changes
This can be done with the following command
git fetch origin && git pull origin fifteen && git submodule update --init --recursiveNow Cleanup and you can build!
As of September 2025, Samsung has removed the option to unlock the bootloader on any device that got the OneUi 8 update
As for ExtremeROM, this has affected the Galaxy S21 FE, S22, S22+ and S22 Ultra
If you want to build for these devices, you will need to use older firmware based on OneUi 7
For the Galaxy S22 series this is FYI3 (S901BXXSIFYI3, S906BXXSIFYI3 and S908BXXSIFYI3)
For the Galaxy S21 FE this is GYI3 (G990EXXSIGYI3)
*psa this is not finished, i will finish this part when i have the chance (12/17/2025)
Thats all for now :)
made by enda in about an hour
If you would like us to add anything to this wiki, feel free to message us via Discussions (ping either @osrott61-gh or @EndaDwagon) and we will try our best to add it here!