PMS权限管理和鉴权过程

PMS权限管理和鉴权过程一 权限的管理基础知识 系统的权限机制分为 权限解析 权限分配 鉴权 动态添加权限 PermissionIn PackageParse Permission 中包含一个对应的 PermissionIn 权限信息的表示 其中包含权限等级的定义 NORMAL DANGER SIGNERATURE 另外实现了序列化 用户于进程间通信 3 BasePermis

一、权限的管理基础知识

  1.系统的权限机制分为:权限解析、权限分配、鉴权、动态添加权限

  2.PermissionInfo :  PackageParser.Permission中包含一个对应的PermissionInfo,权限信息的表示,其中包含权限等级的定义(NORMAL, DANGER, SIGNERATURE),另外实现了序列化,用户于进程间通信

  3. BasePermission : 系统权限的基本表示单元是BasePermission,Settings中维护了一个总的权限映射表mPermissions,所有的权限都会添加到mPermissions列表中,其中key是权限的名字,value是具体的BasePermission实例

  4. PackageParser.Permission : PackageParser.Permission在上面分析PackageParser解析apk过程中有提及过,解析apkAndroidManifest.xml文件中的<permission>标签后得到的权限表示

  5. GrantedPermissions : 类里面定义了一个字符串列表grantedPermissions保存pkg已经被赋予的所有权限

  6. PackageSettingBase : 保存为了如pkgcodePath, resourcePath, signature等信息,同时PackageSettingBaseGrantedPermissions的子类,因为也包含了pkg被赋予的权限列表

   7. PackageSetting : PackageSetting继承了PackageSettingBase类,并新增如PackageParser.PackageSharedUserSetting

  8.  SharedUserSetting :

 

二、接口的介绍以及使用

         1.  updatePermissionsLPw() : 检查无效的permissiontreepermission定义,另外一个就是根据传入的flags是否带有UPDATE_PERMISSIONS_ALL来遍历mPackages包列表来更新所有安装包的权限信息

     2. grantPermissionsLPw() : 管理两个重大的类,安装和运行权限两个大类

 

三、验证权限的过程:

        一般客户端调用checkPermission方法鉴权的流程如下:

  ①Context.java—>public int checkPermission(String permission, int pid, int uid)

  ②ActivityManagerService.java—>public int checkPermission(String permission, int pid, int uid)

  ③ActivityManagerService.java—> checkComponentPermission

  ④ActivityManager.java—>checkComponentPermission

  Root用户(uid=0)和System用户(uid=1000)直接鉴权通过。

  ⑤PackageManagerService.java—>checkUidPermission












 

四、证书的验证

  

 

转载于:https://www.cnblogs.com/liunx1109/p/10792201.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233593.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于matlab的图像处理案例教程_matlab gui图像处理

    基于matlab的图像处理案例教程_matlab gui图像处理一、imfinfo函数——查看图像文件信息,注意参数是文件路径和文件名,不是图像对应的矩阵。imfinfo(‘C:\Users\zhulf\Desktop\1.jpg’)ans=Filename:’C:\Users\zhulf\Desktop\1.jpg’FileModDate:’19-Apr-201508:40:54′

    2022年10月4日
    2
  • fvwm 中文手册_kindle vol

    fvwm 中文手册_kindle volFvwmisawindowmanagerforX11.Itisdesignedtominimizememoryconsumption,providea3Dlooktowindowframes,andavirtualdesktop.—TheFVWM(F?VirtualWindowManager)manual在看这个文档之前你

    2022年10月3日
    2
  • C语言求最大公约数和最小公倍数(思路清晰+拓展)[通俗易懂]

    C语言求最大公约数和最小公倍数(思路清晰+拓展)[通俗易懂]最大公约数的求法首先了解它的一般求法(欧几里得算法):假设存在两个数A和B,假如A%B的结果不为0,那么A和B的最大公约数是B与A%B的最大公约数,一直往下计算,直到后者为0,此时的最大公约数为A’(注意不是A而是A’)。就比如上边的例子,当A%B==0的时候,最大公约数就是B了,这个A’就代表B。最大公约数的代码:(基于C++实现的函数)intgcd(inta,intb){ in…

    2022年5月16日
    52
  • python初级:基础知识-字符串

    python初级:基础知识-字符串

    2021年10月6日
    38
  • 图像基础知识之YUV

    图像基础知识之YUV一、YUV常用格式YUV是编译true-color颜色空间(colorspace)的种类,Y'UV,YUV,YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。“Y”表示明亮

    2022年7月1日
    29
  • concat效率 mysql_Mysql常用函数之Concat函数

    concat效率 mysql_Mysql常用函数之Concat函数本篇文章主要介绍了MySQL中concat函数的用法(连接字符串),在命令行模式下进行测试。1.MySQL中concat函数使用方法:CONCAT(str1,str2,…)返回结果为连接参数产生的字符串。如有任何一个参数为NULL,则返回值为NULL。注意:(1)如果所有参数均为非二进制字符串,则结果为非二进制字符串。(2)如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。MySQ…

    2022年5月5日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号