Background It was found that a change to the default settings for MinConnectionInterval and MaxConnectionInterval in main.conf broke some of ChromeOS’s keyboard HID tests for only certain Bluetooth controllers. These keyboards aren’t able to connect to the device. Since those connection parameters improve the connection interval for most other chipsets, we want to leave the default values but have a way to have an optional override to address problematic models. Proposed Solution Adding support to bluetoothd for an additional config directory /etc/bluetooth/main.conf.d containing multiple files which will override common params. Override order will be lexically sorted filename order. This pattern is already used by Linux distros, for example there is /etc/sudoers.d which files will override common params in /etc/sudoers. Users can add override config files to /etc/bluetooth/main.conf.d rather than directly editing /etc/bluetooth/main.conf. This is more friendly to package managers since BlueZ package updates won't cause conflict to /etc/bluetooth/main.conf. In bluez’s main.c, merge the params for each *.conf file from /etc/bluetooth/main.conf.d with the existing /etc/bluetooth/main.conf in lexical filename order /etc/bluetooth/main.conf.d will be configurable at build time, e.g. with ./configure --main-conf-dir