Skip to content
leset0ngPublic

About

ios style wave on hyperisland

Resources

Stars

5 stars

Watchers

0 watching

Forks

Repository files navigation

HyperWave

让 HyperOS 音乐超级岛的波形,跟着你正在听的歌跳动。

HyperWave 是一个 LSPosed 模块,把音乐超级岛右侧的预制动画换成音频驱动的实时频谱。

  • 真实频谱:48 kHz 系统级回环采集,Rust FFT 分析,六频段实时映射到柱高
  • 三种外观:iOS 六柱、HyperOS 原生五柱,以及结合六柱几何与 HyperOS 渐变的 MiOS,实时切换无需重启
  • 切歌封面翻转:左侧封面弹簧 3D 翻转,适用于全部外观,可单独关闭
  • 原生交互不变:岛容器、点击行为与封面的解码、调色、圆角均沿用 HyperOS

环境要求

  • HyperOS + LSPosed,Xposed API 102
  • 作用域:系统界面(com.android.systemui)与系统框架(system)

已验证环境(均为 Android 17,arm64):

  • Xiaomi 17 Pro 真机,HyperOS OS4.0.4.0.XBLCNXM
  • hongkong AVD,HyperOS OS4.0.24.0.XFRCNXM

其他版本尚未验证,欢迎反馈。

安装

  1. 从 Releases 下载 APK 并安装
  2. 在 LSPosed 中启用 HyperWave,勾选系统界面与系统框架(标识为 system,不是 android)
  3. 重启设备
  4. 播放音乐并回到桌面,波形开始跟随音频

打开 HyperWave 可切换外观、调整频谱高度(50%–200%,默认 150%)、开关封面翻转,设置实时生效。隐藏桌面入口后,可从 LSPosed 模块页面进入设置。

更新:框架支持 API 102 热重载时,覆盖安装新版即可生效,无需重启;否则仍需重启设备。停用或卸载模块后也需要重启。详见 热重载说明。

已知限制

  • 声明完全禁止采集(ALLOW_CAPTURE_BY_NONE)的播放器无法获取音频,柱子会保持低位
  • 按 UID 过滤采集,同一 UID 下的多路媒体流会被合并;蓝牙、投屏、多用户等场景未充分测试
  • DSP 运行在 SystemUI 进程内

完整说明见 兼容性与限制。

构建

需要 JDK 21、Android SDK 37、Android NDK 30.0.15729638、Rust stable。

rustup target add aarch64-linux-android
cargo test --locked -p hyperwave-dsp

# macOS, if the default Java is not JDK 21:
export JAVA_HOME=$(/usr/libexec/java_home -v 21)
export ANDROID_HOME="$HOME/Library/Android/sdk"
./gradlew :app:testDebugUnitTest :app:assembleDebug :app:lintDebug

Gradle 会自动调用 scripts/build-rust.sh 把 Rust .so 打进 APK。NDK 路径可用 ANDROID_NDK_HOME 指定,SDK 用 ANDROID_SDK_ROOT 或 ANDROID_HOME。产物位于 app/build/outputs/apk/debug/app-debug.apk。

工作原理

音乐播放 → UID 过滤的 AudioRecord 回环 → Rust FFT → 六柱值 → Canvas 绘制

Android 接入层使用 Kotlin,基于 libxposed API 102;DSP 使用 Rust,通过 JNI 调用。

app/      Android app, Xposed entry, capture and renderer
dsp/      Rust DSP, JNI entry and numerical reference tests
scripts/  Native build script
docs/     Architecture, compatibility and validation records

文档

About

ios style wave on hyperisland

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages