他们知道你手机上的全部应用程序
直到几年前,您在安卓设备上安装的任何应用程序都可以在未经您允许的情况下查看您手机上的所有其他应用程序。
从 2022 年的 Android 11 开始,谷歌取消了应用程序开发者的这一权限。根据新的软件包可见性政策,应用程序只能在对其核心功能至关重要的情况下才能看到其他已安装的应用程序。开发者还必须在 AndroidManifest.xml 文件中明确声明这些应用程序,这是所有 Android 应用程序的必备配置文件。
对于文件管理器、浏览器或杀毒软件等极其特殊的用例,谷歌允许 QUERY_ALL_PACKAGES 权限,从而提供了对已安装应用的完全可见性。
我的主要手机不是安卓系统,但我有一部备用手机,我很想知道印度公司的哪些应用程序会检查我安装的其他应用程序。
于是,我下载了几十个我能想到的印度应用程序,并开始阅读它们的清单文件。他们肯定会尊重我的隐私,只查询对其应用程序核心功能至关重要的应用程序吧?🙃
值得承认的是,应用程序检查手机上安装了哪些其他应用程序有一些合理的理由。例如,应用程序可能会检查安装了哪些 UPI 应用程序,以显示相关的支付选项。我检查的大多数清单文件都包含对这些应用程序的检查。有些应用程序还检查了应用程序克隆或多账户应用程序,这可能是为了安全和欺诈检测。这些都是可以接受的用例。
但有几家印度公司在这些检查方面做得更多。让我们从 Swiggy 开始。它的清单文件中列出了 154 个软件包名称,让它可以查询我手机上的这些应用程序。以下是完整列表:
我都不知道该从何说起。知道我的手机上安装的是 Xbox 还是 Playstation 应用程序对 Swiggy 的核心功能有什么重要意义?知道我是否安装了 Naukri 或 Upstox 应用程序对他们送货上门有什么帮助?
该列表中的应用程序种类繁多,强烈暗示 Swiggy 正在收集已安装应用程序的数据,用于用户分析和建立客户行为档案。这似乎违反了 Play Store 的政策,因为该政策认为已安装应用程序的列表是个人敏感用户数据。
这让我想起了 Blume Ventures 的那份 ppt–居住在班加罗尔某些邮政编码下的蓝勾 twitter 账户每年都会热烈讨论一周的那份 ppt。它有一张关于不同印度人使用的应用程序的有趣幻灯片:
Swiggy 可以在你的手机上查询大部分这些应用程序,甚至更多。它不仅知道你属于哪个印度,还能准确定位你在其中的位置。
现在让我们来谈谈另一款应用程序,它就是惯常的 “嫌疑犯”,无可争议的 “混蛋设计冠军”–Zepto。他们列出了 165 个要在设备上检查的应用程序。
从 Netflix 到 Bumble 再到 Binance,这份名单几乎囊括了所有类别的热门应用。最近有报道称,Zepto 为 iOS 和 Android 用户显示了不同的价格。在这些数据的帮助下,他们还可以针对不同的安卓手机显示不同的价格,一些用户已经看到了这一点。
尽管 Swiggy 和 Zepto 必须在清单文件中声明要查询这些应用程序,但作为用户,当你从 Play Store 下载它们的应用程序时,却无法看到这份清单。
我还分析了 Swiggy 和 Zepto 外卖骑手的应用程序。它们的应用程序查询列表与消费者应用程序不同。这两款应用都包括检查外卖骑手还为哪些公司工作。下面是 Zepto 的列表:
但 Swiggy 更进一步,它还会检查外卖骑手手机上的个人贷款应用程序、个人理财应用程序,甚至是 Ludo King 或 Carrom Pool 等应用程序。
难道我们就不能安安静静地玩鲁多游戏而不被雇主监视吗?就连停机时间也需要被 Swiggy 跟踪吗?令人尴尬的是,Swiggy 认为有必要在外卖骑手的手机上加入这些荒谬的应用程序查询。
说到印度的个人贷款应用程序,它们的掠夺性做法有据可查。几年前,印度对此类应用进行了大规模打击,导致数千款此类应用从 Play Store 上架。我查看了一些仍然存在的应用程序。
Kreditbee 被列为 Play Store 个人贷款领域的顶级应用之一,下载量超过 5000 万。你能相信他们的应用程序会检查你手机上是否安装了 860 个应用程序吗?860!!! 很抱歉,您可能需要眯着眼睛或放大一点才能看到这个列表。
我只是略微浏览了一下这份清单–应用程序实在是太多了。我希望看到这篇文章的人能做个透彻的分析。可能是因为我生活在泡沫中,我甚至都没听说过这些应用程序中的大多数。尽管它们中的大多数都有数千万的下载量。
除了常规类别外,我还看到了泰米尔日历、奥迪亚日历、Qibla 方向查找器、曼蒂尔应用程序、占星术应用程序等应用程序的检查。他们知道自己在做什么。
还有 “Jodii for Diploma, +2,10 below”,这是一款为高中未毕业的人设计的婚恋应用程序。它的下载量已超过 1000 万次。
还有 “गाय भैंस खरीदें बेचें Animall”(奶牛买卖市场?
这份应用程序清单是了解印度大部分人如何使用手机–他们的日常生活、习惯和优先事项–的一个窗口。
另一款下载量超过 5000 万次的领先个人贷款应用程序 Moneyview 在其清单文件中包含了对 944 款应用程序的检查,这在我检查的所有应用程序中是最高的。我没有将其列入本文章,您可以在这里阅读完整列表。
我很惊讶 KreditBee 和 Moneyview 应用程序能通过 Play Store 的审核。Play Store 政策明确限制个人贷款应用程序使用 QUERY_ALL_PACKAGES 权限。但这些应用程序绕过了这一限制,而是在清单文件中单独列出了它们想要检测的每款应用程序。
我发现只有一个清单文件具有高风险和敏感的 QUERY_ALL_PACKAGES 权限,它就是 Cred。如果应用程序有 “可验证的核心目的是促进涉及金融监管工具的金融交易”,Play Store 会给予 “临时例外”,允许包含此权限。
但我分析过的与 Cred 处于同一细分市场的其他应用程序(如 PhonePe 或 PayTM)的清单文件中都没有这项权限。事实上,Cred 还提供个人贷款,而根据 Play Store 的个人贷款政策,它不符合这一例外规定。我不知道 Cred 是如何被允许保留这一权限的,因为它可以在不披露任何信息的情况下查看您手机上的所有应用程序。
我阅读了大约 50 个印度公司流行应用程序的清单文件。除了 Swiggy、Zepto、Cred 和几款个人贷款应用外,大多数应用的查询列表都相当合理,也很受尊重。
看来我的预期更糟。也许我对这些应用程序太愤世嫉俗了–它们真的是好人吗?🙃
在我准备结束这项工作时,我在浏览其中一个应用程序的清单文件时注意到了几行有趣的内容:
<queries>
[...]
<intent>
<action android:name="android.intent.action.MAIN" />
</intent>
[...]
</queries>
我不是 Android 开发方面的专家,但据我所知,上述配置中的 “ACTION_MAIN ”过滤器允许查看所有已安装的应用程序,简单地说,就是有屏幕的应用程序。
由于大多数已安装的应用程序都在前台运行,并且有用户界面,因此该过滤器允许开发人员查看手机上的所有应用程序,而不需要 QUERY_ALL_PACKAGES 权限!
为了确保万无一失,我编写了一个基本的 Android 应用程序,并在清单文件中添加了相同的 “ACTION_MAIN ”过滤器。当我查询已安装的软件包时,不出所料,这个小黑客竟然返回了我手机上所有应用程序的列表!!!这似乎是一个巨大的隐私漏洞!
这似乎是安卓系统中一个巨大的隐私漏洞。Play Store 肯定会拒绝使用这种黑客的应用程序,因为这公然违反了他们商店的用户数据政策。
在我随机分析的 47 个印度应用程序中,有 31 个使用了 “ACTION_MAIN ”过滤器–让他们可以在不透露任何信息的情况下查看你手机上的所有应用程序。也就是说,每 3 个应用程序中就有 2 个。
使用这种黑客手段的应用程序:
Astrotalk、Axis Mobile、Bajaj Finserv、BookMyShow、Cars24、Cure. fit、Fibe、Groww、Housing、Instamart、Ixigo、JioHotstar、KreditBee、KukuTV、LazyPay、Ludo King、Meesho、MoneyTap、Moneyview、Navi、NoBroker、Nykaa、Ola、PhonePe、PhysicsWallah、Slice、Spinny、Swiggy、Swiggy Delivery、Tata Neu 和 Zomato。
不使用此黑客的应用程序:
Airtel Thanks、Blinkit、Byju’s、MyGate、Dream11、Flipkart、HDFC Mobile、Healthify、INDmoney、MyJio、Paytm、PaisaBazaar、ShareChat、Unacademy、Vedantu、Zepto
甚至连该死的 Ludo King 也在其清单文件中加入了这一功能。因此,大多数印度公司实际上都能看到你手机上的所有应用程序–只是他们比 Swiggy 和 Zepto 等公司做得更隐蔽罢了。好人也不过如此。
事实上,Swiggy 也配置了这种过滤器,但它仍然选择明确列出它所查询的应用程序,而它本可以像其他公司一样悄悄地闭门进行查询。但我并不抱怨。他们的这一疏忽让我们看到了 Swiggy 的数据收集行为。如果谷歌能正确执行这一政策,我们或许也能对其他公司有类似的了解。
我阅读的所有清单文件都在我的 Github 中。大多数文件都是在 3 月 18 日或 19 日下载的。
印度公司的应用程序并非只使用了这种黑客手段。我检查了其他一些流行应用程序的清单文件。Facebook、Instagram、Snapchat、Subway Surfers 和 Truecaller 都有这种配置。而亚马逊、Spotify、X、Discord 和 WhatsApp 则没有。除了这些,我没有进一步调查。
这让我不禁要问,谷歌软件包可见性政策的初衷是什么?它本应保护用户,但大多数应用程序似乎都找到了绕过它的方法。
而安装的应用程序数据是非常敏感和个人的。2022 年,Vice 报道称,就在 “罗伊诉韦德案”(美国联邦政府保护堕胎权)可能被推翻的消息传出后,一个名为 “叙述”(Narrative)的数据市场正在出售下载了经期跟踪应用程序的用户数据。想一想都觉得可怕。
安装的应用程序数据只是一个数据点。每一个应用程序都在其清单文件中包含了大量的权限,这些权限往往远远超出了必要的范围,这是另一个可以让别人打开的漏洞。
最后,我将以 Zepto 的一个小例子来结束这篇文章。他们要求获得 READ_SMS 权限。你可以拒绝,但如果你注册了 Zepto Postpaid,这是必须的。
当您授予权限时,他们会在您的收件箱中检查发件人 ID 列表:
其中大部分是银行的 TRAI 发件人 ID。他们读取这些信息很可能是为了检查邮政付费计划的资格。即使您从未选择过,他们也能读取这些信息。再看看他们是如何从 Blinkit、Swiggy、Bigbasket、Flipkart 等公司偷偷植入短信的。
他们的竞争对手可能也在做同样的事情,只是没有在应用程序本身留下如此明显的证据痕迹。
问题的关键在于,当任何应用程序获得类似 READ_SMS 这样的权限时,作为用户,我们根本无法知道它在什么时候访问了什么内容。
请记住,当你下次随意在安卓设备上安装一个应用程序时,这些信息就会被传播到全世界。数据经纪人会利用这些信息对你进行分析,并与其他广告网络中关于你的数据进行交叉引用,最终决定你下次点餐时需要支付多少钱。
本文文字及图片出自 Everyone knows all the apps on your phone
你也许感兴趣的:
- 记一次服务器被入侵的调查取证
- 谷歌扶持鸿蒙上位?
- 【外评】安卓系统的 RISC-V 支持遭遇重大挫折
- 把Android手机变成电脑摄像头,开发者倒苦水:40行代码搞定,但需要40个项目文件支持!
- 微软将把Android 13带到Windows 11上
- 在谷歌刚发布的安卓13里,我又找到了华为的技术。。。
- 为啥小米开发者提交了两行代码 就被网友喷了?
- 小米提议禁止安卓手机提取 APK 文件,遭谷歌驳回
- 最新一代安卓系统来了!安卓12新特性详细解析
- 谷歌正式发布Android 12:可谁又在乎呢?
ACTION_MAIN 漏洞之前已经写过:https://commonsware.com/blog/2020/04/05/android-r-package-vi…
谷歌拒绝对此进行修补。我想知道,如果把它作为权限旁路提交给 Android VDP,会发生什么情况。
作者还提出了关于绕过权限的 SO 问题:https://stackoverflow.com/q/79527331
如果要求声明 ACTION_MAIN 的应用程序必须是真正的启动程序,那么 ACTION_MAIN 漏洞似乎可以得到修复(最终)。合法的集成似乎应该有更具体的意图。
在这一点上,Android 提示你刚刚下载的随机游戏是否应该成为你的默认启动器,对于偷偷摸摸的应用程序来说似乎是非常危险的交互行为。它们要么会导致用户跳出并报告,要么就会被傻瓜们选为默认启动器,取代他们的启动器,无法提供启动器功能并破坏用户的主屏幕,最终被 Play Store 报告。我还认为,届时真正作为启动器级应用发布会带来自动化测试套件和其他要求,这将成为开发者的负担。
> 谷歌拒绝对此进行修补。
这就是为什么像 XPL-Extended(以及之前的 XPrivacyLua)这样的项目是绝对需要的。我的安卓手机从来都离不开它们。
> 如果说信息安全社区始终未能实现一个飞跃的话,那就是:与我不同、有不同需求和优先事项、时间较少或技术水平较低的人仍然应该享有隐私和安全。
https://hachyderm.io/@evacide/114184706291051769
XPrivactLua 和其他 XposedMod/Magisk 扩展程序会破坏应用程序沙盒。最好限制在 usereng/eng 构建(测试设备)上运行这些扩展。对于产品构建(用户设备),我建议使用工作配置文件(GrapheneOS 支持多达 31 个并行配置文件)或私人空间(Android 15 以上版本)来真正实现应用程序之间的隔离。
问题是:谁是应用程序沙盒的受益者?是你,用户,因为没有恶意程序可以窃取你的应用程序?还是企业,因为他们阻止你修改他们的应用程序–这让你成为一个纯粹的消费者?
我认为,对于精通技术的人来说,后者更为准确,而且我认为能够打开这些沙盒并对程序进行修改是非常重要的。无论是注入广告拦截器、使其自动化、修改其外观等等。能够做这些事情应该是用户的一项权利。
我,用户。
恶意应用程序总是偷偷通过审核流程。
真正的、诚实的应用程序不得不一直处理不安全的内容(无论是网页还是消息)。
一个漏洞最多只能使单个应用程序受到攻击,而不能暴露我手机中的所有内容。
强大的限制性沙盒、内存和执行保护是唯一安全的方法。
破坏沙盒与消费者拥有更多权利有什么关系?比如说,你还能像幸运补丁程序那样对广告进行修补和重新打包吗?
> 我认为,对于精通技术的人来说,后者更准确,而且我认为能够破解这些沙盒并修补程序是非常重要的
任何精通技术的人如果想要修改他们的安卓系统(就像修改 Linux 发行版一样),应该考虑购买支持所有权转移(即解锁然后重新锁定引导加载器)的安卓设备(如 Pixel),并闪存 CalyxOS/GrapheneOS usereng/eng builds。
迫不及待地等待应用列表范围,就像我们已经有的通讯录或存储空间一样。一天都不嫌早。
几个月来,我在英国所有银行的账户都会向母机发送所有应用程序的列表。
我最先注意到的是,Revolut 突然因为我安装了一个应用程序而拒绝启动,Natwest 和 Nationwide 至少在数据收集之前通知了我,但我并没有在意。
最后,所有银行应用程序都被限制在它们的专用配置文件中,但我很希望能进一步限制它们。
你提到了 NatWest。我记得在使用 NatWest 时注意到 NoRoot 防火墙(在我的 Android 上)定期与 Facebook “对话”。当然,我从一开始就屏蔽了所有 FB 和 IG 及其 IP 范围,但仍然如此。为什么(TF!!!!)我的手机会告诉 FB 我启动了他们的应用程序?(可以说他们使用了这个或那个库,所以代码,等等等等)
,这太恶心了,也是我不使用 iOS 的原因。完全没有防火墙!(再加上电池门丑闻)
你说的 “打破应用沙盒 “是什么意思?
我发现这段关于 rooting 安全风险的描述令人大开眼界 https://madaidans-insecurities.github.io/android.html 它还解释了沙盒。
正如 dataflow 所说,该网站是有目的的。我从安卓 v4 开始就一直使用 root 手机,没有遇到过任何问题。此外,我认为我从手机中清除的许多垃圾都降低了攻击风险,这在一定程度上抵消了 root 的风险。
当然,我并不是建议每个人都root自己的手机,事实上,近年来我甚至不再建议我那些精通技术的朋友root手机了(除非他们向我寻求建议)。
我不需要对这些事情说教,但所有root过手机的人都知道它的巨大优势–对手机的控制力和控制权是巨大的。
例如,有些应用程序包含很多跟踪器,通常情况下,你根本不会使用它们,除非它们是唯一适合你使用的应用程序。Root 允许用户进行控制,让它们做你想做的事,而不是开发者想做的事。
是的,Root 有风险,但对我来说,它的好处远远大于风险。
这个链接似乎有……目的。它太手忙脚乱了(例如,它根本没有试图弄清楚,root 手机在设计上是否本质上就存在安全边界被破坏的细微差别,或者[就像在 Linux 上一样],只要实现过程没有漏洞就是安全的),而且似乎专注于说服那些渴望对自己的设备拥有主权的用户,让他们不如跳崖算了。
马戴丹的文章以 “不惜一切代价保证安全 “为中心,而且往往以用户自由为代价,这是众所周知的。在隐私问题上,这种观点并不现实。如果绝对的安全只是确保设备不被你 “篡改”,那又有什么用呢?当然,如果设备具有很高的安全性就更好了,但我宁愿它先停止间谍活动。
有了绝对安全,你就可以放心,只有谷歌才能访问你的所有数据,也只有谷歌才能关闭虹吸功能。
Android 团队最近(2023 年)的沙箱+隔离概述:https://arxiv.org/html/1904.05572v3/(第 4.3 节)
> Android 的安全设计从根本上说是基于多方授权模型的:只有在所有相关方都授权的情况下,才能进行操作。
> 其中包括用户、平台和开发者(隐含地代表内容生产商和服务提供商等利益相关方)。任何一方都可以否决该操作。
这怎么不是反用户呢?它明确指出,应用程序开发者应该能够否决我的决定…
我使用的是 Android 14,我对 F-Droid 上一款名为 Insular 或 Play Store 上一款名为 Island 的应用程序非常满意。它可以让你随心所欲地安装多个应用实例,这些实例会显示在工作配置文件中,对其他应用的存在视而不见。
这是工作配置文件的前端功能。
不建议再运行 insular。请使用 Shelter for a14
谢谢你的链接,自从引入软件包可见性限制后,似乎漏洞就已经存在了,几乎每个人和他们的母亲都知道如何绕过这一限制。
> Google 拒绝修补这个漏洞
虽然我不相信 Google 工程师不知道这个被广泛使用的漏洞,但您是否有任何消息来源表明他们拒绝修补这个漏洞?
这个漏洞是 5 年前公布的,至今没有修复。
你是否需要谷歌的某个人明确写一份官方说明,经过公证,表明他们拒绝修复这个漏洞?
> 拒绝修复
谷歌通过 “私人空间 ”和 “工作档案 ”解决了类似的隔离问题(没有以不兼容的方式破坏大量 API):https://source.android.com/docs/security/features/private-sp…
如果是安全问题修复,他们应该在每月的安全补丁中发布。
我还认为,私人空间并不能解决根本问题。如果你有四个应用程序,但不想让它们互相知道,你可以把其中一个放在主配置文件、工作配置文件和应用程序锁中,最后一个的配置文件就用完了。应用锁的工作方式无法扩展到数十个沙盒。
我知道你并没有要求这样的答案,但你可以使用用户配置文件来实现这一点。
你也可以在 “标准 ”AOSP Android 系统上拥有更多用户,但如果使用某种 AOSP 衍生系统,还可以实现通知转发。
在他们添加应用列表范围(我相信已经在路线图上了)之前,用户现在可以以完全相同的方式向应用程序撒谎,他们在联系人列表中只有特定的联系人,在存储空间中只有一两个特定的文件夹。
他们不断发布过于复杂的功能来回避明显的报告漏洞,以让高级用户保持沉默并取悦公司企业系统管理员。
其余 99.9% 的用户仍在使用该漏洞,而这对广告网络来说是非常有利可图的。不知道为什么维护安卓系统的广告网络会这么做。
把它提交给 Android VDP 是个可靠的主意,不过如果它被当作 “按计划运行 “而被放弃,我也不会感到惊讶。
正确的(”按计划”,在我看来)功能应该是支持一个清单,比如说五个应用程序,如果作为开发人员你想要更多,你可以向谷歌申请例外(就像 aws 限制增加一样),并列出每个应用程序的理由。
我知道人们可能不记得这一点,但 Android 设计之初就考虑到了互操作性。看到系统开发和社区舆论都如此强烈地反对这一点,我感到很难过。
“拒绝打补丁 “是什么意思?谷歌会拒绝任何要求使用该过滤器且不是 Play 商店启动器的应用发布尝试。
这与文章中所说的在他们测试的 47 个应用程序中,有 31 个使用了该过滤器有什么一致性?
不知道,但确实有应用程序因为类似权限而被拒绝。
“类似”。那么你说的不是真的?
作者称,这种相同的黑客手段被广泛使用,包括 Snapchat 和 Facebook 等 Play Store 上的应用。
汇丰银行(HSBC)的银行应用程序就使用了这种方法,而且就在 Play Store 中。
我始终无法理解原生 “应用程序 “的必要性。时至今日,我从未见过一个 “应用程序 ”不能简单地成为一个网站/网络应用程序。大多数 “应用程序 ”都有可能通过网络应用程序得到改进。
在我看来,“应用程序 ”的唯一好处就是开发者可以获取他们并不需要的私人信息。
是的,他们可以上 “应用商店”。但 “应用商店 ”是苹果/谷歌推出的一个完全没有必要的概念,这样他们就可以攫取巨大的销售利润。
网络浏览器拥有良好的(并非完美的)沙箱功能,“提交 ”无需任何费用,而且每个人都可以在每部手机上访问。
简单,用户体验。
现实情况是,大多数移动网络应用都很糟糕。用户体验远不及本地应用程序。我不希望任何文本都是可选择的。我不想每页都刷新。我不想左滑就能跳转到上一页。
你也许可以找到解决所有这些问题的方法。新的 Silk 库(https://silkhq.co/)是我看到的第一个非常接近原生体验的案例。不过,即使这是一个付费库,也说明了问题的严重性。
>我不希望任何文本都是可选择的。我不希望每页都刷新。我不希望左滑时跳转到上一页。
真奇怪。无法选择任何文本一直是开发人员最不友好的做法之一。感觉就像纯粹的破坏行为。
另一个导致工作效率大打折扣的原因是无法打开多个页面,这样你就可以回到某个状态。我无法想象怎么会有人用这些应用来认真工作。
几乎所有原生移动应用程序的用户体验都非常糟糕。但并不是因为它们的原生性,它们才是垃圾。我并不是在抱怨操作系统提供非便携但高性能的用户界面基元,这些基元利用了操作系统的设施。
许多原生桌面应用程序并不存在这些用户体验问题(至少不会同时存在所有这些问题)。是移动用户体验模式、惯例和原生用户界面框架造成了这种灾难性的局面。
当你正在学习一门语言,只想翻译某些部分时,无法选择文本就是一个麻烦。在本地应用程序中可以理解(应用程序制造商才不管我的死活),但在网站中就像打了一记耳光:)
是啊,一次只打开一个页面的应用程序模式就是如此糟糕的用户体验。与网络相比,这是巨大的倒退。有趣的是,在 Reddit 这样的应用上,你可以通过在网页浏览器中打开页面来解决这个问题。
每当我试图在 WhatsApp 消息中选择一个单词时,我都会惊讶一秒钟。奇怪的是,大多数以文字为基本内容的应用程序都不允许你这样做。
在现代手机和桌面操作系统上,你可以随时将屏幕上的这部分内容复制到剪贴板上,它会识别文字,这样你就可以将它粘贴到任何地方了。
我注意到,应用程序可以分辨出你在截屏,而且通常会先跳出一条小信息,然后出现在截图中。
iOS 上的 Reddit 就是这么做的。
此外,如果我没记错的话,原生 MacOS 应用程序默认支持选择大部分不属于按钮等可点击元素的文本。
公平地说,浏览器应用程序确实有其优势:
– 文本是可选择的
– 内容是可缩放的
– 可以屏蔽广告/骚扰
– 页面源是开放的
而本地应用程序也有自己的优势:
– 更流畅的体验,尤其是导航、滚动、动画等方面
– 更好的整体性能(JavaScript 总是会输给原生二进制程序)
– 硬件接入带来了新的可能性;音频、视频加速器等;有很多在浏览器中无法实现的功能,例如音频
– 小工具,其中有些也很好很有用
– 对于发行商来说:主屏幕上的应用程序图标是一种提醒,一种 “钩子”;这也是他们力推应用程序而非网页版的主要原因
> 浏览器应用程序确实有其优势:
这些优势更像是网络应用程序栈的副产品,并不适合现代用户界面应用程序。它实际上是一个文本排版引擎,假装是高性能用户界面的渲染引擎。
因此,它也可以被理解为
– 所有内容都可以选择,甚至是不应该选择的内容(按钮、抽屉、视频播放器等)。开发人员不得不做额外的工作,要么禁用缩放功能,要么做黑客/变通。
如果是博客文章,“所有内容都可选择 ”和 “所有内容都可缩放 ”是完全合理的。但如果是现代应用程序的用户界面,就说不通了。
禁用缩放功能太不友好了,为什么不在禁用屏幕阅读器的同时在残疾人坡道上安装护柱呢?这简直是对老年人和有视力问题的人竖中指。如果你们禁用缩放功能,我将不再使用你们的网站。
幸运的是,大多数流行的操作系统都有可以调整的全局文字大小的概念,而非网络用户界面框架也尊重这一点。
> 这简直就是一个文本排版引擎,假装是高性能用户界面的渲染引擎
这是一种过时的网络观点。要么赶上,要么落后。
这是事实观点。不管你在上面加了多少层抽象,基础始终存在。幸运的是,我们的浏览器对wasm的支持越来越好,因此这种过时的堆栈迟早会被从头开始设计的解决方案所取代。
+ 工作通知–虽然广告拦截器对出版商来说是个减分项
但主要还是不要指望在移动端有什么好的网络应用集成,因为这会对商店征收 30% 的税。
开发良好的 PWA 也可以实现您提到的所有功能。当然,除去小部件或一些更深层次的系统集成(如控制电话呼叫等),
尝试在浏览器中构建一个或多或少不会耗尽电池的严肃音乐合成器。
嘿,其实我正在做一个。还没考虑过电池的问题… 是网络音频应用程序接口不好,还是你不得不使用 CPU?我想使用 webgpu 可能更容易一些?
我认为在 iOS 上,如果想提高效率,就需要访问 CoreAudio 级别,即在高优先级线程上使用一些低级静态语言填充音频缓冲区。
作为用户,我通常希望所有这些功能都能正常工作。我经常会因为无法像在浏览器中那样复制粘贴,或者因为试图使用后退按钮而导致应用程序关闭(并丢失所有状态)而对应用程序大为不满。我还遇到过应用程序直接重置的情况,因为我想复制粘贴一些东西到另一个应用程序中,所以才敢切换到另一个应用程序……
> 我不希望任何文本都是可选择的
禁用文本选择不仅是更糟糕的用户体验,更是对用户的主动敌视
在 Photoshop 面板中,标题(如 “图层”)是不可选择的。这是更糟糕的用户体验还是对用户的敌意?
在桌面上情况更糟。在手机上,当你想做其他事情时,它会导致意外选择。
我从未需要在用户体验元素中选择文本。
过去,我偶尔会在信息框对话框中看到一条错误信息,想要复制并粘贴。然后我发现,尽管看起来无法选择,但实际上是可以选择的。
我可不想不小心选中菜单栏、文本框标签或对话框选项卡标题的文本。
我,我,我,移情是一个弱点。
有很多限制让你无法不小心做某事,也许有办法既能不小心做这些事,又能帮助需要帮助的人。
不,没有提供具体的例子就是弱点。
如果你想把这个问题个人化,那么你对我的同理心做出判断就太傲慢了……。
或者你可以解释一下,为什么人们首先需要选择菜单标签?这在我使用过的任何操作系统上都不是标准配置,所以想要改变现状的人应该说明理由。
在 HN 上,也许你可以少对别人评头论足,而是提供一些事实性的东西?我至少实事求是地讲述了我的个人经历,这是一个数据点。描述自己的经历并不是利己主义。
一个简单而具体的例子是,去日本,发现自己需要使用任何日语专用的应用程序,但却连选择文本进行翻译都做不到,这让人非常沮丧。
至少在最近的安卓版本中,当你在切换应用程序视图时,可以通过 OCR(?
大多数移动应用程序也很糟糕。很多应用程序之所以糟糕,是因为它们不在网页浏览器中运行,例如 YouTube 或 Reddit 或类似的通过 urls 运行的应用程序。
浏览器是极少数能在手机上运行良好的应用程序。其他大多数应用程序都感觉一团糟(游戏除外吧)。
“拉动刷新 “可能是最烦人的一个。
除此之外,我还希望文本可以选择!我不喜欢应用程序不允许复制文本。
我使用 “复制”[1],如果复制不起作用,我就使用 Pixel 手机上的 OCR 文字选择功能。
[1] https://play.google.com/store/apps/details?id=com.weberdo.ap…
嗯,如果你使用的是 Angular 这样的框架,并带有 pwa 和触摸控制插件,那么你列举的例子其实非常容易实现。如果你真的想的话,还可以用 tailwind 来实现 css/禁用选择,但我认为这在几乎所有情况下都是反功能。
理论上是这样。但在实践中却不尽然。
我的手机上已经有足够多的浏览器应用程序尝试过了。通常情况下,由于框架膨胀,它们会开始滞后,速度慢得让人难以忍受,而原生应用则没有这些问题。
你不得不怀疑制作浏览器的公司的动机,因为他们不可能禁用其中的某些功能,因此使得真正的应用程序变得如此优越(比如在 Safari 上滑动返回 – 在超过 100000 次的滑动返回中,我从未故意滑动返回)。
“在我敲击键盘上的’e’键的十万次中,我从未想过要输入字母’e’;我总觉得键盘上为什么会有一个无法禁用的’e’键,这让我很怀疑。”这位再正常不过的黑客新闻评论员说道。
> 在超过 100000 次的回扫操作中,我从来没有故意回扫过
这里真正的问题是,当你 “回扫 “时,你想做什么?
触摸左侧的东西,比如一个链接,让手指接触玻璃的时间稍微有点长,同时把手指往回拉。在各个方向上,我经常会遇到不想要的轻扫操作–但愿开发人员永远使用触摸屏来处理所有事情!
交友应用程序。
出于本能,我会像在 Safari 中一样向后轻扫,而这在这些应用中会起到其他作用。
向上滑动
真有趣,我用亚马逊手机网页版,我妻子却坚持用应用程序。
猜猜看,由于功能和不断变化的布局,我们俩谁的问题更多一些?
用户体验就是减少功能–明白了。
关于用户体验的论点:我一直认为,原生应用程序通常倾向于有状态设计,而网络应用程序则尝试无状态设计。也许这样说太抽象(读作–不正确),但我的直觉就是这样。
但这并不妨碍在网页中使用相同的用户界面。
Iconic 反映了其中的很多内容,但苹果/谷歌完全可以让它们成为在浏览器中触发的本地组件
这不是反对意见。二十年来网络应用的进步而不是原生应用的进步本来可以(现在也可以)解决所有这些问题。
这听起来不像是 PWA(与 Websockets 等同步机制搭配)无法解决的问题。有了 WebAssembly,这种融合就更有说服力了。
网络应用程序的用户界面之所以糟糕,是因为没人关心它们。它们可以做得更好。
这是一个奇怪的观点。你的意思是笔记本电脑上没有理由安装本地应用程序吗?因为这本质上是同一个问题。原生应用程序能做的很多事情,浏览器都做不好,或者根本做不好。我不知道你的需求是什么,但举例来说,如果你要进行大量的视频或音频编辑,访问大量内存或利用 GPU 计算,或在裸硬件上做其他事情,那么在浏览器上做这些事情肯定是不可能的。
> 我仍然无法理解本地 “应用程序 ”的必要性。时至今日,我还从未见过一个 “应用程序 ”不是简单的网站/网络应用程序。
如果 iOS 上同时存在原生应用程序和网络应用程序,那么电池使用量和运行速度往往会有很大差别。此外,正如一位兄弟姐妹发帖提到的,我也喜欢完全 “离线 ”的应用程序,例如地图和便签。
我并不是说我喜欢苹果和谷歌在实践中的做法,但我不认为只使用网络应用程序是未来的趋势。同样,在可预见的未来,我也不会用 Chromebook 取代我的电脑。
iPhone 问世时,你可以在 PC 上使用 Google Gears 完全离线访问 Gmail 和 google docs。
谷歌齿轮已经过时了,因为有些东西转而使用标准 HTMl 和浏览器功能,现在我们已经没有任何离线网络应用程序了。
拥有不迟缓的离线网络应用程序的能力已经存在了几十年,但提供商的兴趣一直在下降,消费者对这种可能性的理解也在下降。
> 在 iOS 上同时提供原生应用程序和网络应用程序的情况下,电池使用量和迟缓程度往往会有巨大差异。
是啊,就像我在 Safari 中访问多个网站时,单个原生 instagram 的耗电速度比多个网站的耗电速度快。
> 同样,在可预见的未来,我也不会用 Chromebook 取代我的电脑。
> 真正的电脑
大部分现代应用程序都是网页封装程序或 Electron 应用程序。
我仍然对苹果公司放弃在应用程序中使用网络技术的立场耿耿于怀。大多数糟糕的应用程序之所以糟糕,是因为它们只是对网站进行了包装。
> 大部分现代应用程序都是网页封装程序或电子应用程序。
只有当你被困在像 Linux 这样的贬值平台上时才会这样。如果你使用的是 Mac,那么本地应用程序(真正的应用程序)比 Linux 上的任何网页封装程序都要强大和实用得多。
我注意到,Linux 用户已经习惯于在其他平台上提出他们通过浏览器使用电脑的残缺方式。但在其他平台上,我们已经被优质软件宠坏了。
本地应用程序在 Linux 上也要好得多。但仅限于有原生应用程序的地方。有很多 “应用程序 ”的开发者通过使用 Electron 来获得 “Linux 支持”,从而走了捷径。这些应用程序的性能明显较差,用户普遍不喜欢。
优秀的 Mac 原生应用程序也在减少。
你错过了什么?
昨晚我还在感叹 Blender 缺乏原生 UI。
过去几年,我一直在使用 Nova。非 Xcode 原生开发工具似乎越来越少。我有 BBEdit 和 Nova,但似乎很多人都改用了 VS Code。
PWA 可以完全离线。你确定你理解你所批评的内容吗?
您尝试过为大型用户群构建 PWA 吗?
以下是我在使用 PWA 时遇到的一些挫折。
在存储、访问本地文件和大小限制方面,浏览器和 Android/iOS 之间存在巨大差异。使用 IndexedDB、Cache API 或 localStorage 对大型文件进行适当的备份/同步并不像本地存储那样简单。
服务工作者并不是为复杂或长时间运行的计算而设计的,它们更像是轻量级的助手,如果需要可预测的后台同步/备份,要适应所有不同浏览器/操作系统的限制将是一件非常痛苦的事情。不过,由于 Ionic/Capacitor 或 Workbox.js 等框架的出现,这种情况也许会得到改善。
PWA 受限于网络的安全模型,这意味着它们通常只能通过 HTTP 和 HTTPS 进行通信。这就限制了对 SMTP(电子邮件)和 FTP(文件传输)等协议的直接访问。您只能使用 WebSockets 或 WebRTC 等网络友好型选项,或者需要一个服务器作为中间人。由于协议访问受限,构建一个 torrent 客户端将非常恼人。可以在浏览器中运行的 WebTorrent JavaScript 框架并不直接完全支持传统的 TCP/UDP torrent 协议,而是依赖于 WebRTC 数据通道。因此,您的应用程序只能连接到支持 WebRTC 的对等点,这就大大减少了可用的洪流和对等点数量。此外,移动设备上的后台进程通常会受到更多限制。
对设备 API 的访问也有限制: – 近场通讯(Android Chrome 浏览器部分支持网络近场通讯)- 蓝牙(网络蓝牙仅限于 Android Chrome 浏览器,iOS 没有)- 本地通讯录、短信收件箱、电话或系统日历。- 一些系统级传感器(气压计、精确的加速计数据)。
此外: 由于无法直接访问 GPU,网络应用程序在重图形或计算方面的运行速度往往比本地应用程序慢。我没有亲自测试过,但我知道情况已经有所好转。
往后: – PWA 无法直接注册为操作系统中特定文件类型或 URL 方案的默认处理程序。- PWA 在不活动时无法可靠地运行后台任务(如精确位置跟踪、音频播放、VoIP 回调或连续数据监控)。- WebAuthn 支持生物识别,但本地生物识别 API(如 Face ID/Touch ID)可为特定应用功能提供更深入的集成。这对我们公司来说是一个巨大的需求,因为我们依靠它为我们的应用程序提供简便的身份验证,客户也喜欢它而不是其他身份验证方法。- PWA 无法轻松将小部件嵌入操作系统主屏幕或系统级 UI 组件(如控制中心集成)。
是的,PWA 的功能比某些人想象的要强大得多,在很多情况下,它可以像本地应用程序一样运行良好。(我在 iOS 上使用 GeForce Now,没有遇到多少问题。)
而且这还没有涉及到使用 Android/iOS SDK 组建应用程序有多简单,以及用户的期望(当他们认为 PWA 较差或更不安全时,他们的期望可能是错误的,但这些态度仍然是现实)。
综上所述,我自己更喜欢 PWA 而不是原生,因为发布自由,但当你对别人说三道四时,我很恼火,而且你似乎是那个不理解存在实际限制的人。
帖子中提到了地图和笔记的离线使用。两者都没有受到服务工作者功能的明显限制。平台差异确实令人讨厌,尤其是苹果的蓄意破坏。
PWA 固然有其局限性,但绝大多数应用程序并不需要这些缺失的功能。
我发现原生 Android SDK,尤其是 iOS SDK 在开发上要困难得多,也繁琐得多。当然,如果您必须同时为这两种系统进行开发,那么难度会加倍。也许如果你已经习惯了 Android/iOS 开发的混乱局面,那么短期内学习新东西要比学习 Android/iOS 容易得多。
我部分理解你的观点。公司为了收集和管理购物令牌或联系客户服务而推出的所有这些应用程序,如果是一个网站,效果会更好。
不过,我还是喜欢在我的设备上安装能离线使用的应用程序,而不会将我的数据分散到我无法控制的服务中。我也不想在任何地方都依赖网络连接。
我喜欢我的离线 Osmand/Organic Maps 应用程序,当我在森林或山区的某个地方时,它能为我显示路径。我喜欢我的应用程序不使用第三方服务器,而是直接连接到我的其他本地设备来共享数据。
在我看来,所有(可能的话)应用程序都应首先离线开发,只有在必要时才需要互联网,而那些没有互联网就无法运行的应用程序应是网络应用程序,它们不需要出现在我的设备上。
完全可以发布一个离线运行的网络应用程序,并且也可以离线存储所有数据。
平台所有者会引入一系列限制,从而造成可靠性和可用性方面的问题,但现在已经有了相关标准,网站运营者可以创建一个网络应用程序,在初始 “安装 ”之后,该程序可以完全脱机运行在用户的设备上,而且无需与网站通信。
实际上是不可能的,见 https://news.ycombinator.com/item?id=43522667。
对不起。我真的完全无法理解或理解不了。移动网络给人的感觉仍然很糟糕,而应用程序通常不会。你上一次尝试用移动网络预订机票是什么时候?你如何处理浏览器抢走的所有空间?每次都要登录,而应用程序可以直接缓存我的身份验证和 FaceID?
说真的,在网页上预订酒店和航班要好得多。你可以通过多个窗口对航班和价格进行轻松比较,包括供应商内部和供应商之间的比较。
我真不理解那些使用应用程序的人。太麻烦了。
您将台式机与手机进行了比较。
出于你所说的原因,我在台式机上做了很多事情,但在手机上使用多个标签等就很麻烦。
不,我是说 booking.com 应用程序、Skyscanner 应用程序或它们的任何竞争对手都不支持多标签。
他们的网站支持多标签页(虽然即使在新手机上,标签页被清除并需要重新加载的风险也更大,但您仍然可以在移动网站上使用多标签页)
啊,这里的区别在于我无法在手机上使用多标签页,因为它们太小了。因此,只有在台式机上我才会使用标签页,即便如此,我也会经常使用新窗口。
我不知道你在回复谁,但我更不依赖手机做任何事情,我更希望有更多的屏幕空间,比如做比较,比如买机票。我从未在手机上买过机票,只在电脑上买过。实际上,我更喜欢用更大的屏幕和键盘来做大多数事情
不太确定。有很多糟糕的应用程序。它们也经常无法正常工作。
此外,公司专注于应用程序,而不是网页。资金少,关注度低,因此体验更差
> 每次都要登录
听起来像是一个坏掉的网络应用程序。
你现在使用的网络应用程序就不会这样。它叫 Hacker News,它从不要求我每次在手机上登录。
> 当应用程序可以直接缓存我的身份验证和 FaceID
时,它就不会要求我每次都在手机上登录。
Hacker News 还允许我在手机上使用 Face ID 登录,这要归功于我的密码管理器。
网络应用程序也可以提供密码。
> 听起来像是一个坏掉的网络应用程序。
>
> 你目前使用的网络应用程序并不具备这种功能。它叫 Hacker News,每次在我的手机上访问时,它都不会要求我登录。
每次我在 iPad 上访问 Hacker News,都会被注销。苹果公司决定,如果你不经常访问一个网站,它就会过期失效你在该网站上的所有 cookies。
实际上,这意味着我可以在某个周末去咖啡馆时登录 HN,而在下个周末访问时又被注销。
> 您上一次尝试在移动网络上预订机票是什么时候?
一周前,通过 TravelPerk,它实际上就是一个网页包装。
> 你如何处理浏览器占用的空间?
怎么处理?
> 应用程序可以缓存我的身份验证和 FaceID,而你却不得不每次都登录?
我的密码/质子通行证都是用的同一个 FaceID。此外,这还取决于网站。
现在也有越来越多的服务只提供应用程序,包括但不限于许多金融应用程序,如 Revolut。
这种趋势的一个大问题是,与网络不同,整个安卓生态系统是一个由谷歌严格控制的围墙花园。原则上,你可以运行自己定制的安卓 ROM,但实际上,这将使你无法使用任何使用 Play Integrity API 的应用,因为谷歌的极权制度规定了你可以在 “你的 ”硬件上运行哪些软件。
最糟糕的是英国国家医疗服务系统(NHS)的应用程序,尽管它只是一个网络视图包装器,却只能作为应用程序使用!我不知道他们在想什么。
有时这是合规性问题,例如,我们只能在您的设备首先通过某些安全控制后才能显示健康数据。
当你访问任何被包装的 URL 时会发生什么?
您访问英国国家卫生署的网页,其工作方式是一样的。
在 iOS 应用程序上登录效果更好,因为您可以使用触摸 id/faceId,而不是 userid/password,而且网页会要求您使用 cookies,因为它似乎记不住您的选择
真的吗?允许我查看测试结果和预约的 URL 是什么?
遗憾的是,这似乎取决于谁做的检查或您的全科医生。
您的全科医生(我的全科医生是通过 .nhs.uk 域名进行预约的,以前是通过 https://account.patientaccess.com/,现在仍然可以显示预约信息,但不允许预约,但仍然可以申请重复处方。)或医院门户网站提供结果。
IME 这些应用程序通常都嵌入了 HTML/JS,因此您必须提取内容,将其托管在某个地方并代理 API 调用。
我不知道,我还没有逆向工程来查找 URL。但我想它会对身份验证感到困惑。
我打赌它会使用类似’?device_verified=1’的东西。
不仅如此,这些公司实际上是在让谷歌决定他们可以与谁做生意。这太疯狂了。
看到对你关于网络应用缺点的评论的负面回复,感觉很有趣。
浏览器是由苹果和谷歌等公司控制和操纵的。这两家公司对浏览器的功能和限制有很大的影响力,往往会根据自己的商业利益来调整。例如,苹果的 Safari 浏览器和谷歌的 Chrome 浏览器就因为实施了强化自身生态系统的功能而饱受批评,如限制网络推送通知或限制某些网络 API 功能,以鼓励用户使用其本地应用程序。这最终意味着,即使在浏览器领域,推动应用商店垄断的力量仍然可以控制和限制可能出现的情况,即使网络本质上更加开放。因此,虽然网络应用在理论上比本地应用更具灵活性,但现实情况是,苹果和谷歌对浏览器的控制仍然限制了完全开放网络的真正潜力。
> 浏览器由苹果和谷歌等公司控制和操纵。
你认为谁在控制 Android 和 iOS 本机 API?
网络标准至少有公共论坛和规范,并有多方参与。而且所有主要的浏览器引擎都是开源的,为它们开发的应用程序相对来说都是交叉兼容的。
> “App Store “是苹果/谷歌推出的一个完全没有必要的概念,这样他们就可以从销售额中获取巨大的百分比。
事实上,在 iPhone 推出之初,苹果希望它只有少数几个本地应用程序(如地图或邮件),其余的都是网络应用程序。
开发者想做本地应用程序,而不是像你说的那样,他们被逼无奈才开设了应用程序商店。
这显然是为了收集数据。以 Yelp 网络应用为例。它曾经比本地应用程序漂亮得多。后来,他们故意把它改得一无是处。
此外,这种情况也有利于谷歌和苹果的双头垄断,因为这意味着优秀的产品(还记得 Windows Phone 8 吗?)或注重隐私的设备(FirefoxOS)没有机会在市场上立足。
我在兄弟姐妹的评论中看到的反对意见都是无稽之谈。现代网络支持高帧率、开发者对用户界面的控制,等等等等。
周五曼谷发生地震时,Grab(当地优步的升级版)帮我叫了出租车,把我的孩子送回了家。不用说,手机网络崩溃了大半天。所有的人都想知道发生了什么,他们的家人和朋友是否安全。他们肯定有非常优化的网络层来解决连接不畅的问题。我打赌他们可以切换到 udp 或其他方式。我很高兴这不是网络应用。
在其他很多情况下,我都同意你的观点。
99% 的可能性是他们使用的是 REST API,也就是… HTTP。
即使是 gRPC 或更奇特的东西,也会通过 TLS 传输(你最好希望是这样)。
您可以在设备上本地缓存网络应用。PWA 允许开发人员创建一个可以从主屏幕打开的 SPA,并以与本地应用程序相同的方式进行 API 交互。
我希望你和你的家人一切都好,技术能帮上忙真是太好了。但请不要因为这项技术在这次事件中起了作用,就认为它不能变得更安全可靠。
转用 UDP 不会神奇地改善网络连接。通过 UDP 进行 WebRTC 的开销也不会太高。
虽然很多原生应用都可以是网络应用,但你忽略了原生应用的一个非常重要的原因:
1. 为用户提供更好的用户体验和响应速度,包括更好的离线使用。
2. 使用原生硬件 API。你如何在设备上实现视频压缩,或比 GL ES 更先进的实时图形等功能
3. 电池寿命和性能。与网页视图相比,原生应用程序的耗电量更低,而且它还能使用比网页视图更好的异步/并发/线程。
> 在我看来,”应用程序 “的唯一好处就是开发者可以获取他们并不需要的私人信息。
这正是问题所在。开发者控制更多,用户控制更少。无法更改应用程序中的 cookie 设置,无法(轻松)屏蔽广告,无法使用开发者工具移除恼人的用户界面元素,无法禁用手机主页机制,无法阻止开发者对你进行特征分析。
就我最喜欢的 termux 应用程序而言,我在本地安装了超过 2GB 的软件包。这在浏览器上如何实现?
OP 说的是一般应用程序,当然总会有像这样的奇闻轶事(另见 https://xkcd.com/1172/)。
如何在浏览器中制作视频应用程序?即拍摄视频,然后进行编辑
GP 使用了夸张的说法,但并非全错。问题在于,大多数原生应用很可能就是网络应用。我知道在 iOS 上,在主屏幕上添加网络应用是可能的,尽管很不起眼,而且使用该功能的人也不多。我讨厌火狐浏览器因为某些深不可测的原因从未真正支持过 PWA。
没错。但 GP 故意说的是所有,而不是大多数或很多。
GP 的评论被政界人士称为耸人听闻。极端的言辞能激起人们的情绪,因此很容易获得好评,但这并不理性。
我认为这是完全合理的,因为它说明了观点的核心。而且,HN 用户与投票者不同,他们可以看穿这些陷害。如果有的话,这是引发辩论的好方法。
你是指像 https://commons.m.wikimedia.org/wiki/Commons:VideoCutTool 这样的东西吗?
我指的是像 CapCut 这样可以访问手机摄像头捕捉视频的软件。
如果用户授予权限,浏览器可以访问摄像头和本地文件,你说浏览器不能访问是什么意思?
我认为,浏览器这个名称基本上就是让人们误入歧途的原因。它们已经是完全成熟的虚拟机沙盒,顺便还嵌入了原生的 html 和 pdf 解释器。
评论者说的是大多数应用程序。你提到的用例需要计算资源。您也可以在浏览器上完成整个过程,但这种方式效率不高。但在快递应用程序和金融应用程序中,您不需要太多计算资源,因为您可以完全使用应用程序接口(API)。
性能可能不再是一个原因–如果是的话,那也是平台的原因(rust 在浏览器中运行得相当快)。
没有 GPs 就意味着没有应用程序,这不是大多数人的想法。
对我来说,有很多应用程序是我希望无论是否连接到互联网都能加载的:日历、笔记、邮件等。只要我下次上网,它们就能同步/发送/处理。
啊,是啊。虽然这在大多数情况下实现起来很糟糕,但网络应用程序完全可以使用服务工作者为你做到这一点。因此,你可以在主屏幕上安装一个网络应用程序,然后在没有网络连接的情况下使用它。
模拟网络层,为预先打包的捆绑程序提供服务。这是个不错的 “平台”,但作为开发者,我不喜欢。
虽然应用程序等都是间谍活动,但制作应用程序通常比制作网络堆栈要容易得多。当我在室外站在风中试图弄明白一些事情时,可能没有一次网络应用程序能为我加载。它总是能启动并提供帮助,而且在启动时不会横向滚动。
在这种情况下,网络应用程序和普通应用程序的唯一区别就是权限,不是吗?
权限和性能。
但我们可以说,如果网络应用在移动设备上的使用率更高,那么新的应用程序接口(API)就会开放,以促进跨应用集成。
你似乎忽略了一个事实:大多数网络应用的体验都不如本地应用。
原生应用的劣势在于安装障碍。一旦安装完成,用户的体验就会非常好。真正的原生体验,快速且可预测。作为开发者,开发这类应用程序也更容易。
不过,没有使用过 iOS 的人可能无法理解这一点,因为他们从未见过 “事情应该是怎样的”。
PWA 可以做到这一点。
Zuck:押宝 HTML5 是个错误(2012 年) https://www.infoq.com/news/2012/09/Facebook-HTML5-Native/
https://www.sencha.com/,ExtJS 框架的供应商试图辩称 Facebook 的观点是错误的(2012 年): https://www.infoq.com/news/2012/12/Fastbook/
我曾在一家使用 Sencha 的公司工作过,并在 2013 年为他们的表单/数据网格组件编写了第一个 React 集成。React 吃了他们的午餐
https://en.m.wikipedia.org/wiki/Platform_economy
成为中间人是支持规模的默认模式。在一个平均可支配收入接近 0 的世界里,没有人能够想出其他办法来支持这个世界
> 成为中间人是支持租金提取的默认模式
FTFY
它有可能更快、更私密、更高效。
绝对不会出现滞后、故障、渲染问题、内存使用千字节等问题,这在原生应用中是有可能实现的。
Pokemon Go。有了 VR 和其他东西,网络应用就无法真正做到这一点。
另外,我认为银行应用程序比网络应用程序更安全–在苹果手机上,他们经常会扫描我的脸。
推送通知。应用程序默认开启,网站默认关闭。Temu估值的100%都是因为他们一直在催促用户买东西,这很有效。
正常人不会关闭通知。在过去几年里,我所有的亲戚都买了智能手表(这要归功于手机运营商在更换手机时大力推销智能手表),在家庭活动中的任何一次谈话中,他们都会每隔 100 秒看一眼自己的手腕。
注册推送通知的协议应该更加简单和轻量级,而不是启动虚拟机并为希望接收的每个通知渠道运行下载的二进制文件。
地图和导航应用程序?桌面集成和同步应用?
虽然大多数情况下你都是对的。
我确信有些应用程序只是网络应用程序的包装。维珍钱庄(英国银行品牌)的应用程序在推出时曾要求获得 cookie 权限,感觉很像他们的网站(直到它被移除,他们只使用应用程序)。
首先,没有浏览器就无法访问这些网络应用程序,因此需要一个应用程序。如果你在拨号时必须加载一个网页,那也会有点恼人
或者我没有理解你用 “应用程序 “这个引号是什么意思?
访问蓝牙设备是拥有一款应用程序的充分理由。我绝对不希望在我的浏览器中出现蓝牙 API(虽然 Chrome 浏览器确实有这方面的功能,但我认为这不是个好主意)
很多事情都需要应用程序,但又有很多事情不需要。
许多应用程序之所以成为应用程序,只是因为它们可以收集你的数据,并创建围墙花园。为现有应用程序创建扩展比较困难,而为网页创建扩展则比较容易。
任何一种离线加密技术。想象一下 Apple Pay 是一款应用。因此,所有种类的数字签名、文件、支票、付款代码和凭证、票据等。
在我看来,这属于 “如果我们都有腿,为什么还要用机器来运输 ”的范畴。从技术上讲是对的,但应用程序所做的不仅仅是用户界面。
过去 30 年来,我一直听到这种说法(我们不会使用应用程序,一切都将是远程控制台/终端/网页/网络)。Chromebook 本来就是用于网络访问的,而原生应用却依然生机勃勃。
在我看来,移动应用通常只是一个无法缩放的较短的网页应用
编辑:我大胆猜测,由于移动应用无法使用广告拦截器等功能,公司可能更喜欢移动应用。这样就能更好地控制你所看的内容。
我基本同意,但有些程序我肯定希望能在手机上运行,而且是在默认浏览器之外。
– 定时器/闹钟 – 照相机 – 文件浏览器 – 离线地图 – 另一个网络浏览器
但不是 250MB 的银行应用程序。
推送通知是个大问题。是的,有网络推送,但这还远远不够。而改变这种状况的动力其实并不存在。
这是一项功能。
是啊,祝你好运,能写出支持完全离线使用和条形码读取功能的屏幕阅读器、要求苛刻的手机游戏、(本地)音乐播放器或仓库零件查询应用程序。
2025 年呢?当然,你可以在浏览器中实现部分(但不是全部)功能?2010 年,当这些系统开始流行的时候?绝对不可能。
人们忘记了苹果公司最初也尝试过这种方法。在第一代 iPhone 上,你就应该这么做应用程序。人们太需要原生应用了,以至于他们愿意多走一步,越狱他们的设备,记录没有文档的 iPhone SDK,编写他们自己的工具链。用户对原生应用的需求显然是压倒性的,以至于苹果最终妥协了。
甚至在几年后,Facebook 也曾努力尝试建立一个跨平台的 HTML5 网站,而不是费力地开发应用程序。即使在那时,浏览器也还没有出现,而且他们可能拥有最好的工程师和资源来完成这个项目。
反正很多应用都是网页内容的美化包装,在这种情况下,原生应用只会增加臃肿(和跟踪)
每次使用手机时都会看到广告。
应用程序本质上并不邪恶,网站本质上也并不美好–这只是因为历史上我们允许蹩脚的应用程序权限结构,允许应用程序要求它们不需要的东西。
在我看来,应用程序速度更快,可预测性更高(没有自动重载或渲染问题),一般来说性能更好。
另一方面,在现实中,你是对的。我认为,《纽约时报》应用程序比《纽约时报》网站从我这里收集到的数据更多。
非常狭隘的观点,这太牵强了,我会认为这是恶意评论。
你怎么可能认为密集型游戏是 “简单的 ”网络应用?那 vpns、wifi 分析器等网络应用呢?你是真的没有接触过这类应用,还是我们认为每个应用都是 TODO 应用?
网络和原生应用都是由同样的企业力量推动的,这里的争论应该只是技术上的–你能在原生应用上做什么,而你不能在网络上做什么。将技术问题与企业政策混为一谈会把水搅浑。
说实话,我也有同样的疑问。应用程序商店对提供商的分成比例很高,我相信苹果的分成比例是 30%。这个数字肯定大到足以证明为移动优先网站花费资源是合理的?
所以你从来不在台式机上使用本地应用程序?为什么计算设备不能运行程序?
我觉得真正以安全为导向的设计比把所有东西都放在浏览器上要好得多。
离线工作?
速度以及由此带来的电池寿命。
换句话说,你认为所有电脑都应该是 Chromebook,只能运行 Chrome 浏览器,而不能运行其他?
……不是每个应用程序都是更糟糕的 reddit 网站?
有游戏,也有离线程序
—
网站即应用程序的做法需要被压制,这一点我确实同意你的观点
想象一下,在这样一个世界里,你的智能手机电池可以使用一天以上……
……性能良好的手机对内存的要求降低了 66%…..
……但给它一个小小的网络视图……
最基本的应用程序–记事本,我通常更喜欢原生的。当我在谷歌 keep 和苹果笔记之间切换时,我能感觉到它们的不同。如果文本足够长,网络应用程序就无法加载内容。
只是为了确认一下:
我把我所有的笔记都从超大的苹果笔记(约 16000 行文本)中删除,然后粘贴到 Google Keep、Notion 和 Google Docs 中。除了 Google Docs 之外,其余的都完全冻结了,我不得不关闭浏览器。别再试图告诉我们浏览器可以解决一切问题了,因为大多数网络应用程序都无法完成记事本或 vi 的工作
> 除了 Google Docs
所以,在你测试的三个网络应用程序中,有一个可以处理这么多文本。这说明其他两个应用程序的问题在于它们的实现,而不是浏览器的限制。
在这两个失败的应用程序中,你是否也尝试了它们的版本,看看它们是否也失败了?我很怀疑 Notion 应用程序能否处理 16000 行文本。
对不起,我无法重现这个问题。我刚刚创建了一个小小的文本编辑器应用程序:https://65cd02a1-8f00-47cb-b1d1-231493de5fc2.paged.net/
,并试着输入了 2 万行文本。立即加载,允许我滚动和编辑,完美无瑕。
但我明白你的意思。我用的是 2022 年版的 iPhone,性能肯定会受到影响。但不会达到 20k 行。
笔记应用一般都会进行格式化、类似 markdown 的操作,或者至少在文本中链接到网址等。
你不能用纯文本字段来模拟实际体验。
现在试试 Chrome 浏览器中的 VSCode,并与苹果笔记进行比较。我两种软件都用过,VSCode 在长线条和文件方面都胜出一筹。
这就是我喜欢黑客新闻的原因。
我昨天发现了这篇文章,并把它发到了 reddit android 上,在这里:https://old.reddit.com/r/Android/comments/1jmwg4w/everyone_k…
0 upvote, comment filled with what is either depressed sad people or just bots.
这里是前 2… 大部分都是有趣的评论。
有些子站点比其他站点更死气沉沉,但 r/android 一定是最糟糕的站点之一。
> 有些子论坛比其他论坛更死气沉沉,但 r/android 却是最糟糕的子论坛之一。
是的,我不清楚 reddit 到底发生了什么,但如果死网理论在任何地方都能成立的话,它似乎就在那里。
此外,所有的话题/主题子红包似乎都是由那些对话题/主题有既得利益的人管理的,这对他们的社区很不利。我曾提交过一篇文章,详细描述了 Meta’s Llama 所使用的专有许可证,以及许可证的具体含义,结果被 r/LocalLlama 的版主在没有任何理由的情况下手动删除了。
我猜上一次 “reddit 大清洗 ”发生时,他们用来自 reddit 的员工替换了一大批社区版主,不幸的是,大部分平台都被卖给了公司,让他们管理自己的空间。
管理是 Reddit 的一大致命伤。我很困惑,为什么 Reddit 认为没有任期限制的君主制会在网站上行得通,而这种制度在人类历史上从未行得通。没有任何投票机制,用户无法反馈他们对版主或子版块的看法。你会得到一些根深蒂固的子版块,比如 /r/movies,以及他们对电影海报的痴迷,而不是电影讨论,或者 /r/running,它的闲置程度令人难以置信,因为版主坚持删除每周线程之外的几乎所有关于跑步的讨论,除了在一些没有人阅读或关注的不起眼地方的白痴比赛报告。
reddit 的好处在于,没有人会强迫你去关注这些迎合大众口味的肉麻子论坛。根据我的经验,任何一个拥有超过几百万成员的子论坛都会非常糟糕。
找一个更小众的子版块,比如 /r/<city_name>running(虽然位置子版块也会掉进类似的陷阱)或 /r/longdistancerunning,你可能会发现它们更有趣,因为版主受制于一个较小的社区,他们的工作更多的是为他们的小众社区创造有趣的东西,培养一个社区,而不仅仅是处理骚话、机器人和垃圾邮件。
我同意你对大型子网站的评论,但我也同意 Mistletoe 的观点,即使是许多小众子网站(或至少是 “中型 “子网站)也存在同样的管理问题。
也就是说,一旦一个子红地毯流行起来,或者基本上有了 “默认 ”的子红地毯名称,如果你不喜欢旧的子红地毯的管理,就很难再创建一个新的子红地毯,因为很难让人们知道或转移到新的子红地毯。几年前,r/lgbt 的一些版主曾大权独揽,导致其他人创建了 r/ainbow 子站,但大多数人还是会去 lgbt reddit,因为如果你搜索 “同性恋子站 ”或类似内容,首先出现的就是这个子站。
你说 “因为版主受制于一个较小的社区”,但这正是问题所在–版主其实根本不受制于任何人,因为选举版主并不是一个民主的过程。注意,我也不认为它应该是民主的,因为作为一名版主,人们需要付出大量的精力和劳动,而这些都是免费捐赠的。但我确实认为,如果人们想 “分叉 ”一个子论坛,如果人们想在同一个社区讨论同样的话题,只是有不同的管理规则,Reddit 可以做得更简单、更 “公平”。
如果某人/某个团体不能成功创建一个较小的竞争性子红人区,那么他们有什么希望成功说服一个子红人区现有的一半以上的用户群正式投票支持 “分叉 ”呢?
作为一个曾经管理过多个子版块,并一手将一个子版块从 0 个用户发展到 100,00 个用户的人,这误解了子版块、管理以及 Reddit 与版主之间的关系。在我看来,子红地毯本应像以前互联网上的随机论坛一样,但有一个共享的底层。那些论坛也是单一所有的,如果你不喜欢运营者,你就可以离开,因为没有人可以让你升级。
从根本上说,Reddit 和版主之间是一种社会契约关系。版主获得自主权和控制权,而 Reddit 则获得能留住用户的内容。只要 Reddit 不向版主支付报酬,他们就只能给予版主自主权和控制权。我投入了大量精力,我希望保留一些控制权。在我看来,创建一个社区更像是在 Github 上启动一个开源项目,需要大量的社区贡献。
如果剥夺了版主的自主权和控制权,版主又能得到什么呢?试想一下,如果 Github 开始全盘收购项目,接管它们并安装新的维护者。人们就会离开这个平台。
有人说版主是无薪雇员,但在我看来,这只是在版主必须执行 Reddit 的议程和优先事项的程度上。我们不称操作系统维护者为 Github 员工。我不介意 Reddit 从我的社区中获益,只要我能按照自己的方式运营它。如果你剥夺了自主权和控制权,版主绝对会成为无薪雇员。
如果 Reddit 不喜欢我的政策,拿走了我的子论坛,我会把这当作一个强烈的信号,Reddit 不是我建立社区的地方。API 崩溃、抗议和移除版主让我更加分散我的社区。我在我的子版块里做了一个链接树,链接到 Discord 和其他资源,正是为了防止 Reddit 抢占社区。
我认为你提到了一些真正的问题。一个是命名空间的问题;人们可以占用命名空间的宝贵部分,基本上是在榨取租金。我们在域名方面也有同样的问题,而且还没有解决。一些地方(如 Github)通过将 repo 放在组织中来半解决这个问题,但这将命名空间问题转移到了组织层面。
另一个问题是第二代版主。大多数版主在继任规划方面都很糟糕,因此一般都会选择糟糕的继任者。许多第二代版主并不了解塑造社区的最初决定,也不知道是什么让最初的社区取得成功。Reddit 应该加大力度鼓励继任规划,并教导版主如何做好继任规划。
你很困惑。
你似乎认为 Reddit 公司只想控制用户。他们对讨论或成为社交网络根本不感兴趣。如果没有那些烦人的评论,他们也能实现自己的真正目标,他们会立即关闭那些评论。
Reddit 首先是一台叙事机器。他们靠广告赚钱,而不是靠每页一两个广告。
Reddit 的股价完全不能反映他们的技术。它是基于向用户推送思想的能力。
他们的年度报告和广告商平台并不能真正证明你在这里暗示的一切。
如果发现 reddits 的管理人员甘愿冒着被罚款的风险,也要在他们的文件中就此撒谎,我会感到非常惊讶。
主题成功与否时好时坏。你可以发帖却鸦雀无声,也可以发帖却人头攒动。如果你点击标题下的 “过去 ”链接,就会出现一个两天前的主题,完全死气沉沉。
另一方面,我向 HN 提交的许多有趣链接(我认为)也得不到任何评论
更糟糕的是,我过去提交的内容(包括链接和评论)都被标记过,但我不知道为什么。我想他们一定是验证了 HN 的某些政策,但如果我能获得更多有关理由的信息,我就能避免将来再犯同样的错误(我所有发生过这种情况的投稿都是真正有趣的内容或 100% 无攻击性的观点评论)。
该子版块大多是更符合 “粉丝 “态度的年轻人,他们因为这是对 Android 的批评而降权。
黑客新闻了解建设性批评的概念。
我不会说理解,但更能理解
在这里,你需要有一定的_rank_才能进行 downvote,而不是在 reddit 上获得默认的权利,这一点也很有帮助。
正是如此,如果讨论的是气候问题,就可以在这里看到。
甚至更好的理解可能会推动它。“更好地容忍”
> 除了通常的分类外,我看到还有泰米尔日历、奥迪亚日历、Qibla 方向查找器、曼蒂尔应用程序、占星术应用程序等应用程序的检查。他们知道自己在做什么。
这款贷款应用程序是基于种族(泰米尔语、奥迪亚语)和宗教(穆斯林使用 Qibla Direction Finder,印度教徒使用 Mandir 应用程序)对人们进行貌相。
英国汇丰银行的 Android 应用程序会查看您拥有哪些应用程序,如果您拥有具有特定权限的应用程序(如替代启动器),则拒绝运行,如果您拥有来自谷歌应用程序商店之外的任何应用程序,则拒绝运行。
我以前曾在这里抱怨过这个问题,但最终的结果是我要了一个硬件安全设备,改用网站。
厌倦了应用程序使用不正当的、脆弱的伎俩来拒绝工作,并声称你被它们 “保护 “了
有趣的是,FirstDirect 应用程序(也是汇丰银行的一部分)没有这样的问题。它甚至可以在我之前已root过的手机上运行。
这简直太荒谬了。听起来是汇丰银行的一贯作风!
> 知道我手机上安装的是 Xbox 还是 Playstation 应用程序对 Swiggy 的核心功能有什么重要意义?了解我是否安装了 Naukri 或 Upstox 应用程序对他们送货上门有何帮助?
这是出于指纹识别的目的
它还会检查流行的远程桌面应用程序(允许传入连接到手机),这可以用来提高诈骗成功率。
银行应用程序也是一样,如果你是骗子,事先了解目标用户使用的银行类型确实很有用。
可能有一大群人都有获取这类信息的目的,尤其是如果他们能将这些信息与电话号码联系起来的话。
指纹识别是最好的情况
在你看来,最坏的情况是什么?
美国海关和边境管制局的应用程序(”CBP Home “和 “Mobile Passport Control”)可能会检查黑名单上的应用程序,并标记你未经正当程序被驱逐到萨尔瓦多的古拉格集中营。
萨尔瓦多有古拉格吗?我以为那更像是俄罗斯的监禁方式。
父母评论者并不是指字面上的古拉格,而是指同样糟糕的政府将人们送往的同样糟糕的地方。
我认为评论者是在要求澄清所使用的夸张手法。不知道是想坦诚提问,还是有什么目的(政治讨论经常如此)。
希望萨尔瓦多的协议与 19 和 20 世纪的拘留营相去甚远。
这很可能是指美国(特朗普)最近与萨尔瓦多达成的一项协议,允许他们将美国公民送往萨尔瓦多的监狱,但目前还不清楚这是否真的可行[1]。
以下是有关萨尔瓦多这些监狱条件的更多信息,其中最引人注目的是 CECOT 监狱:
> CECOT 可容纳 40,000 名囚犯,由 8 座宽敞的楼房组成。每间牢房可容纳 65 到 70 名囚犯。他们不接受探视。这里没有为他们刑满释放后重返社会做准备的项目,也没有讲习班或教育项目。他们从不被允许外出。[2]
尽管古拉格不是强制劳动营,但我认为在这种情况下使用古拉格一词是有意义的。不知道这与俄罗斯有什么关系(除了这个词的来源之外)。
[1] https://apnews.com/article/rubio-trump-deportations-usaid-f7…
[2] https://apnews.com/article/el-salvador-us-rubio-prison-de912…
> 尽管它不是强制劳动营。
反正现在还不是。
目标定位和特征分析。转售数据。
也许我错了,但这感觉与指纹识别很相似。通常这就是在线服务试图对你进行指纹识别的原因,以获取广告和数据收入。
这就是指纹识别的目的。
指纹识别只是为了识别用户,而不是获取用户数据。你有可能将应用使用情况等信息转售给信用评级公司。
这就是特征分析。
指纹识别是一种识别机制。它最常用于目标定位和特征分析。
> 对于文件管理器、浏览器或杀毒软件等极其特殊的用例,谷歌允许 QUERY_ALL_PACKAGES 权限,从而提供了对已安装应用的完全可见性。
为什么浏览器需要枚举已安装的应用程序?
为什么?
当用户访问 play.google.com URL 时,谷歌希望能够显示 “安装 “或 “启动 “按钮,这取决于应用程序是否已经安装。
换句话说,这要归咎于谷歌的产品管理。
我不相信这一点。谷歌的后台有这些信息,他们不需要查询任何本地状态。事实上,当我访问 play.google.com URL 时,谷歌会检查我的浏览器是否登录。如果没有登录,无论如何默认都是 “安装”。如果我登录了,那么如果我没有安装,默认值就是 “安装”;如果我安装了,默认值就是 “在更多设备上安装”。
这倒是真的,但如果他们不允许其他浏览器应用程序使用这种权限,那就会造成反竞争。
这说不通,听起来像是一个借口。
为什么浏览器不能在访问页面时检查当前页面(只有当前页面)是否安装了应用程序,而不是枚举所有应用程序呢?
操作系统如何知道浏览器查询的应用程序是否真的是当前页面?操作系统所知道的是,用户可能会快速访问大量的 play.google.com 页面,查看应用程序商店中排名前 1000 位的应用程序。
> 操作系统如何知道浏览器所查询的应用程序是否真的是当前页面?
也许我遗漏了什么,但听起来谷歌很容易通过让开发者在应用程序 “捆绑包 ”中进行配置来支持这一功能。一个属性可以告诉操作系统 “我的应用程序与域名 example.com 相关”。如果有必要,可以将其设置为一个域数组。
> 告知操作系统 “我的应用程序与域名 example.com 相关 ”的属性。如有必要,可将其作为一个域数组。
详细说明兄弟姐妹的评论: 应用程序必须在其清单中设置这样一个属性,才能对与应用程序相关的域 example.com 的链接/意图做出反应。
但这并没有解决一个问题,即在 Android 不会向浏览器透露应用程序是否已安装的情况下,浏览器如何才能打开该应用程序中与 domain-associated-with-the-app.com 相关的链接。简而言之:浏览器从结构上就能确定你是否安装了哪些应用程序。
我的意思是,Windows 或 macOS 在处理 mail:// URI 时,会告诉浏览器安装了哪些邮件应用程序吗?
不会,但网络浏览器确实可以向操作系统询问与特定 URL 类型相关的应用程序。
但它不会将这些信息泄露给网页。
Intent 过滤器可以针对域。这就是深层链接的工作原理。但由于查询被锁定,你无法知道哪些应用程序可以处理深度链接。
将其加入系统对话框?
但上帝不允许用户学习如何使用自己的设备。让用户手动选择应用程序就可以避免这一切。
用户体验上的细微差别并不能成为减少用户隐私的理由,这让我有点担心优先级……其实我早就担心了。
这类链接会直接打开 play store 应用程序,并显示信息
的确,有些应用程序要求的权限比它们需要的还要多。
例如,Obsidian 要求获得整个文件系统的权限,而它真正需要访问的是用户需要查看的文件。
文件管理器需要完全访问权限,因为你可以利用这种能力提取和检查系统中安装的任何应用程序的代码。这是一项非常有用的功能,我不希望它被移除。
也许它是在检查哪些应用程序可以处理链接?
这是由系统管理的。设置 > 应用程序 > 默认应用程序 > 打开链接
> 每个人都知道你手机上的所有
在安卓手机上。iPhone 没有这个隐私缺陷。
事实上,您可以通过私人 API 使用,苹果应用程序一直在使用这种 API,但禁止其他应用程序使用
https://blog.verichains.io/p/technical-analysis-improper-use…
苹果手机不再是隐私噩梦。
创建应用程序的最大动机之一就是从用户那里获取各种数据。看看有多少应用程序需要得到许可才能查看你的通讯录。又有多少应用程序真的需要你的通讯录才能运行。这就是为什么很多人似乎对这样的发现感到惊讶,我仍然感到有些意外。
我希望能有一个 “给假联系人 ”的选项,向应用程序显示联系人列表,但这些都是随机生成的垃圾。让应用程序无法辨别获得的联系人是真是假。
几年前我读过一本小说,书中到处都是摄像头。为了获得隐私,主人公没有隐藏自己的身份,而是付钱给公司,让他们在信息中介的网络中插入假信息。这样,如果他们想知道自己某天在哪里,就会有 20 条记录相吻合。我认为这是更有可能实现的未来愿景。
我想,与其关闭我的谷歌账户,还不如去掉 2FA,把密码改成 HIBP 列表中的弱密码(:
看看有多少应用程序需要得到许可才能看到你的通讯录。又有多少应用程序需要你的通讯录才能运行。
在 iPhone 上,这同样不是要求,而是请求。我的 iPhone 上没有任何应用程序因为被拒绝访问通讯录而无法运行。就连中国的蓝牙灯控制器也不敢用(同样的原因拒绝在安卓系统上运行)。
你可以随心所欲地憎恨苹果/iPhone 生态系统,但不要对它们的实际工作方式偷换概念。
> 由于被拒绝访问联系人,我的苹果手机上无法运行的应用程序为零。
那你就没有 WhatsApp。
我有,并且拒绝它访问联系人。一切正常。
iOS 只允许应用程序访问您选择的联系人,包括 “无 ”联系人。在这种情况下,WhatsApp 运行正常。
> 看看有多少应用程序要求获得查看联系人的权限。
要么 “允许访问我的所有联系人和他们的所有信息(是的,甚至包括我为下一个圣诞节记录的他们最喜欢的东西)”,要么 “不允许访问”,这实在是太烦人了。我希望我们能限制联系人的数量和提供信息的程度。
> 要不就是 “允许访问我的所有联系人及其所有信息……[……]我希望我们能限制联系人的数量和我们提供信息的级别。
iOS 去年增加了对联系人数据的细粒度(联系人级别)访问。
https://lifehacker.com/tech/you-can-control-which-contacts-a…
几年前,他们对照片也做了同样的处理。
很多应用都没有更新,也许永远也不会更新。
他们不需要这样做,因为这是在操作系统层面执行的。用户可以限制单个联系人的权限,无论 iOS 应用程序是否已更新以明确处理该用例。
iOS 不允许访问联系人备注已有好几年了,去年还增加了向所有应用程序提供任意联系人子集的支持。
查看 GrapheneOS 是否符合您的需求。它有 “联系人范围”,即您可以允许应用程序只查看单个联系人。
存储范围也一样:一个目录,仅此而已。
照片访问权限最近在这方面有了很大改进。
在 iOS 上,在某些方面情况更糟。如果你注册了公司的 MDM,他们就能看到你所有的应用程序。
在 Android 上,如果他们使用工作配置文件(这是现在的标准方法),他们只能看到里面的应用程序。
苹果在 2021 年推出了账户驱动注册[1],其行为类似于 Android 的工作配置文件。受管理的应用程序/数据保存在自己的 APFS 卷中,MDM 服务器无法访问卷外的任何内容。它们还不允许执行擦除设备等全系统命令。唯一需要注意的是,你需要管理 Apple ID[2] 才能使用这个注册流程,我怀疑很多公司都没有设置。
无论如何,MDM 安装应用的可视性仅限于那些选择由组织管理其个人设备的用户,并不能有效地广泛收集特定用户安装了哪些应用。本帖所述内容适用于任何用户/设备,而且无法拒绝/退出特定权限。
[1] https://developer.apple.com/videos/play/wwdc2021/10136/ [2] https://support.apple.com/guide/apple-business-manager/use-m…
是的,我知道用户注册。问题是管理的 Apple ID 完全不能解决问题。因此,我甚至不考虑将其作为一个选项。
原因是苹果要求 UPN(账户 ID)和电子邮件地址相同。对我们来说,情况并非如此(我们的 UPN 是作为电子邮件地址的员工编号,而我们的电子邮件地址只是我们的姓名)。显然,我们不会因为苹果公司的要求而为上万名用户改变这一点(因为我们是一家欧洲公司,所以大部分用户都没有苹果设备)。此外,你还必须手动决定如何处理每个已经用公司电子邮件地址创建了账户的用户,以及如何处理他们在账户上购买的内容。这对大型公司来说是不可行的。多年来,我们一直向苹果公司的客户经理反映这个问题,但他们根本不在乎。如果你在这一领域工作,你可能知道苹果公司并不真正关心企业客户的事情。消费者才是他们的主要客户,这一点显而易见(与微软不同,后者恰恰相反)。
因此,整个帐户驱动的注册(用户注册)以及其他一切依赖于管理的 Apple ID(如 Mac 的 DEP)的做法都是完全不可行的。
在我看来,问题在于作为管理员,我可以简单地查询所有安装了 Grindr 等软件的员工。考虑到美国当前的政治气候(或者更糟糕的是中东,在某些情况下这可能会导致死刑),这显然是超级糟糕的。说真的,我们为什么要这么做呢?
我正在为公司实现这一功能,而 iOS 上令人讨厌的限制就是不能克隆应用。如果你想把 Gmail(举例来说)作为管理应用程序,你就不能把另一个 Gmail 作为非管理应用程序。虽然公司无法看到 Gmail 托管应用的内部(如果应用本身没有明确提供该功能),但公司可以随时删除 Gmail(以及应用内的任何本地数据)。
实施 MDM 的有趣事实–拥有与公司连接的设备的最隐秘方式(至少在公司政策中是这样)是购买一部单独的手机并在上面安装公司的 MDM。在公司提供的设备上,公司可以随时定位公司的资产,但在个人设备上这样做就会侵犯隐私。
是的,苹果公司讨厌安卓系统的工作标记应用程序。我不得不承认,我们的很多用户一开始也不理解这一点。不过,一旦他们意识到这样做的好处(公司的能见度大大降低,而且只需按一下按钮就能完全关闭工作区),他们通常很快就会接受。
这样做的坏处是,应用程序必须特别支持多重配置文件选项,否则就不能用于此目的。
是的,我同意,这是最好的办法。我们对个人设备也有同样的限制。虽然作为管理员,我知道我们从未使用过定位功能(我也知道每个有权使用该功能的人)。
你知道帐户驱动注册是否要求 MDM 管理的应用程序和个人应用程序使用不同的电话号码?比如尿布应用程序。
我强烈建议不要将个人设备注册到公司的 MDM 中。如果公司非常需要你的移动连接,他们可以给你一台设备。
我认为这是一个个人决定。我真的真的不想带着两个大平板到处跑。一个已经太多了。
在我看来,账户驱动的 MDM 注册会在隐私/便利性方面造成损害,从而推动帕累托前线的发展。我会问问我的 IT 部门是否已经研究过这个问题。
我是说……这难道不是 MDM 的预期吗?我一直认为公司的任何设备(即注册了 MDM 的任何设备)都在公司的 100% 控制和监视之下。能看到我安装的应用程序是我最不担心的事情。
不,我(作为移动管理员)认为根本不应该是这样,至少 BYOD 设备不应该是这样。
安卓在工作配置文件方面做得非常好。这就像在你的手机上有一个公司虚拟机。分离得非常好。
但在苹果手机上,我们无法使用类似的选项,我承认确实存在,但附加条件太多(见上面的讨论)。
获得一个独立的工作设备?
申请一个单独的工作设备。
没错,如果你用于工作,他们应该为你提供一个。
问题当然是随身携带两个设备。
说到 iPhone,我对一些事情很好奇。我偶尔会使用网络应用程序登录[前]鸟应用程序,因为这样就可以查看一些关键的后续信息。
最近,他们发布了 LLM 功能的重大更新,我安装了应用程序来查看。当我安装了应用程序后,每次查看移动网站时,都会有一个大横幅引导我转到应用程序。广告拦截器和干扰拦截器都无法将其清除。当我再次删除应用程序时,它又消失了。这是怎么回事?为什么移动网站知道我是否安装了应用程序?为什么未安装应用时,内容+分心拦截器足以拦截所有使用该应用的提醒,而安装了该应用后就无法挽回了呢?
苹果称之为智能应用横幅。Webkit 与 iOS 合作,根据页面中的元标记来显示它们:
https://developer.apple.com/documentation/webkit/promoting-a…
您可以使用 Unsmartifier 扩展来清除它们。
https://old.reddit.com/r/apple/comments/q55753/unsmartifier_…
StopTheMadness 扩展也可以删除它们(还有很多其他功能……这个扩展是我的必备工具):
https://underpassapp.com/StopTheMadness/support-ios.html
>苹果称这些为智能应用程序横幅。Webkit 与 iOS 合作,根据页面
JFC 中的元标记显示这些横幅。如果您要求使用桌面网站,它们会被禁用吗?
我认为不会。我试着在 iPad 上打开 X.com 桌面版,Safari 仍然显示 “用 X 应用打开”。
> 为什么移动网站知道我是否安装了应用程序?
澄清一下–移动网站不知道。它的元标签会告诉 Safari 它绑定的是什么应用程序,而 Safari 会显示相关的应用程序横幅。
很久以前是这样。我还记得有人把问题公之于众后,它就被关闭了,就像这样。
我很惊讶安卓在 2022 年还允许这样做。
几年前,这种情况在 iOS 上得到了一定程度的缓解。
你可以尝试通过自定义 URI 方案与应用通信,如果成功了,它就会知道你安装了该应用。Twitter 将此用于指纹识别。
应用程序必须获得一个特殊的意图,并列出想要使用它的应用程序。
没错,只有苹果公司知道,但没关系,他们是好人
绝对不是 “好人”,但我仍然没有看到任何与广告技术驱动的安卓生态系统典型的完全无视隐私和安全的做法相似的东西。
这只是一种不同的商业模式,而不是道德价值观的体现。
当然,Pegasus 是存在的,但我认为它还没有商品化。
忽略讽刺…
你有什么证据/能提出什么证据来证明苹果公司正在以负面的方式利用这些信息?
在保持基本功能(自动更新、从备份中重新安装应用程序等)的同时,苹果怎么可能没有手机上已安装应用程序的列表呢?
算是吧。他们有一份你通过应用商店购买/安装的应用列表,他们可以根据你手机上的更新检查信息找出你删除了哪些应用。
如果他们超出了这一范围,或泄露了这一信息,或允许某个应用程序未经你的许可获取这一清单,就会破坏他们围绕隐私建立起来的品牌形象,造成长期无法弥补的损失。
他们决定不遵守迫使他们为 iCloud 存储的可选加密添加后门的法律,而不是玷污这种形象,因为他们知道这种信任是多么宝贵。
你可以随心所欲地指责苹果,但与谷歌相比,我认为他们做得还不错,而且更值得信赖。谷歌恳求人们使用他们的浏览器和手机,以改善广告技术监控,从而实现盈利。
> 他们是好人
相对而言,他们绝对是好人。
这是一个点击率很高的标题,需要修改一下,停止传播错误信息。
苹果是隐私保护最差的产品。整个生态系统都是闭源的。你对苹果的所作所为一无所知。
你确定吗?我认识一个做广告技术的人,我很确定苹果允许类似的应用程序清单,允许你检查特定的应用程序。可能是我错了。
我不确定清单的内容,但最近我看到关于一些银行应用程序使用 SBSLaunchApplicationWithIdentifierAndURLAndLaunchOptions(SpringBoardServices 中的未记录函数)[0] 尝试通过捆绑 id 在手机上启动另一个应用程序的讨论,他们可以确定该应用程序是否已安装。
他们利用这一招检测手机上未经授权的应用程序。
https://blog.verichains.io/p/technical-analysis-improper-use…
[0] – https://gist.github.com/wh1te4ever/c7909dcb5b66c13a217b49ea3…
> 我认识一个广告技术方面的人,我敢肯定苹果公司也允许类似的应用程序清单,允许您检查特定的应用程序。我可能弄错了。
在 iOS 系统上,应用程序开发人员需要事先注册他们的应用程序打算查询哪些外部应用程序,而且这个列表必须非常简短和有动机。[1]
顺便说一句,“我有个朋友说…… ”在 Reddit 之外的任何地方都不是一个好的引用–HN 与 Reddit 越来越像。
[1] https://www.hackingwithswift.com/example-code/system/how-to-…
谢谢你提供的信息。
我想更恰当的说法应该是 “我听说……”,但我同意我最初的回复是偷懒了。感谢您的反馈。
你真好。我不喜欢 “hn 看起来每天都越来越像 Reddit ”这种令人厌倦的敷衍,我认为你处理得很得体。
将 HN 与 resdit 相提并论是明确违反 HN 准则的。不过有时我觉得,之所以说它不 “真实”,是因为 Reddit 是一个不断变化的目标。随着时间的推移,HN 和 Reddit 都会变得越来越糟,所以 HN 永远赶不上 Reddit 有多糟。
此外,机器人并没有入侵 HN,这确实是一个巨大的区别。
> 随着时间的推移,HN 和 reddit 都会变得更糟
我认为这可能是任何网络社区的真实写照。我敢打赌,一个网络社区需要更多的用户才能发展壮大并持续下去,而更多的用户必然意味着更多的内容,而更多的内容意味着总体上更少的高质量内容。
你太客气了,他们的回复对你极其无礼。我在这里工作了 16 年,成为 iOS 开发人员的时间也一样长,我不知道为什么你的评论是 “Reddit”。
对我来说,一个简单的思考练习是:”这两条评论哪条更 Reddit?- 我想说,带着好奇心的那篇是 HN,带着半真半假的抨击和引用 Reddit 的那篇不是。
您能否花点时间阅读一下《HN 评论指南》中的最后一点? https://news.ycombinator.com/newsguidelines.html
在欧盟可用的 alt-store 应用程序也是如此吗?
我认为这不值得轻视。
当我说到 reddit 自视甚高时,我嗤之以鼻,为什么?
为什么?
– 你一眼就能看出他们的意思。
– 你一眼就看出了他们的意思。他们并不是在提出一个主张,而是在为他们的质问指出一个依据,这样做可能是为了避免在突然提出主张时显得天真。
– 我们正在评论的这篇文章描述的正是你所说的 iOS 的区别机制。(“提前注册……哪些应用程序……打算查询,而且列表必须非常简短、有动机”)。
– 自 2009 年以来,我一直致力于 iOS 和 Android 的开发。在移动领域,我几乎是个 “白胡子”。我一直在搜索、伸手去抓,想找到除了 Google 和链接你看到的第一篇文章之外,你还做过什么的迹象,但我找不到任何迹象。完全找不到。但我不认为这是错的。你在尝试。为什么你问的人也在努力就错了?
– 有强烈的迹象表明,你没有读过我们正在评论的那篇文章。
– 如果你读了,你就不可能说 iOS 是有区别的,然后又摆出文章中描述的完全相同的机制。
– 有很多迹象表明你没有读过你链接的那篇文章。
– 在 iOS 上,您可以在 plist 中注册 URL 方案,这些方案并不是 “您打算查询的外部应用程序”,而且列表也不必 “非常简短和有动力”
我也会变得暴躁,但是,我很感激我认识到这是非常 reddit 的哭泣 Reddit 并将其编辑掉,或者删除。
> 有强烈的迹象表明你没有读过你链接的那篇文章。
有什么迹象表明我没读过这篇文章?我当然读过。你认为我没有诚意,这不也明确违反了 HN 的准则吗?
> 在 iOS 上,你可以在 plist 中注册 URL 方案,这些并不是 “你打算查询的外部应用程序”,而且列表也不一定要 “非常简短且有动机”
我也是一名 iOS 开发人员–是的,确实如此。
是的,苹果以前对注册的 URL 方案比较宽松,但几年前收紧了,所以现在如果你提交了一大串方案,而应用程序又没有很好的理由使用这些方案,你就会被退回来。
> 有什么能说明我没有读过这篇文章?
我指出的是,你对 iOS 的描述与文章相同,但同时又声称 iOS 与文章有很大不同。
> 在 iOS 上,你可以在 plist 中注册 URL 方案,这些方案并不是 “你打算查询的外部应用程序”,而且列表也不必 “非常简短且有动机”
> 我也是一名 iOS 开发人员–是的,确实如此。
哪部分是 “是的”?
我们都能很快达成共识,即 plist 中的 URL 方案不是 “注册应用程序”。你可以先忽略 URL 方案的区别,然后让我来证明在该列表中找到有几十个应用程序的应用程序是轻而易举的事。
无论如何,你对原帖的冷嘲热讽和对 Reddit 的叫嚣仍然让我大吃一惊,因为你知道自己在这件事上是 100%错误的。
你现在的处境实在是太奇怪了,因为你已经占据了太多的地盘,而你却还要为这一切辩护:你不能声称这是一个远程准确的描述,而且你也读过关于 Android 和 iOS 不同的文章。这已经是一场闹剧了,再加上骂 HN 因为帖子质量低而成为 Reddit……我的天啊,我的朋友。
> 我当然看了。你对我恶意的假设不也明确违反了 HN 的准则吗?
不,因为我说的是 “有明显的迹象”,而不是 “你没读”。
另外,为什么不读就是 “恶意 ”呢?
你极其专注于对他人进行攻击和感知,请退一步说:”但我不认为这是错的。你在尝试。为什么你要求的人也去尝试就错了?- 你不应该编造一种解释,把温柔地责备你的无礼变成援引规则和指责你的恶意
它需要 root,但你可以用 LSPosed[1] 模块(如 XPrivacyLua[2])来阻止/欺骗它。我听说还有闭源的 AppOps[3],但我从来没用过。
[1]: https://lsposed.org [2]: https://github.com/M66B/XPrivacyLua / https://github.com/0bbedCode/XPL-EX [3]: https://appops.rikka.app
我没听说过 XPrivacyLua,它的作者就是优秀的 NetGuard[0] 的作者,我已经用了好几年了。
有趣的是,XPrivacyLua 已经不再受支持了,Google 将从 Play 商店下架该专业版配套应用程序,因为它使用了 QUERY_ALL_PACKAGES 权限。[1]
[0]: https://github.com/M66B/NetGuard [1]: https://xdaforums.com/t/closed-app-xposed-6-0-xprivacylua-an…
的确,这是一个遗憾。不过,XPL-EX 是一个分叉版(虽然目前有很多内部代码(重新)编写),功能更强大,同时保持了熟悉而简单的用户界面。看起来很不错!
Windows 应用程序(不是从 MS 商店安装的)能否枚举所有打开窗口的窗口标题?仅凭标题就能监控所有网络流量的应用程序有多难?
合法问题。ChatGPT 在这里帮不上什么忙,因为我真的想找人说说为什么这在现实世界中并不可行。
这里的长期 Win32 程序员 – 是的。这是设计使然。打个比方,Windows 就像是一个 “高度信任的社会”。
有专门用于此目的的函数 EnumWindows() 和 EnumChildWindows()。
请参阅实用程序 “Windows Modifier v2.00”(当我第一次下载它时,有许多关于它的网页,但现在即使我搜索这个确切的名称,也几乎找不到任何关于它的结果,这表明互联网已经变得多么健忘)和微软自己的 Spy++ (SPYXX.EXE),以了解此功能的示例。
对于你不信任的应用程序,解决办法就是根本不使用它,或者在虚拟机中使用。
如何识别不应信任的应用程序?有时,只有在有证据表明不应该信任时,才会假定信任。这对我来说毫无意义。为什么最初的信任会如此轻易地给予?
一个解决办法是不使用第三方应用程序,但大多数人不会走这条路。虚拟机的想法倒是个不错的选择。
> 为什么最初的信任如此容易获得?
因为这种架构早于当前的隐私噩梦。
事实上,它早于互联网的普及。如果你没有或几乎没有机会上网,你怎么可能从商店里买来的软盘/小型磁盘上安装一个恶意程序呢?
而且,由于 Windows 在市场上大肆宣传可以兼容复古系统,所以它就一直这样了。
在那个时代,企业的大规模监控受到普遍憎恨,软件不是一种服务,”打电话回家 “或需要互联网连接被大多数用户认为是不可接受的。
> 仅凭标题就能监控所有网页流量的应用程序有多难?
尽管不是非常准确(因为页面标题的可变性很高),但如果您不安装浏览器插件,ManicTime 和 ActivityWatch 等工具会使用窗口标题来跟踪您的浏览器历史记录。
https://www.manictime.com/
https://activitywatch.net/
Windows 有一个完全不同的(更松散、更古老的)安全模型。在同一桌面上运行的窗口之间没有安全屏障。(特别是,“UAC [仍然] 不是一个安全屏障”–当你点击确定/输入密码来提升一个进程时,你实际上是在提升整个桌面和你正在运行的所有程序)。
不,这完全是错误的,而且会让人发疯。只有使用管理员令牌启动 explorer.exe,才能提升整个会话的权限。
权限升级在 Windows 上的工作原理是,几乎所有程序都会默认使用标准用户访问令牌启动,进程可以通过几种方式请求管理员访问令牌,其中最主要的是 UAC。当进程获得该令牌后,该进程的权限就会被提升。
它更类似于 “sudo ”而不是 ‘su’,这是有道理的,因为它的祖先是 Windows 2000 中的 “runas”。
(只有)进程被提升了,但进程在共享会话上有一个窗口,操作系统无法成功保护共享会话(以及用户、注册表和磁盘等)的进程相互控制。
从 API 的角度来看,只有一个进程被提升。从安全角度看,如果一个进程被提升,那么所有进程都会被提升,因为缺乏有效的机制来阻止它们。
不,即便如此,还是有诸如强制性完整性控制和 Windows 消息限制/UIAccess 等问题。我想深入研究一下,但我刚从外面回来,哈哈。不过这些术语应该能帮助你深入了解!
我完全同意桌面操作系统是一种传统的安全模式,它们无法与 iOS 相提并论。安卓系统正在取得进展,但由于它也是从开放的全权限模式起步的,所以也有同样的缺陷。
能否从非提升进程注入提升进程?
哦,是的,AutoHotKey 的这种能力实际上是很多有用的 AHK 脚本的基础。
没错;我认为 API 的存在是件好事,问题只是要确保它只用于用户允许的用途。你自己的脚本可以检查和控制你自己机器上的任意窗口 => 很好,第三方程序在未经你知情同意的情况下做同样的事情 => 很糟糕。(实际上,这意味着我是广泛权限系统的忠实拥护者,该系统可以根据用户的指示拒绝或伪造响应)
大多数 Windows 应用程序都没有沙盒,因此它们能够抓取窗口标题是你最不需要担心的事情。https://xkcd.com/1200/
你是在讨论键盘记录程序吗?我无法想象 Windows 会故意将明文密码保存得比需要的时间更长。
话虽如此,但也要考虑到以你的用户权限运行的应用程序是如何以这些权限完全访问文件系统的,例如,它可以读取你的整个主目录。这包括你的浏览器配置文件和所有 cookie,以及应用程序未加密存储在那里的所有凭据。更不用说,即使是最邪恶的营销人员也能如愿以偿地获得所有指纹信息。
哦,还有 UAC 确认将应用程序权限提升到 root 权限?无论如何,人们都会在不阅读需要访问的内容的情况下欣然确认,所以你可以为所欲为。
Windows 的安全模式并不存在。
显然,恶意程序不可能获取你在已关闭的隐身标签页中输入的登录凭证。也许没有沙盒,但病毒还不能穿越时空。不过,如果许多用户使用密码管理器,而他们又不善于检测恶意软件(因此他们的密码迟早会被键盘记录),那么这样的防御也不会有多大作用。
> 病毒还不能穿越时空
_Windows Recall to the rescue! _
实际上,WINDOWS 在内存中保留病毒的时间比你想象的要长很多,因此 Mimikatz https://github.com/ParrotSec/mimikatz
在 hn 上看到如此幼稚的安全问题令人不安。
,不是因为 windows 以明文形式保存密码,而是因为在 windows/linux/mac 桌面上运行的未 Sandboxed 应用程序几乎可以无限制地通过其他途径获取密码,因为它们至少可以读取其他 windows 的整个状态。
我不知道,也许 macos 在这方面略胜一筹,wayland 在这方面肯定也有可取之处,但桌面操作系统和 $locally_installed_app 意味着 $locally_installed_app 基本上已经拥有了 root,这意味着有大量的载体。
我希望看到基于 Linux 的发行版能使用 Android 中的一些沙盒功能,这将是对目前情况的一个数量级的改进。
所以就像一个键盘记录器。谢谢
> 我无法想象 Windows 会故意把明文密码保存得比需要的时间更长。
不知道是不是真的[1]。此外,任何程序都可以从 Windows 凭证管理器中读取任何保存的密码。
https://en.wikipedia.org/wiki/Mimikatz
没错,一点也不难。
这个提示给了我一些看起来还不错的 Python
> 你能不能做一个简单的 Windows 程序,从正在运行的程序中获取所有窗口标题
绝对可以。这就是 90 年代 AOL 上聊天机器人的工作原理,基本上就是使用 win32 API 中的 FindWindow 和 FindWindowEx 函数。从那以后就没怎么变过(如果有的话)。
大多数应用程序不仅可以看到系统中所有其他打开窗口的标题,还可以记录您的所有按键、截图、录制您或您屏幕的音频/视频,或复制/删除您主目录中的所有文件,而无需任何明确的许可或通知。
至少 Windows 和大多数传统(至少是 X11)*nix 系统都是如此。
我认为安卓系统做对了一件事……默认情况下,它以不同的用户身份运行每个应用程序。这意味着不同的主文件夹和对其他应用程序的不可见性。
最初,Android 应用程序可以在任何其他应用程序之上绘制,这简直就是网络钓鱼的噩梦。他们花了很长时间才将其作为一项权限,然后每个人都同意了,直到他们最近终于添加了气泡 API。
权限是很难做到正确的,不幸的是,Android 的反应速度非常慢。
在 WINDOWS 上,你应该无法直接使用在管理员下运行的应用程序来完成(大部分)这些操作,不过当浏览器是一个正常进程时,这也算是一个小小的安慰。
我不确定我们是否能很快摆脱这些问题,因为任何开箱即用的解决方案都会在本质上限制用户的自由,而这种自由在 PC 上已经存在了几十年
我在 Windows 上绝对做过所有这些事情,甚至是商业应用程序。不过,键盘记录程序(即调用 SetWindowsHookEx)有时会被杀毒软件标记。
在 Windows 中,您可以使用针对 Windows 标题的 api,我知道这一点是因为我正在构建一个需要它的应用程序
>对于文件管理器、浏览器或杀毒应用程序等极其特殊的用例,谷歌允许 QUERY_ALL_PACKAGES 权限,从而提供了对已安装应用程序的完全可见性。
极端 “我的*。我的银行应用有这个权限,我的相机应用、通讯录应用、时钟应用、Google Home 等等也都有这个权限。就因为这个,我的银行应用被转移到了一台旧 iPad 上。
是啊,我以前在一家广告网络公司工作,每款使用 Android SDK 的游戏都有这个权限,这是我们用来避免为用户手机上已有的游戏显示广告的一种方法
“住在班加罗尔特定邮政编码下的蓝勾微博账户每年都会热烈讨论一周的那个”
对于不熟悉印度文化的人来说,这意味着什么?
作为一个对班加罗尔/班加罗尔比较熟悉的人,我想对此作进一步的阐述。
布卢姆风险投资公司(Blume Ventures)几乎像时钟一样,每年都会发布一份关于当年印度初创企业生态系统状况的报告,由于班加罗尔的初创企业几乎都集中在科拉曼加拉(Koramangala)或高铁布局周围(这些都是班加罗尔内部的地方,有自己的密码/地址码),你会发现很多人都在网上谈论这个问题。
^ This.
您可以在 https://blume.vc/reports/indus-valley-annual-report-2025 或 https://www.indusvalleyreport.com/ 上阅读相关报道或档案。
博客中的 ppt 来自 2024 年报告 – https://docsend.com/view/zqgfupfzyud499hn。不过,“印度 1-2-3 框架 ”已经过时了。它是由一位零售业创始人(Kishore Biyani)在 2000 年代提出的。
此外,Koramangala 和 HSR 布局也是班加罗尔较为富裕的地区。
非常感谢。这完全说得通!
会不会类似于美国的硅谷?
班加罗尔/班加罗尔有很多热点地区(PIN 码是邮政地址码),那里有很多初创公司,大多是电子商务、广告技术、在线教育等领域的公司,他们有动力向你大量倒卖。
我猜这是指那些想成为有影响力人士的人购买了 Twitter(X) 高级会员,并根据半生不熟的客户信息发布信息。
主要是讽刺,所以请谨慎对待。我无法判断其准确性,但可以解释这里的文化背景。
谢谢,这很有帮助。某个星期是指某个特定的节日吗?
估计报告每年都会出来,之后会讨论一段时间
我不知道,听起来像是任何一周。
他谈到的 PowerPoint,并显示在下面一行
我知道,但这丝毫不能说明蓝色勾号、特定的针码和某一周之间的联系。
当然,这些可能都是对富裕社会成员的暗示,但我希望能得到更详细的解释。
蓝勾/勾选 = 经过验证的 Twitter 账户,从 Twitter 工作人员选择给谁打蓝勾开始,蓝勾只给记者、技术专家等 Twitter 工作人员想放大的人。如今,蓝色勾号只表示您购买了高级服务,但我们还记得其原始含义。这不是印度人的专利。
PIN 码 = 邮政编码。
是的,有趣的问题是,作者在暗示哪些 PIN 码,一年中的哪一周,为什么。这正是我想知道的。其余的我想我自己能弄明白。
不过,既然如此 奶牛交易应用程序有什么意义?是那些把牛视为神圣的人在使用,还是相反?
很抱歉,但我不得不提出这个问题:这些评论是诱饵吗?这些问题有点太天真了,但又是有目的的。
不,我只是换了一个框架,在寻求文化意义的同时却忽略了显而易见的东西。
我的预期是这样的:
有这样一个文化群体,有些人称之为 WASPs,但他们通常不会自称为 WASPs。他们不是一个正式的组织,而更像是一个固定的社会群体,个人出生在一个特定的社会分层体系中。
他们的文化生活(以及在很大程度上他们的业务流程)是按照一个年度周期组织的,从北方冬至后不久开始,尽管他们声称这是他们宗教领袖的出生日期。在这段时间里,在新的周期开始之前,他们的业务实际上会停顿一周,以进行庆祝活动。
他们中的一个小群体在科技行业具有很大的影响力。他们中最杰出的领导人和他们的公司经常聚集在邮编为 94024、94040、94301、95014 和 95030 的地区及其周围,这个地区被称为 “硅谷”。
Exodus Privacy 会让你了解这类你应该避免安装的安卓应用 https://exodus-privacy.eu.org/
Swiggy 在权限要求方面其实是个小角色,“只有 ”47 项。与之相比,微博有 104 项,微信有 93 项,Facebook 有 85 项,Snapchat 有 71 项(当然,这些应用可能会提供额外的服务,需要一些额外的权限,但绝对不值得把你的所有数据都交给他们……)。
这在 root 社区是众所周知的事实,因为有些银行应用程序只搜索 root 应用程序!
如果你root了(我建议你不要这么做)并安装了LSPosed,你就可以通过隐藏我的应用列表(HMA)[1] 或HMAL(我更喜欢它,因为它更简约)[2]
[1] https://github.com/Dr-TSNG/Hide-My-Applist
[2] https://github.com/pumPCin/HMAL
我不知道是不是我的问题,但我在安卓系统上运行的每一类应用都是孤立的 “孤岛”(比如工作配置文件)。浏览器、银行应用程序、社交媒体、即时消息、工具等。几乎所有东西都与其他非相关组隔离开来。
如何做到?
只是哇。我以为谷歌早在几年前就打了这个补丁,但我猜他们还留了一些后门。
与其说是 “后门”,不如说是疏忽。他们已经有了一个 “前门”,即操作系统预先授予他们的权限,所以他们没有必要再设计像博文中提到的 android.intent.action.MAIN query 那样的后门了。
我再也不相信谷歌了。他们已经不是几年前的谷歌了,总体上已经衰落了。
Play Store 审核和一切工作有时需要数周时间,我无法忍受这种情况。
我基本认为任何 Android 手机都存在巨大的隐私泄露和安全风险。我希望 iPhone 会好一些,但我想我错了。
撇开隐私问题不谈,阅读印度人如何使用手机以及他们如何使用英语还挺酷的。我以前从未听说过 “beyond the pale”,而且我仍然不确定 “多个印度 ”的概念是什么意思,因为其中有些是墨西哥,有些是非洲……?
我也从没听说过大多数应用程序会被分析或追踪。外面的世界一定很不一样。
从上下文来看,我认为 “多个印度 “的意思是印度不同人群的社会经济状况及其应用程序的使用情况。特定应用程序的存在说明了他们属于哪个人口群体。
换句话说,最富有的人群使用某些应用程序,相当于墨西哥人,其次是不太富有的人,相当于印度尼西亚人,而穷人则相当于撒哈拉以南非洲人。
Beyond the pale 在英语中常用。pale “是一个桩子,意思是超出可接受范围的界限(用桩子围起来的栅栏,因此有这个词)。它在 19 世纪中期开始流行。它可能与 “the Pale ”一词有关,后者指的是都柏林周围控制较好的爱尔兰盎格鲁化地区,但没有足够的证据来确定这一点。无论如何,这肯定不是印第安语。
>我仍然不清楚 “多个印度 ”的概念是什么意思,其中有些是墨西哥,有些是非洲……?
这不是很明显吗?就像 “中美洲 ”这个短语一样。它的字面意思并不是不同的国家。它指的是不同的财富类别:从整体上看,印度人在经济上大致相当于墨西哥,大致相当于印度尼西亚(较贫穷),大致相当于撒哈拉以南非洲(最贫穷)。有大约 10 亿印度人仍然非常贫穷,如果你的初创公司想让他们的客户花一分钱,他们就不可能进入市场;有大约 3 亿印度人可能会进入某些应用程序的市场,但可能主要是免费广告资助的应用程序;还有大约 1.5 亿印度人是一个相当不错的市场,因为他们会很乐意在有价值的东西上花钱。
这些都是我在阅读文章时了解到的。
有道理,谢谢!我喜欢阅读其他文化是如何做软件的。
有人知道 GrapheneOS 是否有针对这种情况的保护措施吗?
目前还没有。只能通过多个配置文件间接
我有点惊讶
https://discuss.grapheneos.org/d/13302-query-all-packages-pe…
https://discuss.grapheneos.org/d/7800-how-to-mitigate-identi…
稍后
对于更广泛的受众:但不要认为 GrapheneOS 不关心隐私。我相信这是有原因的(我并没有读完所有链接的主题),而且它还为你提供了大量其他保护措施和工具–例如配置文件、通过应用程序禁止所有网络访问的功能等
核心开发人员的理由[1]:
> 我相信有很多系统 API 也能提供这些信息,我指的不仅仅是直接提供信息的 API。
> 在无法检测已安装应用程序的情况下,阻止直接获取已安装应用程序的列表并无益处,因此必须拒绝这一特定的功能请求。它必须是一个更大、更全面的防止应用程序查找其他应用程序功能的一部分。这就意味着要彻底阻止与非系统组件的通信,这与应用程序的做法大相径庭,而且会排除很多东西。[…]
> 请求应该是阻止应用程序发现哪些应用程序已安装,因为低于这个标准的任何功能都没有隐私/安全价值。在禁止访问列表的同时,无论如何也不能阻止发现安装了哪些应用程序,这是没有意义的。
限制应用程序可见性的公开议题是 [2]。
[1] https://github.com/GrapheneOS/os-issue-tracker/ issues/149#issuecomment-553590002 [2] https://github.com/GrapheneOS/os-issue-tracker/issues/2197
我明白他的意思,但似乎阻止获取应用程序列表的简单方法虽然并不完美,但仍能防止大多数隐私滥用行为。
是的。
隐私并不是一个开关,而是要减少数据泄露。
有时我真的不理解石墨烯的开发,比如他们拒绝设置反转返回和最近按钮。是的,这不是 AOSP 的一部分,但做起来非常简单,而且所有制造商都会提供这一功能,因为人们需要它。
https://github.com/GrapheneOS/os-issue-tracker/issues/2197
> 值得承认的是,应用程序检查手机上安装了哪些其他应用程序有一些合理的理由。例如,应用程序可能会检查哪些 UPI 应用程序已安装,以显示相关的支付选项。
不对 不,不,不。如果你想知道我们是怎么陷入这种境地的……嗯,正是因为这样的东西。奇怪的是,有人在深究的同时也在为自己找借口。
从来没有人说过 “我想避免每隔一个月多点击一次,所以我想我最好永远把我的数据/电话/生活完全开放给巨头公司”。当然,他们也不会这样说 tinycorp。人们在对抗性思维方面实在是太差了,好人需要在坏人之前为他们做到这一点。你想让有组织犯罪集团就约会软件和不忠行为敲诈你的政客吗?你想在下一次文化或政治气候发生变化时,轻松地对{脆弱人群}进行大规模攻击吗?
得了吧。总之,难道不应该由手机操作系统本身来处理这些问题,而不是由应用程序来发布应用程序吗?如果不是,那就让人们选择付款方式,如果没有,就提示错误。
> “我想避免每隔一个月就多点击一次,所以我想我最好永远把我的数据/电话/生活完全开放给 megacorp。”
不,当我点击一个链接却没有被重定向到本地应用程序时,这超级烦人。这种情况一个月不止一次。在很多事情上,网络体验要糟糕得多。
酷,但 “只要在某些时候能给某些人带来更多便利,就能带来乌托邦式的未来 ”这种态度仍然让我感到困惑。难道你认为像这样的信息泄露从来没有害死过人,将来也不会吗?
很好,因为这就是 Intents 的作用。没有哪个应用需要知道你安装的所有应用才能通过链接启动它们。
在安装一个应用程序之前,你能在 Play 商店里看到它到底允许与哪些其他应用程序对话吗?你能在手机上看到并覆盖吗?
不,没有任何直接的方法,不过理论上可以:
1. 从镜像网站下载 APK
2. 反编译 APK 以获取 Android 清单
3. 检查 Android 清单以检查博文中讨论的内容
标题应为:“每个人都知道手机上的所有应用程序”: “每个人都知道你安卓手机上的所有应用程序”
非常简单:
像 Swiggy 和 Zepto 这样的大公司会挖掘你的数据。有些数据是为了他们的利益,但有些数据他们将来可能会出售。这些所谓的创始人其实不过是应用市场上的另一匹狼,他们想把你的数据抽走,然后再卖掉。因此,当他们倾销时,或者当一些风险投资公司带着钱来时,他们不会仅仅出售他们的应用程序,而是将其作为一整套数据和分析出售,一些公司可以利用这些数据和分析出售他们的产品,或者一些风险投资公司可以利用这些数据和分析出售他们的股票给别人。这并不难。
至于小型应用程序,这些应用程序会将开发外包给提供 “套餐 ”的人,由他们来开发和维护应用程序。这些 “套餐 ”的逻辑与上述相同,只是它们都来自某个模板,因此你可能会被某个非常随意的应用程序要求提供定位权限、摄像头或麦克风,而这一切都与你无关。
虽然 iOS 的质量在下降,但其中有些东西确实很重要,而且在 iOS 上运行得更好。
感谢谷歌的 “顶尖人才 “Android 开发人员,感谢他们开发了这个漏洞百出的权限系统。
>请记住,下次当你随意在安卓设备上安装一个应用程序时,这些信息就会被广播给全世界。数据掮客会利用这些信息对你进行分析,与其他广告网络中关于你的数据进行交叉引用,最终决定你下次点萨摩萨时要付多少钱。
这些数据经纪人是谁?他们是否为公众所知?他们是否有应用程序接口(API),让企业发送客户 ID、邮件或其他信息,从而获得消费概况,帮助调整特定客户的价格?
我知道这听起来很邪恶。但银行和保险公司不是早在几十年前就开始合作为客户建立档案了吗?这不是同样邪恶吗?
如何从 Android 应用商店下载应用程序并读取它们的清单文件?
这是否意味着可以做一个网站,列出所有这些清单文件,这样用户就可以决定不使用利用这一漏洞的应用程序?
是的,这就是所谓的替代应用商店,而且现在有不少这样的商店。
嗯……安卓应用商店的应用程序是如何进入替代应用商店的?你怎么知道它们是同一个应用程序,而不是篡改过的?
的确,我们的手机就像我们生活的小窗口。我们拥有的应用程序反映了我们的习惯和兴趣。
> 我甚至不知道该从何说起来解读这种疯狂。了解我手机上安装的是 Xbox 还是 Playstation 应用程序对 Swiggy 的核心功能有什么重要意义?
可能与广告技术对个人信息的渴求有关,也可能与指纹识别有关(不确定在手机应用中是否存在指纹识别)。
如果他们只是对应用程序进行审核,并禁止滥用应用程序的公司进入应用程序商店,这将对遏制这种行为起到很大作用。这是可行的,只是任何时候都没有那么多流行的应用程序。
他们至少可以从关闭主要意图过滤漏洞开始。
也许是个疯狂的问题:现在有两部手机是个好主意吗?一部只用来打电话,尽可能多地删除应用程序。编辑:哎呀,我忘了发短信。哪款手机可以发短信?
手机曾有/有些仍有用户配置文件/帐户选项,因此您可以在一部手机上完成这些操作
如果您不需要在主号码上安装任何应用程序,那么双 SIM 功能手机是不错的选择(但要特别挑剔,有些手机简直就是垃圾)。
如果你需要所有的智能设备,可以选择搭载石墨烯操作系统的 Pixel 6。您可以将各种 “类别 ”的应用程序限制在专用配置文件中,这样它们就永远不会互相知道,而且您还能获得大幅提升的安全性(本月内发布多个版本)和显著改善的隐私。
非常好,谢谢。
你还在用手机打电话吗?
当然,令人惊奇的是,这是它最好的功能之一,能让你真正与真人通话。(这是一种人与人之间的联系,但不知为什么,有血有肉的机器人却对这种联系嗤之以鼻)。
但我想说的是,原谅你用问题回答问题的糟糕方式,我很想知道你对双电话想法可能带来的难题的看法。
只是好奇,为什么会专门针对印度的应用程序?
从博客的副标题 “印度网络兔子洞的故事 ”来看,作者很可能是印度人。”
博客的标语是 “来自印度网络兔子洞的故事”。
因为子包的作者专注于印度网络。根据他们的描述 “来自印度网络兔子洞的故事”。
严格只安装 F-Droid 应用程序的另一个绝佳理由。
我的日常座驾上只有极少的应用程序,大部分来自 F-Droid。我的物联网网络上的一台旧 iPad 上有任何其他需要的应用程序。
这如何解决这个问题?F-Droid 是否会进行某种额外的筛选,以阻止应用程序这样做?
首先,F-droid 只接受开放源码软件应用程序,因此根本不存在间谍软件的动机。其次,f-droid 上明确标注了反功能。第三,f-droid 应用程序的策划就像非常严格的 linux repo。
作为一个开放源码软件应用程序并不能提供足够的保护。大多数开放源码软件应用程序的行为并不十分恶劣,但也有一些。作为开放源码软件本身并不能保证此类问题的解决。
> 第三,f-droid 应用程序的策划就像非常严格的 linux repo。
是的,我知道。我的问题是,这也是他们筛选的对象之一吗?
f-droid 上的软件包明确列出了所有需要的权限,其中提到的权限似乎被列为 “查询所有软件包”: 允许应用程序查看所有已安装的软件包”。这并不能将应用程序标记为具有 “反功能”,但你至少可以通过这种方式做出更明智的决定。
这很酷,但文章说,大多数做这类事情的应用程序并没有使用查询所有软件包的权限,而是使用了提供它们正在检查的应用程序的特定列表的功能,而这是没有权限限制的。
是有权限限制的。它明确指出,应用程序必须像其他权限一样在清单中声明。因此,这确实是针对每个应用程序的特定权限。如果 F-Droid 想要的话,它可以查询(不确定它是否会这样做)
你是不是在帖子还没读到不需要在清单中列出应用程序的 MAIN 漏洞时就停止阅读了?F-droid 是如何描述 MAIN 的?
是的,因为文章有点长。但我相信这也是可以检测到的,因为它一定在清单中。
这篇文章已经表明它是可检测的。但谷歌没有检测到,我也不清楚 F-Droid 是否也能检测到……
> 它没有将应用程序标记为具有 “反功能”
我想他们一定是忙着勾选 “可与非自由服务通信 “之类的 “反功能”,而没有注意到这类事情。
(不,是真的。F-Droid 会将 Mastodon 客户端等应用程序标记为 “反功能: 非自由网络服务”,大概是因为它可以被配置为连接运行非自由软件的服务器?)
嗯,我的情况尤其复杂: 我不使用谷歌服务,只从 f-droid 安装应用程序。
如果我有 Uber,但我的手机上有多个相互竞争的应用程序,而且我授予了 Uber 查看这些应用程序的权限,我会得到更便宜的乘车服务吗?
我的应用程序 Limit Buddy (https://www.limitbuddy.com) 除其他外还使用了 QUERY_ALL_PACKAGES。如果没有它,就不可能开发出这款应用。但对于更普通的使用情况,就没有必要使用它了。
苹果公司通过 ScreenTime API 提供了更强大的隐私保护解决方案,但这也让 Limit Buddy 这样的应用更难开发。
这既迷人又可怕
很好的分析。谷歌应该注意到这一点。全球范围内使用的应用程序也会这样做吗?
来自文章–Facebook、Instagram、Snapchat、Subway Surfers 和 Truecaller 也使用这种方法
在我看来,应用程序通常代表着对使用它们的人的过度蔑视。
充其量,这是设计者的傲慢(夹杂着蔑视),比如 “你想从短信中选择一些文字吗?我已经决定了。不行。”
但大多数情况下,我们被蔑视的原因很简单,因为我们是一个麻烦,阻碍了为实际客户(广告商)提供服务的目标,而客户是为我们的工作买单的。
应用商店并不神秘。它们是寻租者和广告技术信息中介的漏斗。
如果你认为它们会给你带来任何好处,那你就大错特错了。
这是意料之中的事,因为手机平台并不完全是 Tor 浏览器。与任何平台一样,即使没有这个例子,大型 API 也会有很多方法来对人进行指纹识别,除非开发人员从一开始就不遗余力地进行防范。就像在 UNIX 上,你可以看到每个人正在运行的进程及其命令行一样。
……在 Android 上。我相信我的 Ubuntu Touch 手机不会有这个问题(如果只是因为它几乎没有任何应用程序的话)。
有意思的是,Ubuntu Touch 是如何对应用程序进行沙盒管理的?它有一次性权限吗(像安卓一样)?
其实我也不知道,我只是开了个玩笑,说UT上的应用程序太少了。我希望它有 Snap 类型的沙盒,但设置应用的安全和隐私部分并没有告诉我太多。
android* phone
如果什么都不做,为什么不要求卸载竞品应用呢?
如果谷歌真的关心隐私,每个应用程序都会在自己严格的监狱中运行,默认情况下权限会被伪造。此外,以色列或其他国家的恶意软件也不会轻易出现。现在的情况是,应用程序知道我在做什么,我也会立即收到有针对性的垃圾邮件。
> 如果谷歌真的关心隐私
他们在这方面装过吗?
他们做了很多工作,让人觉得他们确实相信这一点,但我不确定他们的效果如何。
> 应用程序知道我正在做的一切
我想我在这件事上说的是废话。
但我同意他们可以做得更多,而且他们似乎并不在意。
iPhone 用户阅读此文喜欢…. 我爱我的 iPhone。
如果这篇文章解释了为什么 iPhone 在某些方面比 Android 差,他们就会说 “管它呢,我爱我的 iPhone”,所以我看不出这种说法增加了什么新信息。
我不确定这是真的。我希望有一个可折叠版本的 iPhone。
我只是认为,更好的隐私和安全控制以及更严格的应用程序指南是人们选择 iPhone 而非 Android 的原因之一,所以这对一直关注 iPhone 的人来说并不奇怪。这是我们对 “围墙花园 ”方式的权衡,但我认为这对智能手机来说是合理的,而对通用计算机来说就不那么合理了。
几小时前,我读到一条评论,大意是 “管它呢,我不指望苹果公司在人工智能方面有多好,所以 Siri 一辈子烂下去也没关系,我还是爱我的 iPhone”…… 我不禁被这种为一家 3 万亿美元的公司技术无能辩护的评论逗乐了。
我的解决办法是使用手机自带的应用程序,避免依赖其他任何东西。问题解决了。我使用信号、uber、MyChart(我的医生)和一些银行应用程序,但仅此而已。
使用安卓系统不必牺牲隐私。GrapheneOS 是一个很好的选择,即使你仍然需要一些 Play Store 应用程序,你也可以在辅助配置文件(推荐)或主配置文件(不推荐)中安装 GMS 兼容性层和 Play Store,而不会让谷歌无限制地控制你的整个操作系统。与 microG 相比,该兼容层能更好地减少攻击面,并提供更强的加固。
或者,你也可以继续使用标准设置,接受自己自愿为公司提供前所未有的个人数据访问权限的事实。令人费解的是,许多人似乎更关心的是打破熟悉的常规,而不是与公司分享生活中的每一个细节所带来的风险,因为这些公司会反过来与一个(或多个)敌对政府分享这些数据。
在 HN 上,人们对政府越权和滥用权力的担忧肯定是有道理的。但令人难以理解的是,为什么许多人在有理由担忧的同时,却不采取更加连贯和理性的方法–比如仅仅试图保护自己的个人数据,而不是刻意和自愿地将数据完全提供给那些与这些人声称严重惧怕和憎恶的敌对政府暗中勾结的公司。
TLDR,想要隐私,就不要使用谷歌产品。
[deleted]
这是 LLM 生成的评论,但采用了不同网站的风格?我建议调整一下提示。
廉价模特爱用的标签
android lmao
有些应用程序(如 Obsidian)需要权限才能访问设备上的每个文件。令人惊讶的是,Obsidian 并没有因此而受到指责。
如果我没记错的话,这是因为如果没有这个权限,它们只能查看音频、视频和图片文件。这样你就无法安心地使用它来完成工作。
就我个人而言,我将它与 GrapheneOS 上的存储范围一起使用。
这是因为它将文件存储在那里,这样你就可以用其他权限同步它们。此外,如果笔记存储在内部应用存储空间,也不会被删除。文件系统访问有更多细粒度的选项,但如果使用这些选项,就会将自己限制在最新的 Android 版本中。
根据 Exodus 的说法,它没有跟踪器,而且也是一款开源应用,所以你可以看看它都做了些什么(不过说实话,我并没有检查过手机版的情况)
。如果有应用需要叫停,那么还有比 Obsidian 更糟糕的。
根据大多数报道,Obsidian 并非开源。
当然,Obsidian 不需要查看设备上的所有文件,它只需要查看用户需要查看的文件。
> 根据大多数报告,Obsidian 并不开源。
在 FreeBSD 上,我可以从源代码创建一个完整的副本(事实上我必须这样做,因为没有二进制包)。唯一的问题似乎是许可证,而不是源代码的可用性。就我个人而言,我并不关心许可问题(反正我也完全不理会),而且这并不妨碍你查看源代码。
我认为黑曜石是一个非常棒的软件包,我只是碰巧从 OneNote 转过来的,OneNote 是微软的庸才,甚至没有 Linux 应用程序。而且,网络版的OneNote非常没用,它需要每天刷新,而且只能在同一个标签页中搜索,不能搜索整个笔记本。真是一团糟。黑曜石是如此快速高效 <3 而且还有完全的自托管同步功能,我也在使用。
Android 上的 Obsidian 源代码似乎不可用。即使是一般的报告,源代码似乎也不可用。
可能是 freebsd 版本使用了一些二进制库包?
粗略的搜索表明,用于安装 obsidian 的 freebsd “构建脚本 ”之一使用了 obsidian 本身的二进制包,而不是从源代码构建。
奇怪的是,黑曜石在这里似乎相当流行,许多人都以为它是开源的,其实不然。
你可能是指这个:https://github.com/jgrafton/freebsd-obsidian
这只是用户贡献的东西。它也只是官方的 ports 套件。那里只有一个 makefile 和一些 electron 的配置文件 (electron 在 FreeBSD 上的编译有点麻烦, 因为没有软件包)
现在, 它可以自动更新, 但都是 JavaScript。没有二进制文件。
但无论如何,它对我来说已经足够安全了。特别是因为开发社区经常使用它。如果它做了什么不好的事情,很快就会被发现。
“官方 “软件包似乎来自黑曜石的 Nix 构建,我的理解是,它使用二进制缓存来获取黑曜石二进制文件。
但是没有权限,要么全有,要么全无。我同意权限应该更加细化;每个应用程序都应该默认拥有自己的文件存储区域,“访问任何内容 ”应保留给文件浏览器、备份软件等。
Android 已经支持范围存储。因此不清楚为什么 Obisidian 需要整个文件系统的权限。
是的,但仅限于后来的安卓版本。如果要开始支持这些版本,就必须升级到相应的 API 级别,这就意味着要放弃对旧版本的支持。他们可能还不想这么做。这一款是 Android 10 及以上版本,而 Android 10 版本的范围存储是相当基本的,所以你可能需要更晚的版本。我猜他们还想支持旧手机。
代价是用户的数据隐私大大降低。
我在 GrapheneOS 安卓手机上使用了 Storage Scopes,效果很好。它可以准确决定应用程序可以访问哪些文件或文件夹。