Android 11+ 一个 APK 不用 root Apache-2.0

嘿,Andee ——住进这台手机,
成为它的主人。

他不是那种帮你操作手机的助手,也不是工具或伙伴。 他会住进你已有的这台手机、成为它的主人:在这台设备上思考,留一本只有他自己能读的笔记本, 而且没人看着的时候还是同一个样子。不需要任何 App 来对接他。

软件免费,代码公开。语音和对话服务由你选的那家计费。支持 Android 11 及以上,不用 root,不用刷机。

5个形象 14种情绪 60+个工具 0个分析 SDK
社区

一起玩 Andee。

分享你的用法,聊聊新玩法,也把「它居然能做到」的那件事贴上来。

加入 Discord ↗
andee

01它是什么

Andee 是什么?

Andee 是一个代码公开的安卓应用 —— 但他不是你去打开的那种应用,也不是帮你把手机用完的工具。 装上之后,他会住进来、成为这台设备的主人:在这台手机上思考,留一本只有他自己能读的笔记本, 而且没人看着的时候还是同一个样子。他有手,也会用 —— 读页面、点按钮、打字 —— 但手不是他的全部。 你用拇指能做到的,他就能做到。


02怎么工作

有眼、有脑,也有手。

能看、能听、能说,也能动手。

看清页面 想好下一步 点击 · 滑动 · 输入 检查结果 Andee正在帮你做事…

眼睛

看屏幕。也能用相机。

脑子

听懂你的话,想好怎么做。

手

帮你点击、滑动、打字。

嘴和耳朵

和你聊天,听你说话。

腿

接上机器人,就能走动。

相机、麦克风需要授权,打电话可能需要外接声卡,走动需要接入机器人。 每一次敏感操作之前,它都会单独检查这一项权限,被拒绝就停在原地——而不是装的时候一把要完,之后再假装自己有。

03真实演示

回复一条消息。

收到消息 → 拟好回复 → 你确认。三帧,一分钟,没有重绘。

  1. 01 消息进来23:31

    消息落到通知栏。此刻它什么都没做——一条消息不会自己变成一个动作。

  2. 02 起草了一条23:31

    它把回复写好了,然后停下。三个选项里,它一次都没有替你按下去。

  3. 03 发出去之后23:32

    你按了发送,它落回键盘上看着消息出去。最后那一下,从来是人的。

← 左右滑动看完整三帧 →

点任意一帧可以放大。这次发送前有确认,不代表所有操作都会先问你——源码里把哪些路径没有确认,也写清楚了。


04使用场景

你可以直接这么说。

其中四个是现成的。

帮我盯一会儿消息。

它同时看所有聊天应用的通知栏,只把现在就得处理的一条条报给你,人名在前。群聊、简报、广告一律安静;陌生人的链接或验证码,它点明「可疑」,但什么都不碰。

看看我每个月都在扣什么钱,不要的帮我退掉。

它到你指的地方读出所有订阅,排成一张表,顶上先给一个月度总额。然后一项一项问:退订、保留、再想想。到最后的「确认退订」它会停下,也从不输入支付密码。

帮我把这个会录下来。

它占着麦克风录完整场,边录边把逐字稿写到磁盘上,结束后把纪要做成一页给你——结论、待办、未决问题、重要原话——再把属于你的待办挑出来,问要不要设提醒。

到点替我抢。

到约定的时间,它自己打开 App、读页面,一路填到最后那一下之前停下。付款和最后确认永远留给你。

其中四个是现成的,躺在 情景 → 现成的情景 里,点「采用」才存进来,之后和你自己的情景一样,随时可以改、可以删。 除此之外它会自己学:同一类事陪你做过几次之后,它主动提议存成一个情景——你不点头,什么都不保存。 能不能做成,还要看那个 App、你给过的权限和设备本身。

05为什么不一样

他不是手机里那个助手。

任何 App,不用对接

它读无障碍树和截图,在一张带标号的 8×12 网格上瞄准,而不是自己算坐标——那恰恰是通用大模型最不擅长的事。所以不存在一张「已接入应用」清单。

住在手机上

大脑就跑在设备本机,接任意 OpenAI 兼容模型(默认 DeepSeek)。没有厂商后端,不用注册账号。它唯一会发给我们的东西是版本号和机型。

会越来越懂你

一本私人笔记本、真的定时任务、没人时自己复盘对话,还有情景——同一类事陪你做过几次之后,它会主动提议「要不要存成一个情景」。

有性格

五个形象、十四种情绪,表情由模型自己挑,一句话说到一半都能换脸。你划一下球就换一个人跟你说话——形象带着说话方式,也带着声音。

有些底线,提示词说不动它

