OneOS runs a second Android system next to One UI on a rooted Samsung Galaxy and switches between the two without flashing anything. One UI stays installed; the other system lives in a folder on the phone and starts on One UI's kernel as a container with its own zygote and system_server. You switch from the OneOS app and come back with Back to One UI (the OneOS app inside the other system) or by holding Volume Up + Volume Down for 3 seconds.
OneOS started from OneLineage by WeWaffles, and builds its guest images with MysticGSI. See Credits.
Warning
Experimental. It can break your phone's data. Do not try this unless you know what you are doing. OneOS replaces core parts of a running system as root. During development a guest system reached One UI's data and deleted app data and photos, and a guest once took over the phone's lock-screen hardware slot so that One UI could not unlock until a factory reset. Both are guarded against now, but untested phones and images can fail in new ways. You must back up your accounts and data first, and remove the screen lock (PIN, pattern, password, fingerprint, face) before switching. Only use a phone you can afford to reset. Nothing here is supported by Samsung, Google or OPPO.
App version 0.4.23. Samsung flagships with Snapdragon, plus the first two Exynos phones; root is required (tested with KernelSU; Magisk and APatch are detected but untested).
| Guest system | Tested on |
|---|---|
| Pixel 11 Fold (Android 17) | Galaxy Z Fold8 Ultra (SM-F976B), One UI 9 |
| ColorOS 17, Find N6 build | Galaxy Z Fold8 Ultra (SM-F976B), One UI 9 |
| ColorOS 17, Find X9 Ultra CN build | Galaxy S25 (SM-S931), Galaxy S25 Ultra (SM-S938), Galaxy S26 Ultra (SM-S948) |
Untested profiles, where the app asks you to tick that you know before switching: Galaxy Z Fold8 (SM-F971) and Z Fold7 (SM-F966), Galaxy S26+ (SM-S947), S26 (SM-S942, SC-51G), S25+ (SM-S936) and S24 Ultra (SM-S928) with ColorOS; the Pixel 11 Fold image on the Z Fold8, the Pixel 11 Pro image on the Galaxy S26 Ultra, S26+ and S26, and the Pixel 9 Pro XL image on the Galaxy S25 Ultra, S25, S25+ and S24 Ultra (the Pixel 11 images need a newer CPU); and on every Galaxy S phone above, the Find X9 Ultra IN (global) build of ColorOS 17, with Google Play and the Play Store. Galaxy S23 (SM-S911) and S23+ (SM-S916) are accepted for testing only: their vendor software is too old and the system will most likely not start (One UI comes back by itself; please share the session logs).
Exynos, first runs: the Galaxy S26+ with Exynos (SM-S947B, m2s) with both Find X9 Ultra builds and the Pixel 11 Pro image, and the Galaxy Z Flip7 (SM-F766, Exynos 2500) with both Find X9 Ultra builds, used as a phone on the main screen (no cover screen layout yet). Nothing has run on Exynos yet.
Pixel 11 Fold on the Galaxy Z Fold8 Ultra: calls and SMS on both SIMs, 5G and Wi-Fi, Bluetooth audio, Google Play and Google's apps, the inner and cover screens, blur, and Back to One UI (usually without a restart).
Pixel 9 Pro XL on the Galaxy S25 Ultra (first session, 0.4.22): it starts, runs Google's setup wizard, has mobile data on SIM 1, Bluetooth and stereo speakers, and Back to One UI works. The phone got very hot. 0.4.23 fixes the crash loop behind that, renders at 120 Hz instead of dropping to 60, and adds a heat cap (Advanced > Cool down when hot): One UI's own heat control does not run in the other system, so from 45 °C OneOS slows the processor until the phone cools.
Known open issues for each system are in docs/pixel-guest.md and
docs/coloros-on-fold.md.
Everything else (other Exynos phones, other models, other images, other Android versions) is refused by the app's compatibility checks.
Run OneOS Probe on it. It is a separate read-only app: it changes nothing, and it strips the IMEI, phone numbers and Wi-Fi names from its report (it needs root to read the system). Tap Run tests, then Share, and post the zip with your phone model in Phone reports in the OneOS Telegram group. New releases are announced there too. Probe is in the same download folder as the app (see the latest release).
Before anything else (do not skip these):
- Use a tested phone. The systems above have only been tested on the phones listed next to them. On any other phone the app warns you, and things may not work.
- Back up your accounts and data. Samsung Cloud, Google and Smart Switch, plus photos and anything else you can't lose. OneOS guards One UI's data, but it is experimental.
- Remove your screen lock. Settings › Lock screen › Screen lock type › None or Swipe: no PIN, pattern, password, fingerprint or face. If something goes wrong and the phone boot-loops, a locked phone may need a factory reset to recover. OneOS will not switch while a lock is set.
- Root, battery and heat. The phone must be rooted (tested with KernelSU), charged to at least 30 % and not hot (under 42 °C).
Then:
- Install the OneOS app and allow it in your root manager.
- In OneOS open Systems, tap Download on the system made for your phone and download it, on Wi-Fi (3.3 to 5.3 GB).
- Back in OneOS tap I have the file, pick the download, then Set up. Setup takes about 15 minutes: keep OneOS open and the phone plugged in. One UI keeps working meanwhile.
- Tap Switch. To come back, tap Back to One UI in the other system (usually no restart), or hold Volume Up + Volume Down for 3 seconds. Stuck on the logo? Hold Power + Volume Down to restart into One UI.
If your root does not survive a restart, activate it again after you come back.
- On a build machine, an OEM firmware image is turned into a system image
(with MysticGSI, outside this repository), and
scripts/make-overlays.shpatches its framework (switcher/patches/) so it can run as a guest next to One UI. - The app checks the phone and the image (size and SHA-256 against its own
table), then, as root, stages the image and its patched files in
/data/local/tmp/oneos. switcher/assets/oneos_switch.shstops One UI's zygote and system_server (the kernel, vendor services and radio keep running) andguest_prepare.sh/guest_start.shstart the guest's own framework in a mount namespace whose/systemis the image and whose/datais the stage.- Guards keep the guest away from One UI's data and keys: its own vold,
storage and installd guards, no weaver or gatekeeper writes, no new users,
app ids of its own (
docs/app/patch-catalog.md). return_to_oneui.shstops the guest and gives the phone back to One UI, in place when it can and by a reboot otherwise (docs/inplace-return.md).
| Path | What it is |
|---|---|
app-android/ |
The OneOS app and OneOS Probe (Kotlin, One UI look through SESL), the in-guest Back to One UI app, and their tests |
switcher/assets/ |
The session scripts the app ships: switch, prepare, start, return, bridges |
switcher/patches/ |
Framework patchers (Python and smali) applied by make-overlays.sh, and Samsung's installd interface table |
switcher/overlays/, switcher/native/ |
Runtime resource overlays, and the source of the guest zygote launcher (zygote_exec) |
scripts/ |
Build-machine tools: the overlay build, adb deploy for development, log collection |
docs/ |
Design notes, the patch catalog, and what each test session showed |
git clone https://github.com/fahadalijaved23/OneOS.git
cd OneOS/app-android
./gradlew assembleProbeDebug # OneOS Probe: needs nothing outside this repository
./gradlew test # unit tests (dash or busybox for the root script tests)Requirements: JDK 21, the Android SDK with platform android-37
(ANDROID_HOME or sdk.dir in local.properties), and internet access to
Google Maven and Maven Central. Details: app-android/README.md.
The full OneOS app (assembleFullDebug, assembleFullRelease) also packs the
package sets: the files OneOS patches out of each built system image, from
../out/overlays*. They are not in this repository. Building the guest images
themselves is not part of this repository either (OneOS's images are built with
MysticGSI, see Credits). What is here is how OneOS patches a built image:
APKTOOL=/path/to/apktool.jar EXTRACT_EROFS=/path/to/extract.erofs \
scripts/make-overlays.sh <system.img> out/overlays # the set for that imageThe build fails unless every file matches app-android/packages/<set>.sha256
exactly, so the sets must come from the same firmware builds. Release builds
are signed with a key from ~/.oneos-release/keystore.properties
(storeFile, storePassword, keyAlias, keyPassword); without it the
release packaging stops. Debug builds use your machine's debug key.
This repository does not host system images, OEM firmware or the patched
framework files built from them, and GitHub releases never carry them. They
contain Samsung's, Google's or OPPO's code. The guest images are built from
the vendor's own firmware outside this repository, and the app accepts only
the builds whose size and SHA-256 it knows
(app-android/core/model/src/main/kotlin/com/fahadali/oneos/core/model/Images.kt).
The firmware/ and out/ folders are ignored by git for that reason.
OneOS is licensed under the Apache License 2.0. Parts of this repository come from other projects and keep their own terms: the OneLineage-derived session scripts (published with WeWaffles' permission). See NOTICE and CREDITS.md.
- OneLineage by WeWaffles: the container hot-switch OneOS is built on. OneOS's session scripts started from OneLineage's, and WeWaffles gave permission to publish this work on top of it, with credit here and in the app.
- MysticGSI (The MysticGSI Authors, Apache-2.0): builds the guest images OneOS runs (not part of this repository). MysticGSI includes TrebleDroid work by Pierre-Hugues Husson (phh) and contributors.
- OneUIProject: SESL, oneui-design and oneui-icons (MIT) give the app its One UI look.
- Josh Skinner (@thatjoshguy67): Galaxy Z Fold8 support (pull request #1): the Fold8's Find N6 ColorOS set, its cover display, Quick Settings, AOD, widgets, Pocket Studio and Google fixes, and Samsung's hinge sensor for half-folded postures and the open/close animations in ColorOS and Pixel, which the Z Fold8 Ultra uses too.
- smali/dexlib2, AndroidX, Kotlin, Guava, ZXing and others: the full list with licenses is in CREDITS.md.
Not affiliated with Samsung, Google, OPPO or OnePlus. Galaxy and One UI are trademarks of Samsung Electronics; Android and Pixel of Google LLC; ColorOS of OPPO.