android p 第三方预装,android P 隐藏API对系统APP的影响

android P限制了第三方APK对@hide API的调用,那么对系统APK有什么影响呢?

国内各大手机厂商对ROM进行各种定制,可以很容易绕过这些限制,那对于需要出海并且满足CTS要求的厂商有什么影响呢?

先说结论:对系统厂商APK没有任何影响,依然可调用任何API

第三方APK,受hide限制

系统platform签名APK,不受限制

非platform签名APK,集成在system分区,又在hiddenapi-package-whitelist.xml,不受限制。(且目前不影响CTS)

一、对第三方APK、系统APK的影响

SDK28

@hide 浅灰

@hide 黑名单

@systemapi

非platform签名

/data/app

是,警告

是,需permisison权限

/system/app

是,警告

是,需permisison权限

/system/priv-app

是,警告

是,需permisison权限

hiddenapi-package-whitelist.xml

(/system/app、priv-app)

是,需permisison权限

platform签名

/data/app

/system/app

/system/priv-app

是,需permisison权限

二、新增hiddenapi-package-whitelist.xml名单,能否通过CTS?

实测无影响。

但不确定google后续CTS版本是否加强检查,有风险。

相关测试项:

CtsHiddenApiBlacklistApi27TestCases

CtsHiddenApiBlacklistCurrentApiTestCases

CtsHiddenApiBlacklistDebugClassTestCases

CtsHiddenApiKillswitchDebugClassTestCases

CtsHiddenApiKillswitchWhitelistTestCases

CtsHiddenApiKillswitchWildcardTestCases

三、Hide API限制原理

详细的原理牵扯到编译时、运行时,还是比较复杂的,下面仅从较宏观的角度阐明受限原理、加白原理。

a.访问受限原理

hiddenapi-light-greylist.txt包含的api,会在dex中对应的Method结构生成HiddenApiAccessFlags::kLightGreylist访问权限标记。

生成正常framework dex

Hiddenapi工具根据hiddenapi-light-greylist.txt等配置文件对dex的access_flags进行修改

新的带access标记的framework dex

ART通过access_flags判断是否可以调用:

Action action = GetActionFromAccessFlags(member->GetHiddenApiAccessFlags());

if (action == kAllow) {

return action;

}

b.加白不受限原理

构造ApplicationInfo时会判断platform签名、hide-package-whitelist,来确定HIDDEN_API_ENFORCEMENT的flag

private boolean isAllowedToUseHiddenApis() {

return isSignedWithPlatformKey()

|| (isPackageWhitelistedForHiddenApis() && (isSystemApp() || isUpdatedSystemApp()));

}

ActivityManagerService中startProcessLocked()启动进程时会把是否检查hide api的flag传给zygote

@HiddenApiEnforcementPolicy int policy =app.info.getHiddenApiEnforcementPolicy();

int policyBits = (policy << Zygote.API_ENFORCEMENT_POLICY_SHIFT);

runtimeFlags |= policyBits;

fork新的app进程后,调用ZygoteHooks_nativePostForkChild( ),初始化art虚拟机参数hidden_api_policy_,设置不进行hide api检查的kNoChecks选项。

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

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

相关文章

团队组成五个基本要素_【记录】综合分部宁波分队团队拓展活动

初冬&#xff0c;像一位美丽的、高贵的、矜持的公主&#xff0c;舞动着她那神奇的面纱&#xff0c;送来阵阵凛冽的寒风。今年宁波分队队伍逐渐壮大&#xff0c;从年初的70多人到目前120人&#xff0c;队伍中也迎来了许多00后的小伙伴们&#xff0c;为加强企业文化建设&#xff…

linux delete内存不下降_linux内存分配管理

linux内存分配管理一、前言作为从事与C/C程序开发人员&#xff0c;我们一直需要很好的管理内存&#xff0c;申请和释放&#xff1b;可能很多只知道使用malloc、new去申请&#xff0c;使用free、delete去释放&#xff0c;但是&#xff0c;去根究其内部的原理&#xff0c;可能就不…

android studio 2.3 instant run,android studio 2.3 instant run not working

可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效&#xff0c;请关闭广告屏蔽插件后再试):问题:I have updated android studio from 2.2 to 2.3,then I found Instant run not working.Error while executing: am startservice com.example.codingmaster.te…

和catch的区别_BIO、NIO、AIO 的区别是什么?

BIO、NIO、AIO 的区别是什么&#xff1f;同/异步、阻/非阻塞的区别是什么&#xff1f;文件读写最优雅的实现方式是什么&#xff1f;NIO 如何实现多路复用功能&#xff1f;带着以上这几个问题&#xff0c;跟着芒果一起进入IO的世界吧。在开始之前&#xff0c;我们先来思考一个问…

302状态码_HTTP协议详解(基础概念 方法 状态码 首部 连接 Cookie 新特性 安全)

一 、基础概念URIURI 包含 URL 和 URN。请求和响应报文1. 请求报文2. 响应报文二、HTTP 方法客户端发送的 请求报文 第一行为请求行&#xff0c;包含了方法字段。GET获取资源当前网络请求中&#xff0c;绝大部分使用的是 GET 方法。HEAD获取报文首部和 GET 方法类似&#xff0c…

flask get 参数_用它 5 分钟以后,我放弃用了四年的 Flask

“ 阅读本文大概需要 3 分钟。 ”有一个非常简单的需求&#xff1a;编写一个 HTTP 接口&#xff0c;使用 POST 方式发送一个 JSON 字符串&#xff0c;接口里面读取发送上来的参数&#xff0c;对其中某个参数进行处理&#xff0c;并返回。如果我们使用 Flask 来开发这个接口&…

傲梦python笔试题_python笔试题

