The definitive guide to flashing custom ROMs on Android. Covers bootloader unlocking, Magisk/KernelSU root, and all major ROMs for Pixel, Samsung, Xiaomi, and OnePlus devices.
- π Bootloader Unlock (Universal)
- π Root: Magisk vs KernelSU
- π± Device Guides
- π ROM Comparison
β οΈ FAQ & Troubleshooting
β οΈ Warning: Unlocking the bootloader factory resets your device. Back up everything first.
- Install ADB & Fastboot
- Enable Developer Options: Settings β About Phone β tap Build Number 7 times
- Enable OEM Unlocking: Developer Options β OEM Unlocking β
- Enable USB Debugging: Developer Options β USB Debugging β
adb reboot bootloader
fastboot flashing unlock
# Confirm on device β phone wipes and rebootsSamsung requires a different approach β see the Samsung guide.
Note: Snapdragon Samsung devices (US models) cannot unlock the bootloader through normal means. Exynos variants support it.
Xiaomi requires a waiting period (7 days) after requesting unlock permission via their Mi Unlock Tool.
# After unlock permission is granted:
adb reboot bootloader
fastboot flashing unlock # or: fastboot oem unlock (older devices)adb reboot bootloader
fastboot oem unlock # Older devices
# or
fastboot flashing unlock # Newer OxygenOS 12+Magisk is the go-to root solution, supporting thousands of modules and most apps.
# 1. Download stock boot.img for your exact build
# 2. Transfer to phone, patch via Magisk app:
# Install β Select and Patch a File
# 3. Transfer patched image back to PC
adb pull /sdcard/Download/magisk_patched_*.img .
# 4. Flash
fastboot flash boot magisk_patched_*.img
fastboot rebootKernelSU operates at the kernel level β more secure, harder for apps (banking, DRM) to detect.
# Download KernelSU boot image for your device codename
fastboot flash boot kernelsu_[codename]_*.img
fastboot reboot
# Install KernelSU Manager APK- KernelSU GitHub
- Better for: hiding root from banking/DRM apps
- Works on: most GKI-compatible devices (Android 12+)
| Method | Tool | Notes |
|---|---|---|
| Magisk DenyList | Built-in Magisk | Works for most apps |
| Shamiko module | Shamiko | Advanced hide, install as Magisk module |
| KernelSU | KernelSU + ZygiskNext | Strongest hide |
| Device | Codename | Bootloader | Magisk | KernelSU | LineageOS | GrapheneOS |
|---|---|---|---|---|---|---|
| Pixel 5 | redfin | β | β | β | β 22.2 | β |
| Pixel 6 | oriole | β | β | β | β 22.2 | β |
| Pixel 6 Pro | raven | β | β | β | β 22.2 | β |
| Pixel 7 | panther | β | β | β | β 22.2 | β |
| Pixel 7 Pro | cheetah | β | β | β | β 22.2 | β |
| Pixel 8 | shiba | β | β | β | β 22.2 | β |
| Pixel 8 Pro | husky | β | β | β | β 22.2 | β |
| Pixel 9 | tokay | β | β | β | β 22.2 | β |
π Detailed guides: devices/pixel/
| Device | Chipset | Bootloader | Root | LineageOS |
|---|---|---|---|---|
| Galaxy S10 (beyond1lte) | Exynos 9820 | β Exynos | β | β 21.x |
| Galaxy S20 (x1s) | Exynos 990 | β Exynos | β | β 21.x |
| Galaxy S21 (o1s) | Exynos 2100 | β Exynos | β | β 22.x |
| Galaxy S22 (r0s) | Exynos 2200 | β Exynos | β | β 22.x |
| Galaxy A52s (a52sxq) | SD 778G | β | β | β 22.x |
π Detailed guides: devices/samsung/
| Device | Codename | Bootloader | Root | LineageOS |
|---|---|---|---|---|
| Redmi Note 9 Pro | joyeuse | β (7-day wait) | β | β 21.x |
| POCO F4 | munch | β | β | β 22.x |
| Redmi Note 12 Pro | ruby | β | β | β 22.x |
| Xiaomi 12 | cupid | β | β | β 22.x |
π Detailed guides: devices/xiaomi/
| Device | Codename | Bootloader | Root | LineageOS |
|---|---|---|---|---|
| OnePlus 8 Pro | instantnoodlep | β | β | β 22.x |
| OnePlus 9 Pro | lemonadep | β | β | β 22.x |
| OnePlus 12 | aston | β | β |
π Detailed guides: devices/oneplus/
| ROM | Base | GApps | Privacy | Stability | Pixel UI | Active? |
|---|---|---|---|---|---|---|
| GrapheneOS | AOSP | Optional (sandboxed) | βββββ | βββββ | β | β |
| CalyxOS | AOSP | microG | ββββ | ββββ | β | β |
| LineageOS | AOSP | No (add manually) | βββ | βββββ | β | β |
| PixelExperience | AOSP | Yes | ββ | ββββ | β | β |
| crDroid | AOSP | No | βββ | ββββ | β | β |
| Evolution X | AOSP | Yes | ββ | βββ | β | β |
| Paranoid Android | AOSP | Optional | βββ | βββ | β | β |
| ArrowOS | AOSP | Optional | βββ | ββββ | β | β |
Recommendation:
- Maximum privacy: GrapheneOS (Pixel only)
- Privacy + app compatibility: CalyxOS
- Most devices + stable: LineageOS
- Pixel UI feel everywhere: PixelExperience
- Heavy customization: crDroid or Evolution X
Q: Will I lose data when unlocking the bootloader?
Yes β bootloader unlock triggers a factory reset. Back up everything with
adb backupor Google backup first.
Q: Can I go back to stock firmware?
Yes. Flash the official factory image via fastboot. All Pixel factory images are at developers.google.com/android/images.
Q: Will banking apps work after rooting?
With Magisk DenyList or Shamiko, most banking apps work fine. KernelSU is even better at hiding root.
Q: Is my warranty voided?
Technically yes, but you can restore stock firmware before sending for warranty service.
Q: What's the difference between KernelSU and Magisk?
Magisk works in userspace (patches boot image). KernelSU is built into the kernel. KernelSU is harder for apps to detect, but has less module support currently.
- π ROM Haven Wiki β device-specific ROM guides
- π¬ XDA Forums β community support
- π§ Android Tweaks Toolkit β debloat & ADB tools
- π Android Privacy Hardener β harden without root
Device guides, ROM additions, and corrections are welcome. See CONTRIBUTING.md.
Maintained by Tom Β· Android Intelligence Β· CC BY-SA 4.0