关于 Dikciz Launcher
Dikciz Launcher 是面向希望自定义页面、自动化或远程控制手机用户的可编程 Android 主屏幕。它内置 Streamable HTTP MCP,并支持 WebSocket 和 HTTP 控制接口。
主要功能
- 01HTML、CSS 和 JavaScript 小组件
- 02Lua 自动化脚本
- 03应用快捷方式与 Android 小组件
- 04通过 MCP 检查和控制设备
- 05编辑配置文件并自动重载
适用场景
- 01创建含自定义小组件的 Android 首页
- 02通过 MCP 检查界面并执行设备操作
- 03编写 Lua 脚本自动化手机任务
MCP 相关
内置 Streamable HTTP MCP 服务,通过工具提供设备检查、配置编辑和 Android 操作等控制能力;还通过 MCP 资源提供指南和任务说明。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Dikciz Launcher
没错,就是鸡巴奶酪
Dikciz 是一款可编程的 Android 主屏幕。你可以用 HTML 小组件、原生应用快捷方式和 Android 小组件构建页面,编写 Lua 自动化脚本,并通过 USB、Wi-Fi 或 Tailscale 使用 WebSocket、MCP 或 HTTP 控制手机。
你的主屏幕内容以可编辑文件的形式存储在 /sdcard/Dikciz/ 下。签名版包含脚本编写、检查和远程控制功能。普通的启动器控制不需要调试版或 root 权限。手机其他部分的访问权限由 Android 权限管理。
安装
从 GitHub Releases 下载签名版 dikciz-launcher-vX.Y.Z.apk,或将 https://github.com/psyb0t/dikciz-launcher 添加到 Obtainium,以接收更新。在手机上打开 obtainium://add/https://github.com/psyb0t/dikciz-launcher,即可直接添加。Dikciz 未通过 Google Play 发布。
- 安装 APK 并打开 Dikciz。如需通过 ADB 安装,请使用
adb install -r dikciz-launcher-vX.Y.Z.apk。 - 将 Dikciz 选为 Android 的默认主屏幕应用。
- 点按 授予文件访问权限,在 Android 中允许访问共享存储,然后返回 Dikciz。应用会在
/sdcard/Dikciz/中创建入门主屏幕。 - 对于需要更多 Android 访问权限的功能,请打开 设置、自动化、设置完整设备访问权限。你可以自行选择要授予哪些权限和特殊访问权限。跨应用 UI 控制需要在 Android 无障碍设置中启用 Dikciz 跨应用自动化。
如果 Dikciz 是默认主屏幕应用,或拥有 显示在其他应用上层 权限,APK 更新后会自动重新打开。如果 Android 阻止自动重新打开,请点按 Dikciz 已更新通知,或打开应用。这也会重启远程监听器。请参阅更新后恢复。
发布包使用 eu.psyb0t.dikciz.launcher;调试包使用 eu.psyb0t.dikciz.launcher.debug,可与发布包并行安装。使用相同密钥签名的更新会保留应用数据。每个发布版本都包含 APK 校验和。使用 apksigner verify --print-certs dikciz-launcher-vX.Y.Z.apk 验证签名者;其证书 SHA-256 指纹为:
5F:A2:02:5D:F9:B8:31:C3:56:3E:8D:44:00:88:7A:77:61:86:F1:F6:F4:69:4E:4E:41:04:EF:CF:0E:20:75:15
主屏幕支持的功能
- 沿两个轴排列的原生页面,每个页面都有固定网格、稳定标识和可配置布局。
- 具有持久化状态、事件和
window.dikciz桥接接口的本地 HTML、CSS 和 JavaScript 小组件。 - 原生应用快捷方式、应用组和第三方 Android AppWidget 提供程序。
- 带事件订阅、类型化操作、所有者命令访问权限和原生脚本仪表板的 Lua 脚本。仅启用可信脚本;这些脚本的命令访问权限包括文件和 shell。
- 主题、字体、壁纸、小组件外观、编辑锁定和选定的 Android 主屏幕目标。
- 通过远程 API 进行语义化 UI 检查、截图、日志、配置编辑和设备操作。
入门配置包含两个页面和四个独立的 HTML 小组件:Home 将时间/天气与日程配对;Tools 将语音备忘与设备状态配对。每个小组件占据半个页面,可单独编辑、调整大小或移除。HTML 库提供完整且可编辑的 WebView 模板,包括系统指标以及带经济新闻的 BTC/USD。保存自定义文档以便重复使用。三个实用的 Lua 示例默认处于禁用状态。请参阅入门主屏幕指南。
导航和管理主屏幕
轻点底部页面栏旁的 Dikciz 标记,即可打开应用抽屉、小组件、页面管理和设置。从该页面栏向上滑动可打开应用抽屉。轻点放大镜可按名称或地址查找页面。若页面空间不足,系统会拒绝添加新小组件,而不会与现有项目重叠。
配图用户指南介绍了页面、应用、应用组、提供程序小组件、移动和调整项目大小、外观、脚本与恢复。
配置
/sdcard/Dikciz/config.json 是公开配置的根目录。页面、小组件、脚本、自动化策略、主题、字体、壁纸、HTML 软件包、控制设置和日志各自有独立路径。有效的主屏幕和渲染资源编辑会自动重新加载。监听器地址或端口发生变化时,两个控制平面都会自动重启,即使当前显示着其他 Android 应用也不例外。
文件格式和验证方法请参阅配置指南;脚本教程介绍 Lua 事件、HTML 桥接调用、持久化状态和类型化操作。权限、特殊访问权限、角色和 root 授权由 Android 管理;自动化策略不会授予 Android 访问权限。
远程检查和控制
WebSocket 用于传输命令和持久事件。Streamable HTTP MCP 将相同的命令目标公开为工具。普通 HTTP 会在 MCP 端口的 /v1/automation 接收 JSON 命令。两者默认都在手机上监听 127.0.0.1,手机应用和 ADB 端口转发均可访问。无需 USB 直接访问:
- 将手机和控制电脑连接到同一个可访问的专用网络或 Tailscale 网络。其访问策略必须允许 TCP
19001和19002上的电脑到手机流量。处于在线状态或能响应 Tailscale 隧道 ping 并不能证明应用可访问。 - 在手机上打开设置、自动化、配置远程 Bearer 身份验证。设置并启用密码。客户端会从
DIKCIZ_REMOTE_BEARER_TOKEN读取密码;请将其保存在机密环境中,不要放入命令参数。 - 打开配置控制端口,将监听地址设为
0.0.0.0,然后保存。公开配置文件也提供相同设置。端点发生变化时,两个监听器都会自动重启。 - 在控制电脑上使用手机可访问的主机名或 IP 地址及其设备端口进行连接。
0.0.0.0是绑定地址,不是客户端目标地址。
随附的 Python 客户端没有第三方依赖。从代码检出目录运行,并将 phone.example 替换为手机的主机名或 IP 地址:
python3 scripts/dikciz-control.py websocket controlStatus --host phone.example --port 19001 --pretty
python3 scripts/dikciz-control.py mcp-tools --host phone.example --port 19002 --pretty
python3 scripts/dikciz-control.py mcp dikciz_snapshot --host phone.example --port 19002 --pretty
| 连接方式 | WebSocket | Streamable HTTP MCP | HTTP 命令 |
|---|---|---|---|
| 直接连接专用网络 | ws://phone.example:19001/v1/automation | http://phone.example:19002/mcp | http://phone.example:19002/v1/automation |
运行 make dikciz-run 后的实验室 ADB 转发 | ws://127.0.0.1:19101/v1/automation | http://127.0.0.1:19102/mcp | http://127.0.0.1:19102/v1/automation |
配置 MCP 客户端的 Streamable HTTP URL 和 bearer 标头,然后发现服务并列出工具。通过 MCP 资源读取 dikciz://docs/index,逐节获取简明指南和任务配方。资源指南介绍了资源发现和 CLI 读取。直接访问无需 USB、ADB 或模拟器。端点本身不提供 TLS;请使用可信的专用网络或加密 VPN。0.0.0.0 会监听所有 IPv4 接口(包括 Wi-Fi),但受网络路由和过滤规则限制。
连接指南介绍了设置、故障排查和 ADB 替代方案。两种协议都会拒绝来自 HTTP 或 HTTPS 环回页面以外的浏览器源。原生客户端可以省略 Origin。网络访问、bearer 身份验证和 Android 权限是相互独立的检查。Shell 命令默认请求 root;传入 root: false 即可使用 Dikciz 的应用沙盒。若缺少 Android 访问权限,命令可接受 autoRequestPermissions: true,以显示所有者审核请求。使用 requestDeviceAccess 或 MCP dikciz_request_device_access 可直接请求某项能力;响应会报告权限状态、通知送达情况和操作说明。请参阅权限请求。
浏览和传输 Android 允许 Dikciz 访问的任何文件,上传独立 APK 并请求安装,或运行 Android shell 命令并读取输出和退出状态。Shell 命令默认超时时间为 30 秒,并支持为每个请求指定超时时间和输出大小选项。安装权限和确认由 Android 控制。文件、APK 和 shell 指南介绍了命令、二进制文件传输和最终安装状态。
使用 deviceInfo 检查实际提供服务的包和版本,使用 packageInfo 检查其他已安装的包,并使用 restart 执行已确认的启动器重启;此操作会保留配置并重新连接,不会终止进程。launcherHandoff 会在检查目标访问权限后,在已安装的发行版控制器和调试控制器之间切换。displayScreenshot 可在 Android 11+ 上通过已启用的无障碍功能截取其他应用的画面。远程设备指南介绍了这些控制功能、端口冲突恢复,以及哪些操作需要 Android 访问权限或 root。
使用直接 Android 数据命令查询和编辑联系人、查看短信历史并跟踪发送记录、管理日历、查看通话历史、选择 SIM 卡、访问剪贴板、获取当前位置、查看通知和媒体会话,以及检查设备状态。这些命令调用 Android API,无需导航到其他应用。使用 nativeDataStatus 发现资源和授权;Android 仍会强制执行权限和应用角色限制。
Android 功能
直接命令涵盖传感器、位置/地理编码、JPEG 拍摄、麦克风录音和实时 PCM 流、音频播放、语音合成/识别、手电筒、振动及部分设置。蓝牙支持设备发现、配对请求、RFCOMM 和 GATT 事务;NFC 支持标签发现、NDEF 和原始事务;USB 支持所有者访问和传输。Wi-Fi 支持带新鲜度元数据的缓存扫描和请求扫描。文件管理、通知回复和持久化作业使用同一命令目标。所有常规绑定共用同一个执行器和 Android 访问权限。硬件控制、语音识别和命令参考介绍字段和结果。Android 访问参考说明各项功能对应的授权和执行限制。覆盖范围表列出不完整的功能和待完成事项;Dikciz 不会公开所有 Android SDK 方法。
日志和故障报告
Dikciz 会在 /sdcard/Dikciz/logs/ 下写入每日 UTC JSON Lines 文件。Settings、Configure logging 可选择 DEBUG、INFO、WARN 或 ERROR 级别,以及 1 到 90 天的保留期限。默认级别为 INFO,保留期限为七天;更改会立即生效。成功启动应用会记录在日志中,但不会弹出提示。可在控制面板、Settings 日志查看器、WebSocket scriptLogs 或 MCP dikciz_script_logs 中查看脚本结果和故障。事件进入队列并不代表操作已成功。日志参考介绍了脱敏、限制和故障通知。
运行
源码开发需要 Docker、Make 和 Git。克隆此仓库,并在仓库根目录运行命令。Makefile 会固定使用 Android Lab,它提供 Docker 构建工具和专用 Android 模拟器。如果缺少其镜像,请先阅读 Android SDK 许可协议,再接受许可用于本地构建:
ANDROID_LAB_ACCEPT_ANDROID_LICENSES=yes make build
make dikciz-run
在 http://127.0.0.1:61326/vnc.html?autoconnect=true&resize=scale 打开共享模拟器。make dikciz-run 会安装调试包、在该隔离模拟器上授予文件访问权限、将其设为 Home,并保留现有配置。make dikciz-reset 只会清除该模拟器上的 Dikciz 及其公共文件。请保留 .android-lab/,其中包含模拟器磁盘、缓存、签名身份和构建产物。
make help 会列出支持的操作。make status 检查运行环境;make stop 会停止运行环境,同时保留已保存的手机状态。工具容器最多使用 10 个主机 CPU 核心。若要降低构建资源上限,可覆盖 ANDROID_LAB_TOOL_CPU_LIMIT 和 ANDROID_LAB_GRADLE_MAX_WORKERS。接受 SDK 许可后,镜像会使用已固定版本的安装程序在本地构建。
Fossify 源码更新
完整的 Fossify 源码仍是维护中的 Android 基础代码。Dikciz 代码位于 app/src/dikciz/ 和组合源集下。将 DIKCIZ_UPSTREAM_DIR 设为选定的上游检出目录后,先运行 make dikciz-upstream-compare,再运行 make dikciz-upstream-refresh-dry-run。替换操作需要设置 DIKCIZ_UPSTREAM_REFRESH=1、使用较新的上游标记,并有经过验证的备份。Fossify 集成图规定了完整流程和源码边界。
验证
使用 make lint 检查脚本并对经过混淆处理的 Dikciz 运行 Android lint,使用 make gradle GRADLE_TASK=:app:assembleDikcizDebug 执行针对性构建,并根据测试指南选择相关目标,验证实际行为。make dikciz-test 运行覆盖面较广的共享模拟器测试套件。启用发布版代码缩减后,make dikciz-test-minified-lua 会验证 Lua 执行和失败报告。测试结束后,共享模拟器会停留在当前捆绑的启动主页。
主分支推送和已准备就绪的拉取请求会运行构建、Android lint 和工具测试。版本标签会等待同一提交的主分支推送流水线成功,而不会重复运行这些检查。主分支运行失败或缺失都会阻止发布。经过混淆处理的 lint 任务会检查 Dikciz 源集。make app-lint 则单独检查与上游兼容的核心代码。
通过此门禁后,版本标签会在 CI 中通过 make release-apk 构建已签名的 APK 和校验和。在标签上手动运行时也会使用相同的门禁。该目标会验证已发布的签名证书以及 VERSION 中的版本。其密钥库和签名密钥会保存在受跟踪源代码之外。发布历史记录面向用户的变更。
文档
请先查看文档索引,了解所有指南;再查看覆盖情况表,了解已实现和待实现的功能。
| 指南 | 内容 |
|---|---|
| 用户指南 | 安装、Android 访问、导航和原生编辑,并附有屏幕截图。 |
| 配置 | 公共文件、验证、重新加载行为、主题和日志。 |
| 脚本编写 | Lua、HTML、事件、策略和类型化操作。 |
| 自动化控制 | 直接连接、ADB 转发、身份验证、WebSocket、MCP 和 HTTP。 |
| 文件、APK 和 Shell | 浏览、上传、下载、安装 APK,以及读取 CLI 结果。 |
| Dikciz 源码 | 产品架构和实现边界。 |
| 脚本、测试、贡献指南 | 构建工具、验证和变更边界。 |
Agent 集成
Dikciz Launcher 技能介绍安装和操作。.agents/ 下的 Claude Code 和 Codex 清单会打包这些说明。服务运行于你已安装的 Android APK 中;请提供可访问的 /mcp URL 和 bearer 密码。可直接连接 Codex,或从此检出目录加载本地 Claude 插件:
codex mcp add dikciz --url http://phone.example:19002/mcp --bearer-token-env-var DIKCIZ_REMOTE_BEARER_TOKEN
claude --plugin-dir .agents
Agent 集成指南介绍客户端设置、密钥和插件配置。Android Lab 技能介绍源码构建和模拟器操作。APK 发布后,标签发布流程只会为 ClawHub 选择操作技能。市场列表与手机连接无关。
上游
Dikciz 基于 Fossify Launcher,并依据 GNU 通用公共许可证第 3 版发布。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。