@@ -34,6 +34,28 @@ constexpr size_t kValidTypes[] = {EV_SW,
3434 android::EventHubInterface::DEVICE_ADDED,
3535 android::EventHubInterface::DEVICE_REMOVED};
3636
37+ static const android::InputDeviceClass kInputDeviceClasses [] = {
38+ android::InputDeviceClass::KEYBOARD,
39+ android::InputDeviceClass::ALPHAKEY,
40+ android::InputDeviceClass::TOUCH,
41+ android::InputDeviceClass::CURSOR,
42+ android::InputDeviceClass::TOUCH_MT,
43+ android::InputDeviceClass::DPAD,
44+ android::InputDeviceClass::GAMEPAD,
45+ android::InputDeviceClass::SWITCH,
46+ android::InputDeviceClass::JOYSTICK,
47+ android::InputDeviceClass::VIBRATOR,
48+ android::InputDeviceClass::MIC,
49+ android::InputDeviceClass::EXTERNAL_STYLUS,
50+ android::InputDeviceClass::ROTARY_ENCODER,
51+ android::InputDeviceClass::SENSOR,
52+ android::InputDeviceClass::BATTERY,
53+ android::InputDeviceClass::LIGHT,
54+ android::InputDeviceClass::TOUCHPAD,
55+ android::InputDeviceClass::VIRTUAL,
56+ android::InputDeviceClass::EXTERNAL,
57+ };
58+
3759constexpr size_t kValidCodes [] = {
3860 SYN_REPORT,
3961 ABS_MT_SLOT,
@@ -105,7 +127,13 @@ class FuzzEventHub : public EventHubInterface {
105127 void addProperty (std::string key, std::string value) { mFuzzConfig .addProperty (key, value); }
106128
107129 ftl::Flags<InputDeviceClass> getDeviceClasses (int32_t deviceId) const override {
108- return ftl::Flags<InputDeviceClass>(mFdp ->ConsumeIntegral <uint32_t >());
130+ uint32_t flags = 0 ;
131+ for (auto inputDeviceClass : kInputDeviceClasses ) {
132+ if (mFdp ->ConsumeBool ()) {
133+ flags |= static_cast <uint32_t >(inputDeviceClass);
134+ }
135+ }
136+ return ftl::Flags<InputDeviceClass>(flags);
109137 }
110138 InputDeviceIdentifier getDeviceIdentifier (int32_t deviceId) const override {
111139 return mIdentifier ;
@@ -367,8 +395,8 @@ class FuzzInputReaderContext : public InputReaderContext {
367395template <class Fdp >
368396InputDevice getFuzzedInputDevice (Fdp& fdp, FuzzInputReaderContext* context) {
369397 InputDeviceIdentifier identifier;
370- identifier.name = fdp.ConsumeRandomLengthString (16 );
371- identifier.location = fdp.ConsumeRandomLengthString (12 );
398+ identifier.name = fdp.ConsumeRandomLengthUtf8String (16 );
399+ identifier.location = fdp.ConsumeRandomLengthUtf8String (12 );
372400 int32_t deviceID = fdp.ConsumeIntegralInRange (0 , 5 );
373401 int32_t deviceGeneration = fdp.ConsumeIntegralInRange (0 , 5 );
374402 return InputDevice (context, deviceID, deviceGeneration, identifier);
0 commit comments