# 第三方代码声明 本项目包含来自以下开源项目的代码,按各自原始许可证进行分发。 ## scrcpy - **项目地址**:[Genymobile/scrcpy](https://github.com/Genymobile/scrcpy) - **版权**:Copyright 2018 Genymobile - **许可证**:[Apache License 2.0](../LICENSE-Apache-2.0) - **原始代码**:[server/src/main/java/com/genymobile/scrcpy](https://github.com/Genymobile/scrcpy/tree/master/server/src/main/java/com/genymobile/scrcpy) - **本项目中的位置**:[`app/src/main/java/com/aliothmoon/maameow/third/`](../app/src/main/java/com/aliothmoon/maameow/third/) ### 用途 这些代码用于在 Shizuku 用户服务进程中构造 Android `Context`,并通过反射访问 Android Hidden API,实现虚拟显示器管理、输入事件注入、屏幕信息获取等功能。 ### 包含文件 | 文件 | 说明 | |------|------| | `third/FakeContext.java` | 伪造的 Android Context,用于在无 Activity 的进程中获取系统服务 | | `third/Ln.java` | 日志工具,同时输出到 Android Logger 和标准输出 | | `third/Workarounds.java` | Android 系统兼容性处理,构造 ActivityThread 和 Looper | | `third/Command.java` | Shell 命令执行工具 | | `third/IO.java` | I/O 工具类 | | `third/Size.java` | 尺寸数据类 | | `third/DisplayInfo.java` | 显示器信息数据类 | | `third/wrappers/ServiceManager.java` | Android ServiceManager 反射封装,获取各系统服务实例 | | `third/wrappers/DisplayManager.java` | DisplayManagerGlobal 反射封装,管理显示器信息和虚拟显示器 | | `third/wrappers/InputManager.java` | InputManager 反射封装,注入输入事件 | | `third/wrappers/WindowManager.java` | IWindowManager 反射封装,管理旋转、显示尺寸、IME 策略等 | | `third/wrappers/ActivityManager.java` | ActivityManagerNative 反射封装,获取 ContentProvider、启动 Activity | | `third/wrappers/PowerManager.java` | IPowerManager 反射封装,查询屏幕状态 | | `third/wrappers/StatusBarManager.java` | IStatusBarService 反射封装,控制通知栏和快捷设置面板 | | `third/wrappers/SurfaceControl.java` | SurfaceControl 反射封装,管理物理显示器令牌和电源模式 | ### 主要修改 以下是相对于 scrcpy 原始代码的主要修改: - 调整包名从 `com.genymobile.scrcpy` 至 `com.aliothmoon.maameow.third` - 移除了与屏幕录制、视频编码、音频采集相关的代码,仅保留系统服务反射封装部分 - 新增 `ActivityManager`、`SurfaceControl`、`StatusBarManager`、`PowerManager` 等封装类 - `DisplayManager` 增加了 `createNewVirtualDisplay()` 方法,用于创建独立虚拟显示器 - `WindowManager` 增加了 `captureDisplay()`、`setForcedDisplaySize()`、`clearForcedDisplaySize()` 等方法 - `Ln` 的日志 TAG 和前缀修改为本项目标识 --- ## MaaAssistantArknights - **项目地址**:[MaaAssistantArknights](https://github.com/MaaAssistantArknights/MaaAssistantArknights) - **许可证**:[AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0.html) - **使用方式**:通过 `scripts/setup_maa_core.py` 下载预编译产物(`libMaaCore.so` 及资源文件),运行时由 JNA 动态加载