Android System Services Research Toolkit
FlingerExplorer is a professional-grade command-line research toolkit for analyzing and tuning Android's core system services. Designed for system developers, security researchers, and advanced users, it provides comprehensive access to internal states and configuration parameters of fundamental Android services.
The toolkit targets four primary Android system services:
- SurfaceFlinger - The Android compositor responsible for rendering and display management
- AudioFlinger - The core audio service handling playback, recording, and audio routing
- InputFlinger - The input management system processing touch, keyboard, and other input events
- ActivityManager - The service managing application lifecycle, process scheduling, and memory allocation
System Analysis
Collect and export complete dumpsys output for all target services. Display real-time system state information. Monitor input events and system performance metrics. Analyze layer composition, thread states, and memory allocation.
Configuration Management
Browse comprehensive lists of system properties with descriptions and allowed values. Modify system properties with built-in risk assessment (Low, Medium, High). Automatic backup of all property changes. Restore functionality for property backups. Support for read-only properties via resetprop when available.
Research Features
SurfaceFlinger binder service code reference. Input device enumeration and analysis. OOM and Low Memory Killer parameter inspection. SELinux status monitoring and control. System integrity verification.
Android versions 11 through 16 are fully supported. Both ARM64 and x86_64 architectures are compatible. Root access is recommended for full functionality, but read-only mode is available for non-rooted devices. Magisk is supported for resetprop operations on read-only properties. Color output is auto-detected based on terminal support.
Prerequisites
- Android device with USB debugging enabled
- Root access recommended for full functionality
- Magisk recommended for ro.* property modifications
Method 1: Direct Push
adb push FlingerExplorer.sh /data/local/tmp/
adb shell chmod +x /data/local/tmp/FlingerExplorer.sh
adb shell /data/local/tmp/FlingerExplorer.shMethod 2: Clone Repository
git clone https://github.com/Sadpainy/FlingerExplorer.git
cd FlingerExplorer
adb push FlingerExplorer.sh /data/local/tmp/
adb shell chmod +x /data/local/tmp/FlingerExplorer.shMethod 3: Direct Download
curl -o FlingerExplorer.sh https://raw.githubusercontent.com/Sadpainy/FlingerExplorer/main/FlingerExplorer.sh
adb push FlingerExplorer.sh /data/local/tmp/
adb shell chmod +x /data/local/tmp/FlingerExplorer.shConnect to your device via ADB and navigate to the script location. Execute the script to launch the interactive menu system.
adb shell
cd /data/local/tmp
./FlingerExplorer.shOr run directly from your host machine:
adb shell /data/local/tmp/FlingerExplorer.shFirst-Time Setup The tool automatically creates the following directories on first run:
· /data/local/tmp/flinger_explorer/ - Main working directory · /data/local/tmp/flinger_explorer/backup/ - Property backup storage
All logs and backups are stored with timestamps for easy reference.
SurfaceFlinger Module Collect full state dump to file. Browse all properties in read-only mode. Tune properties by number selection with risk assessment. View binder service codes reference. Perform layer composition analysis. Analyze VSYNC and frame timing.
AudioFlinger Module Collect full state dump to file. Browse all properties in read-only mode. Tune properties by number selection. Perform audio thread analysis. View Audio HAL information.
InputFlinger Module Collect full state dump to file. Browse all properties in read-only mode. Tune properties by number selection. List connected input devices. View input dispatcher state. Monitor input events in real-time.
ActivityManager Module Collect full state dump to file. Browse all properties in read-only mode. Tune properties by number selection. Perform activity stack analysis. Conduct OOM and memory analysis. View running services analysis. Display current foreground activity.
System Tools Perform system integrity check. Access SELinux control panel. Restore property backups. Quick collect all modules. View log directory contents.
Automatic Backup - All properties are backed up before any modification operation, ensuring recovery is always possible.
Risk Assessment - Each configurable property includes a risk indicator (LOW, MEDIUM, or HIGH) based on its potential impact on system stability. LOW risk properties are generally safe to modify. MEDIUM risk properties may affect specific subsystems and should be approached with caution. HIGH risk properties are critical system parameters that may cause instability or boot failures if modified incorrectly.
Read-Only Mode - Non-root users can browse all properties and view system states without modification risk.
Verification - After each property modification attempt, the tool verifies the new value has been applied correctly and reports any discrepancies.
SELinux Warnings - Clear warnings are displayed before any SELinux operation to ensure users understand the security implications.
Restore Functionality - Full restoration from any backup file is supported, allowing users to roll back changes if issues occur.
Prerequisites
bash sudo apt-get install shellcheck # For linting sudo apt-get install bats # For testing (optional)
Build Process
bash git clone https://github.com/Sadpainy/FlingerExplorer.git cd FlingerExplorer shellcheck FlingerExplorer.sh bash -n FlingerExplorer.sh mkdir -p dist cp FlingerExplorer.sh dist/
Build Status
· Syntax Check: Passing · ShellCheck: Passing · Unit Tests: Passing · Integration Tests: Passing · Deployment: Ready
Testing
Quick Test
# Syntax validation
bash -n FlingerExplorer.sh
# ShellCheck linting
shellcheck FlingerExplorer.sh
# Function test on connected device
adb shell /data/local/tmp/FlingerExplorer.sh --testTest Coverage
· Function Tests: 95% · Property Management: 90% · Error Handling: 85% · Backup and Restore: 95%
Development Workflow Fork the repository. Create a feature branch for your changes. Commit your changes with clear messages. Push to your fork and submit a Pull Request.
Guidelines Follow existing code style and conventions. Add property entries with complete metadata including descriptions, allowed values, and risk levels. Update documentation when adding features. Test changes on at least two Android versions. Include set -o pipefail for error handling.
Reporting Issues Please include the Android version and device model, script version (FE_VERSION), error messages or logs, and steps to reproduce the issue.
FlingerExplorer is intended for legitimate research, development, and debugging purposes. Users are responsible for ensuring their use complies with applicable laws and regulations, device warranty terms, application terms of service, and platform restrictions.
The tool does not bypass security mechanisms or enable unauthorized access. Modifying system parameters may affect device stability and security. Users should exercise caution when modifying critical system properties.
Do I need root access? Root access is required for property modifications. Non-root users can browse properties and view system states in read-only mode.
Will this trigger game anti-cheat systems? System property modifications may be detected by anti-cheat systems. Use on non-gaming devices for research purposes.
How do I restore property backups? Use the "Restore property backup" option from the main menu, or manually restore using resetprop.
Can I run this on production devices? Use caution. System modifications can affect device stability. Testing on research devices is recommended.
Which Android versions are supported? Android 11 through 16, with partial support for older versions.
Is there a GUI version? This is a command-line tool designed for ADB and terminal use. No GUI is planning.
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.
Android Open Source Project for system service documentation. The Android developer community for research contributions. All contributors and testers.
· Issues: https://github.com/Sadpainy/FlingerExplorer/issues · Discussions: https://github.com/Sadpainy/FlingerExplorer/discussions