最近看了一个德国网站对两款U的对比评测,就不全文翻译了,大概的翻译一些重点 最近两款使用Core M的平板/变形本上市,分别是使用10的HP ENVY 15-c000ng x2 Detachabl

news/2024/5/20 2:48:09/文章来源:https://blog.csdn.net/idaretobe/article/details/45251653

一 Android权限

    一般来说,Android的APK包在安装时会向Android系统申请权限,用户在安装APK时会看到此APK索要的权限,用户要么全都批准,要么拒绝本次安装。Android的权限与Android的API对应,一个APK如果获得了某项权限,这就意味着它在运行时可以调用Android的Java API,从而实现对Android受限资源进行访问的目的。Android的权限主要包括三部分信息:权限名称,属于的组和保护级别。属于的组是指这个权限在一个权限组里。如何理解?切换到android源码framework\base\data\etc\platform.xml,如下图所示:

检查机

比如第一个权限android.permission,BLUETOOTH_ADMIN,它所在的组是net_bt_admin。保护级别分为四种,Norma,Dangerous,Signature,SignatureOrSystem,不同的保护级别代表此权限的认证级别高低,后面两种要求申请权限的APK包具有和拥有此权限的APK包相同的数字签名。如果开发者在编制Android应用程序时想要使用某种权限,比如访问网络,那么必须在应用程序的AndroidManifest.xml文件中申请,形如<use-permissions>,同样Android应用程序的某个组件也可以设置访问权限,也就是说,如果另一个组件要想执行对设有访问权限组件的操作时,必须先获取此权限。

二 Android静态权限检查

    Android静态权限检查发生在安装包被解析后。Android的框架层代码frameworks\base\core\java\...\PackageParser.java负责解析APK包,并把解析到的信息保存起来,而对APK中AndroidManifest.xml文件所涉及的权限申请在框架层代码frameworks\base\services\java\com\android\server\pm\PackageManagerService.java中的grantPermissionsLPw方法中得以检查和批准:

