iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android应用程序的权限机制
  • 492
分享到

Android应用程序的权限机制

程序Android 2022-06-06 12:06:30 492人浏览 薄情痞子
摘要

   (一)Android安全架构   Android安全架构中一个中心思想是:应用程序在默认的情况下不可以执行任何对其他应用程序,系统或者用户带来负面影响的

   (一)Android安全架构

  Android安全架构中一个中心思想是:应用程序在默认的情况下不可以执行任何对其他应用程序,系统或者用户带来负面影响的操作。

  一个应用程序的进程是一个安全的沙盒。它不能干扰其它应用程序,除非显式地声明了“permissions”,以从而获取基本沙盒所不具备的能力。对于应用程序请求的“permissions” 可以有几种处理方式:如自动允许该权限,通过用户提示或者证书来允许或禁止该权限。应用程序需要的“permissions”在程序中静态声明,在程序安装时被系统知晓,并不会再改变。

  所有的Android应用程序(.apk文件)必须用数字证书进行签名认证,该证书的私钥由开发者保有。该证书可用以识别应用程序的作者。该证书无需CA签名认证(注:CA是一个第三方的证书认证机构,如verisign等)。Android应用程序允许(而且一般也都是)使用self-signed证书(自签名证书)。证书主要用于在应用程序之间建立信任关系,而不是用于控制程序是否可以安装。签名影响安全性的重要的方式是通过决定谁可以进入基于签名的permisssions,以及谁可以共享用户IDs。

  (二)应用程序的用户IDs和数据访问机制

  应用程序的用户IDs:

  每一个Android应用程序(.apk文件)都会在安装时获取一个独有的linux用户ID,这为它建立了一个沙盒,使其不能与其他应用程序进行接触。该用户ID在安装时分配,并在该设备上一直保持同一数值。

  由于安全性限制措施是发生在进程级,所以两个package中的代码不会运行在同一个进程当中,而是作为不同的Linux用户出现。我们可以通过使用AndroidManifest.xml文件中的manifest标签的sharedUserId属性,来使不同的package共用同一个用户ID。通过这种方式,这两个package会被认为是同一个应用程序,拥有同一个用户ID(实际不一定),并且拥有同样的文件存取权限。

  注意:为了保持安全,仅当两个应用程序被同一个签名签署的时候(并且请求了同一个sharedUserId)才会被分配同样的用户ID。

  数据访问机制:

  所有存储在应用程序中的数据都会被赋予一个属性——该应用程序的用户ID,这使得其他应用程序无法访问这些数据。当通过以下方法getSharedPreferences(String, int),openFileOutput(String, int)或者 openOrCreateDatabase(String, int, sqliteDatabase.CursorFactory)来创建一个新文件时,你可以通过使用MODE_WORLD_READABLE and/or MODE_WORLD_WRITEABLE标志位来设置是否允许其他应用程序来读写这个文件。当设置这些标志位时,该文件仍然属于该应用程序,但是它对于其他任何应用程序也是可见的。

  (三)权限(permission)

  权限用来描述是否允许做某件事。Android系统中权限分为普通级别(NORMal),危险级别(dangerous),签名级别(signature)和系统/签名级别(signature or system)。系统中所有预定义的权限根据作用的不同,分别属于不同的级别。

  对于普通和危险级别的权限,我们称之为低级权限,应用申请即授予。其他两级权限,我们称之为高级权限或系统权限,应用程序拥有platform级别的认证才能申请。当应用试图在没有权限的情况下做受限操作,应用将被系统杀掉以警示。

  系统应用可以使用任何权限。权限的声明者可无条件使用该权限。

  目前Android系统定义了许多权限,通过SDK文档用户可以查询到哪些操作需要哪些权限,然后按需申请。

  要赋予应用程序权限,首先要在AndroidManifest.xml中使用一个或多个 标签进行声明。例如,一个应用程序想用控制谁能启动一个activities,它可以为声明一个该操作的许可,如下: 

  android:name="com.me.app.myapp.permission.DEADLY_ACTIVITY"

  android:label="@string/permlab_deadlyActivity"

  android:description="@string/permdesc_deadlyActivity"

  android:permissionGroup="android.permission-group.COST_MONEY"

  android:protectionLevel="dangerous"

  />

  (四)使用权限(uses-permission)

  应用需要的权限应当在users-permission属性中申请,所申请的权限应是已经被系统或某个应用程序定义过的,否则视为无效申请。同时,使用权限的申请需要遵循权限授予条件,非platform认证的应用程序无法申请高级权限。

  所以,应用程序的权限级别大致分为两种:

   第一种低级点的(permission的protectlevel属性为normal或者dangerous),其调用者apk只需声明即可拥有其permission。

   第二种高级点的(permission的protectlevel属性为signature或者signatureorsystem),其调用者apk需要和被调用的apk一样拥有相同的signature。

  若想拥有所需的权限,必须在AndroidManifest.xml文件中包含一个或更多的 标签来声明此权限。

  例如低级权限需要监听来自SMS消息的应用程序将要指定如下内容:


--结束END--

本文标题: Android应用程序的权限机制

