|
||
---|---|---|
.. | ||
Android.bp | ||
README.md | ||
surfaceflinger_displayhardware_fuzzer.cpp | ||
surfaceflinger_displayhardware_fuzzer_utils.h | ||
surfaceflinger_fuzzer.cpp | ||
surfaceflinger_fuzzers_utils.h | ||
surfaceflinger_layer_fuzzer.cpp | ||
surfaceflinger_scheduler_fuzzer.cpp | ||
surfaceflinger_scheduler_fuzzer.h |
README.md
Fuzzers for SurfaceFlinger
Table of contents
Fuzzer for SurfaceFlinger
SurfaceFlinger supports the following data sources:
- Pixel Formats (parameter name:
defaultCompositionPixelFormat
) - Data Spaces (parameter name:
defaultCompositionDataspace
) - Rotations (parameter name:
internalDisplayOrientation
) - Surface composer tags (parameter name:
onTransact
)
You can find the possible values in the fuzzer's source code.
Steps to run
- Build the fuzzer
$ mm -j$(nproc) surfaceflinger_fuzzer
- To run on device
$ adb sync data
$ adb shell /data/fuzz/arm64/surfaceflinger_fuzzer/surfaceflinger_fuzzer
Fuzzer for DisplayHardware
DisplayHardware supports the following parameters:
- Hal Capability (parameter name:
hasCapability
) - Hal BlendMode (parameter name:
setBlendMode
) - Hal Composition (parameter name:
setCompositionType
) - Hal Display Capability (parameter name:
hasDisplayCapability
) - Composition Types (parameter name:
prepareFrame
) - Color Modes (parameter name:
setActiveColorMode
) - Render Intents (parameter name:
setActiveColorMode
) - Power Modes (parameter name:
setPowerMode
) - Content Types (parameter name:
setContentType
) - Data Space (parameter name:
setDataspace
) - Transforms (parameter name:
setLayerTransform
)
You can find the possible values in the fuzzer's source code.
Steps to run
- Build the fuzzer
$ mm -j$(nproc) surfaceflinger_displayhardware_fuzzer
- Run on device
$ adb sync data
$ adb shell /data/fuzz/arm64/surfaceflinger_displayhardware_fuzzer/surfaceflinger_displayhardware_fuzzer
Fuzzer for Scheduler
Scheduler supports the following parameters:
- VSync Periods (parameter name:
lowFpsPeriod
)
You can find the possible values in the fuzzer's source code.
Steps to run
- Build the fuzzer
$ mm -j$(nproc) surfaceflinger_scheduler_fuzzer
- To run on device
$ adb sync data
$ adb shell /data/fuzz/arm64/surfaceflinger_scheduler_fuzzer/surfaceflinger_scheduler_fuzzer
Fuzzer for Layer
Layer supports the following parameters:
- Display Connection Types (parameter name:
fakeDisplay
) - State Sets (parameter name:
traverseInZOrder
) - State Subsets (parameter name:
prepareCompositionState
) - Disconnect modes (parameter name:
disconnect
) - Data Spaces (parameter name:
setDataspace
)
You can find the possible values in the fuzzer's source code.
Steps to run
- Build the fuzzer
$ mm -j$(nproc) surfaceflinger_layer_fuzzer
- Run on device
$ adb sync data
$ adb shell /data/fuzz/arm64/surfaceflinger_layer_fuzzer/surfaceflinger_layer_fuzzer