KernelSU / Magisk / APatch module that removes OTA update components from OxygenOS 16, preventing forced system updates.
Tested on OnePlus 15 (Android 16, OxygenOS 16). Should work on other OxygenOS 16 devices.
Removes the following system apps via systemless overlay:
| Package | Description |
|---|---|
com.oplus.ota |
Main OTA updater |
com.oplus.cota |
Component OTA (silent updates) |
com.cota.notification |
COTA notification service |
com.oplus.romupdate |
ROM update checker |
SystemAppUpdateService |
System app update service |
Additionally, service.sh runs after every boot to:
- Clear cached "update available" state (removes the new firmware red dot in Setting)
- Disable OTA packages via
pm disable-useras a fallback
- Download the latest
.zipfrom Releases - Open KernelSU Manager / Magisk Manager / APatch
- Go to Modules → Install from storage
- Select the downloaded zip
- Reboot
Remove the module from your root manager and reboot. All OTA packages will be re-enabled automatically.
| Root Method | Supported |
|---|---|
| KernelSU | Yes |
| Magisk (v20.4+) | Yes |
| APatch | Yes |
| Device | OS | Status |
|---|---|---|
| OnePlus 15 | OxygenOS 16 (Android 16) | Working |
If you tested on another device and it doesn't work, please, open an issue with your results.
git clone https://github.com/user/oxygenos-ota-remover.git
cd oxygenos-ota-remover
./build.shOutput: build/oxygenos16-ota-remover-v<version>.zip
CC BY-NC-SA 4.0 - Non-commercial use only.
Copyright (c) 2026 crankshift