[community]: Validate Sony Xperia Z5 Compact (suzuran) support
- Device:
Sony Xperia Z5 Compact
- codename:
suzuran
- /e/ version:
v1-q
- Maintainer:
@petefoth
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.
Hardware Support
Audio
-
The device MUST support audio playback for media content. -
Phone MUST support in-call audio. -
Phone MUST support speaker audio. -
Devices SHOULD support any additional audio configuration inherent to their device (eg. echo cancellation, extra mics, etc). -
The device MUST support any other audio output supported by their stock OS (eg. headphone jack, USB-C, BT). -
The device with FM radio capabilities in their stock OS SHOULD support FM.
RIL
petefoth: I have no idea what RIL is - sorry
-
The device with RIL supported in their stock OS MUST support RIL for phone calls & data. -
The device with RIL supported in their stock OS MUST support emergency calling with a SIM inserted (112/911). -
The device with RIL supported in their stock OS SHOULD support emergency calling without a SIM inserted (112/911). -
Data-only device (defined as devices that have a RIL but do not support telephony stack due to hardware/firmware restrictions) are EXEMPTED from phone & emergency dialing requirements.
Encryption
petefoth: I don't know whether the device supports any of these as stock or in /e/OS
-
The device that supported hardware-backed encryption on their stock OS MUST support hardware-backed encryption. -
The device that shipped stock as forceencrypt SHOULD default to forceencrypt enabled. -
The device MUST support software encryption.
Wi-Fi
-
The device with Wi-Fi supported in their stock OS MUST support Wi-Fi. -
The device with Wi-Fi MUST report same MAC address as on stock OS. petefoth: No way to test - I don;t have stock software -
The device with Wi-Fi hotspot capabilities MUST support Wi-Fi tethering.
USB
-
The device with a USB port MUST support file access via MTP. -
The device with USB tethering supported on their stock OS MUST support USB tethering. -
The device with a USB port & Data SHOULD support USB tethering.
GPS
- x ] The device with GPS supported in their stock OS MUST support GPS.
Bluetooth
-
The device with Bluetooth supported in their stock OS MUST support Bluetooth. - [?] The device with Bluetooth MUST report same MAC address as on stock OS. petefoth: No way to test - I don't have stock software
-
The device with Bluetooth SHOULD support Bluetooth tethering. - [?] The device with support for Qualcomm® aptX™, aptX™ HD, or any future variant of aptX™, in stock (non-beta releases) OS SHOULD support those variant of aptX™. petefoth: No way to test - I don't have stock software
- [?] The device without support for Qualcomm® aptX™, aptX™ HD, or any future variant of aptX™ in stock (non-beta releases) OS MUST NOT support those variants of aptX™. petefoth: sorry, but I have no idea what any of the above means or whether it is or is not supported by this device
Camera
-
The device with Camera supported in their stock OS MUST support Camera, in both front facing and rear camera configurations. - [N/A] The device with Dual (or more) Rear Cameras SHOULD support all rear cameras.
- [N/A ] The device with Dual (or more) Front Facing Cameras SHOULD support all front cameras.
- [?] All Camera HAL versions accessible with the device's Camera HAL MUST comply with the Camera and Video Recording requirements. petefoth: sorry, but I have no idea what this question means. This device is capable of taking photos and recording video
Video Recording
-
The device with Video Recording supported in their stock OS MUST support Video Recording, in both front facing and rear camera configurations.
Codecs
- [?] The device with hardware encoding/decoding support in their stock OS MUST support hardware encoding/decoding for all non-proprietary codecs supported by their stock OS. petefoth: I don't know whether this device has hardware encoding/decoding support
Display
- [?] The device with a built-in Display MUST support the Display at the same resolution and density as the stock OS. petefoth: No way to test - I don't have stock software
- [N/A] The device that do not include a built-in Display MUST support Display output via the hardware’s supported outputs (eg. Android TV - HDMI).
- [N/A] The device that support additional non-USB display interfaces SHOULD support those display output methods.
- [?] The device that support a USB-out display in their stock OS SHOULD support this display output (eg. MHL/Miracast/OTG).
- [?] The device that support HDR10 playback in their stock OS SHOULD support HDR10 playback. petefoth: I don't know whether this device supports either of the last two items
NFC
-
The device with NFC supported in their stock OS MUST support NFC.
Fingerprint Sensor
- [N/A] The device with a Fingerprint Sensor MUST support the Fingerprint Sensor if the stock OS supports it with Marshmallow or higher Android versions.
- [N/A] The device with a Fingerprint Sensor SHOULD support the Fingerprint Sensor if the stock OS supports it for all other Android versions.
IR
- [?] The device with an IR blaster SHOULD support IR blaster. petefoth: I don't know whether this device has an IR blaster
Accelerometer
-
The device with an accelerometer MUST support the accelerometer.
Gyroscope
-
The device with a gyroscope MUST support the gyroscope.
Proximity
-
The device with a proximity sensor MUST support the proximity sensor.
Light
-
The device with a light sensor MUST support the light sensor.
SDCard
-
The device with a SDCard slot MUST support the SDCard.
Other Sensors
- [?] All other sensors supported by a device’s stock OS SHOULD be supported. petefoth: I belive this is true, but I don't know what other sensors this device has in stock
Accessories
- [N/A] The device with proprietary accessories SHOULD support those accessories (eg. O-Click, Essential 360 Camera).
Software support
Device tree structure
-
Device trees MUST contain a Lineage-specific makefile with device declaration of lineage_[devicename]. -
Device trees MUST support a lineage.dependencies file for breakfast
command & roomservice to be functional.- This file MUST NOT include any dependencies outside of the "LineageOS" organization.
Build type
-
The device MUST be configured as userdebug releases. petefoth: I don't know - I don;t perform builds for this device
Kernel
-
The device MUST NOT ship a prebuilt kernel. -
The device MUST NOT implement software based touchscreen wake features such as double tap to wake, swipe to wake or gestures if there is no hardware-backed support for them in the touchscreen firmware. -
The device MUST NOT implement forced fast charge over USB methods that violate the USB specifications. -
The device MUST NOT implement any form of clock manipulation (underclocking, overclocking, etc.) for any processor (CPU, GPU). -
The device MUST NOT implement any form of hardware voltage manipulation (undervolting, custom voltage tables, etc.). -
The device MUST NOT implement any form of hardware register manipulation (sound control, etc.). -
The device MUST NOT implement any form of custom KSM driver (UKSM, etc.). -
The device MUST NOT ship governors other than the ones specified in the following list: - conservative
- interactive
- ondemand
- performance
- powersave
- sched
- schedutil
- userspace petefoth: I don't know about any of the above
-
The device MUST NOT ship I/O schedulers other than the ones specified in the following list: - bfq
- cfq
- deadline
- noop
- row petefoth: I don't know
-
The device MUST only ship hotplugging drivers provided by the OEM or SoC vendor. petefoth: I don't know
SELinux status
-
The device MUST be configured for SELinux Enforcing. petefoth: I don't know
Verity
-
The device MUST disable verity on the system image for userdebug builds. -
The device with AVB enabled and with a lockable bootloader SHOULD support verity on the vendor image. petefoth: I don't know
Updater
-
The device with a shipping build of LineageOS MUST support upgrades via the native LineageOS Updater application & the recovery documented on the Wiki for that device. petefoth: this device does not have 'a shipping build of LineageOS'. It has not been an official LineagOS device since nougat
FRP
-
The device with stock support of Factory Reset Protection (FRP) SHOULD support FRP when Google Applications are installed by the user. petefoth: I don't know
SafetyNet
-
The device MUST NOT alter SafetyNet validation responses. petefoth: I don't know
Binder
-
The device MUST use the 64-bit Binder API. petefoth: I don't know
Root (su)
-
The device MUST NOT ship with su included. -
The device shipping LineageOS 16.0 or earlier MUST support su installation via LineageOS provided ‘Extras’ download. petefoth: I don't know petefoth: I have read all of the stuff below here, and I don't know anything about any of it
Non-PIE Blobs
-
Devices MUST NOT use non-PIE (position-independent executable) binaries.
Proprietary files extraction
-
Devices MUST have a working proprietary files extraction script in their device tree (or device tree dependencies) that reproduces an exact copy of the binaries required to build LineageOS from an existing LineageOS installation. -
Devices SHOULD use the global extraction script (located in vendor/lineage). -
If a device maintainer elects to not use the common extraction script, the maintainer MUST ensure that the Wiki page for their device has valid instructions for operating the custom extraction script. -
Devices MUST use proprietary files extracted from, in order of preference, the same device's publicly-released image, another device's publicly-released image, or some other source with appropriately transferrable use/release/dissemination rights. In the event of the last option, artifacts documenting suitable transferability of rights MUST be provided to LineageOS project leadership. -
All proprietary files lists MUST contain a short comment noting the source of any un-pinned (default) proprietary files. -
Any proprietary files not sourced from the noted default MUST be pinned in the respective proprietary files list and have a short comment noting the source of those proprietary files.
Firmware
-
The device MUST assert on known to be working firmware versions if some firmware versions are known to be non-working. -
A/B devices are exempted from the above rule, and instead must do one of the following: -
If the device is capable of shipping firmware it MUST do so. -
If the device is not capable of shipping firmware (eg. a device with multiple variants supported in one build) the device MUST ensure both slots are on a known good firmware (eg. using the copy-partitions before_lineage_install template on the Wiki).
-
exFAT Support
LineageOS operates under the assumption that OEM device licensing for exFAT is attached to the device, not software. LineageOS will comply with all requests for removal of exFAT support from OEMs, Microsoft or their representatives upon contact to legal@lineageos.org.
-
The device with exFAT support on stock MAY support exFAT with (and only with) a kernel based implementation. -
The device without exFAT support on stock MUST NOT support exFAT.
Additional Features
-
The device SHOULD support in-kernel (MDSS, MDNIE or similar) LiveDisplay colour adjustment.
Vendor Images
-
All non-A/B devices relying on an OEM provided vendor partition must assert vendor image versions at flash-time. -
All A/B devices with a vendor partition MUST either: -
Build a vendor image. -
Detail on the Wiki: The required firmware version, the process of installing it, and a process that ensures all slots are on the same firmware (eg. the Wiki's copy-partitions template).
-
-
All maintainers SHOULD NOT require a modified prebuilt vendor image either in their build tree, or on the Wiki. -
If required, the maintainer MUST mention modifications in the readme of the device specific folder
-
-
All Treble enabled devices SHOULD verify basic hardware functionality with an /e/OS GSI.
Adaptable storage
- [ ] All devices with internal storage >= 64GB MUST disable adaptable storage
Quality of life
Commit Authorship
-
All non-original commits MUST have proper authorship attribution from the source it was taken from or adapted from.
Workflow
-
Force pushing branches SHOULD be avoided. -
In the event of a force pushed branch, backup branches of the pre-forced HEAD MUST be made.
Licensing
-
All Kernel contributions MUST be GPLv2. -
All Android contributions SHOULD be Apache 2.0 licensed. -
Any contribution to an existing Apache 2.0 project MUST fall under Apache Compliance Category A. -
Any contribution to an existing Apache 2.0 project MUST NOT be in Apache Compliance Category X.
Stability
-
Issues like the "screen of death" MUST NOT affect the device. -
The device MUST NOT have abnormal battery drain
Recovery
-
Maintainers MUST document for users on the Wiki a valid Recovery image by which to install LineageOS zip files. -
Devices that do not have traditional Recovery images MUST support & document another means of installation for LineageOS zip files. -
Maintainers wishing to ship LineageOS 17.0+ for their device MUST verify official Lineage Recovery distributions work for LineageOS installation. -
Maintainers SHOULD ship Lineage recovery as the default solution for their device on the Wiki, though may provide TWRP, or any valid recovery image so long as they have valid installation instructions on the Wiki. -
Maintainers SHOULD verify that Teamwin Recovery Project (TWRP) official distributions work for LineageOS installation. -
Failures in official TWRP recoveries SHOULD be raised with the TWRP team or remedied by the maintainer.
Striked: not relevant
empty box: not tested
Mostly based on https://github.com/LineageOS/charter/blob/master/device-support-requirements.md