|  | ||
|---|---|---|
| .. | ||
| 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