安卓下普通 app 貌似可以随意获取已安装 app 列表

2022-11-02 11:00:32 +08:00
 clrss

系统: 鸿蒙 2.0 (安卓 10), 后续版本不明.

这很危险吧. 某些软件是不是要改包名&自己打包比较好?

话说 iOS 下普通 app 能这样吗?

17074 次点击
所在节点    Android
34 条回复
kera0a
2022-11-02 11:08:08 +08:00
iOS 也算间接可以吧
需要开发者提前把 app scheme 列表声明好,然后就能扫描有没有安装了。
但有点限制,列表好像不能超过 100 个,没有 url scheme 的 app 不能扫.
paradoxs
2022-11-02 11:09:33 +08:00
iOS 的 scheme 算是个漏洞, 后面应该要被修复的。
yuyu2140
2022-11-02 11:13:11 +08:00
Android 11 ( API 30 )调整了软件包可见性,不要慌。
ysc3839
2022-11-02 11:13:19 +08:00
是的。据说 Android 12 开始才有限制,但我手头上没有 AOSP 12 的设备,无法确认。MIUI 是较早就加入了“读取应用列表”权限,而且在 Android 12 中这个权限默认是允许的。
另外,即使限制了读取应用列表,也没办法限制探测某个包名的应用。比如我想探测 com.example.app 这个应用是否安装,可以直接访问 /data/data/com.example.app ,如果已安装会返回 Permission denied ,未安装则会返回 No such file or directory 。一种解决办法是把应用安装到另一个用户下 (Android 的多用户机制,Work Profile 以及许多厂商定制系统的应用双开也是基于多用户)。
mtdhllf
2022-11-02 11:52:22 +08:00
@ysc3839 #4 权限默认是允许的,但是带这个权限会影响 app 上架,要有合理的需求
yfugibr
2022-11-02 11:59:45 +08:00
11 或是 12 似乎是新加了什么限制,但是基本没用,想读照样读
有 root 可以试试这个
https://github.com/Dr-TSNG/Hide-My-Applist
abc8678
2022-11-02 12:05:15 +08:00
MIUI 有这个选项,但默认勾了允许。每次装软件都要麻烦一通,存储空间隔离,magisk 隐藏,应用列表的允许改为拒绝
ysc3839
2022-11-02 12:17:12 +08:00
@ysc3839 更正一下,前面提到的探测应用的问题,我找了个 target api 是 Android 12L 的终端应用测试了一下,发现都是会返回 No such file or directory ,而另外几个 target api 低于 Android 11 的则会返回 Permission denied 。所以说这个问题是已经解决了的,只是没有针对旧应用启用。
shawndev
2022-11-02 13:37:18 +08:00
@paradoxs

你是认真的吗?首先 iOS 工程配置 URL Scheme 有数量上限,而这个上限远不足以覆盖多数应用(考虑到某些程序不同版本有不同的 URL Scheme )。其次也不是所有应用都定义了 URL Scheme 。
shawndev
2022-11-02 13:38:16 +08:00
@paradoxs 硬要说和帖子相关的漏洞也应该是这个 https://github.com/illusionofchaos/ios-nehelper-enum-apps-0day
mikeluckybiy
2022-11-02 13:48:00 +08:00
一直都是这样的,设备 ID 和 APP 、帐号都可以关联,这也就是为什么很多时候破案比较轻松,比如登录 QQ ,我就能知道你是在哪个 ID 的设备上登录的,然后再去其它几大互联网平台查询设备 ID ,相同匹配身份信息,大数据平台会显示你的地址、身份证号、手机号等基本信息,这样破案就高效了。
lisongeee
2022-11-02 13:48:16 +08:00
wuyiw
2022-11-02 14:19:45 +08:00
鸿蒙 3.0 (据说基于 12 )有这个权限控制了
tromoli
2022-11-02 14:41:45 +08:00
Google Play 上架的话这个权限会有影响的,需要说明用途( ps:之前项目一直都带这个权限,也没提示,前几天因为这个更新被拒了,才给去掉。。。)
hapi
2022-11-02 15:17:46 +08:00
12 下也是有的,有个我有个游戏就是检测到加速器存在就运行不了
tunggt
2022-11-02 15:19:17 +08:00
实际上安卓系统。很多国产 app 不需要权限,就可以获取你电话号码,imei 等信息。
国行手机+国内网络,你根本无处藏身。
PolarNightUnion
2022-11-02 17:39:47 +08:00
随意获取应用列表?,Play 商店有个 0 权限获取一切的软件(除了隐私信息和敏感信息),很久之前玩改机的时候拿它看过参数。https://play.google.com/store/apps/details?id=tester.app.permission.zero.zeropermissionapp
zqlcrow
2022-11-02 17:52:46 +08:00
@PolarNightUnion

原来我手机上的“读取应用列表”这个权限,原来只是个安慰剂。。。。
PolarNightUnion
2022-11-02 18:02:42 +08:00
@zqlcrow 绝大多数的魔改 rom 的权限管控都是按照正常的权限使用规范进行控制的,但总是有奇奇怪怪的 api 或是骚操作可以获取这些信息,所以一般闲着没事干不要装来路不明且乱七八糟的软件。
基本上通过 0 权限获取到的信息已经可以精准定位某台设备的特征了。
WOLFRAZOR
2022-11-02 18:07:09 +08:00
国外的应用也是这样。应用检测到 root 就闪退(手机系统是 Android 13 ,没有安装 lsposed )。
是这样的,“恶意”关联这个手段已经很久了。为啥好查就因为有关联(数字联盟 ID 、数美 SDK/数美设备指纹、闪验 SDK )
4 楼提到了多用户,这个得是另外一个真正的用户才行(直接用工作资料不行,仍然会报错)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/892011

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX