LSPosed module for Honor devices that makes hardware volume key adjustments use a smaller custom step. Version 0.1.0 defaults to 1% per press.
The module loads only in system_server and hooks stable framework method names:
com.android.server.audio.AudioService#adjustStreamVolume(...)is used as a guard so the module only runs while Android is already handling a normal volume raise/lower request.AudioService.VolumeStreamState#adjustIndex(int, int, String, boolean)is hooked to shrink the final internal volume delta to 1% of that stream's valid index range.
This keeps Android's own permission, DND, ringer-mode, fixed-volume, absolute-volume, and safe-media-volume checks in front of the custom step. The module does not read or write private fields.
androidsystem
Requires JDK 17 and Android SDK build tools.
JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.19/libexec/openjdk.jdk/Contents/Home ./gradlew :app:assembleDebugRun unit tests:
JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.19/libexec/openjdk.jdk/Contents/Home ./gradlew :app:testDebugUnitTestUseful LSPosed log lines:
HonorVolumeMaster: hooked AudioService.adjustStreamVolume guard
HonorVolumeMaster: hooked VolumeStreamState.adjustIndex for 1% steps
HonorVolumeMaster: delta 100->15 range=0-1500