安全出行 SafeWalk

海阔天空,勇敢去走。

纯本地、无服务器的安全出行提醒 LSPosed 模块,只 Hook 系统进程 android。 不依赖 GMS,纯传感器步态识别,低功耗运行。

基于 GPL-3.0 开源。适配 HyperOS / Android 12+。


✨ 功能一览(8个磁贴)

磁贴 功能 说明
🚶 总开关 masterEnable 关闭后所有检测和提醒全部停用
🔋 电量预警 enableBatteryWarning 电量≤15%且行走时提醒充电
🪪 证件提醒 enableIdReminder 确认持续步行后提醒证件贴身放好
🪑 久坐提醒 enableSitHealthRemind 持续静止2小时提醒起身活动
🔦 夜间手电 enableNightTorch 夜间(22:00~06:00)行走时通知带「开手电筒」按钮
📷 后置看路 enableRearCamera 走路时用后置摄像头看前方路况(长按进设置)
🤝 社交礼仪 enableSocialTipCard 按出行模式(求职/约会/聚会/旅游)给出社交提示
🚑 急救卡 — 编辑个人急救信息(姓名/血型/地址/紧急联系人)

🧠 步态检测与误触发防护

SafeWalk 采用五重判定,解决"床上翻身误触发"和"没出门就弹提醒"的问题:

  1. 步数阈值:5分钟滑动窗口内累计 ≥ 800 步才进入验证
  2. 步态验证:加速度计4秒内检测到连续3步、步频 1.4~2.2Hz、间隔稳定(±180ms)才算真走路
  3. 平躺加权:手机平躺(Z轴>8.5)时,峰值阈值 ×1.45,床上翻身更难触发
  4. 静置重置:超过180秒没新步数 → 直接回待机,不触发任何提醒
  5. 冷却机制:触发后5分钟内不重复弹,证件/久坐每日只弹1次,电量1小时冷却

状态机

SLEEP(待机)
  ↓ 收到计步器事件
LIGHT_MONITOR(低功耗监测,5分钟滑动窗口计步)
  ↓ 累计步数 ≥ 800 步
VERIFYING(步态验证,打开加速度计4秒)
  ↓ GaitDetector 判定是否真走路
触发提醒(证件→社交→手电→后置看路)→ 回到 SLEEP

📷 后置看路

走路时用后置摄像头实时显示前方路况,两种形态可切换:

  • 全屏半透明叠加:整个屏幕半透明显示后方路况,下层应用照常使用
  • 右下角小窗:约1/3屏宽的小窗,不挡主要操作区域

特性:

  • 触摸完全穿透:悬浮窗只显示、不挡操作
  • 不高于状态栏:顶部留状态栏高度的边距
  • 自动模式:走起来自动开、停下自动收
  • 手动模式:磁贴开关直接控制

🔔 通知与超级岛

所有提醒统一发成标准高优先级通知(PRIORITY_HIGH heads-up),可被 HyperIsland(超级岛)在 SystemUI 侧拦截,以超级岛 + 焦点通知样式展示。

夜间手电通知带「开手电筒」按钮,点击直接切换手电筒。


📱 界面

  • 国风设计:宣纸底 + 靛蓝 + 墨边 + 朱红印章
  • 2×2 紧凑磁贴布局,8个功能块一目了然
  • 深色模式自动跟随系统
  • 踩坑指南:求职/约会/聚会/旅游四种出行场景的避坑清单
  • 实验区:长按关于页底部按钮进入,普通用户看不到

🚀 安装

  1. 在 LSPosed 中启用「安全出行」并勾选作用域 系统界面(android)
  2. 重启系统界面(或重启手机)
  3. 打开配置页,授予身体活动和通知权限
  4. 开启「总开关」,按需配置各功能

🔧 编译

需要 JDK 17+、Android SDK(compileSdk 35 / minSdk 30):

JAVA_HOME=<jdk路径> ANDROID_HOME=<sdk路径> gradle assembleDebug --no-daemon

产物:app/build/outputs/apk/debug/app-debug.apk


🎖️ 致敬

