V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
helloccav
V2EX  ›  Android

请问安卓 7.0 是否修复了安卓 6.0 里面的“不给权限就不运行”的“bug”?

  •  
  •   helloccav · 2016-12-09 18:34:19 +08:00 · 20863 次点击
    这是一个创建于 2917 天前的主题,其中的信息可能已经有所发展或是发生改变。

    手上没有 7.0 的机子,希望有 7.0 机子的朋友解答一下。

    64 条回复    2016-12-18 03:03:27 +08:00
    loshine1992
        1
    loshine1992  
       2016-12-09 18:39:14 +08:00   ❤️ 7
    这不是系统决定的,一个需要显示地图和位置的界面,进去了之后向用户请求定位权限,用户选择了拒绝。

    普通应用会显示地图不显示定位
    文艺应用会弹窗告诉用户你拒绝了权限所以我们没办法定位,要不要再打开
    二逼应用直接退出
    fatedier
        2
    fatedier  
       2016-12-09 18:41:38 +08:00
    @loshine1992 阿里云的 APP 属于二逼应用。。。
    mokeyjay
        3
    mokeyjay  
       2016-12-09 18:42:12 +08:00 via Android
    @loshine1992 可惜国内大部分都是二逼
    soland
        4
    soland  
       2016-12-09 18:42:44 +08:00   ❤️ 1
    这明显是程序自己设计的
    “不给权限就不运行”的“ function ”
    helloccav
        5
    helloccav  
    OP
       2016-12-09 18:44:16 +08:00
    @loshine1992 这不是系统问题,这是程序自己的问题,所以我才在 bug 上加了双引号。
    dtfm
        6
    dtfm  
       2016-12-09 18:45:32 +08:00   ❤️ 1
    刚刚用了楼上例子试验了一下,系统: Android 7.1 应用:百度地图

    第一次登入:应用提示需要定位权限及存储权限 ---均点击拒绝
    拒绝后系统提示:应用至少需要存储权限 ---点击拒绝
    程序退出

    第二次登入:应用提示需要定位权限及存储权限 ---均点击拒绝
    拒绝后系统提示:应用至少需要存储权限 ---点击允许
    程序正常运行
    点击定位,提示定位失败
    手动给予定位权限后,可恢复
    Mirage09
        7
    Mirage09  
       2016-12-09 18:45:35 +08:00 via iPad
    微信也是二逼应用
    微博每次打开都会跳窗口让我开权限
    inoris
        8
    inoris  
       2016-12-09 18:46:20 +08:00   ❤️ 1
    @helloccav 既然你也知道了是程序自己的问题,那么就算更新到 Android 10.0 都解决不了。缺少了一个集中的市场来监管,开发者自然就会为所欲为。
    kokutou
        9
    kokutou  
       2016-12-09 18:47:09 +08:00
    7.x 有部分应用会在通知栏有常驻通知。。。要等软件更新。。。
    helloccav
        10
    helloccav  
    OP
       2016-12-09 18:47:15 +08:00
    @inoris 为什么安卓 5 可以解决而安卓 6 、 7 解决不了呢?这算是倒退吧。
    honeycomb
        11
    honeycomb  
       2016-12-09 18:48:12 +08:00 via Android
    @helloccav

    显然 Google 不会打算改变这个机制也不会在 play store 进行强有力的压制。

    好在我们有 appops 这个可以直接使用的机制。

    好在我们有 xposed
    iCyMind
        12
    iCyMind  
       2016-12-09 18:49:17 +08:00 via Android
    所以只能用 xprivacy
    honeycomb
        13
    honeycomb  
       2016-12-09 18:51:00 +08:00 via Android
    @helloccav Android5 连权限机制都没有,哪来“可以解决”?

    如果你说的是 appops 的话, appops 在 6.0 比 5.x 更强, 7.x 的 appops 又比 6.0 的强。

    @kokutou 那个必须显示常驻通知是前台服务设计所然,问题出在那些应用滥用了早期版本 Android 的前台服务有 bug ,可以被绕过。
    honeycomb
        14
    honeycomb  
       2016-12-09 18:53:49 +08:00 via Android   ❤️ 4
    这里绝大多数人都没注意到一件事:

    语言设置成中文语言的微信会强迫你给位置权限。
    设置成英文,且系统语言也是英文时,微信不会这么做
    honeycomb
        15
    honeycomb  
       2016-12-09 18:54:31 +08:00 via Android
    @iCyMind appops

    @dtfm 百度这样的做法至少是不坏的
    dtfm
        16
    dtfm  
       2016-12-09 18:58:15 +08:00   ❤️ 1
    @honeycomb 这个很正常嘛,中文用户是已经圈好的地盘,英文用户是待扩展用户,自然应该讨好,从表现看微信的吃相已经算是非常优雅。
    honeycomb
        17
    honeycomb  
       2016-12-09 19:08:22 +08:00   ❤️ 1
    @dtfm
    这样的吃相也是不可以的
    inoris
        18
    inoris  
       2016-12-09 19:20:00 +08:00
    @helloccav 「为什么安卓 5 可以解决而安卓 6 、 7 解决不了呢?这算是倒退吧。」

    因为是 Android 6.0 引入的运行时权限才带来的问题。新功能的出发点是对用户更友好、更透明,然而被不要脸的人滥用了。
    schezukNewTos
        19
    schezukNewTos  
       2016-12-09 19:31:35 +08:00   ❤️ 1
    没用,应用总是可以在刚启动的时候,检测一遍权限是否全部开启。
    系统必须能够提供沙盒功能来欺骗应用,使之以为真的获得到了想要的数据。
    cunkouwdy007
        20
    cunkouwdy007  
       2016-12-09 19:35:19 +08:00 via Android
    有些应用你点接受就是无限文艺,拒绝就二逼了。

    靠开发公司自我约束是不太能根本解决的,靠谷歌市场可以稍微规范下。但是国内应用主要下载渠道又不是谷歌市场,所以就只能靠自己解决了
    Guaidaodl
        21
    Guaidaodl  
       2016-12-09 19:36:22 +08:00
    说到底这个其实是市场的功能,让审核人员去判断获得的权限是否合理。不过国内的市场,什么时候 Google Play 达到 App Store 的地位就可以了。
    1315553854
        22
    1315553854  
       2016-12-09 19:38:25 +08:00
    没修复
    ctsed
        23
    ctsed  
       2016-12-09 19:39:24 +08:00 via iPhone
    @dtfm hh 优雅
    Anhedonia
        24
    Anhedonia  
       2016-12-09 20:10:02 +08:00
    很好奇 有没有人来提华为
    kingcos
        25
    kingcos  
       2016-12-09 22:20:21 +08:00
    好烦这些软件啊,一上来就要定位,要电话,要联系人。。。
    还是祈祷苹果不💊。。
    hebeiround
        26
    hebeiround  
       2016-12-09 23:22:27 +08:00 via iPhone
    好烦这些用户啊,一上来先想方设法屏蔽你的各种权限,地图应用不让定位、文件管理不让写入
    还是祈祷苹果不💊
    Mirage09
        27
    Mirage09  
       2016-12-09 23:39:07 +08:00 via iPhone
    @Guaidaodl 没啥意义 我在 Google Play 上下的微信一样不给权限就闪退
    505243267
        28
    505243267  
       2016-12-09 23:43:14 +08:00 via iPad
    @honeycomb 我注意到了!但是不给定位权限主页的搜索都不让用, iOS 下都可以。
    hysw2009
        29
    hysw2009  
       2016-12-10 00:47:15 +08:00 via Android
    几乎所有软件都要通话权限,我知道你想检测是不是在用流量,但还是非常恶心
    flyfishcn
        30
    flyfishcn  
       2016-12-10 01:02:48 +08:00
    @hysw2009 那做个合理推测,如果不做检测,软件直接在线加载各种高清资源图,更新数据等。用户是不是又要说, XX 软件偷跑流量?
    Tink
        31
    Tink  
       2016-12-10 02:56:03 +08:00 via iPhone
    @helloccav 安卓 5 可以解决??
    ltux
        32
    ltux  
       2016-12-10 04:27:43 +08:00 via Android
    这个说到底是谷歌的锅,跟什么没有统一应用市场没什么关系。谷歌就不该开放接口让应用检测是否获取了权限。应该在用户拒绝授予权限而应用又请求相应权限的情况下,返回随机虚假数据,而不是通知应用你没有这个权限。
    ltux
        33
    ltux  
       2016-12-10 04:31:10 +08:00 via Android
    @Tink 所谓安卓 5 可以解决,是指:安卓 5 还没有放出““检测是否被授予权限”这个接口,但是用户又能通过某些应用开启系统隐藏的权限控制。应用没法检测是否获取到权限,也就不会出现不给权限就退出这样耍流氓的情况了。
    RqPS6rhmP3Nyn3Tm
        34
    RqPS6rhmP3Nyn3Tm  
       2016-12-10 08:46:47 +08:00
    被拒绝之后系统应该给假数据,但是这样以来又会出更多的问题,比如用假数据的 hash 加密就没人解得开了
    给空数据太容易被识破
    所以,还是要督促阿里巴巴提升支付宝 iOS 端的使用体验,跟上 Android 的步伐,不给权限就闪退
    ranleng
        35
    ranleng  
       2016-12-10 09:04:25 +08:00 via Android
    @honeycomb 然而每次开启后微信还是会要你权限 只不过不退出了
    lrh3321
        36
    lrh3321  
       2016-12-10 09:12:17 +08:00
    @loshine1992
    像 QQ 阅读 这种,不给录音权限居然就自己退出了,我实在想不懂一个阅读器,强制要要录音是想搞什么飞机
    Hardrain
        37
    Hardrain  
       2016-12-10 09:17:48 +08:00
    LZ 的意思是 Android 7.0 是否像 Android 6.x 一样,应用程序能够知晓自己请求的权限被拒绝授予?
    hysw2009
        38
    hysw2009  
       2016-12-10 09:37:35 +08:00 via Android
    @flyfishcn 不知可不可以用 WiFi 权限来检测 WiFi 是否开启?如果不能的话,就是谷歌的错了
    bertonzh
        39
    bertonzh  
       2016-12-10 09:52:18 +08:00
    除非有工具可以提供虚拟权限,或者 Google Play 统一天下
    GhostFlying
        40
    GhostFlying  
       2016-12-10 09:57:48 +08:00 via Android
    其实 iOS 上我也碰到过某国产应用不给联系人就不给继续的
    hold2
        41
    hold2  
       2016-12-10 11:12:44 +08:00 via Android
    @bertonzh Google play 上的软件一样流氓,微信微博不给权限一样不给用
    zhaohui318
        42
    zhaohui318  
       2016-12-10 11:26:27 +08:00
    @hysw2009 错了,通话权限并不是用来检测流量的,是用来获取 imei 来进行数据统计的
    lech
        43
    lech  
       2016-12-10 11:38:32 +08:00
    @honeycomb 但是每次打开都会询问
    learnshare
        44
    learnshare  
       2016-12-10 11:53:24 +08:00
    不运行是应用自己决定的,不是系统决定的
    8e47e42
        45
    8e47e42  
       2016-12-10 13:00:37 +08:00
    这种 app 就应该直接下架,然后搞个大新闻
    Quaintjade
        46
    Quaintjade  
       2016-12-10 13:19:43 +08:00 via Android
    @loshine1992
    其实不给定位权限也能用 wifi 或基站大致定位,只要有查看网络连接 /查看 WLAN 连接和完全的网络访问权限即可,而这两个权限不 root 是关不掉的。
    didikee
        47
    didikee  
       2016-12-10 14:38:31 +08:00 via Android
    这不是 bug ,谢谢
    honeycomb
        48
    honeycomb  
       2016-12-10 15:45:28 +08:00 via Android
    @hebeiround 为何要转移话题?
    显然这里的话题值得是应用迫使用户提供非必要的权限你是无视的对吧。

    @hysw2009
    要通话权限的目的几乎一定是拿 IMEI 。
    @flyfishcn 获取使用哪种网络与电话权限无关

    @ltux 是的, iOS 里应用虽然同样能检查权限是否获得,但有 app store 压着没关系。

    @BXIA 你想到的几乎不可能实现, Google play 自己都不想做这种监管,何况被屏蔽了
    honeycomb
        49
    honeycomb  
       2016-12-10 15:51:24 +08:00 via Android
    @hysw2009 自己看文档,检查当前使用什么流量的 API 是怎么设计的。
    @bertonzh 我们的 appops , island , xprivacy 部分或间接地提供了这些能力。
    @GhostFlying iOS 上这样的应用相对少到几乎不存在
    @hold2 play store 没有管不给权限就不给用的事情是重大错误,而且开发者协议对这一点明确表示放任。
    @lech 但是没有强迫实行,就是区别。
    @8e47e42 就是
    @Quaintjade 不给定位权限是无法使用 WiFi/基站信息的,拥有查看网络连接 /WLAN 等权限是没有用的。这件事在 iOS 上也是如此。

    只是这样的设计有一个漏洞,应用总是可以获得当前连接的 WiFi 的 bssid 与 SSID ,而这两个数据只要一份就已经是很强的定位数据了。
    Quaintjade
        50
    Quaintjade  
       2016-12-10 16:10:02 +08:00 via Android
    @honeycomb
    我就是这个意思。关了定位权限只是无法用系统接口进行定位,但仍能用第三方定位服务,只要把当前周围 wifi ssid 、强度信息发给第三方服务器即可。

    查看 WLAN 信息不仅能获得当前连接的 Wifi 信息,而且还能获得周围存在的 wifi 信息( ssid,bssid,强度),鉴于城市里到处有 ChinaNet 信号,这个定位应该很准。

    刚试了下网络连接信息 App ,关闭位置权限时似乎无法获取当前基站 CID 和 LAC 。
    RqPS6rhmP3Nyn3Tm
        51
    RqPS6rhmP3Nyn3Tm  
       2016-12-10 18:53:27 +08:00 via iPhone
    @honeycomb 所以还得督促阿里巴巴提升 iOS 端支付宝使用体验。借刀杀人嘛
    BROWNURSIDAE
        52
    BROWNURSIDAE  
       2016-12-11 02:10:42 +08:00 via Android
    @honeycomb 话说有人做了 appops 7.0 以上有 gui 的软件了
    https://play.google.com/store/apps/details?id=rikka.appops
    honeycomb
        53
    honeycomb  
       2016-12-11 07:37:23 +08:00 via Android
    @Quaintjade 你错啦,关闭定位权限时拿不到周围(未连接的) WiFi 信息的,但可惜的是即便在 iOS 上也能拿到当前连着的那个热点的 bssid/SSID ,这才是真正的麻烦
    honeycomb
        54
    honeycomb  
       2016-12-11 07:37:44 +08:00 via Android
    @BROWNURSIDAE 是的,相当好的软件
    nn574204775
        55
    nn574204775  
       2016-12-11 09:13:24 +08:00 via Android
    @honeycomb 要是加广告会不会被打死(
    Quaintjade
        56
    Quaintjade  
       2016-12-11 11:45:19 +08:00
    @honeycomb
    那么为什么像这种 wifi 分析 app 即便没有定位权限,也能查看周围未连接的 wifi 信息呢?
    https://play.google.com/store/apps/details?id=com.farproc.wifi.analyzer

    我用的是 6.0.1 ,不知道是不是 7.0 的权限有所不同?
    honeycomb
        57
    honeycomb  
       2016-12-11 15:50:12 +08:00
    @Quaintjade
    看上去我打脸了
    honeycomb
        58
    honeycomb  
       2016-12-11 15:55:19 +08:00   ❤️ 1
    @Quaintjade 我做了下测试:

    1 ,这个应用没有要位置权限,确实可以拿到周围未连接的 wifi 信息
    2 ,在 AppOps 里 igonre 掉这个应用任何和一个和位置有关的 OP(其实只有 WIFI_SCAN 可选),它就拿不到周围未连接的 wifi 信息了

    而会出现 1 的原因,我认为它是用了 target SDK 低于 API23 的设置编译的,你可以尝试一下用 targetSDK 大于等于 23 的情况下,不给定位权限,还能不能调用 WIFI_SCAN 这个 OP 对应的 API
    abc123ccc
        59
    abc123ccc  
       2016-12-12 10:41:14 +08:00
    不给权限就不运行,在苹果手机上也有类似的软件。都是监督不严造成的。我要是监督,这类的软件一律下架。恶心人呐。
    abc123ccc
        60
    abc123ccc  
       2016-12-12 10:41:42 +08:00
    话说,怎样投诉某个苹果 APP 呀???
    allenhu
        61
    allenhu  
       2016-12-12 13:25:22 +08:00 via Android
    不给权限不运行,那就卸载吧
    Vvfan
        62
    Vvfan  
       2016-12-13 12:35:39 +08:00
    it's feature
    814084764
        63
    814084764  
       2016-12-16 15:50:26 +08:00
    记得在 6.0 之前,有人就说:安卓怎么没有权限管理啊!烂 APP 什么权限都要,不能限制一下吗。。
    现在有了权限管理,又被说:什么啊!不给权限就闪退。。

    其实都是 APP 的错。国内的流氓软件!擦!
    loveminds
        64
    loveminds  
       2016-12-18 03:03:27 +08:00
    应该加上虚拟沙盒
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3371 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:57 · PVG 19:57 · LAX 03:57 · JFK 06:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.