开源 · OPPO Find X9 系列 · 无需 root
OPPO Snap Key 自定义改键,一键打开任意应用
按一下,直达 Claude Code
SnapKey Mapper 把 Find X9 和 Find X9 Pro 的 Snap Key 侧键变成快捷启动键,打开你选的应用或链接。单击、双击、长按都行。
- 无需 root 无需解锁 Bootloader
- 不用 Wi-Fi 移动数据下照常使用
- 不收集任何数据 开源,可自行核查
- 开源 约 1000 行代码,MIT
示例
一个按键,能用链接打开的都能打开。
选一个已安装的应用,粘贴一个链接,或者写一条 intent: 链接,调用 Android 能做的任何事。几个点子:
-
链接
直接进入 Claude Code
正在运行的 Claude Code 会话,按一下就到。像用对讲机一样和你的智能体对话,走在街上、关着 Wi-Fi 也行。
https://claude.ai/code/[SESSION] -
链接
腾不出手时一键导航
Google Maps 逐向导航到收藏的地点,骑车或开车都行。
google.navigation:q=[PLACE]&mode=b -
链接
你的跑步歌单
spotify:playlist:[ID] -
应用
Strava,随时开始记录
应用:Strava -
链接
今天的笔记文档
docs.google.com/document/d/[DOC_ID] -
Intent
5 分钟计时器
intent:#Intent;…LENGTH=[SECONDS];… -
链接
车库控制面板
Home Assistant 直接打开对应页面。灯光、车库门、暖气。
homeassistant://navigate/lovelace/[VIEW] -
链接
触发一个工作流
打开一个支持 GET 的 Webhook 地址(比如 n8n):记一杯咖啡、启动计时、通知团队。
https://[HOST]/webhook/[PATH] -
链接
某个 WhatsApp 聊天
https://wa.me/[NUMBER] -
链接
给某人打电话
拨号界面打开,号码已填好。
tel:[NUMBER] -
链接
一个 Notion 页面
收集箱、日记或购物清单。
https://www.notion.so/[PAGE] -
应用
你的 AI 助手
ChatGPT、Gemini、Claude、Perplexity:比 OPPO 自带的更顺手的那个。
应用:任意 -
应用
或者任意已安装的应用
第三方相机、密码管理器、录音机、银行、翻译。在 SnapKey Mapper 的列表里选就行。
搭配 Claude Code
只要能启动,Claude Code 就能把它绑到按键上
大多数应用都能用链接打开,但没人记得住这些链接。告诉 Claude Code 你想让 Snap Key 做什么。它会找到深层链接,通过 ADB 在你的手机上测试,再给你一行可以直接粘贴到 SnapKey Mapper 的链接。
- 为你想要的应用和页面找到正确的链接
- 在你动手改手机设置之前先测试
- 还没有链接时,帮你写好背后的 Webhook 或快捷方式
- 甚至能替你安装 SnapKey Mapper 并授予权限
把 SnapKey Mapper 插件加到 Claude Code:
/plugin install snapkey-mapper --marketplace Damien-llado/snapkey-mapper
Claude Code 运行在你的电脑上。要在手机上测试链接,请用 USB 数据线连接手机(打开 USB 调试),或在同一 Wi-Fi 下使用无线调试。即使不连接,Claude 也能找到链接,你再用应用里的测试按钮检查。
起因是这样的:作者在家里的服务器上运行 Claude Code,用手机通过 Remote Control 和它对话。OPPO 的设置打不开这个对话,Key Mapper 也只能在开着 Wi-Fi 时做到。于是写了这个应用,从 2026 年 10 月起每天都在用。
我想让 Snap Key 一按就开始骑行导航,去攀岩馆。
Google Maps 支持导航链接。我在你的手机上测试一下:
adb shell am start -a android.intent.action.VIEW \
-d "google.navigation:q=Climbing+Gym+Lyon&mode=b"
导航已开始。把这个链接粘贴到 SnapKey Mapper:
google.navigation:q=Climbing+Gym+Lyon&mode=b
快捷方式库
不知道链接?选一个快捷方式
应用自带一个现成的快捷方式库,按应用分组:开始计时器、设置闹钟、打开相机、拨打号码、写短信、导航到某地、打开播放列表或聊天。选一个,填好你的内容,测试一下,然后设为按键的目标。
- 按应用分组,配有官方图标
- 每项内容一个字段,并提示去哪里找
- 实时预览最终链接,可一键复制和测试
- 每个快捷方式都在 Android 模拟器上验证过,并附有说明它的官方文档链接
在模拟器上验证过,不等于在每部手机上都验证过:ColorOS 上的时钟、相机和设置应用有所不同,有些应用还需要登录账号。每个快捷方式里的测试按钮,点一下就能告诉你结果。
技术原理
实话实说:它是怎么做到的
在 ColorOS 16 上,Snap Key 只能执行 OPPO 列出的功能:AI Mind Space、相机、手电筒、录音、翻译、截屏、声音模式或勿扰模式。没有“打开应用”这个选项;改键类应用也检测不到这个按键,除非一直开着调试连接。SnapKey Mapper 换了个思路:读取 ColorOS 本来就会记录的内容。
ColorOS 会记录每一次按键
系统日志里会出现一行
KEYCODE_ACTION_BUTTON_CLICK。SnapKey Mapper 读取日志,发现这一行,就打开你的应用或链接。无需 root,不用无障碍
读取日志只需要一个权限
READ_LOGS,用一条命令授予一次即可,重启后依然有效。不收集任何数据
在应用里:没有账号,没有追踪,没有广告。它只在你手机上保存目标、按键名称和手势。精简版完全没有联网权限,Android 本身不允许它自行建立网络连接。
放心安装
Android 会提示什么,为什么不用担心
SnapKey Mapper 没有上架 Google Play,所以 Android 会多做几道检查。从网站安装的应用都会这样。具体措辞因手机而异。
- 提示文件可能有害,出现在 Chrome 中。从网上下载的每个 APK 都会这样提示。确认下载即可。
- “安装未知应用”。Android 会请你允许浏览器或文件管理器安装应用。允许、安装,之后想关回去也可以。
- “Play Protect hasn't seen this app before”(Play 保护机制未见过此应用)。应用是新的,所以 Google 提出帮你检查。点 扫描应用,几秒钟就好。
- “已阻止有害应用”。Google Play Protect 可能会显示这条提示并中止安装。原因是这个应用来自 GitHub 而不是 Google Play,并且向一位 Google 尚未验证的开发者申请敏感权限(读取系统日志、显示在其他应用上层)。这并不表示应用是恶意的。继续之前,请核对 APK 的签名证书 SHA-256 是否为
a4a6d83d2298e8a88a6da748a3cc9ae9051e459a1d6e06b098a27d2b87f8f796(用 AppVerifier,或apksigner verify --print-certs)。一致的话,点按仍要安装。 - 无法开启“显示在其他应用上层”。在你为该应用允许受限设置之前,Android 可能会拒绝这项权限:应用信息 › ⋮ › 允许受限设置。然后返回再授予权限。
它能做什么
- 读取系统日志,前提是你用一条命令授权
- 打开你选的应用或链接
- 监听时显示一条通知
它不能做什么
- 向外发送任何东西:精简版没有联网权限;完整版只在设置时用它和你自己的手机通信一次
- 访问你的消息、通知或屏幕:它没有这些权限(不过它会读取系统日志,见常见问题)
- 显示广告、追踪你或要求注册账号
请只从 GitHub Releases 下载。想要一个完全无法联网的应用?在同一页面下载精简版(snapkey-mapper-lite.apk,约 500 KB,没有联网权限),日志权限需要你自己授予,见第 3 步。每个版本都列出了 APK 的 SHA-256 和签名证书指纹,你可以用 AppVerifier 校验文件。全部源代码公开。
设置
6 步完成设置
大约 10 分钟,只需一次。只有第 3 步需要 Wi-Fi。
-
把 OPPO 自带的 Snap Key 功能设为无
在 设置 › Snap Key 中,把按键设为不执行任何操作,这样它就不会再触发 AI Mind Space 或手电筒。ColorOS 仍会记录每次按键,SnapKey Mapper 照常工作。
-
安装 APK 并允许受限制的设置
下载 APK 并打开。对于 Play 商店以外安装的应用,Android 会屏蔽部分敏感设置:前往 设置 › 应用 › SnapKey Mapper,点 ⋮,再点 允许受限制的设置。
-
让应用自己获取日志权限
在 ColorOS 上,先打开 设置 › 其他设置 › 开发者选项,开启 Disable system optimisation(ColorOS 16 上可能只有手机语言为英文时才显示:找不到的话,临时切换一下语言)。然后连上 Wi-Fi,在应用里点 自动设置日志读取权限。在开发者选项中开启 无线调试,点 使用配对码配对设备,下拉通知栏,输入 6 位数字。通知提示设置完成后,关闭无线调试。
用电脑设置,或使用精简版
精简版没有联网权限,不会自动设置:请在电脑上运行下面的命令,或在手机上用 Key Mapper(专家模式,Shell command 操作,ADB,然后点 Test)。之后可以把 Disable system optimisation 关掉,权限依然保留。
adb shell pm grant io.github.damienllado.snapkeymapper android.permission.READ_LOGS -
允许显示在其他应用上层,并放开电池限制
在 SnapKey Mapper 中,点 允许显示在其他应用上层(Android 靠它才能从后台打开你的应用)和 电池不受限制。在 ColorOS 上,还要把应用的耗电设置为 无限制,并在最近任务中锁定 SnapKey Mapper。
-
选择 Snap Key 打开什么
选一个已安装的应用,或粘贴一个链接(网址、深层链接或
intent:链接)。然后选择单击(最快)、双击(放在口袋里误触永远不会打开任何东西)或长按(半秒),再点 测试 确认能打开。 -
开始监听
点 开始监听。Android 13 及以上会询问“允许访问所有设备日志吗?”:选择 允许一次性访问。只要监听在运行,这次授权就一直有效,所以只有重启后才会再看到(点“SnapKey Mapper 已关闭”通知即可)。
安全提示。设置完成后,在开发者选项中关闭无线调试。SnapKey Mapper 不需要它,并且会在设置完成后立即删除自己的配对密钥。之后请在无线调试 › 已配对的设备中移除 SnapKey Mapper。只在你信任的 Wi-Fi 网络上进行设置。
手机
兼容性
| 手机 | 系统 | 状态 |
|---|---|---|
| OPPO Find X9 Pro | ColorOS 16, Android 16 | 可用,每天在用 |
| OPPO Find X9 | ColorOS 16 | 同款 Snap Key,尚未测试 |
| OPPO Find X9 Ultra, Find X9s, Find N6 | ColorOS 16 | 有 Snap Key,尚未测试 |
| 带 Plus Key 的 OnePlus 手机 | OxygenOS | 按键不同,可能通过日志捕获实现 |
在其他手机上试过?提交 issue,附上你的按键对应的日志行,我们会把它加到这里。
常见问题
问题
Find X9 Pro 的 Snap Key 能打开任意应用吗?
只靠 OPPO 的设置不行:ColorOS 只提供固定的几个功能。用 SnapKey Mapper 就可以:任意已安装的应用或任意链接,单击、双击或长按都行。
需要 root 吗?
不需要。应用只需要一个权限 READ_LOGS,Android 允许你用一条 ADB 命令授予,无需 root,也无需解锁 Bootloader。
需要电脑吗?
不需要。应用会通过手机自带的无线调试自己完成授权,只需一次。用装了 adb 的电脑也可以,精简版就是这样设置的。
需要一直开着 Wi-Fi 吗?
不需要。只在用无线调试授予权限时需要一次 Wi-Fi。之后用移动数据、关掉 Wi-Fi,SnapKey Mapper 都照常工作。
为什么需要开启“Disable system optimisation”?
不开的话,ColorOS 会拒绝 pm grant 命令("Neither user 2000 nor current process has GRANT_RUNTIME_PERMISSIONS")。开启它,授予权限,之后想关掉也可以。
安全吗?应用能看到什么?
READ_LOGS 让应用可以读取系统日志,其中可能包含其他应用的信息。所以别光听我们说,自己去核查。应用不收集任何数据,没有追踪,也没有账号。精简版没有联网权限:Android 会阻止它的一切网络访问,你可以用 AppVerifier 确认。完整版声明联网权限,只为在设置时和你自己的手机通信;全部联网代码都在一个很短的文件里,之后你也可以禁止该应用联网。源代码公开,每个版本都列出 SHA-256 和签名指纹,你也可以自己编译。详见放心安装。
为什么 Android 又要求日志访问权限?
从 Android 13 起,每次新的日志读取会话都需要你同意,而且只能在应用显示在屏幕上时进行。SnapKey Mapper 会一直保持一个会话,所以只有重启后或系统停止应用时,你才需要再次确认。
重启后 Snap Key 不起作用了
点“SnapKey Mapper 已关闭”通知,再点“允许一次性访问”。同时检查耗电设置是否为无限制,以及应用是否已在最近任务中锁定。
在其他手机上,怎么找到我的按键名称?
打开 SnapKey Mapper,点 开始捕获,按两三次你的按键,停止,然后保存捕获结果。找一行每按一次就出现一次、带有 KEYCODE_… 名称的日志。在 Find X9 Pro 上是 KEYCODE_ACTION_BUTTON_CLICK(扫描码 735)。
右侧的快捷按键呢?
Snap Key 在机身左侧上方。Find X9 Pro 右侧边框上的 Quick Button 是相机控制键,尚未用 SnapKey Mapper 测试过。
会耗电吗?
它只等待新的日志行,其余时间什么都不做。在 Find X9 Pro 上日常使用没有发现明显耗电,但这只是观察,不是基准测试。
能直接打开 Claude Code、ChatGPT 或 WhatsApp 的某个对话吗?
可以,前提是该应用支持指向这个对话的链接。把链接粘贴为目标:如果对应应用支持,Android 会在该应用中打开,否则在浏览器中打开。
怎么找到某个应用的链接?
很多应用都公开了自己的链接格式(Google Maps、Spotify、Home Assistant)。否则就问 Claude Code 或其他助手,然后用 adb shell am start -a android.intent.action.VIEW -d "<link>" 或 SnapKey Mapper 里的 测试 按钮测试链接。
会上架 Google Play 吗?
不会:请从 GitHub Releases 安装 APK。Google 也在为 Play 商店以外安装的应用推行开发者验证(部分国家 2026 年开始,2027 年覆盖全球);SnapKey Mapper 如有变化,会在本页说明。
怎么卸载?
和其他应用一样。权限会随之移除。如果无线调试还开着,记得关掉。
它和 OPPO 有关系吗?
没有。SnapKey Mapper 是独立的开源项目,与 OPPO、OnePlus、Key Mapper、Anthropic 以及本页出现的任何应用均无关联。这些名称仅用于说明兼容性。
什么是快捷方式库?
一份按应用分组的现成链接列表:计时器、闹钟、相机、通话、短信、地图、音乐、聊天等等。在应用里打开它,选一个快捷方式,填好空白处,测试一下,然后设为 Snap Key 的目标。每个快捷方式都附有说明它的官方文档链接。
怎么知道某个快捷方式在我的手机上能用?
快捷方式是在 Android 模拟器上验证的,并非在每部手机上都验证过。ColorOS 上的时钟、相机和设置应用有所不同,有些应用还需要登录账号。每个快捷方式里的测试按钮,点一下就能告诉你结果。如果某个快捷方式在你的手机上不能用,请在 GitHub 上告诉我们,我们会修复或删除它。
这个网站会追踪我吗?
网站使用 Microsoft Clarity 统计访问情况(点击、滚动、访问录制),但只有在你于横幅中同意后才会这样做。如果你拒绝,Clarity 不会加载,也不会设置任何 Cookie。你可以随时通过页面底部的“Cookie 设置”改变主意。页面还会向 api.github.com 请求星标数和下载数,这会把你的 IP 地址发送给 GitHub,并把这些数字在你的浏览器里保存一小时。应用本身不收集任何数据:没有账号,没有追踪器,没有广告。
轮到你了
你给 Snap Key 设了什么?
分享你的设置:最好的会加到上面的示例里。点击后会在项目的 GitHub Discussions 中打开一篇预填好的帖子,发送前你可以先检查。