是否可以安装应用程序并排除其某些请求的权限?


88

有时,我想安装一个需要某些权限的应用程序,而我认为这确实是不需要的。我可以在没有授予这些权限的情况下安装该应用程序吗?例如,GPS位置,电话状态,互联网连接等。

一旦安装了应用程序,是否可以更改其权限?


这是一个值得关注的相关问题:android.stackexchange.com/questions/3294
Matt


Answers:


30

Android 4.3之前的版本(Jelly Bean)

不。如果没有定制的ROM,那就是全有或全无。这是Google鼓励开发人员确保他们要求应用程序正常运行所必需的绝对最低权限的部分原因。

缺少获取和修改应用程序代码的过程,您要么需要接受访问请求,要么不使用该应用程序。如果设备已植根,则存在一些替代方法

Android 4.3 / 4.4(部分也是5.x)

有一个半隐藏的权限管理器(App Ops),可以通过第三方应用程序访问,但不需要root或自定义ROM。Android Police已在此处进行了介绍

但是请注意,谷歌曾说过这是错误发布的,而较新版本的Android再次禁用了此功能。

Android 4.4以上

除了上述App Ops之外,在这里您还可以将Xposed框架(适用于Android 5+,请参见此处)与XprivacyProtect My Privacy等模块一起使用。虽然这将要求您的设备植根,但它提供了其他功能。

Android 6+

marcioggs在单独的答案中概述了Android M提供的功能


3
如果您是root用户,则可以使用DroidWall排除网络访问权限,但这是特定的例外。
TREE

8
不幸的是,Google决定将许多娱乐应用程序需要的东西归为一组,例如,在没有电话功能的应用程序很少需要的东西(例如确定电话号码)的许可下,确定是否有通话处于活动状态。
克里斯·斯特拉顿

17

CyanogenMod 7支持此功能。通过转到Settings->CyanogenMod Settings->Applications最新版本并检查“权限管理” 来激活它。然后,您可以通过从应用程序管理列表(Settings->Applications->Manage applications)中选择一个应用程序来允许和禁止权限。有一篇关于endgaget文章,带有Youtube演示。

免责声明:这对于某些人可能是显而易见的,但是拒绝对应用程序的许可可能会导致相当严重的崩溃。但是,如果您拥有受CM支持的设备,并且愿意生根并安装它,则可以享受逐许可控制(及其附带的任何危险)。

实际上,由于权限管理实现容易导致崩溃,因此已从版本9的CyanogenMod代码库中将其删除。但是,最新的CyanogenMod 10.1夜间版本现在包含一个被称为“ Privacy Guard ”的功能。Privacy Guard会为应用程序提供空白数据,而不是阻止应用程序访问其请求的数据。

例如,如果在Privacy Guard下运行的应用程序请求您的联系人列表,则CM只会返回一个空列表,从而使该应用程序在功能上认为您的手机上没有存储任何联系人。


1
可悲的是,伪造数据没有考虑集成到CyanogenMod中。
丹尼斯·尼古拉

8

有一个App Shield应用程序。它实质上是对.apk进行重新打包,并从manifest中删除权限。股票,无根电话的绝妙主意。但是,像CyanogenMod(从版本7开始)一样,它很容易崩溃(强制关闭)。


更新: App Shield似乎不再需要维护。当前可以在某些“个人Aptoide存储库”中找到它,例如MixalKarbyfio。建议现在使用最新的内容。


7

注意: LBE Privacy Guard不再维护,仅适用于4.2以下的Android版本。

警告:如果您使用的是Jelly Bean(Android 4.1+),请确保检查是否已针对Jelley Bean更新了LBE。目前(2012年7月27日)它仍不兼容,这将导致您的设备在Jelly Bean上启动循环。这意味着您可能必须将设备出厂重置。现在建议改为使用Xprivacy(需要root)。


LBE Privacy Guard可以在安装期间和安装之后阻止每个应用程序的特定权限。这是已经存在了一段时间的看似中文应用程序的英文版本(我不以任何方式隶属于它们);它已经有超过100,000个下载。我还没有尝试过,但我计划明天尝试。

您还可以将其设置为,例如让Facebook在要访问您的位置时显示提示(是/否)等。Play商店的屏幕截图:

在此处输入图片说明


我认为这是最好的权限管理应用程序-我已经使用了一段时间了,它很棒。
标志2012年

@Logos:我已经使用了几个小时,我同意!
Cerberus

在CM 10.0的Xperia ray上不起作用。我只需要重新安装设备!
rubo77

@ rubo77:糟透了!(您在顶部阅读了我的警告吗?)
Cerberus

是的,但是我想我可能会摆脱它;)您应该补充一点,没有办法恢复引导循环,并且它不能在许多设备上运行。查看Play商店中的反馈,恰好一半的选票是5,而一半的投票是1,所以我猜每秒钟设备都会失败
rubo77


3

您可以将Xposed FrameworkApp Settings Module一起使用来拒绝应用程序权限。您还可以使用它来更改DPI设置,从而允许应用程序在平板电脑模式下在手机上运行,​​反之亦然(以及更改总体大小)。它对我来说效果很好。不过,您将需要root才能安装它。

感谢Izzy指出需要模块。根据他们的评论,您还可以使用XprivacyProtect My Privacy来实现此控制。


在撰写此答案时,大多数Xposed框架安装都捆绑了应用程序设置模块。该模块支持此功能。
Paarth '16

1
感谢您仍然关心您的“旧答案” –对此+1 :)因此,我们随后将清理(删除)我们的评论:) PS:请留下您的第
一句话

0

我偶然发现了一个名为Permission Remover的应用程序,它允许您在安装APK包之前从APK包中删除权限。适用于已安装和下载的APK。此方法很方便,因为它不需要您root设备。


0

根卸载程序是一款不错的应用(自2016年以来不再在playstore中使用):要撤消仅在CyanogenMod中进入互联网的权利的应用,您可以使用Root Firewall(需要root)。

它可以阻止任何应用程序访问Internet。

免费版本可以阻止所有应用程序,也可以仅阻止多达7个不同的应用程序。


0

在5.1.1之前的Android版本中,没有细粒度的应用程序权限。Google从6.0开始引入了新的权限模型,其中包括一些基于权限组的控件。但是,如果您已在运行5.1.1或更低版本的设备上获得了root访问权限,则可以使用一些选项将此功能添加到设备中。

  1. Xposed框架

转至xda-developers.com并搜索“ xposed框架”以获取有关如何安装框架的信息。安装框架后,请安装XPrivacy或“ 应用程序设置”模块,以更好地控制每个应用程序及其授予的权限。

  1. 安装基于Cyanogenmod的ROM

转到Cyanogenmod下载,查看是否列出了您的设备。如果不是,请返回xda-developers.com并转到设备论坛页面以查找设备的ROM列表。在ROM线程的原始帖子中查找任何涉及“ cyanogenmod”或“ cm”的内容,以找到提供权限控制访问权限的正确基础。

希望这可以帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.