Fujimod
Try your camera firmware in the browser and build Fujimod SD boot files.
电话、微信视频、天气和常用应用,都放在一眼能懂的首页。
Translation pending
LifestyleKotlin · JavaScriptGitHub @bjfwanOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Senior Desktop, Old Launcher is designed for the elderly on Android, a simple desktop with large fonts, large icons, one‑click dialing, automatic WeChat video, simple to use, stable
AI translation
老人桌面,Old Launcher专为老年人设计的 Android(安卓) 简洁桌面,大字体、大图标、一键拨号,自动微信视频,简单好用,稳定
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
大字、大图标只是起点。银杏真正想解决的是:长辈能不能稳定地找到家人、拨出电话,并在不同手机和软件版本上继续用下去。 • 🌤️ 天气定位重写:授权定位权限后自动定位并匹配城市,不再需要手动设置;逆地理编码多级兜底,定位失败与天气失败分开提示; • 🗺️ 内置民政部口径全国省市区县地名库(3240 条含坐标),城市搜索支持模糊匹配、错别字纠正、省市拼接写法和常见简称,重名地区自动消歧; • 🎨 界面改版:设置、联系人、视频通话、应用管理等页面按统一设计规范重构,色彩语义、圆角、字号全面统一; • 📱 修复部分小米手机定位回调崩溃与来电弹窗异常,建议小米/红米用户尽快更新; • 🎥 微信视频:识别“微信未登录”与权限申请页面并明确提示,系统授权弹窗自动点允许;界面读取异常时自动重试恢复; • ✅ 860 tests(1 项为 Robolectric 已知偶发环境冲突,单独运行通过),Release 构建和 APK v2 签名校验通过。 很简单:我爷爷不会使用过于复杂的智能手机功能。 现在的手机字体小、入口多,年轻人觉得顺手的操作,老人可能要翻好几层。市面上有不少老人桌面,但我还是想自己做一个给爷爷用的:简单、干净、够用,遇到问题也能知道问题出在哪里。 天行健,君子以自强不息。Read the full README ↗
大字、大图标只是起点。银杏真正想解决的是:长辈能不能稳定地找到家人、拨出电话,并在不同手机和软件版本上继续用下去。
v2.4.1 是 v2.4.0 的细节优化,没有新增功能,不在意的用户可以继续用 v2.4.0:联系人 / 视频通话管理模式收敛、空状态排版、管理工具卡收紧、软件许可证按版本说明、长内容弹窗可滚动。
查看 v2.4.1 发布说明 · 查看 v2.4.0 发布说明 · 前往官网下载
v2.5.0 曾于 2026-10-31 上线,因微信来电自动接听稳定性、开屏广告跳过等问题已撤回:官网与
update.json已回滚至 v2.4.1,当前可下载、可自动更新的仍是 v2.4.1(versionCode 23)。 下面列的是打磨中的内容,尚未作为已发布能力提供;v2.5.0 修完问题并跑完真机回归后才会重新发布。
v2.5.0 计划把微信语音 / 视频来电自动接听从实验转为正式能力,并补齐通话声音辅助、后台保活、反馈入口与版本特性页。
⚠️ v2.5.0 代码基线(2026-10-31 构建,未发布):1112 tests, 0 failed, 0 skipped(192 个测试类,连续两轮),Lint 0 errors,Release 构建和 APK v2 签名校验通过;工程验证通过不等于真机稳定,撤回原因即来自真机反馈。
线上可下载版本:v2.4.1 发布说明 · 前往官网下载
很简单:我爷爷不会使用过于复杂的智能手机功能。
现在的手机字体小、入口多,年轻人觉得顺手的操作,老人可能要翻好几层。市面上有不少老人桌面,但我还是想自己做一个给爷爷用的:简单、干净、够用,遇到问题也能知道问题出在哪里。
天行健,君子以自强不息。
我相信,技术进步要向上突破,也要让普通人用得上。我是普通的计算机学生,我愿把所学变成责任,帮助更多人不被 AI 时代落下。借助新一代 AI,我更新了银杏,初衷不变:让老人更简单地使用手机,让科技更有温度。
银杏不是只把桌面图标放大。它把老人每天最常用的桌面、电话和微信视频做成主流程,并把最容易失败的微信自动操作单独做成了一套可观察、可切换、可诊断的执行系统。
普通坐标脚本只要按钮位置、启动页面或微信版本稍有变化,整条流程就会中断。银杏目前使用的是 语义页面识别 + 能力接口 + 轻量行为树:
观察当前页面 → 选择下一项能力 → 执行一次 → 验证结果 → 必要时局部换路
系统会识别微信首页、搜索页、联系人详情、聊天页和音视频菜单,而不是只记住“第几个位置”。当前能力包括:
[视频通话] 记录并尝试最短路径;当前有六条可组合入口路线:
| 路线 | 完整路径 |
|---|---|
| 当前聊天 | 当前聊天页 → + → 视频通话 → 视频通话 |
| 历史视频记录 | 微信首页 → 最近消息 → 目标聊天 → 点击最近的历史视频通话记录 |
| 最近消息 | 微信首页 → 最近消息 → 目标聊天 → + → 视频通话 → 视频通话 |
| 通讯录 | 微信首页 → 通讯录 → 找到联系人 → 联系人详情 → 音视频通话 → 视频通话 |
| 搜索 | 微信首页 → 搜索 → 输入联系人 → 点击搜索结果 → 聊天页/联系人详情 → 音视频入口 → 视频通话 |
| 聊天信息 | 聊天页 → 右上角 → 聊天信息 → 点击头像 → 联系人详情 → 音视频通话 → 视频通话 |
这六条路线不是六段互不相干的坐标脚本,而是一套可以组合和换线的能力网络,也是银杏针对真实微信环境做的重点工作:
首页切换标签后必须连续两次确认目标标签已选中,才会点击列表,避免使用切换前的旧无障碍节点。历史记录没有真正进入微信视频页时,会自动退回聊天菜单路线。
每个能力只负责一件事,每进入一个新页面都会重新计算可用入口的剩余操作数:发现更短且未失败的安全入口就立即换线;某条路线失败时也可以从当前状态切换备用路线,不必盲目重放整条操作。通讯录仍会继续逐屏查找联系人,不会因为存在搜索路线就立即退出。
当前交付的是从银杏主动发起微信视频,不包含微信来电自动接听。
不同厂商、Android 版本和微信版本可能使用不同控件。银杏提供微信视频示教,让家属在本机人工完成一次流程,用来校准搜索、联系人、更多、音视频入口和视频确认等固定语义控件。
这不是让手机“记住用户点过哪里”,而是帮助现有语义能力适配当前设备上的控件差异。
微信自动化失败时,银杏会生成脱敏的结构化样本,记录:
用户同意上传后,样本会进入项目维护者使用的内部排障后台。该后台不是银杏的公开功能,也不向普通用户或公众开放。维护者可以在后台将相同指纹的失败自动聚类,按能力、页面、路线、失败原因和处理状态筛选,查看一次完整能力链,并把样本标记为待处理、已复现、已修复或已忽略。
因此,陌生机型上的失败可以沉淀为明确的适配任务,而不是继续堆新的固定坐标。
家属可以开启“通话结束返回首页”。它不是持续抢占前台,而是一次性的通话会话:
这让长辈打完电话后回到熟悉的首页,同时不影响手机的正常使用。
| 能力 | 已实现的细节 |
|---|---|
| 极简首页 | 时间、日期、农历、天气、电话、微信视频和家属选定应用集中展示 |
| 电话联系人 | 本地增删改查、系统通讯录导入、头像、列表/宫格布局、一键拨号 |
| 微信视频联系人 | 本地管理、搜索、置顶、头像、通话次数排序和一键主动拨打 |
| 应用内天气 | 天气详情、城市管理、当前位置、磁盘缓存;定位失败时保留原城市,不把老人丢到第三方页面 |
| 系统电话接听 | 默认电话角色、InCallService、联系人自动接听、可调倒计时和接听结果诊断 |
| 通话后回首页 | 系统电话与微信视频共用一次性返回会话,并识别用户主动离开 |
| 安全守护 | 可选跌倒检测、误报取消和呼叫家人;公开数据回放结果与真机效果分开说明 |
| 项目 | 状态 |
|---|---|
| 桌面、联系人、天气、家属设置 | 主流程已实现(含清理缓存、首页卡片大小、使用前检查、「新」角标、家属入口提示) |
| 微信视频主动拨打 | 能力树、语义识别、备用路线、示教校准和失败样本已接入,仍持续验证更多微信版本与机型 |
| 系统电话自动接听 | 软件链路已完成,仍需扩大真实 SIM 和厂商 ROM 验证 |
| 跌倒检测 | 实验性安全能力,公开数据离线回放不代表所有真机准确率 |
| 自动跳过开屏广告 | 实验性能力,默认保守策略,只点“跳过”、不点广告 |
| 微信来电自动接听 | 未发布(v2.5.0 打磨中,已撤回线上):曾单机型连续 6 通语音 / 视频验证通过,但真机反馈接通不稳;息屏 / 锁屏与多厂商 ROM 未验证 |
| 远程协助、云同步、账号体系 | 当前不在范围内 |
线上发布基线(v2.4.1,2026-10-24):单元测试 942 tests, 0 failed(174 个测试类);lintRelease 0 errors;Release 构建通过,APK 通过 v2 签名校验。v2.5.0(未发布)代码基线为 1112 tests, 0 failed, 0 skipped(192 个测试类,连续两轮),含微信来电自动接听、通话声音辅助、后台保活、反馈入口与版本特性页,因真机问题已撤回线上。
任何基于无障碍服务操作第三方应用的方案都会受到系统、微信版本和厂商 ROM 的影响。银杏的目标不是假装这些差异不存在,而是让流程能够识别状态、有限恢复,并在失败后留下可分析的证据。
当前源码版本:v2.3.0(本仓库源码公开至 v2.3.0);线上最新发布:v2.4.1(versionCode 23)
本仓库源码公开至
v2.3.0;v2.4.0起仅提供 APK,详见下方「许可与开源范围」。
系统要求:Android 7.0(API 24)及以上。
首次安装建议由家属完成:
环境要求:JDK 17+、Android SDK Platform 36,推荐使用 Android Studio。
# 单元测试(项目 testBuildType = deviceTest,任务名是 testDeviceTestUnitTest)
.\gradlew.bat :app:testDeviceTestUnitTest --no-parallel
# Debug APK
.\gradlew.bat :app:assembleDebug --no-parallel
# Lint
.\gradlew.bat :app:lintDebug --no-parallel
# Release APK
.\gradlew.bat :app:assembleRelease --no-parallel
build.bat 会把 JAVA_HOME 固定为 D:\Android\jbr;本机没有该路径时,直接设置自己的 JDK 再调 gradlew.bat 即可:
$env:JAVA_HOME = "<你的 JDK 17+ 路径>"
.\gradlew.bat :app:testDeviceTestUnitTest --no-parallel
Debug 输出目录:app/build/outputs/apk/debug/
yinxing/
├── app/
│ └── src/main/java/com/yinxing/launcher/
│ ├── feature/ # 首页、电话、视频、天气、设置、来电、跌倒、通话返回、首次配置
│ ├── data/ # 联系人、桌面、天气与设置数据
│ ├── automation/ # 微信示教与自动化领域模型、开屏广告跳过
│ ├── common/ # UI、日志、性能、权限、诊断等公共能力
│ └── (com.google.android.accessibility.selecttospeak) # 无障碍执行层
├── benchmark/ # Baseline Profile 与 Macrobenchmark
├── docs/ # 产品、架构、开发、隐私与发布文档
└── scripts/ # 文档与发布契约检查
微信无障碍执行层位于 com.google.android.accessibility.selecttospeak,业务入口、行为树、示教资料和诊断模型保持分层,避免把页面点击逻辑扩散到桌面业务中。
公开仓只保留对外读者需要的文档;内部工程、自动化规格、测试与发布流程资料不对外发布。
| 文档 | 内容 |
|---|---|
| 文档总览 | 公开文档索引与维护原则 |
| 当前功能状态 | 已发布能力、实验性边界与未交付范围 |
| 产品需求 | 产品定位、已发布范围与非功能要求 |
| 设计规范 | UI 唯一设计契约:色彩、字号、间距、组件与提示八式 |
| 产品原则 | 产品目标、原则与无障碍要求 |
| 首页兼容策略 | 默认桌面与厂商回退原则 |
| 许可说明 | 分版本许可与免费承诺 |
| 版本发布说明 | v2.4.1、v2.4.0、v2.3.0、v2.2.0、v2.1.1、v2.1.0、v2.0.0 |
银杏面对的不是一台标准 Android 手机,而是不同品牌、系统版本、权限策略、字体设置和微信版本。欢迎提交真实设备上的成功或失败结果,也欢迎改进代码、文档、无障碍体验与适老设计。
提交日志、截图或设备信息前,请隐藏联系人、账号和电话号码等个人信息。
v2.4.0 起,银杏不再公开新版本源码;v2.3.0 及以前的源码继续按 GPL-3.0 公开,可自由获取、使用和修改。
GPL-3.0-only)许可继续有效,已经获取的副本和权利不受任何影响。版权持有人有权许可的全部历史原创代码现同时按 GPL-3.0-only 提供;已经取得的旧许可证权利仍然有效。详见 LICENSING.md。
用代码,陪伴那些被时代遗忘的人。