How-to Guides
Step-by-step guides for Nothing device owners.
Prerequisites & Tools
Essential tools for advanced guides below.
USB Drivers
Essential drivers for USB file transfers and device recognition.
- Google USB Drivers for Windows
- Installation guides: USB | Fastboot
Platform Tools (ADB & Fastboot)
Download Android SDK Platform-Tools:
Windows (winget):
winget install --id=Google.PlatformTools -e
macOS/Linux (Homebrew):
brew install --cask android-platform-tools
General Guides
Tips, tricks, and general guides for everyone.
Manual OTA Updates
Skip step I.(B) if your device is not rooted or has a locked bootloader (stock partitions unmodified). For locked bootloader devices, use the dialer method. For open beta updates, use the Beta Updater Hub app as the dialer code won't work.
- Manual OTA Sideloading Guide by spike0en
Safe Mode
Phone (2a) SE Hidden Feature
- Unlock Hidden Feature by RapidZapper
Essential Key Remapping
Guides for remapping the Essential Key on Phone (3):
| Guide | Author |
|---|---|
| Reddit Guide | acruzjumper, McKeviin, DKmarc & Pealoaf |
| Quick Remap Guide | David_Ign |
| XDA Guide | rwilco12 |
| GitHub Guide | z3phydev |
Dialer Codes
Dialer codes (USSD) that you can dial to access hidden menus and diagnostics.
| Code | Function |
|---|---|
*#06# | Shows IMEI and Serial Number |
*#07# | Displays SAR levels and regulatory info |
*#*#569#*#* | Opens Nothing Feedback / Log tool |
*#*#0#*#* | Hardware test menu (screen, sensors, touch) |
*#*#9#*#* | Opens Nothing Diagnostics menu |
*#*#225#*#* | Shows Calendar storage info |
*#*#426#*#* | Google Play / Firebase diagnostic info |
*#*#4636#*#* | Testing menu (phone, battery, usage stats, Wi-Fi) |
*#*#682#*#* | Opens Offline OTA Updater (won't work if Nothing Beta Hub is installed) |
Advanced Guides
Recommended for power users only. These procedures can brick your device or void warranty if done incorrectly.
OTA Sideloading
[!NOTE]
- Bootloader unlocking is not mandatory to sideload incremental OTA updates. Skip Step A unless you are a rooted user.
- Sideloading official incremental or full OTA updates is safe as long as they are downloaded directly from this archive.
- Do not use third-party sources. All firmware in the Nothing Archive is sourced directly from Nothing’s official OEM servers.
This can be verified by inspecting the download URL(s) in the incremental OTA section, which point to official server and not third-party file hosts.- The built-in Nothing OS offline updater only accepts OEM-signed update packages.
- The updater verifies the firmware hash before installation and will fail if an incorrect or mismatched OTA zip is used.
- The same verification applies to full OTA packages; they will not install unless their integrity is intact.
- Because of these checks, it is not possible to brick your device by sideloading an official OTA zip on a locked bootloader.
- For Open Beta Test updates, sideload them via
Nothing Beta Updater Hub(name might change in future) provided by the OEM if the dialer method does not work You can launch the interface from Settings. This happenes when you have installed the OEM's beta updater app which overrides the stock inbuilt version.- For visual references, see the images here in the listed order.
A. Restoring Stock Partitions (For Rooted Users Only)
If your bootloader is locked, skip directly to Point B!
-
Check your current Nothing OS version:
- Go to
Settings > About phone > Tap the device banner. - Note down the build number.
- Go to
-
Fetch stock images for your current firmware build:
- Download the
-boot-image.7zfile. - Extract the archive to obtain
.imgfiles.
- Download the
-
Identify the required partitions:
- Qualcomm Devices:
boot,init_bootvendor_boot,recovery,vbmeta - MediaTek Devices:
init_boot,vbmeta,lk
- Qualcomm Devices:
-
Flash stock partitions in bootloader mode:
Only modified partitions are required to be flashed. Also skip any missing partitions based on your SoC platform.
fastboot flash boot boot.img
fastboot flash recovery recovery.img
fastboot flash vendor_boot vendor_boot.img
fastboot flash vbmeta vbmeta.img
fastboot flash init_boot init_boot.img
fastboot flash --slot=all lk lk.img -
Reboot to system and update via System Updater:
- If the update fails, proceed with manual sideloading in the next section.
-
Restoring Root (Optional):
- After updating, you may re-root by flashing a patched boot image for the updated NOS version.
- Modules will remain intact after re-rooting.
B. Proceed with Sideloading
-
Download the Correct Update Firmware File:
- Find the correct OTA firmware file for your device from here.
-
How to Select the Right File?
- Navigate to the repository and select your device model.
- Look for the Incremental OTA column.
- Verify your current OS Build Number:
- Go to:
Settings > System > About Phone. - Tap the device banner and note the Build Number.
-
Example:
- Suppose your Phone (2) has the build number:
Pong_U2.6-241016-1700 - Assuming the latest available OTA update available being:
Pong_V3.0-241226-2001 - The corresponding update pathway would be:
Pong_U2.6-241016-1700 -> Pong_V3.0-241226-2001 - Ensure you select the correct pathway based on your device and OS version.
- Refer to this for better clarity.
- Suppose your Phone (2) has the build number:
-
Create the
otaFolder:- Create a folder named
otain your device's internal storage, full path being:/sdcard/ota/ - Move the downloaded
<firmware>.zipfile to this folder.
- Create a folder named
-
Access the Nothing Offline OTA Updater:
- Open the Phone app and dial:
*#*#682#*#* - This will launch the built-in offline updater tool.
- The UI may show
NothingOfflineOtaUpdateorNOTHING BETA OTA UPDATE— both work.
- Open the Phone app and dial:
-
Apply the Update:
- The updater will automatically detect the update file.
- If not detected, manually browse and import the OTA file.
- Tap
Directly Apply OTAorUpdate(based on the app UI). - Wait for the update to complete —your device will reboot automatically.
-
Note:
- If the updater shows an unknown error, try using the "Browse" option instead of manually copying the file to the "ota" folder.
- Full OTA firmware can be sideloaded if incremental OTA fails.
- Full OTA cannot be used to downgrade — it can only update to the same or a higher build.
- Unlocked bootloader users can flash full OTA via custom recoveries (e.g., OrangeFox for Phone (2)).
- Not every release has a Full OTA file — use incrementals instead in such cases.
Unlocking Bootloader
[!IMPORTANT]
- Unlocking the bootloader voids the OEM warranty. However, you can reflash the stock ROM and relock the bootloader to restore it.
- Regardless of other factors, you will lose Widevine L1/DRM certification, which will downgrade to L3.
- You will lose device integrity, which may cause apps relying on this to stop working unless fixed later with root access.
This guide may be helpful for resolving this issue.
A. Prerequisites
- Backup your data (unlocking will erase everything).
- Install ADB & Fastboot tools – Download here.
- Install USB drivers – Google USB Drivers.
- Enable Developer Options:
Settings > About phone > Tap "Build number" 7 times.
- Enable USB Debugging & OEM Unlocking:
Settings > System > Developer options > Enable USB Debugging & OEM Unlocking.
- Remove Screen Lock/PIN/Password and Logged-in Accounts (optional but recommended)
- Removing accounts before relocking the bootloader helps prevent Google FRP (Factory Reset Protection) lock. If FRP is triggered, the device will ask for the previously linked Google account after a factory reset. If you forget the credentials or can't access the account, you may be locked out of your device. To avoid this, it's recommended to remove all Google accounts before relocking.
B. Unlocking Process
-
Connect your phone to a PC via USB.
-
Open a command prompt in the platform-tools folder:
- Windows:
Shift + Right Click> Open Command Prompt/Powershell here. - Mac/Linux: Open Terminal and navigate to platform-tools.
- Windows:
-
Verify device connection:
adb devicesIf prompted, allow USB debugging on the phone.
-
Reboot to bootloader:
adb reboot bootloader -
Verify fastboot connection:
fastboot devicesIf no device is detected, reinstall USB drivers.
-
Unlock the bootloader:
fastboot flashing unlock -
Confirm on your phone:
- Use Volume Keys to navigate and Power Button to confirm.
- Your device will erase all data and reboot.
C. Post-Unlock
-
Set up your phone again.
-
Verify bootloader status:
Settings > System > Developer options > OEM Unlocking should be enabled. -
Bootloader is now unlocked and your device will show an Orange State warning at boot—this is normal.
Rooting
[!IMPORTANT]
- Rooting voids the OEM warranty and may break OTA updates unless stock images are restored before updating.
- Always ensure the boot / init_boot image exactly matches your current firmware build. Flashing an incorrect or mismatched image will cause bootloops.
- Always use
init_bootoverbootimage for rooting if the partition exists.- Rooting requires an unlocked bootloader.
- Users can also refer to the visual guides linked alongside: orailnoor | Droidwin | EpicDroid.
A. Prerequisites
- Unlocked bootloader with USB Debugging enabled
- A PC with ADB & Fastboot
or another Android phone with USB-OTG + ADB app (e.g. Bugjaeger)
or a custom recovery (e.g. TWRP / OrangeFox / AOSP based recoveries) - Basic familiarity with ADB / Fastboot
- Stock firmware matching your current build (for extracting images)
- Recommended root solutions:
B. Check Current Software Version
- On your phone, navigate to: Settings > About phone > Tap the Nothing OS banner.
- Note down the Build Number
- Example:
Pong_B4.0-251119-1654 - Ignore any regional suffix like
IND/EEA/TURand so on.
C. Fetch Stock Boot / Init_boot Image
-
Navigate to the release index.
-
Select your device model
-
Open OTA Images for your exact build
-
Download the corresponding archive:
*-image-boot.img.7zfrom release assets. -
Extract the archive and locate:
init_boot.img(preferred, if present)boot.img(only ifinit_bootdoes not exist)
-
Transfer the image to your device
adb push init_boot.img /sdcard/Download/
# or
adb push boot.img /sdcard/Download/
D. Patch the Image
Magisk
- Install the latest Magisk APK on your device.
- Open Magisk → Install → Select and Patch a File.
- Choose the transferred
init_boot(preferred) /bootimage. - Magisk will generate:
magisk_patched-XXXXX.img
KernelSU / KernelSU Next
[!NOTE]
- For Nothing Phone (2): KSU based root method is supported with stock
boot.img. But KSUN or SUSFS support requires a custom compiled kernel with the patches added.- Known pre-patched custom kernel options available include: arter97 kernel - KSU prepatched. Does not support NOS 4.0+ yet | Meteoric Kernel (EOL) - KSUN + SUSFS prepatched. Does not support NOS 4.0+. | Wild Kernel fork - KSU + SUSFS prepatched. | Wild Kernel - KSUN + SUSFS prepatched. Supports 5.10-android12.
- Nothing models with Android 13+ vendors out of box i.e, ones launched after Phone (2) will support KSUN patching method.
-
Patching method is similar to that of magisk. From the KSU/KSUN manager tap on not installed > patch the
init_boot.imgand transfer the patched image to PC. -
Reboot to bootloader:
adb reboot bootloader -
Flash the patched image
fastboot flash init_boot <drag and drop patched_init_boot.img> -
Reboot to system:
fastboot reboot -
The device should be rooted with KSU/KSUN.
Backing Up Essential Partitions
[!IMPORTANT]
- After unlocking the bootloader, it is crucial to back up essential partitions such as
persist,modemst1,modemst2,fsg, etc., before flashing custom ROMs or kernels.- These partitions contain important data, including IMEI, network settings, and fingerprint sensor calibration.
- If lost or corrupted, your device may experience loss of cellular connectivity, fingerprint issues, or even become bricked.
- Creating backups ensures you can restore your device if something goes wrong.
A. Requirements
- Unlocked bootloader
- Root access (via Magisk/KSU/Apatch)
- Termux app (install via F-Droid or Play Store)
- Check Partition Paths:
- Qcom devices:
/dev/block/bootdevice/by-name/ - MTK devices:
/dev/block/by-name/
- Qcom devices:
B. Backup Instructions
-
For Qualcomm (QCom) Devices:
-
Open Termux and grant root access using:
su -
Copy and paste the following command in one go:
mkdir -p /sdcard/partitions_backup
ls -1 /dev/block/bootdevice/by-name | grep -v userdata | grep -v super | \
while read f; do dd if=/dev/block/bootdevice/by-name/$f of=/sdcard/partitions_backup/${f}.img; doneThis will create image files of all partitions except
super&userdatain the Internal Storage inside a folder named "partitions_backup". -
[Optional] If the above command fails, try this alternative:
mkdir -p /sdcard/partitions_backup
for partition in /dev/block/bootdevice/by-name/*; do \
[[ "$(basename "$partition")" != "userdata" && "$(basename "$partition")" != "super" ]] && \
cp -f "$partition" /sdcard/partitions_backup/; done
-
-
For MediaTek (MTK) Devices:
-
Open Termux and grant root access using:
su -
Copy and paste all the following commands in one go:
mkdir -p /sdcard/partitions_backup/
cd /sdcard/partitions_backup
dd if=/dev/block/by-name/nvram of=/sdcard/partitions_backup/nvram.img
dd if=/dev/block/by-name/nvdata of=/sdcard/partitions_backup/nvdata.img
dd if=/dev/block/by-name/persist of=/sdcard/partitions_backup/persist.img
dd if=/dev/block/by-name/nvcfg of=/sdcard/partitions_backup/nvcfg.img
dd if=/dev/block/by-name/protect1 of=/sdcard/partitions_backup/protect1.img
dd if=/dev/block/by-name/protect2 of=/sdcard/partitions_backup/protect2.img
-
C. Storing Backup
- Move the "partitions_backup" folder to your PC or secure storage.
- Do NOT share these backups! They contain unique device data like IMEI.
D. Restoring Partitions
-
MTK Devices:
fastboot flash nvram nvram.img
fastboot flash nvdata nvdata.img
fastboot flash nvcfg nvcfg.img
fastboot flash persist persist.imgReboot to recovery mode → Perform factory reset → Reboot to system.
- Ref link: Nothing Phone (2a) DVT Engineering Sample: Recovering Baseband and IMEI Records
- Post was written with Chinese(Traditional) language but can be translated to English using browser translation features.
-
QCom Devices:
fastboot flash persist persist.img
fastboot flash modemst1 modemst1.img
fastboot flash modemst2 modemst2.imgFactory reset is not mandatory in this case.
Flashing Stock ROM (Unbrick / Downgrade)
[!NOTE]
- This is the only recommended method for manually clean flashing to a newer version of stock firmware or downgrading.
- For a better understanding, refer to the visual guides linked alongside: Droidwin | The Nothing Lab | QZX Tech
A. Preparation of Flashing Folder:
-
Download the following files for your device model and firmware build and place them in a dedicated folder:
- image-boot.7z
- image-firmware.7z
- image-logical.7z.001-00x
-hash.sha256- This is optional but recommended if you want to verify integrity of image files and also check for missing ones.
-
Install 7-Zip from here.
-
Extract files:
- Windows: Right-click → Extract to "*"
- Bash users:
7za -y x "*.7z*" - In rare cases, download managers may change file extensions for split logical files. Rename
image-logical.7z.001.7z,image-logical.7z.002.7z, etc., toimage-logical.7z.001,image-logical.7z.002, and retry extraction.
B. Proceeding with Flashing:
- Install compatible USB drivers from here.
- Ensure that
Android Bootloader Interfaceis visible in Device Manager when the device is in bootloader mode. - If the extraction script was used earlier, execute it directly. Otherwise:
- Move all extracted image files into a single folder along with the Nothing Fastboot Flasher Script.
- Place the
-hash.sha256file in the same directory. - Always download the latest script to ensure hotfixes are included.
- Run the script while connected to the internet (to fetch latest
platform-tools) and follow the prompts:- Answer the confirmation questionnaire.
- Skip or proceed with hash checks accordingly.
- Choose whether to wipe data: (Y/N) [Clean Flash / Downgrade =
Y| Dirty Flash / Upgrade =N] - Choose whether to flash to both slots: (Y/N)
- Disable Android Verified Boot: (N) [Please note that if you choose
Yhere, bootloader cannot be unlocked later on!]
- Verify that all partitions have been successfully flashed.
- If successful, choose to reboot to system: (Y)
- If errors occur, reboot to bootloader and reflash after addressing the failure. Rebooting to system without doing so might result in soft/hard bricks.
Relocking Bootloader
A. Prerequisites
- Remove Screen Lock/PIN/Password and Logged-in Accounts (optional but recommended).
- Clean-flash the stock ROM following Flashing Guide. Relocking the bootloader with modified partitions without flashing stock firmware may brick the device!
- Backup all data (relocking will erase everything).
- Install ADB & Fastboot tools and USB drivers if not already set up.
B. Relocking Process
-
If you are in the system, reboot to bootloader:
adb reboot bootloader -
Verify fastboot connection:
fastboot devices -
Initiate bootloader relocking:
fastboot flashing lock -
Confirm on your phone:
- Use Volume Keys to navigate and Power Button to confirm.
- The device will be formatted and reboot with a locked bootloader.
C. Post-Relock
- Set up your device again.
- The bootloader is now locked!
Play Integrity
| Guide | Link |
|---|---|
| Fix Play Integrity & Root Detection | Wiki |
Aftermarket Development
This section is community-managed and not affiliated with Nothing. Unlocking the bootloader will void your OEM warranty.
Stay updated with custom ROMs, kernels, and development projects.
Device Update Channels (Telegram)
Nothing:
| Device | Channel |
|---|---|
| Phone (1) | Updates |
| Phone (2) | Updates |
| Phone (2a) Series | Updates |
| Phone (3a) Series | Updates |
| Phone (3) | Updates |
| Phone (4a) Series | Updates |
CMF by Nothing:
| Device | Channel |
|---|---|
| Phone (1) | Updates |
| Phone (2) Pro / Phone (3a) Lite | Updates |