Skip to content
This repository was archived by the owner on Jul 2, 2026. It is now read-only.

Repository files navigation

Honor Volume Master

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.

How it works

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.

Current targets

  • android
  • system

Build

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:assembleDebug

Run unit tests:

JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.19/libexec/openjdk.jdk/Contents/Home ./gradlew :app:testDebugUnitTest

Useful LSPosed log lines:

HonorVolumeMaster: hooked AudioService.adjustStreamVolume guard
HonorVolumeMaster: hooked VolumeStreamState.adjustIndex for 1% steps
HonorVolumeMaster: delta 100->15 range=0-1500

About

LSPosed module for custom Honor volume key step size

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages