Logo cn.androidermagazine.com
Logo cn.androidermagazine.com

Android应用权限 - 谷歌如何正确...

目录:

Anonim

最近有很多关于安全性或判断失误的消息 - 这两者都是真的 - 在苹果公司允许iOS应用程序借用你的联系数据并在未经你同意的情况下将其发送到未知部分。 Apple已经向美国国会议员提出了这个问题,并将采取措施在未来的iOS更新中实施更严格的控制。 这是个好消息,我们很高兴看到它发生。

但是Android怎么样? 在没有明确用户权限的情况下关注应用程序的所有内容,您会看到人们引用Android权限模型。 我们打算为你打破这一切。 它并不完美,但效果非常好 - 它肯定比没有许可系统好。

我们将引导您完成Android上的权限,以及您需要确保如何参与。

根据设计,任何Android应用程序都无权执行任何“对其他应用程序,操作系统或用户产生负面影响”的操作。 对于一个应用程序可以访问私人联系人数据,其他应用程序的数据,网络访问,甚至是将自己的数据写入设备存储的平凡事情,应用程序必须声明它有权这样做,然后您必须先接受该权限,然后才能安装该应用程序。 安装应用程序时,会显示应用程序声明的权限列表。

请注意,我们说应用程序是“声明”权限,而不一定是“请求”它们。 我们假设语义,但没有任何框说“嘿,杰里!我是一个应用程序,我很乐意让你看看你的联系信息。那好吗?” 相反,Android应用程序更直接,说“哟,杰里。我是一个应用程序。这是我能做的一个列表,只有你知道。拿走它或离开它。”

Android应用程序声明他们有权访问哪些权限,以及他们可以访问哪些沙箱。您可以选择接受它们并安装应用程序。 合理?

权限 - Android Market中的前期和个人

如果您安装,例如Path,它就是这样的样子。 您将获得Path声明的宏权限列表。 点击一个,它会更详细地解释该权限。

如果您从Android Market安装任何应用程序,它就是这样的。 您需要滚动列表才能查看所有内容。 一点点下来就是在iOS上遇到各种各样麻烦的Path(和其他人)。 在其Android表单中,您可以清楚地看到Path声明了“您的个人数据 - 读取联系人数据”的权限。 点击该权限,您将获得更多详细信息:

“允许应用程序读取手机上存储的所有联系人(地址)数据。恶意应用程序可以使用此功能将您的数据发送给其他人。”

因此Path告诉您它可以访问您的联系人数据。 它并不一定告诉你它将用它做什么(如果我们不是刚刚提起它,你真的想知道吗?),但它确实告诉你它可以读它。

Android Market以外的应用

但是,如果你侧载一个应用程序怎么办? 或者使用亚马逊Appstore? 应用程序仍然应该声明它们使用哪些权限,并在安装应用程序时看到权限列表。 (请记住,Amazon Appstore会加载应用程序,因此您看到的内容与通过电子邮件或下载安装应用程序完全相同。)

以下是Gmail的侧载内容。 在权限范围内,从Android Market进行侧载和安装之间唯一真正的区别在于,当您侧载时,您无法获得更详细的权限说明。

为什么这一切? Android应用程序是“沙盒” - 它们在自己的空间中播放,并在该沙箱中拥有自己的数据文件。 他们只能在明确要求许可后才能在其他人的沙箱中分享游戏,这是通过您在上面看到的屏幕完成的。 当您接受这些权限并安装应用程序时,您将授予该应用程序在应用程序说要播放的沙箱中的权限。

在开发者方面……以及消费者必须如何履行自己的职责

在幕后,应用程序开发人员在AndroidManifest.xml文件中声明这些权限,这是Android应用程序源代码的必需部分。 这些声明是静态的,正如我们在上面看到的那样,每个声明都呈现给用户。 Android无法在运行时动态授予权限,因为根据Android操作系统开发人员的说法,“它使用户体验变得复杂,从而损害了安全性。” 强迫应用程序告诉您它想要做什么,提前做什么,永远无法改变 - 这是最安全的模型。

翻转方面? 这也是用户最容易忽视的问题。

我们知道iOS上的Path发生了什么。 像许多其他iOS应用程序一样,它未经许可就使用了联系人。 不是出于邪恶的目的,但仍然没有任何前期许可,也没有事后要求。 Android的路径将各种数据发送到其服务器,就像在iOS上一样。 但正如我们在本文中所展示的那样,在Android中,Path必须先声明权限。 或者,更准确地说,它声明了许可,你接受或拒绝它。

问题是当你安装一个应用程序时,很可能你会轻易地通过权限部分。 你真的不应该,但我们都这样做。 权限不是用简单语言编写的事实是问题的一部分。 但即使他们是这样,我们大多数人都会点击过去。 在每个平台上都是如此。 另一方面,有些人因为不了解权限而对权限感到不满。 同样,更加用户友好的语言将有助于此。

其中一个替代方法是让应用程序在运行时请求权限,当它想要执行一些无法正常执行的操作时。 我们已经读过Android团队认为这样不方便且不安全,所以不太可能发生。

另一种选择是允许选择权限,就像RIM对BlackBerry一样。 你最终得到的应用只有一半,因为你拒绝了权限,就像黑莓一样。 没有真正万无一失的方法,除了在安装该应用程序并尝试理解它要求做什么以及它为什么要求它时阅读所有内容。

这就是我们所有人都进来的地方。我们中的一些人比其他人更了解应用程序权限,当应用程序执行某些应该不应该做的事情时,您会听到强烈抗议。 阅读权限。 阅读市场评论。 阅读Android Central。 当出现问题时,你会听到它。

最后一件事……

需要特别说明安全漏洞。 每个计算机程序 - 也就是说每个移动操作系统 - 都充满了它们。 当发现允许应用程序绕过安全模型的漏洞时,Google会快速修补它。 这种情况发生了,它总是会发生。 此更新推广给您的速度取决于制作手机的人员。 当他们以正确的方式做到这一点时,他们应该获得信誉,当他们花费太长时间并做错时,他们应该受到鄙视。 这不是很快就会消失的事情,而且我们就在那里召集一个不会保证安全和安全的OEM。

如果您希望深入了解Android权限,请查看Google开发者页面。