冒泡排序的原理&#xff1a;每次对相邻的两个元素进行比较&#xff0c;若前者大于后者&#xff0c;这将两者的位置交换。第一轮就可以将最大的元素置于列表的最后。几轮循环 冒泡排序的前提条件&#xff1a;有序的列表 import unittest # 冒泡排序 def bubble_sort(arr): for i…

python pexpect pxssh scp_python Pexpect 实现输密码 scp 拷贝的方法

在服务器A上的程序用到服务器B上的文件data&#xff0c;并且需要定期更新文件。 但是直接在bash文件中使用scp -P 1000 192.168.199.10:/temp/data /temp由于权限限制&#xff0c;不能免ssh密码拷贝&#xff0c;会要求输入B机器的密码。本想直接在bash文件中使用Pexpect 来实现…

python的类方法_python 类不实例化,调用类方法:@staticmethod 和 @classmethod

staticmethod 和 classmethod 用法 一般来说&#xff0c;要使用某个类的方法&#xff0c;需要先实例化一个对象再调用方法。 而使用staticmethod或classmethod&#xff0c;就可以不需要实例化&#xff0c;直接类名.方法名()来调用。 这有利于组织代码&#xff0c;把某些应该属于…

android sse 人脸识别,基于Android Camera2之openCamera 流程

简介frameworks\base\core\java\android\hardware\camera2Camera2在Android 5.0上首次出现&#xff0c;主要重新定义了一套Camera 的使用接口API&#xff0c;设计思想出现了变化&#xff0c;具体的可自行搜索&#xff0c;此处主要介绍下Camera2的常见类以及使用流程。CameraCap…

fetch 不是xhr_春招|前端2019应届春招:不是被大厂选,而是选大厂(字节跳动,美团,网易)...

作者&#xff1a;Thescavenger链接&#xff1a;https://www.nowcoder.com/discuss/163165来源&#xff1a;牛客网你需要的前端面经个人情况本科&#xff0c;成都双非大学&#xff0c;大三开始正式学习前端&#xff0c;主攻 react&#xff0c;目前大四。已拿美团、字节跳动 offe…

vscode编辑python_VSCode+Python开发环境

准备开始转向用VSCode做开发&#xff0c;所以把一些常用的开发环境转移到VSCode上。 这次搭建的是Python3的开发环境。 其他相关博文&#xff1a; 一、测试环境 Windows 10 VSCode v1.11.1 Python v3.6.1 二、安装Visual Studio Code 三、安装Python这一步&#xff0c;记得…

多帧点云数据拼接合并_PCL点云处理实践(二):点云的处理和拼接

滤除背景我们获得的点云可能包含一部分背景的点云。要去除背景&#xff0c;只保留人体信息&#xff0c;最简单的方式是使用直通滤波器滤除较远点。这部分代码如下&#xff1a;123456pcl::PassThrough<:pointxyz>pass; //设置滤波器对象pass.setInputCloud(cloud); //设置…

html5 css3浏览器,五大主流浏览器CSS3和HTML5兼容性大比拼

五大主流浏览器CSS3和HTML5兼容性大比拼出处&#xff1a;快科技 2011-05-26 16:15:42 编辑&#xff1a;萧萧[爆料] 收藏文章各大主流浏览器对CSS3和HTML5的支持越来越完善&#xff0c;曾经让多少前端开发人员心碎的IE系也开始拥抱标准。就在前几天&#xff0c;W3C的HTML5社…

自学python 编程基础知识_python学习-基础知识-1

1、计算机历史 计算机使用高低电压的两种状态来描述信息。计算机可以理解的只有二进制数据即010100011....&#xff0c;1个比特位可以表示的状态只有2种&#xff0c;n个比特位可以表示的状态有2的n次方种。 所以如果想要描述天气状态&#xff1a;天晴、下雨、刮风、下雪、霜冻&…

comparator 字符串比较大小_Java中Comparable和Comparator实现对象比较

当需要排序的集合或数组不是单纯的数字型时&#xff0c;通常可以使用Comparator或Comparable&#xff0c;以简单的方式实现对象排序或自定义排序。A comparison function, which imposes a total ordering on some collection of objects. Comparators can be passed to a sort…

html中属性的作用,html的标签中 unselectable=on 属性的作用

在IE浏览器中&#xff0c;当input获得焦点时&#xff0c;点击有unselectable"on"属性的标签时&#xff0c;不会触发onblur事件。加上该属性的元素不能被选中。< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">< html>< h…

一个控制器怎么转发到另外一个控制器_楼宇自动化系统(BAS),DDC,一个最核心的控制器...

楼宇自动化系统(BAS)&#xff0c;一个熟悉又陌生的系统楼宇自控系统(BAS系统)设有一个中央监控中心&#xff0c;系统配置一个或多个网络控制器&#xff0c;由多条总线或计算机网络将各种功能的控制器与中央工作站相连&#xff0c;完成对空调、给排水、通风、电梯等子系统的监控…

秒表计时器怎么读_秒表怎么读数

展开全部秒表的大圈为秒&#xff0c;小圈为分。若大圈是30分格(顶上写的是30&#xff0c;可能有60格&#xff0c;表明精度到半秒)&#xff0c;小圈里62616964757a686964616fe59b9ee7ad9431333431366239一分钟就分为两小格&#xff0c;读完整的几分&#xff0c;若过了一小格&…

html封装windows,windows 系统封装,打造一份属于自己的系统!

在电脑的使用过程中&#xff0c;由于我们每个人的使用习惯和使用方式不同&#xff0c;所以我们都会对Windows系统进行自己的设置&#xff0c;尤其是一些搞数码软件的&#xff0c;如果不小心系统坏了&#xff0c;重装系统后&#xff0c;还得一一去进行重新设置&#xff0c;非常麻…