Skip to content

Releases: oxygen-updater/os-updater

v7.1.0

Choose a tag to compare

@adhirajsinghchauhan adhirajsinghchauhan released this 25 Apr 21:48
50327ea

Get it on Google Play

Added

Changed

  • [main] marginally improve startup performance by offloading Google Mobile Ads SDK initialization to a background IO thread (11ebcfd)

In case you missed it, the app is now named OS Updater, because we support not just OnePlus devices, but OPPO (as of v6.6.0) and [realme][article-realme-support] as well! Also, see the news article we published that detailed changes & improvements in v6 (Jetpack Compose rewrite).

v7.0.0

Choose a tag to compare

@adhirajsinghchauhan adhirajsinghchauhan released this 16 Apr 09:16
45c28c8

Get it on Google Play

Most importantly, we have rebranded the app to OS Updater.

Fixed

  • [device] crash due to UnsupportedOperationException (3da6015)
    Only observed on some Android 7.1 devices, but this change also prevents it from happening on any other version in the future.
  • [main/update] potential crashes when starting an in-app update (9febb42)
    Never seen in practice yet.
  • [main] potentially fixed IllegalArgumentException empty backstack crash (cb9eaf7)
    Extremely rare crash seen only <10 times. Exact cause is unknown, but some code changes were made that should hopefully avoid this crash now.
  • [update] potentially fixed rare main thread ANRs when checking for download status (2d10ea6)

Changed

  • App name is now OS Updater. See this article for why.
  • [device] offload CPU frequency calculation to IO thread (c755ceb)
  • [settings/strings] update theme subtitles for Material 3/You (153510c)
    The previous subtitles were specific to static themes—based on OnePlus Red—that the app hasn't used since v6, when we added proper dynamic M3 theming.

Miscellaneous

  • Updated dependencies and bumped compileSdk & targetSdk to 37 (Android 17) (45c28c8)
    AGP                9.1.0 -> 9.1.1
    Crashlytics Plugin 3.0.6 -> 3.0.7
    
    Kotlinx Serialization 1.10.0 -> 1.11.0
    
    AndroidX Annotation  1.9.1 -> 1.10.0
    AndroidX Navigation3 1.0.1 -> 1.1.0
    
    Firebase BOM      34.11.0 -> 34.12.0
    Play Services Ads  25.1.0 -> 25.2.0
  • [ci] bump minSdk 23 for instrumentation testing (3570aac)

In case you missed it, the app supports OPPO devices (as of v6.6.0)! Also, see the news article we published that detailed changes & improvements in v6 (Jetpack Compose rewrite).

Full APK size increased by 13 KB relative to the previous release, v6.8.1.

v6.8.1

Choose a tag to compare

@adhirajsinghchauhan adhirajsinghchauhan released this 26 Mar 02:33
324be58

Get it on Google Play

Added

  • Proper support for predictive back animations via androidx-navigation3 (b07b692)
    When using gesture-based back navigation, you will now see a realtime preview of your back actions.
  • [PullToRefresh] add 'Loading…' text under the refresh indicator when empty (0401d09)
  • [docs] add star history section to README.md (9940294)

Removed

  • [ads] disable Google's new collapsible banner ad format (dc2c569)
    This was introduced in v6.3.1 (released July 7, 2024), and subsequently disabled in v6.3.3 (released Aug 16, 2024), due to poor UX. However, it was re-enabled—perhaps inadvertently—in v6.4.0 (released Sep 6, 2024).
    We apologize for that, it should remain disabled now.

Changed

  • Minor styling improvements throughout the app
    • [buttons] primary actions now use 'filled' styling for emphasis (bf2bf5e)
    • [settings] use simplified SearchBar styling in the device selection sheet (c14ee27)
    • [error] justify text and tint icon/title if it's actually an error (b1a5f1d)
    • [colors] re-generate static colours for devices on Android 11/R & below (API <= 30) (0eb59cd)
      Higher API versions support dynamic Material You color schemes, so those are unaffected.
  • [strings] shortened some text used in onboarding/contribution UIs (bff1a62)