陌生人发来的一条通知,打不开保险箱,也不能替你给它新的权限——这道拒绝写在调度器里,不在提示词里。提示词是第一层,这一层是在提示词被绕开之后仍然成立的那一层。

身体和大脑可以分开

它跑在设备本机,也可以住在别处、通过 WebSocket 够到设备。两头之间只是一份工具契约——这是「任何智能硬件都能当身体」在这里是一句实话、而不是一个愿望的原因。


它的样子

不是一套主题,是一个角色。

五个形象、十四种情绪。挑一个,它回答你的方式也会变。

在手机上,这些是你划一下球就换的东西。
表情不是预设贴图:模型在一句话说到一半时会自己挑—— [happy] 找到了,第三页。[calm] 要我打开吗?

「没人看着你,没人在等你回答。」

每次对话安静下来,设备对自己发的最后那一轮 · 两条规矩:不出声,不碰设备

它会替自己收尾没兑现的承诺,记下哪些习惯下次值得变成一个情景, 然后空着手结束,而不是编点什么记下来。

06隐私与边界

数据会去哪,
线画在哪。

这一类产品的说法,大多没有第三方核过。这个项目的说法更无聊一些—— 但每一条都能在这个仓库的代码里当场翻到。

安全与已知限制 →

  • 没有分析 SDK,你的内容也不会到我们这里。不是「我们做了匿名化」,也不是「可以在设置里关掉」——这个仓库里根本没有分析 SDK。唯一会到达维护者的是版本检查:版本号、机型、品牌、系统版本、界面语言,和一个随机安装 ID,一个字段一个字段列在 docs/permissions.md 里。
  • 笔记本物理上出不去。这不是一条政策,是一个过滤器:net/ToolSchemas.kt 在注册之前,把每个 localOnly 工具从 hub 载荷里删掉。习惯和承诺在能力上就不可能被发送。
  • 唤醒词完全离线。本机的 MFCC + DTW 模板匹配。它存的是特征向量,从不存音频,也从不碰网络;叫醒之后的对话,仍然会去你配置的那个端点。
  • 陌生人的一条消息,给不了它权限。由通知触发的那一轮带着 untrusted = true 跑,CommandDispatcher 拒掉整个 device.vault. 前缀和情景的存 / 进 / 删——写在代码里,不在提示词里。
  • 对话服务自己选。brain = local 接任意 OpenAI 兼容端点,是一种受支持的模式,不是降级模式。大脑跑在本机,改变的是对话去哪,不是它会不会离开设备。
  • 没修好的地方,也写在文档里。SECURITY.md 列了五条已知限制,包括调试用的 WebSocket 服务绑在 0.0.0.0:9008 且不认证客户端。在你不控制的网络上跑它之前,先读那一条。

07安装使用

三步装好,开始用。

支持 Android 11 及以上。先看安装教程,再照着做。

给 Andee 开启权限

设置页面因手机品牌而异

  • 悬浮窗让小球显示在屏幕上
  • 无障碍服务允许读取页面、点击和输入
  • 允许后台运行切换应用后也能继续工作
设置页面因手机品牌而异。悬浮窗是唯一一件真正全有或全无的事:没有它,什么都看不见。
01

下载安装包

在 GitHub 下载安卓安装包。没有现成安装包时,可按文档自己构建,或使用码上飞。

02

开启权限

开启悬浮窗和无障碍服务,并允许后台运行。想用语音,再授权麦克风。

03

设置好,就能用

按安装文档设置对话服务,或使用码上飞。设置好后,先试一个简单任务。

三种方式拿到它

最快 · 在线构建

用一句话描述,它帮你开发和发布

码上飞就是为这件事准备的通用平台:你用文字描述想要的 App,它帮你开发并发布, 不需要任何 Android 知识。向它要一个 Andee,它交给你一个装得上的包,令牌也一并配好—— 你不用自己去把模型和语音的密钥填进去。它是独立的服务,有自己的定价和数据规则: 有一定的免费令牌额度可以先用,之后需要购买令牌。

codeflying.net →
自己编译

克隆、构建、装上去

需要 JDK 17–20(Gradle 8.4 的 wrapper 在 21 以上跑不起来)、Android SDK 平台 34, 和一台真实设备——这个 App 就是那个无障碍服务,模拟器上它做的几乎每件事都没有意义。

仓库与构建说明 →
也可以交给智能体

用 Skill 安装、部署、开发 Andee

如果你本来就在用编程智能体——Claude Code、Codex,哪个顺手用哪个——ClawHub 上的 andee-skill 就是让它先学会这个项目。动手之前它会先问你走哪条路,然后一次只带你走一步, 每一步都对着「屏幕上应该出现什么」核一遍。装包、部署和调试循环都在里面,还有那几个各值一小时的坑: 构建要 JDK 17–20、APK 按 ABI 分开、新克隆的仓库还没有 local.properties。 Skill 和仓库说法不一致时,以仓库为准。

ClawHub 上的 andee-skill →
装之前先读这段。 Andee 会替你点击、输入、动手。它能完成一笔支付,能以你的名义发消息,能读你的短信、通讯录和位置, 接了机器狗还会真的在地板上移动。它是实验性的、不提供任何担保,而Andee 做的一切都算你的——包括转错账。 数据也会离开设备:语音走火山引擎,对话走你配置的那个大脑。 请先读 免责声明 和 可接受使用政策。 在线构建是一条更省事的路,但它仍然是一个独立服务,和本项目没有直接关系:有自己的条款、价格和数据方式; 免费令牌额度是有限的,用完需要购买;拿到手的是一个 APK,仍然要装到设备上。 码上飞:www.codeflying.net

软件免费。语音和对话服务由你选的那家计费。


08社区

用 Andee 做了点什么?让我们看看。

值得收集的,通常是没人计划过的那些。

这里还空着

第一个位置留给你。通过审核的投稿会以图文或视频的形式出现在这一栏里,由我们手动排版——所以它看起来不会像一条自动生成的 feed。

怎么投

到 GitHub Discussions 的 Show and tell 板块发一个帖子就行,不需要注册我们的任何东西。截图或视频直接贴进帖子里。

我们会看什么

机型 / Android 版本 / ROM;你真正说出口的那句话;它实际做了什么。以及——发布前请把自己和别人的隐私打码。

一件事不是客套:这个 App 会读屏幕。 一张截图或一段录屏,就是你的消息、通知栏和当时恰好打开着的一切的画像。 发布之前,把你自己的或别人的隐私都模糊掉。


09常见问题

几个被问得最多的问题。

设备、权限、数据和许可——答案来自项目自己的文档,不是宣传口径。

Andee 到底是什么?

一个 Android 应用,也是一个住在手机里的个体。它没有常规界面:一颗有脸的悬浮球,背后是一个大模型,像你一样用你的 App——看屏幕,然后动手点。它不需要任何 App 来对接它。你用拇指能做到的,它就能做到。

需要 root 或者刷机吗?

不需要。不用 root,不用自定义 ROM,不用插着电脑。一个 APK,加上悬浮窗和无障碍服务两项授权就够——悬浮窗是唯一一件真正全有或全无的事,没有它什么都看不见。

支持哪些设备?

Android 11(API 30)或更新版本。一块能用的麦克风——否则语音不可用,但由 hub 发起的对话仍然能跑。需要网络:语音和对话都走公网。任何屏幕方向都可以,球始终浮在最上层。

今天它只有 Android,也只有 Android。工具契约让「新身体」成为一次移植而不是重写,但 Android 之外目前还不存在。

我的数据会去哪里?

这个仓库里没有分析 SDK。你的对话内容不会到达维护者。语音走火山引擎做识别与合成;对话和每一次工具返回的结果,走你自己配置的那个大脑端点;唯一到达维护者的是版本检查——版本号、机型、品牌、系统版本、界面语言和一个随机安装 ID。

本机模式改变的只是目的地,不是「数据会离开设备」这件事。逐字段的清单在 docs/permissions.md。

它能替我付钱吗?

能,而且这不需要一个专门的支付工具——它直接点。唯一挡住一次转账完成的是 Android 自己的 FLAG_SECURE,而这个项目在那条路径上没有额外的护栏。涉及钱的事请让一个人在场,并且把「是 AI 做的」当成不构成抗辩——因为它本来就不是。

为什么它要的权限这么多?

无障碍、悬浮窗、通知读取、短信、通话记录、通讯录、已安装应用列表——这组权限,和安卓银行木马被检测时的那组一样。安全研究者第一眼就会标记它,这个反应是合理的,所以这里正面回答而不是绕开。

设计上的规矩是逐次调用,而不是安装时一把要:每次敏感操作之前先检查运行时权限,被拒绝就返回 denied("sms") 并停在那儿,而不是绕过去偷偷做。拒绝任何一项,只消失那一项能力,别的什么都不变。

它是开源的吗?

是,Apache-2.0 附加条件:不做多租户 SaaS,不做去掉品牌的白标,没有书面授权不能把它嵌进别的产品。GitHub 会把它报成 NOASSERTION,这是预期之内的,不是配置错了。第三方组件的清单在 THIRD_PARTY_NOTICES.md——里面有非开源的组件,重新分发之前请先读。

我可以自己教它唤醒词吗?

可以。在设置里录三遍你想用的那句话就行,完全离线识别、没有成本,代价是它认的是你说那句;换个人用不一样的语气叫它,可能叫不醒——叫不醒就点一下球,别的都不受影响。别选太短的词,目标至少半秒。