我是通知滤盒的开发者,相信这个 App 在 V2EX 已经够有名了就不再给自己硬广了。
最近时不时收到用户反馈,通知滤盒里的部分通知内容变成了「已隐藏敏感通知内容」。 研究原来是 Android 15 开始 Google Protect 加了个所谓隐私防护措施,对可能含有 OTP 验证码的通知直接隐藏内容 https://www.theverge.com/2024/5/15/24157547/android-15-will-hide-one-time-passwords-in-notifications
这件事怎么看怎么透露一股草台班子的味道。
首先是实现方式:Google 采取的是硬编码替换字符串的实现,也即,第三方 App 收到的文本内容变成了「隐藏敏感通知内容」或 “Sensitive notification content hidden” 或其他语言。这给用户带来了极大的视觉误导,第一反应都以为是第三方服务隐藏的,而非系统所为。
同时,硬编码,而非增设某种 API 的方式,也极大地给开发者适配制造了麻烦,除了硬编码几十种语言的对应文案外,开发者没有正常的方法得知某条通知内容是否被隐藏。
然后,这直接颠覆性破坏了各类手环手表、通知历史、验证码提取类工具的使用场景。 https://www.reddit.com/r/android_beta/comments/1f9plr8/sensitive_notification_content_hidden/?rdt=58980 这样的 breaking change ,在 Google 的 Android 15 behavior change 里压根没有提及。
最后,这个功能不仅产品逻辑草台班子,程序实现同样也很草台。根据实机数据反馈,高德、抖音、微博,甚至小米商城的营销、推送都被识别为了含验证码的敏感内容。
我只能说那个啥都没你 Google 敏感。
1
yanqian 32 天前
没用过新版,所以用户也无法更改这个设置么?
|
2
osilinka 32 天前
中国不是有中国的特供版吗?
|
3
JJYYPPCC 32 天前 1
想起来 Android 的 DOH3 就是写死 CF 和 Google 服务器,有点异曲同工
感觉现在 Google 的好东西都争着上自家 Pixel ,对 AOSP 就有点不够意思了 |
4
243205964 32 天前
请问通知滤盒双十一会有优惠吗
|
5
little_cup OP |
6
bkmi 32 天前 via Android
看 Google 处理后台剪切板权限,就是一刀砍,完全不给开发余地,恶心人。
|
7
little_cup OP @bkmi 我的上上个 App 就是剪贴板的。
|
8
TrembleBeforeMe 32 天前
这下不如 iOS 了?至少给了通知权限都能提醒
|
9
seWindows 32 天前
谷歌应该是想办法后期好推广自己的,感觉 DIY 领域从 Android 2.1-4.0 需要 root 权限,到 Android 5.1-13 不再需要 root 权限也能实现大多数功能。到现在 Android 又需要 root 权限了
|
11
liliclinton 32 天前 4
按照谷歌的说明,这个机制只有在共享屏幕的状态下触发。
https://security.googleblog.com/2024/05/io-2024-whats-new-in-android-security.html ``` Automatically Hidden Notifications and One-time Passwords (OTPs): During screen sharing, private notification content will be hidden, preventing remote viewers from seeing details in a user's notifications. Apps that post OTPs in notifications will be automatically protected from remote viewers when you’re screen sharing, helping thwart attempts to steal sensitive data. ``` 试问如果全程都是隐藏验证码的话,用户自己要如何查看这个验证码呢? |
12
little_cup OP @liliclinton 然而包括我自己测试,在最新的正式版 Android 15 上,任何时候对 Notification Listener 拿到的通知内容都是经过了硬编码修改的。没有开启任何屏幕共享。
系统通知栏里是可以看见通知内容的,就像什么都没发生一样。 |
13
ekucn 31 天前 2
虽然我不是给楼主泼冷水,这些年我做开发来看,安卓或者 ios 开发工具类的 app ,是非常痛苦的事。
你功能做得好,系统直接抄过去,结果是原生的比你还管用, 你功能差难用,没人买单。 工具类 app 必然要搞奇淫巧计去实现,要兼容的太多太多。 要么就是在法律边缘系统不做的,留给你,比方李跳跳这种。 多年前我就开发过长截图的 app ,一度销量不错, 结果 Android 12 直接出个原生长截图,国产 ui 也上线这功能。 由于是底层实现的,比你开个 app 方便不知道哪去了 销量瞬间为 0 |
14
little_cup OP @ekucn 是的呀,维护兼容性问题好多年,就像堂吉诃德挑战风车一样。
|
15
liliclinton 31 天前
@ekucn 那不然呢,他会做故意不做给第三方留着赚钱的空间吗?如果真的担心点子被抢走建议申请专利呢
|
16
shangyu000 31 天前
我看 Reddit 贴主说重新他重新安装手表 APP 就正常了,通知滤盒不行吗?我手上只有 A14 ,没法测试
|
17
little_cup OP @shangyu000 我自己的手机上试不行。<del>悄悄怀疑他跳得厉害 Google 给他账号放了白名单</del>
|
18
ISOtropy 31 天前
有解决办法吗 我现在也被手表的 sensitive notification 烦死了
|
20
Xushet 30 天前 via Android
相信国产魔改 ui 会解决这个问题的,等适配吧
|
21
vsyf 30 天前
https://android.googlesource.com/platform/frameworks/base/+/refs/heads/main/services/core/java/com/android/server/notification/NotificationManagerService.java#11967
新增的 RECEIVE_SENSITIVE_NOTIFICATIONS 权限普通用户拿不到 @little_cup 下面好像还有一个洞,把自己做成匹配手表等设备的伴生应用也许可以. |
22
little_cup OP @vsyf
非常感谢! 后面那个法子即使可以也应该过不了 Play 审核。不过看了代码,授予 appops 确实可行,至少我自己能用了… @ISOtropy @yanqian 执行这条 adb 命令,然后重启可以解除 appops set com.catchingnow.np RECEIVE_SENSITIVE_NOTIFICATIONS allow 如果要跑在手表上的话 com.catchingnow.np 换成你用的手表 app 的包名 |