Guide to Flashing Custom ROM(s) on Nothing Devices
SpikeDisclaimer:
- This guide has been written w.r.t Nothing Phone (2), but the flashing procedure should be similar for most models based on Snapdragon Mobile Platform.
- This procedure involves data loss if you are planning to clean flash / do it for the first time! Take data backups accordingly before proceeding. [ Google (one) backups / adb pulls for imp folders / ftp (non-root) || Swift Backup / Data backup (root) is recommended ].
- You must have an unlocked bootloader!
- Your usb / adb & fastboot drivers should be properly configured.
- This is a general / generic guide that should work in most cases. Make sure to follow any other instructions if mentioned by the developer / maintainer for flashing.
- Proceed with caution. I don't take responsibility for any damage caused to your device due to blind flashing or broken ROM builds!
- For further queries refer to your device specific chat listed here >>>> Nothing x CMF Telegram Community Index
Understanding Recovery (Sideload) / Fasboot Builds:
Recovery Builds:
- Designed to be flashed directly via a custom recovery or through ADB sideloading (recommended).
- Always refer to the specific instructions provided for that particular ROM or custom recovery.
- You will often find a "payload.bin" file inside the zip which could be a direct indication for the build to be recovery based as well.
Fastboot Builds:
- Intended to be flashed using fastboot. The ZIP file typically includes the word "-image" in its name.
- It contains individual partition images rather than the complete firmware.
- You will need to flash the firmware separately as specified by the maintainer unless you already have the recommended fw version.
Instructions:
A. Recovery Builds:
- If you are sideloading a "ROM.zip", once you see a back arrow at the top left corner of your recovery the sideload is completed. Progress on your pc will stop at around 47%. This is normal behaviour.
- Normally, adb will report Total xfer: 1.00x, but in some cases, even if the process succeeds the output will stop at 47% and report adb: failed to read command: Success. In some cases it will report adb: failed to read command: No error or adb: failed to read command: Undefined error: 0 which is also fine.
- Direct flashing the Recovery/Sideload based builds aka "ROM.zip" is now possible via Orangefox Recovery starting with v11.1_4 and higher. Make sure you are using that specific version before proceeding.
- If you are coming from stock rom or switching from one custom rom to another and getting the error "Error Applying update: 7 (ErrorCode: kInstallDeviceOpenError)" or failing to direct flash the ROM zip via recovery >>> flash the super-empty.img (get the file via group chat notes by typing "#super_empty") via fastboot from bootloader mode to fix partitioning using cmd: "fastboot wipe-super super_empty.img" before sideloading the ROM again.
- If you face errors even after flashing super empty, fetch the stock NOS boot, recovery and vendor_boot images from here (marked -image-boot.7z). Move the these 3 images along with super empty image to platform tools folder and open cmd to that path. Type in >>> "fastboot wipe-super super_empty.img && fastboot flash boot boot.img && fastboot flash recovery recovery.img && fastboot flash vendor_boot vendor_boot.img && fastboot reboot recovery" cmd to flash all of them together. Then proceed with sideloading. Ofox showing system partition is empty on reboot page is ignorable. It should work!
- [ IF NONE OF THE ABOVE WORKS ]: If you are still facing sideloading issues, flash the fastboot version of any rom available and setup your device. Then proceed with flashing ofox recovery and flash the sideload rom zip directly via it. It should complete without errors. Format and wipe data accordinly and reboot
Direct Flashing:
- Can be done for NOS > Custom ROM / Switching between different custom roms.
- Direct flash the rom.zip via Orangefox Recovery v11.1_4 or higher (only).
- After flashing is complete Wipe (dalvik, metadata and data) and Format (yes) from OFOX recovery itself.
- Reboot.
Sideloading:
Case 1:
Rom maintainer has provided boot, vendor_boot and recovery images seperately
- Reboot to bootloader.
- Put the three images provided to platform tools folder. And open a Cmd / terminal to that folder path.
- Flash boot, recovery and vendor_boot one by one: fastboot flash boot boot.img ; fastboot flash vendor_boot vendor_boot.img ; fastboot flash recovery recovery_img
- Reboot to recovery of the corresponding rom via buttons or typing : fastboot reboot recovery
- When rebooted to the rom recovery > apply update using adb.
- Type in adb sideload
- After sideloading is complete format data via recovery (for clean flashing)
- Reboot to system
Case 2:
Rom maintainer has not provided boot, vendor_boot and recovery images seperately
Option 1: Sideloading it via any available custom recovery
- Flash any available custom recovery like Ofox (recommended) / PBRP / TWRP using "fastboot flash recovery recovery.img" via fastboot. Reboot to recovery.
- Adb Sideload : adb sideload <drag and drop ROM.zip>
- After sideloading is complete format data.
- Reboot.
- If you face any issues while sideloading flash super_empty as stated in points 3-6 under recovery build flashing instructions and try flashing the zip again followed by data wipe and rebooting to system
Option 2: Direct flashing the rom zip via custom recovery
- Flash the rom zip directly in the recovery
- Format data > Yes (for clean flashing)
- If you face any issues flash super_empty as stated in points 3-6 under recovery build flashing instructions and try flashing the zip again followed by data wipe and rebooting to system
B. Fastboot Builds:
NOTE:
- Make sure to use latest platform tools.
- Rebooting to bootloader in windows should show Android Bootloader Interface under Device Manager. If you don't see it, fix your drivers before proceeding to flash.
- Double check the required FW version before proceeding to flash.
- Recovery flashable firmwares for Nothing Phone (2) can be found >> here <<
Instructions
- Reboot to bootloder and if its your first installation wipe data by typing: fastboot -w
- Next flash rom by typing: "fastboot update <drag and drop rom.zip>" --skip-reboot
- Flash custom recovery (optional)
- Flash/sideload gapps (if vanilla build)
- Sideload/flash FW (no need if already using latest)
- Reboot to system.
For dirty flashing (Using OrangeFox Recovery)
- Flash the recovery based rom zip via ofox recovery. Make
- sure to tick "Reflash OrangeFox after ROM install" (leave
- everything unchanged).
- Clear cache (OrangeFox will prompt you for this)
- Go to OrangeFox terminal and type the following: (Helps with fixing weird issues which may happen due to pre-existing system apps cache specially with A15 based ROMs)
rm -rf /data/resources_cache (Press enter)
rm -rf /data/system/package_cache (Press enter)
- Reboot to recovery
- [Optional] If you were using any custom kernel flash the same (usually in form of boot image or zip) along with magisk apk/zip or KSU patched kernel boot image for instance cuz the boot and dtbo did get overwritten earlier while flashing the rom zip. This would retain your modules while dirty flashing but make sure to stick to magisk / ksu based on your existing root method
- Reboot to system.