本文链接: https://www.lsjlt.com/news/28673.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android权限机制与适配的方法
    本文小编为大家详细介绍“Android权限机制与适配的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android权限机制与适配的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新...
    99+
    2024-04-02
  • 高通Android 12/13 默认应用程序授予权限
    一提到权限很多Android开发者都会想到 比如拨打电话 读取手机通讯录 定位 这些都是需要申请权限,Google Android 6.0之后(sdk 23) 需要app动态申请权限 或者权限组 我这里打个比方 比如需要在fm应用 默认打开...
    99+
    2023-09-02
    android android studio ide
  • Android应用权限大全(Manifest.permission)
    前言 此处记录了Android中Manifest.permission类里的全部权限,方便日后使用。 戳此处查看官方文档→ Manifest.permission | Android Developers 1、Android应用权限(常用)...
    99+
    2023-08-21
    android android studio kotlin
  • Android权限机制深入分析讲解
    目录1、权限2、在程序运行时申请权限1、权限 普通权限:不会直接威胁到用户安全和隐私的权限危险权限:那些可能会触及用户隐私或者对设备安全性造成影响的权限。 到Android 10 系...
    99+
    2022-12-08
    Android权限机制 Android权限管理 Kotlin权限机制
  • win10应用程序权限技巧有哪些
    这篇文章主要介绍“win10应用程序权限技巧有哪些”,在日常操作中,相信很多人在win10应用程序权限技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win10应用程序权限技巧有哪些”的疑惑有所帮助!...
    99+
    2023-07-01
  • Chrome OS:Linux应用程序将获得访问ndroid文件夹的权限
    为了使Chrome OS成为适合所有人、适合所有人的操作系统,谷歌计划进行另一项重大升级,为Linux应用程序提供访问Android文件夹的权限。目前的情况是,Chrome OS设备可以运行Chrome应用程序、Google Play商店的...
    99+
    2023-06-06
  • Android 应用中怎么获取判断处理权限
    这篇文章给大家介绍Android 应用中怎么获取判断处理权限,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。主要用到的几个方法://检查权限int checkSelfPermission(String)//申请权限voi...
    99+
    2023-05-31
    android roi
  • 怎么在项目中应用SpringSecurity权限控制
    本篇内容主要讲解“怎么在项目中应用SpringSecurity权限控制”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在项目中应用SpringSecurity权限控制”吧!要进行认证和授权需要...
    99+
    2023-07-02
  • android沙箱机制怎么应用
    Android沙箱机制是指将每个应用程序都限制在自己的运行环境中,不能访问其他应用程序的资源和数据。应用程序之间相互隔离,提高了系统...
    99+
    2023-09-20
    android
  • 详解Android应用沙盒机制
    目录前言一、Android应用DAC沙盒二、Android应用权限三、应用信息的存储四、应用权限的映射五、应用的SELinux标签六、Android应用MAC沙盒前言 Androi...
    99+
    2024-04-02
  • Linux应用程序加载机制是什么
    这篇文章主要介绍“Linux应用程序加载机制是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux应用程序加载机制是什么”文章能帮助大家解决问题。1.父进程的行为: 复制,等待执行应用程序的...
    99+
    2023-06-16
  • 强制去除Unity自动添加的Android隐私权限
    提审Google Play会遇到隐私权限的问题,最好把非必要隐私权限清理干净。GF框架DebugComponent组件中涉及Input.location API调用,Unity打包时...
    99+
    2024-04-02
  • Android跳转具体应用权限管理,三种方式
    背景:Android越来越安全合规,在应用里,需要给用户所有可选择和取消的明确方式。 比如:设置了权限,也要给用户关闭权限的入口。被要求在应用的设置里,提供权限管理入口。 解决方式有三: 方式一:给每个手机厂商跳转做定制适配 有点费力,但...
    99+
    2023-09-03
    android 合规 权限管理
  • android应用签名机制是什么
    Android应用签名机制是一种用于验证应用真实性和完整性的安全机制。在开发和发布Android应用时,开发者需要使用私钥对应用进行...
    99+
    2023-08-23
    android
  • Java应用程序的安全沙箱机制是什么
    这篇“Java应用程序的安全沙箱机制是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java应用程序的安全沙箱机制是什么...
    99+
    2023-06-03
  • 小程序数据缓存机制应用实现
    小程序数据缓存相关知识 数据缓存:缓存数据,从而在小程序退出后再次打开时,可以从缓存中读取上次保存的数据,常用的数据缓存API如下表所示: 注意:将数据存储在本地缓存中指定的 k...
    99+
    2024-04-02
  • 如何在Linux中使用Trickle限制应用程序带宽占用
    这篇文章主要介绍“如何在Linux中使用Trickle限制应用程序带宽占用”,在日常操作中,相信很多人在如何在Linux中使用Trickle限制应用程序带宽占用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如...
    99+
    2023-06-13
  • Android协程作用域与序列发生器限制介绍梳理
    目录一.受限协程作用域1.sequence方法2.SequenceScope类二.序列发生器1.Sequence接口2.Sequence方法3.iterator方法4.Sequenc...
    99+
    2024-04-02
  • 详解如何在项目中应用SpringSecurity权限控制
    目录1、Spring Security环境准备2、实现认证和授权3、在控制器上实现注解鉴权4、请求获取当前登录的用户名信息5、用户退出要进行认证和授权需要前面课程中提到的权限模型涉及...
    99+
    2024-04-02
  • MySQL存取权限的应用技巧
    这篇文章主要讲解了“MySQL存取权限的应用技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL存取权限的应用技巧”吧!  MySQL使用于认证目的...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作