安卓下普通 app 貌似可以随意获取已安装 app 列表 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
clrss
V2EX    Android

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

  •  
  •   clrss 2022-11-02 11:00:32 +08:00 20354 次点击
    这是一个创建于 1079 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    34 条回复    2022-11-23 11:18:31 +08:00
    kera0a
        1
    kera0a  
       2022-11-02 11:08:08 +08:00
    iOS 也算间接可以吧
    需要开发者提前把 app scheme 列表声明好,然后就能扫描有没有安装了。
    但有点限制,列表好像不能超过 100 个,没有 url scheme 的 app 不能扫.
    paradoxs
        2
    paradoxs  
       2022-11-02 11:09:33 +08:00
    iOS 的 scheme 算是个漏洞, 后面应该要被修复的。
    yuyu2140
        3
    yuyu2140  
       2022-11-02 11:13:11 +08:00
    Android 11 ( API 30 )调整了软件包可见性,不要慌。
    ysc3839
        4
    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
        5
    mtdhllf  
       2022-11-02 11:52:22 +08:00   1
    @ysc3839 #4 权限默认是允许的,但是带这个权限会影响 app 上架,要有合理的需求
    yfugibr
        6
    yfugibr  
       2022-11-02 11:59:45 +08:00 via Android   1
    11 或是 12 似乎是新加了什么限制,但是基本没用,想读照样读
    有 root 可以试试这个
    https://github.com/Dr-TSNG/Hide-My-Applist
    abc8678
        7
    abc8678  
       2022-11-02 12:05:15 +08:00 via Android
    MIUI 有这个选项,但默认勾了允许。每次装软件都要麻烦一通,存储空间隔离,magisk 隐藏,应用列表的允许改为拒绝
    ysc3839
        8
    ysc3839  
       2022-11-02 12:17:12 +08:00   1
    @ysc3839 更正一下,前面提到的探测应用的问题,我找了个 target api 是 Android 12L 的终端应用测试了一下,发现都是会返回 No such file or directory ,而另外几个 target api 低于 Android 11 的则会返回 Permission denied 。所以说这个问题是已经解决了的,只是没有针对旧应用启用。
    shawndev
        9
    shawndev  
       2022-11-02 13:37:18 +08:00
    @paradoxs

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

    原来我手机上的“读取应用列表”这个权限,原来只是个安慰剂。。。。
    PolarNightUnion
        19
    PolarNightUnion  
       2022-11-02 18:02:42 +08:00
    @zqlcrow 绝大多数的魔改 rom 的权限管控都是按照正常的权限使用规范进行控制的,但总是有奇奇怪怪的 api 或是骚操作可以获取这些信息,所以一般闲着没事干不要装来路不明且乱七八糟的软件。
    基本上通过 0 权限获取到的信息已经可以精准定位某台设备的特征了。
    WOLFRAZOR
        20
    WOLFRAZOR  
       2022-11-02 18:07:09 +08:00
    国外的应用也是这样。应用检测到 root 就闪退(手机系统是 Android 13 ,没有安装 lsposed )。
    是这样的,“恶意”关联这个手段已经很久了。为啥好查就因为有关联(数字联盟 ID 、数美 SDK/数美设备指纹、闪验 SDK )
    4 楼提到了多用户,这个得是另外一个真正的用户才行(直接用工作资料不行,仍然会报错)
    ysc3839
        21
    ysc3839  
       2022-11-02 18:11:22 +08:00
    @PolarNightUnion 在 MIUI Android 12 测试了一下,拒绝“读取应用列表”权限后仍然能读取到应用列表。该 app 的 target api 是 Android 10 ,不确定 target api 是 Android 11 时有没有这个问题。
    PolarNightUnion
        22
    PolarNightUnion  
       2022-11-02 18:19:00 +08:00
    @ysc3839 不靠权限获取这些信息的,这个我当时改机的时候就测试过了,你改啥都是 hook 返回你修改的值,但这玩意是靠各种 API ,和各种骚操作实现的,有能力的大佬可以解个包研究一下。
    ysc3839
        23
    ysc3839  
       2022-11-02 18:22:33 +08:00
    @WOLFRAZOR 我说的多用户只是为了防止读取到应用。实测对某个 app 开启 MIUI 的应用双开后,把主用户中该 app 卸载掉,然后用 17 楼提到的 app 读取应用列表,是读不到双开应用的。但如果把 17 楼提到的 app 双开后运行,反而能读取到主用户的应用列表。
    Damn
        24
    Damn  
       2022-11-02 18:30:42 +08:00
    @PolarNightUnion 万普拉斯的 ColorOS12 闪退。。
    ysc3839
        25
    ysc3839  
       2022-11-02 18:50:10 +08:00   1
    @PolarNightUnion 反编译看了下,就是使用 android.content.pm.PackageManager.getInstalledApplications() 读取的,不知道为什么 MIUI 的读取应用列表权限无效。
    abc8678
        26
    abc8678  
       2022-11-02 21:30:54 +08:00 via Android
    @PolarNightUnion “隐藏应用列表”我是在酷安听说的,目前用来忽略更新。因为 play 商店没有这个功能
    abc8678
        27
    abc8678  
       2022-11-02 21:32:01 +08:00 via Android
    @ysc3839 appops 呢?
    WebKit
        28
    WebKit  
       2022-11-03 02:21:24 +08:00 via Android
    安卓这个是默认给的权限,可以在权限设置里关,好像 Android13 有限制了,默认不能访问安装列表了。
    WebKit
        29
    WebKit  
       2022-11-03 02:27:26 +08:00 via Android
    其实根本不需要任何权限,直接构建相应包名的 intent 就好了,报错就是没有安装,没有报错就是安装了
    Biye9012
        30
    Biye9012  
       2022-11-03 09:01:27 +08:00 via Android
    @paradoxs 何出此言
    Woodrow
        31
    Woodrow  
       2022-11-03 09:06:21 +08:00
    是,emui 、MIUI 是给的,要么直接授予,要么使用 app 时授予
    ysc3839
        32
    ysc3839  
       2022-11-03 11:31:31 +08:00
    @abc8678 AOSP 就没支持读取应用列表权限。
    maokabc
        33
    maokabc  
       2022-11-03 18:22:40 +08:00 via Android
    谷歌 play 需要视频说明这个权限用在哪
    Joshuahui
        34
    Joshuahui  
       2022-11-23 11:18:31 +08:00 via Android
    几年前的红米手机权限里有这个,原生 Android13 没有
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2303 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 16:05 PVG 00:05 LAX 09:05 JFK 12:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86