What do we want? What can we do?
- Stability
- Better battery life
- More performance
- Fix bugs
- Better sound
- Better network throughput
- Faster storage access
- More free RAM thanks to fixing memory leaks or better memory management
Where can we improve things?
- Kernel
- Firmware (unlikely)
- HALs
- Properties
- Configuration files
- Write replacements for Qualcomm HALs or proprietary binaries
Device Trees
Things we can set in the device trees
Some things overlap of course, but not too much.
Audio
- Config files:
a2dp_audio_policy_configuration.xmlaudio_effects.confaudio_ext_spkr.confaudio_output_policy.confaudio_platform_info.xmlaudio_platform_info_extcodec.xmlaudio_platform_info_i2s.xmlaudio_policy_configurationaudio_policy_volumes_drc.xmlaudio_tuning_mixer.txtmixer_paths.xmlmixer_paths_mtp.xml
- check TX/RX paths
- Soundtrigger/hotword detection:
sound_trigger_mixer_paths.xmlsound_trigger_platform_info.xml
- ACDB tweaks
- Configure Qualcomm Fluence, voice processing
- Tweak latencies: “nile-common: audio: Disable ULL mode” https://github.com/omnirom/android_device_sony_nile-common/commit/d9ff18ec6414595481ed5d4d44648c6c7b61a6b8 https://github.com/LineageOS/android_device_sony_nile-common/commit/4dc8401ba95a682e61585f563d78392d5b35df2c
Bluetooth
- Offloading, offloading HALs
- A2DP implementation
- Enable all possible codecs
- LDAC
bdroid_buildconfig.h- Low-Energy
- Channels
Block Devices
- Tune fstab
- Maybe use f2fs
GPS
gps.conf- Check servers
- Check
XTRAversions
NFC
- Configs
- Check that models are correct
Sensors
Debugging features
- Add our custom RPM etc. paths to the dump output of the
dumpstateHAL - Angler: dumpstate
Treble
- Update DM, FCM versions
- Update HAL versions of default ones
- Update
radio@1.1to 1.4 - Check that all devices go on
PRODUCT_FULL_TREBLE
Wi-Fi
- Configs
p2p_supplicant_overlay.confwpa_supplicant_overlay.confwpa_supplicant_wcn.confwifi_concurrency_cfg.txtWCNSS_qcom_cfg.ini
- Configure usable frequencies(DFS)
sec_config
https://github.com/LineageOS/android_device_google_bonito/blob/lineage-16.0/sec_config https://github.com/PixelExperience-Devices/device_xiaomi_tulip/blob/pie/configs/sec_config
seccomp
https://github.com/omnirom/android_device_motorola_potter/tree/android-9.0/seccomp_policy
Suspend HAL?
config_powerDecoupleAutoSuspendModeFromDisplay
config_powerDecoupleInteractiveModeFromDisplay
overlay/frameworks/base/core/res/res/values/config.xml
https://github.com/omnirom/android_device_sony_nile-common/commit/c62a3be7b01f6a4f5da7f497d00c024e30448f96
msm_irqbalance
- Confirm whether IRQs are actually correct
- Ban/unban if needed
- Implement OSS irqbalance
https://github.com/PixelExperience-Devices/device_xiaomi_tulip/blob/pie/configs/msm_irqbalance.conf
HALs/Blobs
Things that we have to tweak HALs for or try to get proprietary binaries changed or write our own replacements.
Camera
vendor-qcom-opensource-camera:
- Shutter speed, exposure, whitebalance etc. parameters
- Fix CASH with timeouts instead of shutting off sensors
- Flash and shutter coordination
Kernel
- Loire: instabilities
- Tone: 5s bug, crashy mtp, heat on even low loads, bad battery life
- Yoshino: Buggy SDE (why does it only happen on GSIs?)
- Nile: Buggy SDE/sluggish stuttery display
- Tama: (Camera)
Update forked HALs
TODO: List of forked HALs that we should update from CAF
TODO/Inspiration
- https://github.com/LineageOS/android_device_huawei_angler/
- https://github.com/cryptomilk/android_device_sony_lilac/blob/lineage-16.0/system.prop
- https://github.com/omnirom/android_device_xiaomi_beryllium
- https://github.com/ResurrectionRemix-Devices/device_lenovo_kuntao/blob/pie/vendor_prop.mk
- https://github.com/ResurrectionRemix-Devices/device_lenovo_kuntao/blob/pie/bluetooth/bdroid_buildcfg.h
- https://github.com/ResurrectionRemix-Devices/device_lenovo_kuntao/tree/pie/audio
- https://github.com/omnirom/android_device_motorola_potter/blob/android-9.0/system.prop
- https://github.com/omnirom/android_device_motorola_potter/blob/android-9.0/device.mk
- https://github.com/omnirom/android_device_motorola_potter/tree/android-9.0/audio
compress_offload:- https://github.com/omnirom/android_device_sony_nile-common/blob/8edcbb4cebd597e39ccaa844ab25bc01d156ac2e/audio/audio_policy_configuration.xml#L92
- https://github.com/LineageOS/android_device_essential_mata
- https://github.com/omnirom/android_device_oneplus_oneplus5
- https://github.com/LineageOS/android_device_google_crosshatch
- https://github.com/LineageOS/android_device_google_wahoo
- https://github.com/LineageOS/android_device_google_bonito
- https://github.com/LineageOS/android_device_xiaomi_dipper
- https://github.com/PixelExperience-Devices/device_xiaomi_tulip/tree/pie/configs/gps
- https://github.com/PixelExperience-Devices/device_xiaomi_tulip/blob/pie/bluetooth/bdroid_buildcfg.h
- https://github.com/PixelExperience-Devices/device_xiaomi_tulip/commits/pie/audio
- https://github.com/enesuzun2002/android_device_samsung_zero-common
- https://github.com/MoKee/android_device_xiaomi_cepheus
- https://github.com/motoz2-force/android_device_motorola_nash
- https://github.com/LineageOS/android_device_huawei_kiwi
Misc
- Re-enable Android Beam on Q