Miscellaneous

  • Updated dependencies and bumped minSdk to 23 (Android Marshmallow) (c2920ab)
    minSdk 23 is required by all Jetpack/AndroidX releases since June 2025. This means that the previous release, v6.8.0, is the last one that supports Android 5/5.1 devices.
    Gradle       9.3.1 -> 9.4.1
    Build Tools 36.0.0 -> 36.1.0
    Kotlin      2.2.21 -> 2.3.20
    AGP         8.13.2 -> 9.1.0
    KSP          2.0.5 -> 2.3.6
    
    Compose          1.9.5  -> 1.10.6
    Activity-Compose 1.11.0 -> 1.13.0
    
    Dagger 2.58  -> 2.59.2
    Hilt   1.2.0 -> 1.3.0
    Coil   3.3.0  -> 3.4.0
    
    Play Billing         8.0.0 ->  8.3.0
    Play Services Base  18.7.2 -> 18.10.0
    Play Services Ads   23.6.0 -> 25.1.0
    UMP                  3.2.0 ->  4.0.0
    Firebase BOM       33.16.0 -> 34.11.0
    
    AndroidX Browser   1.9.0  -> 1.10.0
    AndroidX Core      1.17.0 -> 1.18.0
    AndroidX Lifecycle 2.9.4  -> 2.10.0
    AndroidX Room      2.7.2  -> 2.8.4
    AndroidX Work      2.10.5 -> 2.11.2
  • [json] migrate from Moshi to kotlinx-serialization (2c2471d)
    Moshi 1 codegen still requires KSP1 (via ksp.useKSP2=false), and Moshi 2 is nowhere near a stable release. KSP2 has been available as a preview since Nov 16, 2023, and was enabled by default on Apr 9, 2025. Continuing to stay on Moshi will delay app releases and offers no meaningful or noticeable benefit in JSON parsing or serialization for our use-cases. kotlinx-serialization will also be inline with Kotlin releases (more often than not).
  • [build] removed room-specific ksp arguments because both incremental and generateKotlin are true by default since 2.7.0 (c2920ab)
  • [build] use networkSecurityConfig for disabling HTTPS for local builds (7aed228)
    Doesn't affect production/test builds. This is simply a migration away from the deprecated usesCleartextTraffic=true that was sometimes used for local testing.
  • [deps] use bundles to group common libs together (547bf5e)
  • [ci] fix incorrect actions/setup-java version bump (65535de)

In case you missed it, the app now supports OPPO devices (as of v6.6.0)! Also, see the news article we published that detailed changes & improvements in v6 (Jetpack Compose rewrite).

Full APK size increased by 512 KB relative to the previous release, v6.8.0.

v6.8.0

Choose a tag to compare

@adhirajsinghchauhan adhirajsinghchauhan released this 13 Feb 15:54
49711cb

Get it on Google Play

Most importantly, this release improves support for downloading OxygenOS/ColorOS 16+ updates. The process has been made more seamless & automatic, and the app will do its best to auto-recover from any failures regarding expired download URLs.

If you still encounter issues, please email us at support@oxygenupdater.com with detailed information about your device and the OTA update you're trying to download from our app.

Added

  • [settings] add convenience button to clear API & image caches (20fe87a)
  • [device] show kernel version if available (under "Software info") (6f79585)
    This will also show on the main "Update" screen, if the user's device is already up-to-date.
  • [device] show screen size and camera megapixel counts if available (under "Hardware info") (a2ec999)

Fixed

  • [download] auto-recover expired OxygenOS/ColorOS 16+ dynamic download URL by refreshing them before failure (6b6ae15)
    You should no longer see these downloads fail with an obscure error message. The app will automatically handle refreshing the download URL for you. You don't need to manually refresh the app or clear its cache anymore.
  • [strings] unformatted HTTP $1d: $2s in download error dialog (2561482)
    This download error dialog was supposed to show a detailed HTTP error code & message in place of $1d and $2s (e.g. HTTP 403: Access Denied), which it should now do.
  • [device] tint fallback image icons for legibility (ea9f34b)
  • [device] rare crash: MissingResourceException unable to construct NumberFormat (728f102)

Changed

  • [api] Keep track of device market name, pipeline code, manifest hash to aid in future device/region support (b0fe851)