if (bp.protectionLevel == PermissionInfo.PROTECTION_NORMAL || bp.protectionLevel == PermissionInfo.PROTECTION_DANGEROUS) { allowed = true; } else if (bp.packageSetting == null) { // This permission is invalid; skip it. allowed = false; } else if (bp.protectionLevel == PermissionInfo.PROTECTION_SIGNATURE || bp.protectionLevel == PermissionInfo.PROTECTION_SIGNATURE_OR_SYSTEM) { allowed = (compareSignatures( bp.packageSetting.signatures.mSignatures, pkg.mSignatures) == PackageManager.SIGNATURE_MATCH) || (compareSignatures(mPlatformPackage.mSignatures, pkg.mSignatures) == PackageManager.SIGNATURE_MATCH);

从以上的代码 Android 我们可以看出,Android对权限的保护级别进行了检查。方法grantPermissionLPw只属于权限的静态检查,并不涉及应用程序在运行时的权限检查。

三 Android动态权限检查

     Android会有动态权限检查吗?答案是有!这里的动态权限检查是指Android系统在APP运行时对App发起的某些操作或某些数据访问才进行的权限检查,其中就有一个方法checkUidPermission(String permName, int uid),它也在PackageMangerService.java中被定义。此方法是根据APP的UID和此时所提出的权限名permName进行检查方法很简单,首先根据uid找到APP在安装时所被批准的权限集,然后看看permName是不是在其中。

synchronized (mPackages) { Object obj = mSettings.getUserIdLPr(uid); if (obj != null) { GrantedPermissions gp = (GrantedPermissions)obj; if (gp.grantedPermissions.contains(permName)) {


四 实验验证动态权限检查

实验目的:试验checkUidPermission是否真的会在APP运行时进行权限检查?

实验方法:在以上代码第5行处在写一行代码:

if(uid >= 10000 && permName == "android.permission.CAMERA") {return PackageManager.PERMISSION_DENIED;}

以上代码是说只要有非系统用户申请了访问camera的权限,那么系统就拒绝。如果Android系统有权限动态检查,那么摄像功能是不能用了。

编译Android源码:

1. 模块编译

首先进行模块编译 切换到shell,切换到android的源码目录,输入:

source build/envsetup.sh lunch full-eng mmm frameworks\baser\service\java

这样只是编译java\这个模块,注意:java\必须有Android.mk文件,这相当与Linux的makefile

2. Android源码整体编译

在上述编译成功后,直接输入make

3. 运行模拟器

输入emulator,等模拟器跑起来,点击Camera程序,我们发现如下:

探究


摄像头没有被启动。而编译之前的Camera是能够开启摄像头的,如下:

检查机

原因分析:当Camera被安装到Android系统后,Camera的APP就会被分配一个唯一的UID和GID,一般来说UID等于GID,每个APP运行在独立的沙箱(Dalvik虚拟机)里,因此,当此Camera的进程提出访问摄像设备时,到了Android框架层,checkUidPermission会被调用,从而拒绝本次访问,那么内核的进程也就无从访问此类设备了。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_746171.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么用ping测试网站服务器,怎么用ping命令测试服务器网络连通性(示例代码)

ping(packet internet groper)是在网络测试中使用最频繁工具之一&#xff0c;该命令用于确定两个或多个网络结点之间的下层连接是否可用&#xff0c;另外还可提供基本的网络性能统计数据&#xff0c;有助于诊断与通信相关的网络问题。ping命令的语言格式如下&#xff1a;1.确定…

oracle时间倒序查询_临床指南免费查询下载网站

点击蓝字关注我们今天给大家分享一个临床指南查询下载网站网站预览共有17790份中英文指南的原文4407份中英文指南的解读还会不断更新网站链接http://guidelines.mikecrm.com/NsOywVt也可点击最下方的阅读原文进入网站简易教程01点击“中英文原文指南”或“中英文指南解读”02输…

3 域名正则_网站更换域名301后排名会有影响吗?301应该怎么用?

在SEO优化过程中&#xff0c;很多小伙伴都经常会遇到需要301跳转的情况&#xff0c;例如网站调整或者网站改版的时候&#xff0c;所以很多人都会担心同样一个问题&#xff1a;自己网站想更换域名或者目录发生了变化&#xff0c;设置301跳转后&#xff0c;对目前SEO优化的效果会…

网页设计代码_盘点2020年网站设计工具-让设计师插上翅膀

一直以来网页设计和前端是2个职位&#xff0c;设计负责制作效果图&#xff0c;而前端负责将效果图转化为html代码。因为设计理念的差距&#xff0c;前端工程师往往并不能完全表达设计的意图&#xff0c;因此&#xff0c;如何让设计师设计的效果图和最后呈现出来的网页是一样的效…

java招聘网站左侧分类的实现_web实现点击左侧导航,右侧加载不同的网页(这种布局多用于后台管理系统)...

(1)实现方法&#xff1a;采用ajax实现点击左侧菜单&#xff0c;右侧加载不同网页(在整个页面无刷新的情况下实现右侧局部刷新&#xff0c;用到ajax注意需要在服务器环境下运行&#xff0c;从HBuilder自带的服务器中打开浏览效果即可)(2)原理&#xff1a;ajax的局部刷新原理&…

php mysql 课程任务,教学资源网站的设计与实现(PHP,MySQL)(含录像)

教学资源网站的设计与实现(PHP,MySQL)(含录像)(毕业论文12000字,程序代码,MySQL数据库)本系统主要包含了等系统用户管理、课程信息管理、教学课件管理、教学视频管理多个功能模块。下面分别简单阐述一下这几个功能模块需求。管理员的登录模块&#xff1a;管理员登录系统对本系统…

node网站配置 https访问 DV SSL

腾讯云申请免费DV SSL证书 申请完的证书压缩包 需要用到nginx下的两个文件 上传到服务器 使用&#xff1a; const express require("express"); const path require("path"); const https require("https"); const fs require("fs&qu…

Mac OS使用FileZilla以SFTP形式上传网站内容

前言 FileZilla是一个免费开源的FTP软件&#xff0c;分为客户端版本和服务器版本&#xff0c;我们可以从该网址下载。 https://www.filezilla.cn/download 下载问题 1.Mac下载之后&#xff0c;遇见FileZilla“意外退出”的问题 解决方法&#xff1a;在终端使用命令行手动签名…

vue 中iframe 框架_基于vue-element-admin框架改造——支持第三方iframe网站

先来看个效果图码云地址:https://gitee.com/smallweigit/vue-element-admin.git例&#xff1a;http://localhost:9527/#/iframe/urlPath?srchttps://www.baidu.com (访问百度)格式&#xff1a;http://localhost:9527/#/iframe/urlPath?src第三方的网站并且支持判断iframe是否…

不禁网页的浏览器_明明浏览“不良网站”危险,为啥手机浏览器却不强制禁止访问?...

原标题&#xff1a;明明浏览“不良网站”危险&#xff0c;为啥手机浏览器却不强制禁止访问&#xff1f;明明浏览“不良网站”危险&#xff0c;为啥手机浏览器却不强制禁止访问&#xff1f;众所周知&#xff0c;互联网时代下&#xff0c;由于一些新事物的普及&#xff0c;比如说…

seo技术_基础知识_网站pr值的意义_2020:SEO关键词优化方式具体有哪些?

今天小龙在这里和大家一起来说说关于2020SEO关键词优化方式有哪些&#xff1f;正确的优化排名方法可以让我们的网站可以更快的可以把排名做到首页&#xff0c;那么究竟是怎样的呢&#xff1f;接下来我们就一起来看看。1、关键词分析&#xff08;也叫关键词定位&#xff09;&…

怎么知道 网站是否直接明文保存密码_吓一跳!快用 Firefox Monitor 检查你的密码是否已经泄漏了?!...

很多人都会在不同网站上使用同一个用户名和密码&#xff0c;这样虽然容易记忆&#xff0c;但如果一旦某个网站的账密被泄漏之后&#xff0c;你其他网站上的账号就同时暴露了&#xff0c;非常容易连带被黑的。曾写过关于「建立自己安全好记的密码体系」的文章&#xff0c;如今更…

ASP.NET Web网站HTTP错误 403.14(已解决)

解决问题参考的博客&#xff1a; # vs2017启动网站调试提示 HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。 解决方法&#xff08;超级详细&#xff09;&#xff01;&#xff01;&#xff01;_带着面具的熊的博客-CSDN博客_web 服务器被配置为不列出此…

html源码加密ensure-china_[源码和文档分享]基于php的校园二手信息网站的设计与开发...

摘 要二手信息网站&#xff0c;为二手物品交易提供了网上平台。如今&#xff0c;随着电子商务的不断发展完善&#xff0c;大学校园也需要一个能为学生提供二手物品交易的专用网站&#xff0c;以便发布各种商品信息。本设计具有一般电子商务的功能&#xff0c;且体现出校园风格。…

html 源码_html制作个人博客网站模板源码下载

该从哪里开始呢&#xff1f;好久没来&#xff0c;有点生疏&#xff0c;有点茫然&#xff0c;那就按常规套路来吧&#xff0c;首先对你们的驻足说声3q&#xff0c;本次分享的是一款个人博客设计&#xff0c;主题为《周末s博客》&#xff0c;本来代码算是早就写好&#xff0c;但因…

python做大型网站_flask可以做大型网站吗

摘要&#xff1a;Flask适用于小型网站开发&#xff0c;它灵活&#xff0c;可扩展性强&#xff0c;第三方库选择面广。但是对于大中型网站&#xff0c;建议选择Django框架。FlaskFlask确实很“轻”&#xff0c;不愧是Micro Framework&#xff0c;从Django转向Flask的开发者一定会…

fairygui动态加载按钮_动态导入多页网站信息

小伙伴们好啊&#xff0c;今天老祝和大家一起学习一个导入网页数据的技巧。很多时候&#xff0c;咱们需要将网页中的数据导入到Excel里做进一步的分析汇总&#xff0c;比如每天的股市行情、外汇牌价、开奖信息等等。接下来&#xff0c;老祝就用Excel 2019来演示一下&#xff0c…

网站api自己怎么写_网站seo优化中文章标题怎么写?

对于一些操作seo优化的小伙伴来说&#xff0c;一个网站真正通过首页进入的流量是占据总流量小部分&#xff0c;绝大部分的流量都是通过文章内容页面进入的网站&#xff0c;这部分的流量占据绝大多数部分&#xff0c;这个就是网站优化中的二八定律。那么我们在网站seo优化中文章…

css测量工具_2019设计师最佳配色工具盘点(58+网站合集)

众所周知&#xff0c;配色是设计中非常重要的部分&#xff0c;一个好的配色不仅能让我们的设计更加出彩&#xff0c;还能对用户产生情感影响。小编今天给大家整理了Muzli上 58个今年最佳的配色工具&#xff0c;相信一定能对你们有所帮助~1.Muzli Colors https://colors.muz.li可…

非常有创意的音乐网站

看到上面这一排美女了么&#xff1f;她们分别代表 1 2 3 4 5 6 7 1 八个音符 。 鼠标一点 &#xff0c;就会出声&#xff0c; 还会有相应的动作。 这个网站还能自动演奏&#xff0c; 也能把你的演奏录制下来。网站的片头动画是初升的太阳&#xff0c;非常棒的感觉。just tr…