-
Notifications
You must be signed in to change notification settings - Fork 497
Smartisan os #8110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Smartisan os #8110
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can remove the README.md since this might cause merging conflicts, when multiple PRs are merged. (same for the other PRs)
Also, can you sort the OS versions in descending order?
Done |
- regex: 'SM70[15]' | ||
version: '1.5' | ||
- regex: 'SM801' | ||
version: '2.5' | ||
- regex: 'SM919' | ||
version: '3.0' | ||
- regex: 'YQ60[1357]' | ||
version: '2.0' | ||
- regex: 'DE106[ /;\)]' | ||
version: '6.0' | ||
- regex: 'OE106[ /;\)]' | ||
version: '6.0' | ||
- regex: 'OC10[56][ /;\)]' | ||
version: '6.0' | ||
- regex: 'DT2002C[ /;\)]' | ||
version: '6.0' | ||
- regex: 'DT190[12]A[ /;\)]' | ||
version: '6.0' | ||
- regex: 'Smartisan U3 Pro' | ||
version: '3.0' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Those regexes are looking like device fragments, rather than OS fragments. Do those devices not allow updating the OS, are they really fixed to one specific version? 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No idea, I never had one of those. I linked versions based on https://en.wikipedia.org/wiki/Smartisan
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm. Looks like they have listed the latest compatible versions, so it might not be the initial version the device was shipped with. Not sure if that would be detectable taking the reported android version into account 🤔
As Smartisan is a custom android rom I'm also wondering if it can be installed on other devices or if those smartisan devices allow installing other android roms...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mean, theoretically all of custom ROMs can be installed on all devices, the question is how difficult it is to do. And whether it matters much for our purposes, I guess. Yes, this does not mean the library can accurately detect OS for these devices, and it won't detect this OS for other devices (yet), but that's arguably true for other niche items as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure. That might be a more general decision I guess. We currently haven't maintained any OS based on device fragments. @liviuconcioiu @sanchezzzhak What is your opinion on that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think is best to only detect OS name in this case, since devices allow upgrades.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so should I remove versions from everywhere?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Smartisan OS is a custom shell (user interface) developed by Smartisan Technology (founded by Luo Yonghao), which is layered on top of the Android operating system. Smartisan OS is not a separate OS, but a heavily customized Android shell, similar to MIUI, EMUI or ColorOS.
Compare list:
Smartisan OS | base Android |
---|---|
Smartisan OS 1.0 | Android 4.2 (Jelly Bean) |
Smartisan OS 2.0 | Android 4.4 (KitKat) |
Smartisan OS 3.0 | Android 5.1 / 6.0 (Lollipop / Marshmallow) |
Smartisan OS 3.1–3.6 | Android 6.0 – 7.1 (Marshmallow / Nougat) |
Smartisan OS 4.0–4.2 | Android 7.1 – 8.1 (Nougat / Oreo) |
Smartisan OS 5.0–5.1 | Android 8.1 – 9 (Oreo / Pie) |
Smartisan OS 6.0–6.6 | Android 9 – 10 (Pie / Android 10) |
Smartisan OS 7.0–7.2 | Android 10 – 11 |
Smartisan OS 8.0–8.2 | Android 11 – 12 |
Smartisan OS 9.0+ | Android 12 – 13 (on some devices, for example, on new models under the Nut brand, such as the Nut R2/R3) |
OTHER
🔹 Official UI Skins from Smartphone Manufacturers
Manufacturer | UI Name | Based on Android | Key Features |
---|---|---|---|
Samsung | One UI (formerly TouchWiz, Samsung Experience) | Android 9+ | Clean, user-friendly interface; deep integration with Samsung ecosystem; DeX support; Knox security |
Xiaomi / Redmi / POCO | HyperOS (since 2023) / formerly MIUI | Android 10–14 | Rich customization, themes, historically included ads; frequent updates |
Huawei | HarmonyOS (on newer devices) / formerly EMUI | EMUI — based on Android; HarmonyOS — proprietary OS with Android compatibility | EMUI — feature-rich but lacks Google services post-2019; HarmonyOS — transition to an independent platform |
OPPO | ColorOS | Android 10–14 | Vibrant design, smooth animations, gaming-focused features |
vivo | OriginOS (China) / Funtouch OS (Global) | Android 10–14 | OriginOS — minimalist, innovative UI with “atomic” widgets |
Realme | Realme UI | Android 10–14 | Based on ColorOS but with a simplified design targeting younger users |
OnePlus | OxygenOS (Global) / ColorOS (China since 2021) | Android 10–14 | Previously known for near-stock Android; now closer to ColorOS |
Motorola | My UX (formerly near-stock Android) | Android 11–14 | Minimalist, close to stock Android, with useful additions (e.g., gesture controls) |
Sony | Nearly stock Android + proprietary apps | Android 10–14 | Very close to AOSP, minimal modifications |
Stock Android (on Pixel devices) | Pure Android | The most “original” Android experience with exclusive Pixel features (e.g., Call Screen, Magic Eraser) | |
Nothing | Nothing OS | Android 12–14 | Unique transparent design elements and Glyph Interface |
ZTE / Nubia | MyOS (formerly MiFavor UI) | Android 10–14 | Gaming-oriented features (especially on Nubia devices) |
ASUS | ZenUI → now nearly stock Android | Android 10–14 | Previously bloated; now streamlined and minimal |
Lenovo / Motorola | See Motorola above | — | Lenovo (non-Motorola) uses ZUI in China |
If we plan to add Smartisan OS, I would change the structure of the versions section to mapping
Example:
- regex: 'Smartisan[_ ]|(SM(?:70[15]|801|919)|YQ60[1357]|DT2002C|DE106|DT190[12]A|O[CE]106|OC105)[ /;\)]'
name: 'Smartisan OS'
versions:
- regex: 'Android 4.2'
version: '1'
- regex: 'Android 10'
version: '7.2'
The only thing we've added to the OS by model is FireOS.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know that it's not a separate OS, but to me it looks like all Android "skins" are still considered "ROMs", which implies that they are different versions of the OS, similar to how different Linux distros are different versions of Linux (even if we forget that Android is one, too). Otherwise these would be launchers. The scope of changes may be small, I agree, but still.
So question is more broad: should custom ROMs be treated as separate OSs or not, thus implying that information for other devices may need updating as well? IMHO - yes, but do not enforce it because of difficulty of detection and maintenance. If it is known that a certain device (or a set of devices) had a certain version of the OS with relative "uniqueness" - add it to the library. If not - identify it as generic Android.
For Smartisan OS specifically, I think it would mean that we use regex to match both model and Android version where possible, and match only Android version where it's a 1-to-1 match (so most likely oldest versions and maybe the latest one).
If that's fine I can update this PR, and can try to do a separate PR for ROMs from the list above and from https://en.wikipedia.org/wiki/List_of_custom_Android_distributions (where possible, and not too time-consuming).
Description:
Split from #8096 this adds Smartisan OS
Review