- For building ShapeShiftOS for your device for Android 11, the lunch target is lunch ssos_devicecodename. Of course, we do require some additional overlays in your tree to make the best out of ShapeShiftOS.
SSOS has proper product/board variable separation.
Add to your device tree's device.mk or common.mk
PRODUCT_BOARD_PLATFORM := (board name, ex. trinket, msmnile, sdm845) PRODUCT_USES_QCOM_HARDWARE := true
You can simply use props to enable blur on your device. However, we have a flag to enable blur by default which you can use if you choose to do so. Blur is shown as an option in display settings for all devices and is disabled by default. To enable this option by default:
Add to your device tree's device.mk or common.mk
TARGET_USES_BLUR := true
These are REQUIRED commits which MUST be in your device tree if you have a parts implementation. One commit adds haptic feedback to switches and the other moves the parts section from the Settings dashboard to the system section.
If you have a device with a notch, add this to your overlay's overlay/frameworks/base/core/res/res/values/config.xml:
<!-- Whether device has a physical display cutout --> <bool name="config_physicalDisplayCutout">true</bool>
If your device has an AMOLED screen, add this to your overlays overlay/frameworks/base/core/res/res/values/config.xml:
<!-- Whether the device supports Smart Pixels --> <bool name="config_enableSmartPixels">true</bool> <!-- If true, the display will be shifted around in ambient mode. --> <bool name="config_enableBurnInProtection">true</bool>
In order to enable the FOD HAL, you have to set this in overlay/frameworks/base/core/res/res/values/config.xml:
<!-- Shows the required view for in-display fingerprint --> <bool name="config_supportsInDisplayFingerprint">true</bool>
We use LineageOS's FOD implementation. Check this device tree if you want any reference
To get screen off FOD, you first need screen off FOD support in your device tree. There is also an overlay you need to add to your tree.
To overlay/packages/apps/Settings/res/values/config.xml
<!-- Whether device has screen off FOD support --> <bool name="config_supportScreenOffFod">true</bool>
To get FOD animations, add this flag to your ssos_device.mk
EXTRA_FOD_ANIMATIONS := true
If your device supports Dash Charging, add this to your overlays overlay/frameworks/base/core/res/res/values/config.xml:
<!-- Whether device has dash charging support --> <bool name="config_hasDashCharger">true</bool>
If your device supports Warp Charging, add this to your overlays overlay/frameworks/base/core/res/res/values/config.xml:
<!-- Whether device has warp charging support --> <bool name="config_hasWarpCharger">true</bool>
Refer to this commit for enabling Smart Charging on your device
Configuring maximum icons in statusbar are different in ShapeShiftOS. They have been moved to internal from SystemUI, to configure:
Add this to your overlays overlay/frameworks/base/core/res/res/values/config.xml:
<!-- Max visible notification icons --> <integer name="config_maxVisibleNotificationIcons">4</integer> <integer name="config_maxVisibleNotificationIconsOnLock">5</integer>
Configuration for this overlay is different in SSOS. It has been moved to internal from SystemUI, to configure:
Add this to your overlays overlay/frameworks/base/core/res/res/values/config.xml:
<!-- Should we vibrate on an icon animation of the shelf. This should only be active if the vibrator is capable of subtle vibrations --> <bool name="config_vibrateOnIconAnimation">true</bool>
Face unlock is also enabled by default. In case your device doesn't support it, set this in your ssos_device.mk:
TARGET_FACE_UNLOCK_SUPPORTED := false
You can also enable face unlock only on swipe by setting this in overlay/frameworks/base/core/res/res/values/config.xml:
<!-- Enable face auth only when swiping security view --> <bool name="config_faceAuthOnSecurityView">true</bool>
In ShapeShiftOS, maintainers can show their name in the about dialog in ShapeShifter.
To find out the overlays needed for this, take a look here