Miscellaneous

  • Updated dependencies (3ab37ec)
    Gradle 9.0.0  -> 9.3.1
    AGP    8.13.0 -> 8.13.2
    Kotlin 2.2.10 -> 2.2.21
    KSP    2.0.2  -> 2.0.5
    
    Compose             1.9.0  -> 1.9.5
    Compose M3          1.3.2  -> 1.4.0
    Activity-Compose    1.10.1 -> 1.11.0
    Navigation-Compose  2.9.3  -> 2.9.7
    Placeholder-Compose 1.0.11 -> 1.0.12
    
    AndroidX Core-Splashscreen 1.0.1  -> 1.2.0
    AndroidX Lifecycle         2.9.2  -> 2.9.4
    AndroidX Work              2.10.3 -> 2.10.5
    
    Dagger 2.57  -> 2.58
    OkHttp 5.1.0 -> 5.3.2
    
    Jacoco 0.8.13 -> 0.8.14
    Many dependencies have newer versions, but we intentionally held them back because they require a minSdk bump to 23 (Android 6/Marshmallow. For now, our app still has a minSdk of 21 (Android 5/Lollipop), because we want older devices to also benefit from the many improvements in this release. However, the next app update will most likely bump minSdk to 23 so that we can take advantage of all the improvements that newer dependencies bring with them.
  • [ci] bump actions to latest stable versions (cb84933)

In case you missed it, the app now supports OPPO devices (as of v6.6.0)! Also, see the news article we published that detailed changes & improvements in v6 (Jetpack Compose rewrite).

Full APK size increased by 50 KB relative to the previous release, v6.7.6.

v6.7.6

Choose a tag to compare

@adhirajsinghchauhan adhirajsinghchauhan released this 05 Nov 16:29
f280a27

Get it on Google Play

Fixed

  • [update] #275: crash when tapping download for OxygenOS/ColorOS 16+ updates (320746a)
  • [icons] regenerate badly-formed ReleaseAlert icon for announcements (4065cdc)

Changed

  • [update]: use Material Symbols icon for download & download_anim (53436cb)

Miscellaneous

  • Updated dependencies (d514b32, f280a27)
    AGP                    8.13.0 -> 8.14.0
    Kotlin                 2.2.0  -> 2.2.10
    Crashlytics Plugin     3.0.5  -> 3.0.6
    Google Services Plugin 4.4.3  -> 4.4.4
    
    Compose 1.8.3 -> 1.9.0 (also enabled diagnostic traces for DEBUG builds)
    
    AndroidX Core 1.16.0 -> 1.17.0

In case you missed it, the app now supports OPPO devices (as of v6.6.0)! Also, see the news article we published that detailed changes & improvements in v6 (Jetpack Compose rewrite).

Full APK size increased by 54 KB relative to the previous release, v6.7.5.

v6.7.5

Choose a tag to compare

@adhirajsinghchauhan adhirajsinghchauhan released this 05 Aug 02:28
32b5588

Get it on Google Play

Fixed

  • [main] Google Play in-app update 'Reload' snackbar no longer immediately dismisses (d6ae882)
    This snackbar, or rather its 'Reload' action, is what kicks off the in-app update installation process. A bug (probably since the Compose rewrite) prevented this from remaining on-screen post-download, and would only show again after an app restart. This is no longer the case; the snackbar is now once again shown after an in-app update has been successfully downloaded, allowing the user to apply the update by tapping the 'Reload' action on the snackbar.

In case you missed it, the app now supports OPPO devices (as of v6.6.0)! Also, see the news article we published that detailed changes & improvements in v6 (Jetpack Compose rewrite).

Full APK size increased by 0.2 KB relative to the previous release, v6.7.4.

v6.7.4

Choose a tag to compare

@adhirajsinghchauhan adhirajsinghchauhan released this 04 Aug 02:39
b796714

Get it on Google Play

Fixed

  • [detection/oppo] regression in OPPO device detection (db16ab8)
    Regression since 3ac0f58 (v6.7.2). Cause: pipeline was never appended to deviceProductName due to incorrect logic (human error).

Miscellaneous

  • Updated dependencies (f72706f)
    Gradle 8.14.2 -> 9.0.0
    AGP    8.11.1 -> 8.12.0
    
    Navigation-Compose 2.9.2 -> 2.9.3
    
    AndroidX Browser 1.8.0  -> 1.9.0
    AndroidX Work    2.10.2 -> 2.10.3
    AndroidX Test    1.6.1  -> 1.7.0
  • Minor performance improvements (d640d51, 6c381dd)

In case you missed it, the app now supports OPPO devices (as of v6.6.0)! Also, see the news article we published that detailed changes & improvements in v6 (Jetpack Compose rewrite).

Full APK size decreased by 43 KB relative to the previous release, v6.7.3.

v6.7.3

Choose a tag to compare

@adhirajsinghchauhan adhirajsinghchauhan released this 30 Jul 17:25
f174313

Get it on Google Play

Added

  • [detection] differentiate between different OnePlus Pad 3 regional variants (4d037fe)

Fixed

  • [main] "Become a contributor" sheet no longer auto-hides immediately upon open (d639d20)
  • [main] possible fix for in-app updates not offering the 'Reload' button until an app restart (67c0cb5)

Changed

  • [icons] switched to Material Symbols (cb82bad)
  • [icons] re-generated shortcut icons and switched to WebP images for the same (cb82bad)
  • [device] remove oneplus7pro.webp for fallback/error cases, use conditional icons instead(24d3242)
    Earlier, we'd display oneplus7pro.webp when the device image URL did not return a successful response. However, this neither conveyed device support status, nor did it correctly indicate if it was a network failure that prevented the image from being retrieved, or if the image simply did not exist. Replacing the default image with icons based on device/OS support status allows us to at least solve the first problem, and conveniently, also helps reduce APK size, because we don't need to bundle a raster image anymore.
  • [NewsList] improved performance when scrolling (4ede971)
  • Improved performance by utilizing AndroidX fastCoerce* inline functions wherever possible (6c4f50c)

Miscellaneous

  • Updated dependencies (b470b2d)
    Gradle             8.14.2 -> 8.14.3
    AGP                8.11.0 -> 8.11.1
    Crashlytics Plugin 3.0.4  -> 3.0.5
    
    Navigation-Compose 2.9.1 -> 2.9.2
    Coil               3.2.0 -> 3.3.0
    
    Dagger 2.56.2 -> 2.57
    OkHttp 4.12.0 -> 5.1.0
    
    AndroidX Lifecycle 2.9.1 -> 2.9.2
    
    Play Services Base 18.7.1 -> 18.7.2
  • Removed unused images from src/main/ (ic_faq-web.png, ic_launcher-web.png, image_error-web.png) (cb82bad)

In case you missed it, the app now supports OPPO devices (as of v6.6.0)! Also, see the news article we published that detailed changes & improvements in v6 (Jetpack Compose rewrite).

Full APK size decreased by 12 KB relative to the previous release, v6.7.2.

v6.7.2

Choose a tag to compare

@adhirajsinghchauhan adhirajsinghchauhan released this 08 Jul 02:47
1680ad3

Get it on Google Play

Fixed

  • [detection] incorrect model number selection for IN OPPO devices (3ac0f58)
  • #261: [settings] allow inputting spaces in the device selection sheet's search bar (3ddfb31)

Miscellaneous

  • Updated dependencies (6375031)
    AGP    8.10.1 -> 8.11.0
    Kotlin 2.1.21 -> 2.2.0
    
    Google Services Plugin 4.4.2 -> 4.4.3
    
    Navigation-Compose 2.7.0 -> 2.7.1
    
    Firebase BOM       33.15.0 -> 33.16.10
    Play Billing        7.1.1  ->  8.0.0
    Play Services Base 18.7.0  -> 18.7.1

In case you missed it, the app now supports OPPO devices (as of v6.6.0)! See https://oxygenupdater.com/article/519/ for more info.

Also, see the news article we published that detailed changes & improvements in v6 (Jetpack Compose rewrite).


Full APK size increased by 1.2 KB relative to the previous release, v6.7.1.

v6.7.1

Choose a tag to compare

@adhirajsinghchauhan adhirajsinghchauhan released this 24 Jun 12:34
ba5ead2

Get it on Google Play

Fixed

  • [detection] incorrect model number selection for EU OPPO devices (937da9d)

Miscellaneous

  • Updated dependencies (7563b43)
    Gradle 8.14 -> 8.14.2
    
    Compose             1.8.2 -> 1.8.3
    Placeholder-Compose 1.0.9 -> 1.0.11
    Coil                3.1.0 -> 3.2.0
    
    AndroidX Room 2.7.1  -> 2.7.2
    AndroidX Work 2.10.1 -> 2.10.2

In case you missed it, the app now supports OPPO devices (as of v6.6.0)! See https://oxygenupdater.com/article/519/ for more info.

Also, see the news article we published that detailed changes & improvements in v6 (Jetpack Compose rewrite).


Full APK size increased by 1.96 KB relative to the previous release, v6.7.0.