Hi,
I have found the issue.
In Kitkat when there was a touch device with no available input device configuration file (.idc), a GenericTouch.idc would be loaded.
The code for this special check is in frameworks/base/services/input/EventHub.cpp in method void EventHub::loadConfigurationLocked(Device* device).
if ((device->classes & INPUT_DEVICE_CLASS_TOUCH) && device->configurationFile.isEmpty()) {
device->configurationFile = getInputDeviceConfigurationFilePathByName(String8("GenericTouch"),
INPUT_DEVICE_CONFIGURATION_FILE_TYPE_CONFIGURATION);
}
However in later Android versions neither GenericTouch.idc nor this check are present anymore resulting in an incorrect detection of Penmount 6000 touchscreens (and possible other resistive touchscreens).
In fact the number of idc files shrunk from 7 (kitkat) to 3 (Lollipop),. Marshmallow has 7 in total again, but not the GenericTouch.idc. The special check in EventHub.cpp is also not present in marshmallow.
Could anyone of the Android-x86 team comment on the missing GenericTouch.idc? As this code has not been around
in official android sourcecode, it must have been a patch specifically for/from Android-x86.
As Android-x86 pursues the goal to be as compatible as possible with most devices a step "backwards" that would require (more) device specific .idc files to be present seems not to be intended?
@Rob: to get your touchscreen to work,
read this documentation. You can see that in the example Google has a touch device named touch_dev with the matching touch_dev.idc file. You could try copying the GenericTouch.idc from Kitkat(I have attached it) and rename it to your device name (
replace whitespaces with underscores). To test if it works, install Android x86 with system partition read write, copy your idc file to /system/usr/idc/ and reboot.
Kind regards,
Robin