Input device configuration files (
.idc files) contain device-specific configuration properties that affect the behavior of input devices. IDC files can be used to override the default behavior of input devices as assigned by device drivers.
Normally IDC files is not compulsory to be used by input devices, but if we want to change some default behavior of input device which normally can be changed only by modifying kernel driver or source code, compile and flash the new firmware, then IDC files are of great use. So, IDC files are nothing but some configuration files (as name suggests) which can be used to change device behavior without modifying source code.
To identify which IDC file is assigned with some input device, we can use following steps,
$ adb shell dumpsys input
From the output of this command, look for “Event Hub State:” then “Devices:” and look for your device name string at after device number.. for example: “2 : My Input Device Name”
Now, below “My Input Device Name” we can see different options such as “path” , “location” , “identifier” etc, there look for “ConfigurationFile” option.
If you see “ConfigurationFile” as empty, it means this input device is not using any IDC file. and if you see some string, it shows the path and name of the IDC file which you can then refer to.
You can also use command,
$ adb shell dumpsys input | grep ConfigurationFile
Just to quickly check if any of the device is using IDC file, but this will not give the name of exact device if some IDC file is assigned to, so we need to analyze complete “dumpsys input” results anyways.
As an example, we can see the output as below, ( Start looking for results from top )
$ dumpsys input INPUT MANAGER (dumpsys input) Input Manager State: Interactive: true System UI Visibility: 0x8008 Pointer Speed: 0 Pointer Gestures Enabled: true Show Touches: false Pointer Capture Enabled: false Event Hub State: BuiltInKeyboardId: -2 Devices: 6: goodix_fp Classes: 0x00000001 Path: /dev/input/event2 Enabled: true Descriptor: b8e81eb0c718c3bacb9a7d5e43de3875d7c3ce9a Location: ControllerNumber: 0 UniqueId: Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000 KeyLayoutFile: /vendor/usr/keylayout/goodix_fp.kl KeyCharacterMapFile: /system/usr/keychars/Generic.kcm ConfigurationFile: /vendor/usr/idc/goodix_fp.idc HaveKeyboardLayoutOverlay: false VideoDevice: <none>
Reference : https://source.android.com/docs/core/interaction/input/input-device-configuration-files