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