非API接口限制介绍
1 原理:
官方介绍:https://developer.android.google.cn/guide/app-compatibility/restrictions-non-sdk-interfaces#feature-request
https://zhuanlan.zhihu.com/p/44131114 这篇文章主要以编译,运行的角度解析
https://blog.csdn.net/Invoker123/article/details/107396759 主要以功能实现流程方面就行解析
2 新增接口
在Framework中新增AIDL接口,默认是non-sdk的接口,APK在调用使用时会因Restrictions on non-SDK interfaces功能导致Crash,日志中有如下打印信息
Accessing hidden method 类完整路径 -> 方法名()V (blacklist, linking, denied)
若要要解决此类问题,可以增加AIDL注释。修改方法属性,注释的使用可参考官方文档https://source.android.google.cn/devices/architecture/aidl/aidl-annotations中对注释的描述
使用@UnsupportedAppUsage这个注释修饰方法,经过验证不会在报以上问题
3 禁用此功能
官方文档上有介绍,可通过修改设置数据库来控制此功能,修改方法因Android版本而存在差异,在代码中通过观察者模式可以动态的生效修改,但实测会有一些问题,建议每次修改完成后重启机器
若想要ROM默认就禁用掉此功能可以通过2种方法进行修改
- 修改ActivityManagerService.java 的getValidEnforcementPolicy函数读取设置数据库的默认值
- 在SettingsProvider数据库中增加默认值,此项修改代码比方法一种的工作量要大一些(ASOP的代码中没有此项的默认配置,需要手动添加,并且增加配置项)
序号 | 常亮值 | 含义 | 备注 |
1 | HIDDEN_API_ENFORCEMENT_DEFAULT | 默认配置,功能同HIDDEN_API_ENFORCEMENT_ENABLED | |
2 | HIDDEN_API_ENFORCEMENT_DISABLED | 关闭非API接口限制,APK可以正常访问 | |
3 | HIDDEN_API_ENFORCEMENT_JUST_WARN | 关闭非API接口限制,APK可以正常访问,若涉及非API接口限制将在日志中打印相关警告信息 | 若要关闭非API接口限制,建议使用此项,方便APK通过日志进行整改 |
4 | HIDDEN_API_ENFORCEMENT_ENABLED | 打开非API接口限制,APK访问非API接口限制将会发生异常,同时日志中打印相关错误信息 |
非API接口限制介绍相关推荐
- 无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接口
无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接口 回顾 通过之前一篇文章 无需编程,基于PostgreSQL零代码生成CRUD增删改查RESTful API接 ...
- 拼多多API接口的实践案例
近年来,电商行业的崛起给人们的购物带来了极大的方便.同时,随着技术的发展,API(Application Programming Interface,应用程序编程接口)的普及和应用,大大加快了电商的速 ...
- 无需编程,基于微软mssql数据库零代码生成CRUD增删改查RESTful API接口
无需编程,基于微软mssql数据库零代码生成CRUD增删改查RESTful API接口 回顾 通过之前一篇文章 无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RESTful API接 ...
- 常见的交易API接口介绍
考虑到很多用户初次使用时对于各API接口的功能和获取方式存在较多的疑问,这里进行专门介绍. CTP 模块:vn.ctp 经纪商:期货公司.兴业证券 产品:期货.期货期权 特点:国内最早的针对程序化交易 ...
- 介绍一个用于EOS区块链的RPC API接口的PHP开发包SDK
作为我们Block Producer对社区利益的承诺的一部分,我们希望专注于构建有助于提高EOS平台采用率的工具/应用程序.与大多数大型应用程序一样,当你只有少量或过时的文档并且缺乏工具来帮助你进行入 ...
- 基于Django实现Linux运维管理平台的整个实现过程和各种API接口调用以及Echarts绘图项目介绍(一)记录点滴生活
基于Django实现Linux运维管理平台整个实现过程和各种API接口调用以及Echarts绘图的使用介绍 项目内容涉及技术直通车: 我的项目仓库:MyGitHub https://github.co ...
- 【Android P】非公开API(非 SDK 接口)相关知识总结
关于P-OSV中非公开API(非 SDK 接口)的限制及搜索方式,做了以下整理. 1.背景 Android 9(API 级别 28)引入了针对非 SDK 接口的使用限制,无论是直接使用还是通过反射或 ...
- 三种常用的企业实名认证api接口介绍
国内网络实名制政策出台后,各大平台都响应政策要求,开始对用户进行实名认证,其实实名认证不仅仅是针对个人,还有企业也一样,相较而言,因为不做企业实名认证,让不法企业蒙混过关,造成的危害远大于个人用户. ...
- springfox源码_【开源项目】springfox-bridge:随心所欲地为非restful接口生成API文档...
一.引言 目前,利用swagger框架为restful接口编写API文档非常流行,在spring web项目中,利用springfox+swagger更是可以通过注解的方式直接进行API文档的生成,这 ...
最新文章
- android:怎样用一天时间,写出“飞机大战”这种游戏!(无框架-SurfaceView绘制)...
- 程序猿工作效率的影响因素和管理者怎样推断
- Android Telephony分析(五) ---- TelephonyRegistry详解
- 说说自己写PHP框架的一些感受
- 每秒处理1000万用户请求…云上架构如何实现高性能和高可用
- jupyter notebook 某个cell 一直在运行
- 线性表9 - 数据结构和算法14
- discuz开发学习
- 为 Electron / Atom Shell 设置应用icon(应用图标)
- 2018年值得推荐的20个Bootstrap网站模板
- Silverlight游戏设计(Game Design):(十四)练习用游戏素材资源的获取及相关工具使用心得
- 关于网页点击按钮无响应问题分析
- jpeg格式说明与解码学习
- 若a,b互素,则a必然存在模b的逆元;若a,b不互素,则a必然不存在模b的逆元
- TiDB at 丰巢:尝鲜分布式数据库
- python 将列表中的英文或者拼音转换为中文
- R语言学习记录:unique()函数
- LeetCode-39 - 组合总和
- 阿里云服务器通用型实例g5 怎么样好不好?性能配置分析
- 在 Kubernetes 上安装和运行极狐GitLab实例