-
Notifications
You must be signed in to change notification settings - Fork 6
UN1CA Compatibility Definition Document
Welcome to the UN1CA Device Support Requirements. This document enumerates the requirements that must be met in order for devices to be deemed ship ready for UN1CA releases, beginning with UN1CA 3.0.0. To be considered ready, device maintainers MUST meet the requirements presented in this document, including any documents incorporated via reference.
The use of “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” is per the IETF standard defined in RFC2119.
- Device ownership
- Hardware Support
-
Software support
- Single System Image
- Kernel
- Knox Kernel-Level Securities
- Mainline Updates
- DVFS
- Product Runtime Resource Overlays
- Target Device Tree
- VINTF manifest and compatibility matrix
- Device Unique IDs
- Property Spoof
- Remote Key Provisioning
- SELinux status
- Vbmeta
- UN1CA Updater and recovery image
- Installation
- FRP
- Binder
- Root (su) and modules
- Firmware and proprietary files
- CVE
- Android OS Features
- Local AI features
- Model support
- Firmware support
- Quality of life
- Exceptions
- Maintainers MUST own the device or at least a variant of it with the same hardware. Minor differences (NFC, eSE and Single-SIM/Dual-SIM) are allowed.
- Device MUST respect all the UN1CA Device Support Requirements.
- Device MAY have specific exceptions upon discussion with UN1CA Team.
- Device MUST support audio for media playback.
- Device MUST support audio for traditional calls via built-in dialer app.
- Device SHOULD support audio for calls via thirty-party apps.
- Device SHOULD support FM Radio if supported in stock OS.
- Device MUST support all audio input and output peripherals supported in stock OS (eg. USB and audio jack).
- Device MUST support RIL if supported on stock OS.
- Device MUST support at least one baseband version from One UI 7 or previous versions with the Rollback Protection value of a supported firmware.
- Device MUST support RIL for calls, mobile data and emergency calls.
- Device MUST support the same network capabilities (eg. 4G/5G/VoLTE/VoWiFi) as stock OS.
- Device MUST support Dual SIM if supported in stock OS.
- Device MUST support eSIM if supported in stock OS.
- Device MUST support file based encryption (FBE).
- Device MAY support a more modern file based encryption format than stock OS (eg. FBEv2).
- Device MUST be configured to enforce file based encryption.
- Device MUST support Wi-Fi.
- Device SHOULD NOT support any other Wi-Fi SPF than those set on stock OS.
- Device MUST support Wi-Fi Hotspot with all options and features available on stock OS.
- Device MUST support and detect USB charging.
- Device MUST support all USB modes supported in stock OS, including OTG and MTP.
- Device MUST support USB Host mode if supported in stock OS.
- Device MUST support GPS if supported in stock OS.
- Device MUST support Bluetooth.
- Device MUST support all Bluetooth features as stock OS.
- Device MUST NOT have issues while detecting or connecting to devices.
- Device MUST NOT have random disconnections or instability issues in Bluetooth connections.
- Device MAY use a Bluetooth APEX from stock OS or another device but SHOULD keep feature parity (eg. Dual Audio) with the Bluetooth APEX provided in the SSI.
- Device SHOULD support high-quality (HQ) audio playback in Bluetooth devices as stock OS.
- Device SHOULD set all Bluetooth system properties to stock values.
- Device MUST support Camera.
- Device MAY use a custom "camera-feature.xml" to enable more features or fix compatibility issues with recent One UI versions.
- Device MUST support at least one rear camera and one front facing camera.
- Device MUST support rear flash if supported in stock OS.
- Device MUST support camera in thirty party apps.
- Device SHOULD support all camera modes supported in stock OS.
- Device MUST NOT support broken camera modes.
- Device MUST support Video Recording.
- Device MUST support Video Recording with Audio recording.
- Device MUST support Video Recording with Audio recording with at least one rear camera and one front facing camera.
- Device MUST support Video Recording in thirty party apps.
- Device SHOULD support all Video Recording modes supported in stock OS.
- Device MUST NOT support broken Video Recording modes.
- Device MUST support the same codecs and extractors as stock OS.
- Device SHOULD support the same file formats as stock OS.
- Device MUST support the built-in Display.
- Device MUST support Display output via USB-C port if supported in stock OS.
- Device MUST support the same Display features (eg. refresh rate, MDNIE, natural screen mode, etc.) as stock OS.
- Device MUST support Wireless Display (WFD) if supported in stock OS.
- Device MAY enable Variable Refresh Rate (HFR 2) if not supported in stock OS. In this case, it is RECOMMENDED to have properly adapted Display panel driver or dtbo if possible on the device platform.
- Device MUST support NFC if supported in stock OS.
- Device SHOULD support eSE if supported in stock OS.
- Device MUST support Fingerprint Sensor if supported in stock OS.
- Device MUST support SD card if supported in stock OS.
- Device MUST support all sensors which are supported in stock OS.
- Device SHOULD support all accessories which are supported in stock OS.
- Device MUST use a Single System Image between "essi", "mssi" and "qssi".
- Device MUST supports both ARM 64-bit (arm64-v8a) and ARM 32-bit (armeabi-v7a,armeabi) ABIs.
- Device SHOULD ship separate system_ext partition only if stock OS has separate system_ext partition too.
- Device MUST use erofs for system partitions for official builds.
- Device MAY use original Kernel image.
- Device MAY use a custom Kernel image.
- Device MUST NOT use a GKI image without Samsung and SoC vendor patches.
- Device MUST NOT use a Kernel image which changes the frequency table or overclocks any component of the device.
- Device MUST NOT use custom governors.
- In case of custom Kernel image, sources MUST be present on UN1CA organization.
- Kernel sources MAY be upstreamed but they MUST keep code and branch consistent (eg. rebasing on android12-5.4 but then applying over code from android11-5.4 is not allowed).
- Device SHOULD support "ksmbd" feature using a custom Kernel image.
- Device SHOULD support "UFFD garbage collector" feature using a custom Kernel image.
- Custom Kernel image MAY support updated "sdfat" filesystem driver (2.8.1 or later).
- Custom Kernel image MAY support updated "usb_notify" kernel driver (from One UI 8.0 or later).
- Device MUST use a custom Kernel image.
- Custom Kernel image MUST have all required backports for BPF and other components required for Android boot.
- Custom Kernel image MUST spoof a supported Kernel version to BPF-related components.
- Device MAY disable Knox Kernel-Level Securities (eg. PROCA, KDP, RKP, DEFEX, UH, etc.) using a custom Kernel image.
- Device MUST support Mainline Updates from Google.
- Device SHOULD NOT disable Tethering module updates and SHOULD use a custom Kernel image instead.
- Device MUST use the same DVFS policy as stock OS.
- Device SHOULD use the same Product Runtime Resource Overlays values as stock OS.
- Device MUST add values required for Extra Brightness and Clock Transition if these feature is enabled.
- Device MUST include all patches required to respect the UN1CA Device Support Requirements.
- Device SHOULD NOT modify any SSI file unless there is a valid reason to do so.
- Device SHOULD include a patch for Edge Lighting.
- Device MUST include a patch for OK Google recognition blobs to match those present on stock OS or remove if not present on stock OS.
- Device's floating feature config file SHOULD keep only the lines required to generate the desired floating feature from the output of the floating_feature patch.
- Device MAY include a patch to support Single SIM model variants.
- Device MAY include a patch to support multiple firmware versions (eg. TEEGris or WPSS).
- Device MAY include a patch to update or downgrade RIL blobs.
- Device MAY include a patch to adjust Side Fingerprint Sensor location value in Android OS.
- Device MAY include a patch to adress issues related to high end blobs not working with low end Local AI models.
- Device MUST include a patch to prepare vendor for HFR 2 support if it has been enabled in the custom OS.
- Device SHOULD NOT depend on repositories or code outside UN1CA organization or UN1CA repository.
- Device MUST NOT use the same codename as another device if the same installation package can't be used on both devices.
- If more devices share the same SoC and therefore would share some patches, it is RECOMMENDED to move as many patches as possible to a common platform tree.
- Device MUST ship valid VINTF manifest and compatibility matrix.
- Device MUST have custom VINTF manifest and compatibility matrix if its stock OS version is lower than SSI OS version.
- Device SHOULD NOT have custom VINTF manifest and compatibility matrix if its stock OS is the same as SSI OS version.
- Device MUST NOT report invalid or customized Device Unique IDs (eg. IMEI, Serial Number, MAC addresses, etc.).
- Device MUST report original Device Unique IDs to the OS and apps.
- Device MUST NOT include any Property Spoof implementation other than those already implemented in UN1CA.
- Device MUST support Remove Key Provisioning if supported in stock OS.
- Device MAY report original Device IDs property values, if required to have a working RKP attestation, via a framework patch.
- Device MUST be configured for SELinux Enforcing.
- Device SHOULD ship a patched Vbmeta image from stock OS.
- Device MUST NOT ship a empty Vbmeta image.
- Device MUST NOT ship a custom Vbmeta image from Google or another device.
- Device MUST support updating via the built-in UN1CA Updater feature.
- Device MUST install the update automatically in recovery without any user intervention.
- Device SHOULD support the ability to reboot to recovery after update.
- Device support page MUST have a link to a valid recovery image if TWRP recovery isn't officially available for the device or the most recent release of it doesn't work properly.
- Device SHOULD NOT ship a custom recovery image without a valid reason properly motivated.
- Device MUST have a valid installation guide if the official one isn't suitable.
- Device with stock support of Factory Reset Protection (FRP) MUST support FRP.
- Device MUST use 64_32 binder.
- Device MUST NOT ship any kind of root solution.
- Device MUST NOT ship any way to modify OS partitions.
- Device MUST use a publicly available firmware release from FUS.
- Device MAY implement a way to use a older firmware release from FUS if required.
- Device MUST use proprietary files (blobs) extracted only from publicly available Samsung firmware binaries (FUS).
- Device SHOULD NOT use pinned blobs unless necessary for compatibility or other features.
- Device MUST store all pinned blobs in its "target" directory.
- Device MUST store all non-pinned blobs in "prebuilts" directory.
- Device SHOULD use the most recent firmware possible (eg. using another CSC if it has a more recent firmware).
- Device SHOULD have CVEs merged in custom Kernel image.
- Device MAY enable more features than those available in stock OS but they MUST be properly tested.
- Device MUST NOT ship incomplete (placebo) or partially working features, in this case they MUST be disabled.
- MediaTek devices MUST NOT implement Live Blur functionality unless surfaceflinger blobs which match supported ABIs are released.
- Device SHOULD have feature parity with other officially supported devices.
- Device SHOULD support all available Local AI features (Image Tagger, Portrait, SAIV, Image Clipper, MIDAS, etc.) which are supported by stock OS.
- It is RECOMMENDED to implement all Local AI features (Document Scan, etc.) if they can be enabled while keeping stability.
- The device tree MUST support the model whose firmware is used in the build process.
- The device tree MAY support other model variants (eg. SM-A346B and SM-A346E) with proper patches and MUST respect the UN1CA Device Support Requirements on all variants.
- Installation MUST fail on unsupported models.
- The device tree MAY automatically adapt firmware properties depending on the model it is booting on but they MUST NOT interfere with the custom OS.
- Installation process MUST fail on an unsupported firmware (bootloader, SecureOS, etc.).
- Installation process MAY update firmware to a supported version after proper device model and eligibility checks.
- Installation process MUST NOT update firmware if it would increase any Rollback Protection value to One UI 8 values.
- Installation process SHOULD NOT update any part of firmware to One UI 8 or later unless necessary.
- Device MUST NOT require any One UI 8 or later firmware to be installed.
- Device support page MUST specify a supported firmware (eg. A346BXXUBEYI7) or a group of supported firmwares (eg. Android 15).
- Device SHOULD support the latest available firmware to be installed, if device became EOL with One UI 7 or previous versions.
- Device SHOULD support the latest One UI 7 firmware to be installed, if device didn't became EOL with One UI 7.
- Device support page MAY link to a guide to update and/or download firmware.
- All non-original commits MUST have proper authorship attribution from the source it was taken from or adapted from.
- Force pushing branches SHOULD be avoided.
- Device maintainer(s) MUST have a GitHub account for bug tracking and cross-team collaboration.
- Device maintainer(s) MUST routinely triage, answer and close bug reports.
- Device maintainer(s) SHOULD make their GitHub name match their maintainer name as displayed on the device support page.
- All Kernels MUST be GPLv2 and a source MUST be available in GitHub UN1CA organization or Samsung OSRC.
- All UN1CA contributions MUST be under GPLv3 License.
- All devices with a official build of UN1CA MUST have a device support page on UN1CA GitHub discussions.
- All devices with a official build of UN1CA MUST document any hardware issue affecting the device.
- All devices with a official build of UN1CA MUST document any software issue compared to stock OS.
- Issues like the "screen of death" MUST NOT affect the device.
- Device MUST NOT have random reboots.
- Device MUST NOT have abnormal performance drop.
- Device MUST NOT have abnormal battery drain.
- Device MUST separate target patches if they fix different things.
- Device MUST implement all Core and UN1CA-exclusive features unless there is an exception made for that device or SoC vendor.
All currently granted exceptions should be listed in the following table. To request an exception, please submit a change to this repository.
| Date | Device/SoC | Section Exempted | Reason |
|---|---|---|---|
| 2026/01/11 | MediaTek | Core Features | Some high end camera features, Live Blur and Relumino aren't available on MediaTek devices due to missing blobs for the required ABIs. |
This document is licensed CC-BY-3.0, with portions adapted from LineageOS's device-support-requirements and Google’s CDD requirements.