Zorv AI 系统级浮窗与特权架构全解析:LSPosed / ADB 深度拆解

0 阅读4分钟

1. 项目简介

项目:Zorv AI(包名 com.ai.assistance.quro开源地址github.com/Quor-a/Zorv… 适用版本:v1.0.77 更新日期:2026-09-02

Zorv AI 是一款深度整合系统能力的 AI 助手,其核心亮点在于突破 Android 系统边界,实现跨应用感知、系统级浮窗常驻与高特权操作。本文将从架构层面拆解其三大核心能力:LSPosed / Xposed 模块注入ADB 高特权通道以及系统级浮窗(对话框 / 浏览器化小窗)


2. 范围与定位

本章覆盖三类"穿透系统边界"的能力:

能力角色是否必需
LSPosed / Xposed跨应用注入桥,补齐"前台 App 感知"等盲区可选(opt-in)
ADB无线调试 / 授权 / 调用系统组件的高特权通道按需启用
系统级浮窗对话框、浏览器以 TYPE_APPLICATION_OVERLAY 常驻屏幕核心能力

关键事实:核心能力(无障碍 / Shizuku / 设备管理员 / ROOT / ADB)走 Zorv AI 自有管线;LSPosed 只是"可选增强",用于解决"获取前台 App"等少数盲区,模块启停仍在 LSPosed Manager 完成。


3. 特权获取总览(自有管线 + 可选 LSPosed)

flowchart TB
    subgraph OWN["Zorv AI 自有特权管线(核心)"]
        P1["无障碍 AccessibilityService"]
        P2["Shizuku"]
        P3["设备管理员 DeviceAdmin"]
        P4["ROOT"]
        P5["ADB 无线调试"]
    end
    subgraph OPT["可选增强"]
        L["LSPosed 模块\n(QuroXposedModule)"]
    end
    OWN --> BLIND["前台 App 感知盲区"]
    L --> BLIND
    BLIND --> BRIDGE["QuroLsposeBridgeReceiver\n补全 get_foreground_app"]
  • 自有管线覆盖绝大多数系统操作(点击、启动 Activity、读设置等)。
  • 仅当"需要知道当前前台是哪个 App"这类信息原生不可得时,才由 LSPosed 桥接补全。

4. LSPosed / Xposed 模块架构

4.1 组件与文件

组件说明
QuroXposedModuleopt-in Xposed 模块入口(LSPosed 识别)
QuroLSPosed作用域判定:isAppInScope() 读取标记文件 .lsposed_scope 真实判定作用域
QuroLsposeToolAI 可调用的 lsposed 工具:支持 status / foreground / enable / disable
QuroLsposeBridgeReceiver接收 ACTION_APP_OPENED 广播(com.ai.assistance.quro.LSPOSED_APP_OPENED)收集前台 App

4.2 启用流程(enable)

sequenceDiagram
    participant AI as AI 引擎
    participant Tool as QuroLsposeTool
    participant FS as 外部存储根
    participant RX as QuroLsposeBridgeReceiver

    AI->>Tool: lsposed(action="enable", pkg="...")
    Tool->>FS: 写 lsposed_bridge.json\n(跨应用注入桥 + 可选 system_redirect)
    FS->>RX: 模块读取并注册监听
    RX-->>AI: 后续前台 App 变化经广播回传
  • enable 写入外部存储根 lsposed_bridge.json:跨应用注入桥 + 可选 system_redirect
  • disable 移除桥配置。
  • status 查询当前桥/作用域状态。
  • foregroundget_foreground_app 盲区(经广播回传当前前台 App)。

模块本身的"启用 / 停用 / 作用域勾选"仍在 LSPosed Manager 内操作;Zorv AI 只负责驱动桥配置与读取状态


5. ADB 通道

ADB 在 Zorv AI 中作为"高特权系统通道"使用,典型场景:

场景说明
无线调试授权通过 adb tcpip / 配对码获取 shell 级权限
授予特殊权限给自身或受控端授权(如 WRITE_SECURE_SETTINGS
调用系统组件启动 Activity / Service / 发送广播
与浮窗配合ADB 取得权限后,浮窗可稳定常驻、免被系统收回

ADB 与无障碍 / Shizuku / ROOT 共同构成"自有特权管线",与 LSPosed 互为补充。


6. 对话框「化小窗」架构

用户可把正在进行的 AI 对话收起为屏幕角落的小窗,继续在其它 App 中操作,需要时再点开。

flowchart TB
    Chat["ChatScreen 对话"] -->|"用户点 化小窗"| Mgr["QuroMiniWindowManager\n(进程级单例)"]
    Mgr --> SVC["QuroMiniWindowService\nspecialUse 前台保活"]
    SVC --> WM["WindowManager.addView\nTYPE_APPLICATION_OVERLAY"]
    WM --> View["对话浮窗 View\n(常驻: show/hide 只 add/remove)"]

关键点:

  • QuroMiniWindowService:以 specialUse 前台服务保活,避免被后台回收。
  • QuroMiniWindowManager:进程级单例,统一收纳/恢复浮窗。
  • 常驻不重建:显示/隐藏只做 addView / removeView,浮窗 View 全程不销毁、不丢状态。

7. 浏览器「化小窗」架构

内置浏览器同样可化为小窗,且复用全局单 WebView,避免重复加载:

flowchart TB
    AI["AI 调用 browser_act(open)"] -->|"browserUrl=null\nbrowserFloatUrl=u"| Mgr["QuroMiniWindowManager"]
    Mgr --> Host["QuroBrowserViewHost\n(全局单 WebView)"]
    Host -->|"重挂不重建/不重载"| WM["WindowManager.addView"]
    WM --> FView["浏览器浮窗"]
  • AI 用 browser_actopen 默认化小窗browserUrl=null; browserFloatUrl=u
  • QuroBrowserViewHost 持有全局唯一 WebView,化小窗时只是"重挂"到浮窗容器,不重建、不重载页面,保住登录态与滚动位置。

8. 浮窗公共机制(WindowManager / flags / 常驻)

两类浮窗共享同一套底层机制:

机制取值 / 行为效果
窗口类型TYPE_APPLICATION_OVERLAY系统级浮层,覆盖其它 App
保活QuroMiniWindowService(specialUse 前台)不被后台回收
焦点 flagFLAG_NOT_FOCUSABLE不抢焦点,不影响其它 App 输入
输入法兼容FLAG_ALT_FOCUSABLE_IM浮窗内可正常唤起键盘
触摸穿透FLAG_NOT_TOUCH_MODAL浮窗外区域仍可操作原 App
全屏布局FLAG_LAYOUT_IN_SCREEN浮窗可铺满/贴边
生命周期show/hide = addView / removeView视图常驻,状态不丢
flowchart LR
    A["FLAG_NOT_FOCUSABLE"] --> B["不挡其它 App 输入"]
    C["FLAG_NOT_TOUCH_MODAL"] --> B
    D["FLAG_ALT_FOCUSABLE_IM"] --> E["面板内可唤起键盘"]
    F["FLAG_LAYOUT_IN_SCREEN"] --> G["可贴边/全屏"]

9. 能力对照表

能力触发方式核心类是否可选
对话化小窗用户/AI 触发QuroMiniWindowService + QuroMiniWindowManager核心
浏览器化小窗browser_act(open) 默认QuroBrowserViewHost核心
LSPosed 桥lsposed 工具QuroLsposeTool / QuroLSPosed / QuroLsposeBridgeReceiver可选
前台 App 补全广播回填QuroLsposeBridgeReceiver可选
ADB 高特权无线调试 / 授权自有管线按需

10. 总结

Zorv AI 通过自有特权管线 + 可选 LSPosed 增强的组合策略,在 Android 系统边界上实现了优雅的突破:

  • 核心能力自研:无障碍、Shizuku、设备管理员、ROOT、ADB 全部走自有管线,不依赖外部框架;
  • LSPosed 按需增强:仅在"前台 App 感知"等原生盲区启用,模块启停交给 LSPosed Manager;
  • 浮窗常驻不重建:对话框与浏览器化小窗共享 TYPE_APPLICATION_OVERLAY 机制,视图全程不销毁、状态不丢失。

如果你对跨进程能力框架、小程序渲染或 AI 人格孵化机制感兴趣,欢迎 Star 项目持续关注后续架构解析。

开源地址github.com/Quor-a/Zorv…