InitParser supports the following parameters:
Parameter | Valid Values | Configured Value |
---|---|---|
kValidPaths | 0./system/etc/init/hw/init.rc ,1. /system/etc/init | Value obtained from FuzzedDataProvider |
kValidInputs | 0.{"","cpu", "10", "10"} ,1. {"","RLIM_CPU", "10", "10"} ,2. {"","12", "unlimited", "10"} ,3. {"","13", "-1", "10"} ,4. {"","14", "10", "unlimited"} ,5. {"","15", "10", "-1"} | Value obtained from FuzzedDataProvider |
$ mm -j$(nproc) init_parser_fuzzer
$ adb sync data $ adb shell /data/fuzz/arm64/init_parser_fuzzer/init_parser_fuzzer
InitProperty supports the following parameters: PropertyType (parameter name: "PropertyType")
Parameter | Valid Values | Configured Value |
---|---|---|
PropertyType | 0.STRING ,1. BOOL ,2. INT ,3. UINT ,4. DOUBLE ,5. SIZE ,6. ENUM ,7. RANDOM | Value obtained from FuzzedDataProvider |
$ mm -j$(nproc) init_property_fuzzer
$ adb sync data $ adb shell /data/fuzz/arm64/init_property_fuzzer/init_property_fuzzer
The configuration parameters are not hardcoded, but instead selected based on incoming data. This ensures more code paths are reached by the fuzzer.
InitUeventHandler supports the following parameters:
major
)minor
)partition_num
)uid
)gid
)action
)path
)subsystem
)partition_name
)device_name
)modalias
)devPath
)handlerPath
)Parameter | Valid Values | Configured Value |
---|---|---|
major | UINT32_MIN to UINT32_MAX | Value obtained from FuzzedDataProvider |
minor | UINT32_MIN to UINT32_MAX | Value obtained from FuzzedDataProvider |
partition_num | UINT32_MIN to UINT32_MAX | Value obtained from FuzzedDataProvider |
uid | UINT32_MIN to UINT32_MAX | Value obtained from FuzzedDataProvider |
gid | UINT32_MIN to UINT32_MAX | Value obtained from FuzzedDataProvider |
action | String | Value obtained from FuzzedDataProvider |
path | String | Value obtained from FuzzedDataProvider |
subsystem | String | Value obtained from FuzzedDataProvider |
partition_name | String | Value obtained from FuzzedDataProvider |
device_name | String | Value obtained from FuzzedDataProvider |
modalias | String | Value obtained from FuzzedDataProvider |
devPath | String | Value obtained from FuzzedDataProvider |
handlerPath | String | Value obtained from FuzzedDataProvider |
This also ensures that the plugin is always deterministic for any given input.
$ mm -j$(nproc) init_ueventHandler_fuzzer
$ adb sync data $ adb shell /data/fuzz/arm64/init_ueventHandler_fuzzer/init_ueventHandler_fuzzer