本模块建立在 LSPosed / Xposed 框架之上,致敬并感谢这些伟大的开源项目,以及整个 Xposed / LSPosed 社区——正是他们让安卓模块生态生生不息。

SafeWalk 是面向 HyperOS / Android 的 LSPosed 出行感知模块,实现不依赖 GMS 的步行状态识别。项目大量参考优秀开源项目的算法、架构思路,特此感谢各位开发者的贡献:

  1. bagilevi/android-pedometer — 纯加速度计步器经典实现:峰值检测、步频区间过滤、自适应阈值的基础思路,是步态检测部分最重要的参考来源。
  2. mdeguzis/StepCounter — 滑动窗口方差统计实现、根据运动状态动态切换传感器采样率的省电策略。
  3. ashishb/android-step-detector — 基于 FFT 频谱分析识别周期性步态的方案,作为高级增强功能备选。
  4. tonyo567/hysteresis-state-machine — 分离式迟滞状态机思想,独立配置进入防抖、退出防抖计时器,解决状态频繁抖动切换。
  5. KalebKE/FSensor — Madgwick/Mahony 姿态滤波、卡尔曼 GPS 平滑算法,作为后续 GPS 漂移优化的备选方案。
  6. p-v/Android-SensorService — Android 后台传感器监听、系统采样节流、丢采样容错、前台服务适配方案,适配国内定制 ROM 后台限制。
  7. UrbanBigDataCentre/meowmotion — GPS 轨迹分割、停留/移动分类、连续位移校验逻辑,用于离线导出轨迹日志调参。

此外,本项目还参考学习了以下 HyperOS / 传感器相关开源项目,由衷感谢各位开发者的公开分享:

  1. HyperBridge — HyperOS 超级岛自定义通知卡片引擎思路
  2. WidgetEnhancer — 通知快捷按钮、系统手电筒实现思路
  3. HyperLight — HyperOS 悬浮通知相关研究
  4. SensorFusion — 传感器姿态融合、自适应阈值算法
  5. AccStepCounter — 低功耗计步滤波实现

声明:SafeWalk 所有代码为独立手写重构,仅借鉴思路与算法原理,没有直接拷贝上述项目源码。


📄 许可证

GPL-3.0,见 LICENSE。

Releases

10/30/2026, 7:58:55 AM

🎉 v2.1 更新内容

🐛 Bug 修复

  • 修复躺床上翻身误触发出门提醒的问题
  • 修复电量广播在 Android 14+ 崩溃的问题
  • 修复 GaitDetector 在 API 35 上 removeFirst() 崩溃的问题
  • 修复手电广播必须指定 RECEIVER_NOT_EXPORTED 否则崩溃的问题

✨ 新增功能

  • 后置看路:走路时用后置摄像头看前方路况,两种形态(全屏半透明/角落小窗)可切换
  • 夜间手电通知:夜间走路时通知带「开手电筒」按钮,点击直接亮灯
  • 五重误触发防护:步数阈值 + 步态验证 + 平躺加权 + 静置重置 + 冷却机制

⚙️ 参数调整

  • 步数阈值:800 → 150 步
  • 静置重置:180秒 → 20秒
  • 步态验证采样:4秒 → 3秒(功耗优化)
  • 平躺阈值:Z轴>8.5,阈值×1.45

📦 安装

  1. LSPosed 勾选作用域 android(系统进程)
  2. 重启系统
  3. 打开配置页,授予身体活动和通知权限
  4. 开启总开关

Assets

1

10/26/2026, 8:09:25 AM

安全出行 v1.7
行走安全 LSPosed 模块,注入 SystemUI。

  • 后置摄像头路况(全屏半透明 / 角落小窗,可切换,触摸穿透)
  • 自动模式:检测步行节奏自动开关,坐下/停下自动收起
  • 低头看路提醒(Toast,默认 3 秒,20 秒节流)
  • 相机避让:前台进入相机/微信/支付宝等自动收起,冷却后自动恢复
  • 深色模式跟随系统,省电优化
    作用域:系统界面 (com.android.systemui)

Assets

1