未 root 的设备,究竟该怎么彻底禁用 app 获取位置? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
moonkiller
V2EX    Android

未 root 的设备,究竟该怎么彻底禁用 app 获取位置?

  •  
  •   moonkiller 2016-10-13 17:34:22 +08:00 14689 次点击
    这是一个创建于 3340 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在的国产 App 真是一个个流氓得要死,都关闭 GPS 定位了
    还要通过通过各种手段获取你的位置信息,求彻底关闭或伪造的方案
    19 条回复    2016-10-14 13:47:13 +08:00
    sigroma
        1
    sigroma  
       2016-10-13 17:55:00 +08:00
    gps 太慢了,实际上各个地图应用都是用的 wifi 信号和 gps 共同工作来定位
    只要你给了网络权限,基本就没啥办法吧
    bertonzh
        2
    bertonzh  
       2016-10-13 17:57:42 +08:00
    用代理
    shlabc
        3
    shlabc  
       2016-10-13 17:58:54 +08:00
    换个思路,买 2 台手机。 1 台 ip6+,只装 10+必备应用。另一台买个能 root 性能又足够的。
    honeycomb
        4
    honeycomb  
       2016-10-13 18:11:03 +08:00 via Android
    在标准的 Android 设备上,只要:

    关闭定位权限且使用 app 时不要连入无线局域网即可。

    如此 app 拿不到除了本地 IP 以外的一切和定位有强关联的信息。

    如果连 IP 也不能要的话,只能是 iOS 那样彻底断网了。
    qceytzn
        5
    qceytzn  
       2016-10-13 18:52:28 +08:00
    @honeycomb 那么“在标准的 Android 设备上,关闭定位权限且使用 app 时通过手机上的 SS 或者 VPN 连接 wifi 的情况下” app 还能获取到真实的定位信息吗?

    另外就是即使走手机流量的,也能定位到最近的基站吧?最远不过 2 公里吧?
    helloccav
        6
    helloccav  
       2016-10-13 19:11:57 +08:00
    装 xposed 框架,再装 XPrivacy 伪造位置, 这不算 root 吧?
    zyxc
        7
    zyxc  
       2016-10-13 19:24:25 +08:00   3
    @helloccav 兄弟 你告诉我装 xposed 框架不用 root 吗?
    JohnChu
        8
    JohnChu  
       2016-10-13 19:34:56 +08:00 via Android
    我对于隐私也比较注重,你可以看我发的帖子。今天发现了一个应用,叫 Apk permission remover 。应该能满足你的需求
    app 定位貌似有两种,一种是 GPS ,一种是通过 WiFi 和基站模糊定位,两种权限都可以用这个软件禁止。
    JohnChu
        9
    JohnChu  
       2016-10-13 19:35:30 +08:00 via Android
    @zyxc 不一定要 root ,有些用 recovery 刷入就行了
    honeycomb
        10
    honeycomb  
       2016-10-13 19:58:43 +08:00 via Android
    @qceytzn

    我认为这种情况下应当获取不到和位置有关联的信息,但我不知道在挂上 VPN 后,从 networkmanager 的 API 读取到的本地 IP 地址是基站分配的还是 VPN 的。

    当然要排除掉系统存在另一个能获得定位数据的 app x ,然后那个 x 又开放了一个接口,且当前应用去调用 x 。如果是这样的情况,它不受权限机制限制。早两年 Google play service 出过类似的 bug 。


    关闭定位权限后,无法获得基站信息(相关的函数需要有定位权限,否则 appops 是不让它调用(抛出 SecurityException )或返回 null/空值的,具体根据系统版本与应用的 targetAPI level 有关。
    honeycomb
        11
    honeycomb  
       2016-10-13 20:01:59 +08:00 via Android
    @zyxc 在 nexus 这样的手机上,装 xposed 还真不用 root 手机:

    art 的部分是从 recovery 安装的,而为了使用自定义 recovery ,只要解锁 bootloader 就可以了
    xposed companion app 本身无论是安装还是运行都不需要 root 权限

    所以不需要 root

    @JohnChu 这个问题用 appops/运行时权限机制就能解决了,不需要那么麻烦且要付出重新打包这样代价的方法。 appops 从 4.3 开始就有了。
    JohnChu
        12
    JohnChu  
       2016-10-13 21:03:03 +08:00 via Android
    @honeycomb 我觉得你讲的是系统内建的权限管理,那个并不能满足我的需求,我希望能够控制应用程序读取 IMEI 等信息。
    honeycomb
        13
    honeycomb  
       2016-10-13 21:14:37 +08:00 via Android
    @JohnChu

    Android6.0 开始有一个电话权限(运行时权限),在不允许电话权限的时候就不能读 IMEI ,遇到微信这样用耍流氓(看到没有这个权限就不肯运行)的,就进一步用 appops ,把微信的 OP_READ_PHONE_STATE 置为 ignore ,同时允许电话权限,这样微信读不到 IMEI 且耍不了流氓。

    如果在更早的系统上阻止获取 IMEI ,确实需要第三方软件的帮助了。

    这样符合你的需求吗?
    realpg
        14
    realpg  
    PRO
       2016-10-13 22:23:52 +08:00
    @JohnChu 非移动数据接入的话,非铁通长宽非法 NAT 的宽带, IP 定位就足够了……
    GhostFlying
        15
    GhostFlying  
       2016-10-13 22:34:28 +08:00
    JohnChu
        16
    JohnChu  
       2016-10-14 08:39:37 +08:00 via Android
    @honeycomb 我使用的是三星的系统, android 版本 6.0 ,系统自带的权限管理中没有出现如 OP_READ_PHONE_STATE 这样细化的管理,请问 appops 怎么实现?谢谢
    honeycomb
        17
    honeycomb  
       2016-10-14 08:58:48 +08:00 via Android
    @JohnChu 5.1 以上的版本在未加改动前,只有 adb shell 的 appops 命令能更改每个应用的 appops 配置
    JohnChu
        18
    JohnChu  
       2016-10-14 11:53:56 +08:00
    @honeycomb 我 ignore 了如下权限:
    OP_READ_PHONE_STATE
    READ_SMS
    RECEIVE_SMS
    CALL_PHONE
    GET_ACCOUNTS
    是不是我的 IMEI 不会被读取到了?(尽管禁得有点多)
    honeycomb
        19
    honeycomb  
       2016-10-14 13:47:13 +08:00 via Android
    @JohnChu 阻止获取 IMEI 只需要 ignore 掉 OP_READ_PHONE_STATE 就足够了,你列出的剩下四个和 IMEI 无关,是涉及其它操作的 op 。

    如果想弄明白上述说明的具体流程,可以这么做:

    1 ,在 Android 文档里找到获得 IMEI/meid 的函数,也就是 TelephonyManager.getDeviceId()

    2 ,到 Android 源代码里找到这个函数,看它是如何触发 appops 检查的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     861 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 21:50 PVG 05:50 LAX 13:50 JFK 16:50
    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