Android P FAQ第一弹:非SDK管控特性
Android P预览版发布的非 SDK 接口管控特性,被称为 Android 史上最严格的变更特性之一,针对这个特性开发者在适配工作中普遍遇到哪些疑点和困惑?华为终端开放实验室整理了一份Android P非 SDK 管控特性 FAQ,一起来看看吧。
Q1.什么是非 SDK 接口?
A:谷歌网站:
https://developer.android.goo... 在此网站能够查询到的接口都是 SDK 接口;除以上的 SDK 接口外,其他都是非 SDK 接口。
Q2.如果调用了非 SDK 接口,会怎么样?
A: 无论通过调用、反射还是 JNI 等方式调用非 SDK 接口,都会导致应用出现 crash,无法启动;或在运行过程中出现崩溃、闪退等现象;也可能导致应用功能不可用等严重兼容性问题,其影响范围波及所有调用此接口的应用,因此,非 SDK 接口管控被称为 Android 史上最严格的变更特性之一。
Q3. 什么是非 SDK 接口管控名单?
A: 名单类型分 light grey list (浅灰名单), dark grey list (深灰名单), dark list(黑名单)。
Q4.怎么查非 SDK 接口管控名单?
A: 查询链接:
https://android.googlesource....
Q5.hidden api浅灰名单、深灰名单和黑名单进一步说明:
A:①浅灰名单:
hiddenapi-light-greylist.txt+hiddenapi-vendor-list.txt,hiddenapi-p-light-greylist.txt 名单目前还未用到,可以暂不关注。
②深灰名单和黑名单:
目前没有具体的代码名单可以看到深灰和黑名单接口列表,开发者可以通过编译谷歌提供的静态扫描veridex工具(需要下载谷歌 Android P 整个工程代码),动态生成浅灰、深灰和黑名单接口名单:
工具路径: art/tools/veridex/
工具编译:make appcompat
outtargetcommonobjPACKAGING下会动态生成三个名单:
源码下载指导:
https://source.android.google...
③需要整改的接口名单: 黑名单接口
④在 DP1 版本中黑中名单是空的,只有浅灰+深灰,不会因为非 SDK 变更导致应用出现兼容性问题;而 DP2 版本开始加入黑名单,如果应用未在 DP1 版本整改和适配的话,可能会因为 DP2 版本加入的黑名单导致兼容性问题。
Q6.名单变化的趋势是怎样的?
A:整合 OEM 厂商的扫描测试+谷歌的扫描测试+开发者自己扫描测试,申请将扫描到的黑名单接口加入到灰名单中。目前趋势是黑名单不断减少,浅灰名单不断增加。DP2 版本浅灰名单是现在谷歌最新浅灰名单的一个子集,应用在 DP2 版本中测试可以充分暴露问题。因此,针对非 SDK 问题,应用在 DP2 版本整改之后,不会在后续版本引入新的问题。
Q7.名单申请deadline是什么时间?
A:目前谷歌官方未公布,应用须尽快向谷歌反馈需要加灰名单的接口;越晚反馈申请难度越大,之后再发现有新的必须调用的非 SDK API 就只能走 escalation 了,申请修改加灰名单的难度系数将增加很多。
Q8.应用使用 blacklist 非 SDK 接口导致崩溃,无法发现其调用的其他更多非 SDK 接口,怎么办?
A:请用下面的命令将 blacklist 设为只警报不崩溃:
adb shell settings put global hidden_api_policy_pre_p_apps 1
adb shell settings put global hidden_api_policy_p_apps 1
注意:此为开发者选项,仅供开发时使用
复位命令:
adb shell settings delete global hidden_api_policy_pre_p_apps
adb shell settings delete global hidden_api_policy_p_apps
Q9.应用现在要做的最紧急的事情是?
A:在DP2版本中通过 veridex 静态分析 + logcat 动态测试充分暴露问题,发现必须要使用的且不在浅灰名单的非 SDK 接口,需尽快反馈给谷歌,申请加浅灰名单,并提交申请理由,以确保后续的 DP 版本不会出现同样的非 SDK 接口问题。
问题反馈链接:
https://issuetracker.google.c...
Q10. 使用加固的应用该怎么做?
A:对于使用加固的应用,因为 OEM 厂商和谷歌都无法通过静态工具帮助应用扫描使用的非 SDK 接口列表。如果应用还未更新最新适配谷歌 Android P 的加固版本,存在无法启动的问题,那么通过动态扫描的方式也是无法进行的。所以使用加固的应用需要通过静态+动态扫描白包的方式获取正在使用的非 SDK 接口,并反馈给谷歌申请加灰名单。
重点关注:
1.应用测试中发现需要申请加入浅灰名单的非 SDK 接口需尽快反馈给谷歌,越晚反馈,谷歌修改的难度将越大,可能导致无法加入灰名单而影响应用功能;
2.谷歌发布的 DP2 版本中已加入黑名单,建议开发者在 DP2 版本中测试验证应用调用的非 SDK 接口,针对无法整改的非 SDK 接口,及时向谷歌反馈必需使用此接口的详细原因,申请重新评估该接口。
Android P FAQ系列将持续推出,欢迎大家扫描屏幕下方二维码关注了解更多
Android P FAQ第一弹:非SDK管控特性相关推荐
- Android 10 中有关限制非 SDK 接口的更新
Android 10 中有关限制非 SDK 接口的更新 目录 浅灰和深灰列表的命名发生变化 非 SDK 接口的代码注释 在 Android 10 中授予对非 SDK 接口的访问权限 Android 1 ...
- Android P版本非SDK接口管控特性,参考华为
Android P版本非SDK接口管控特性解读及适配指导 在Android P版本中,谷歌加入了非SDK接口使用限制,无论是通过调用.反射还是JNI等方式,开发者都无法对非SDK接口进行访问,此接口的 ...
- 一种绕过Android P对非SDK接口限制的简单方法
众所周知,Android P 引入了针对非 SDK 接口(俗称为隐藏API)的使用限制.这是继 Android N上针对 NDK 中私有库的链接限制之后的又一次重大调整.从今以后,不论是native层 ...
- Android P (4)一种绕过Android P上非SDK接口限制的简单方法
一种绕过Android P上非SDK接口限制的简单方法 众所周知,Android P 引入了 针对非 SDK 接口(俗称为隐藏API)的使用限制.这是继 Android N上 针对 NDK 中私有库的 ...
- Android 开发---对非SDK接口限制的适配
前言 项目升级到Android Pie(9),需要考虑适配问题.在此做个总结. Android 9 增加了对非SDK接口访问的限制,无论你是直接访问还是通过反射,JNI等间接访问,都是会被限制的. S ...
- Android Q (十八) 非 SDK 接口在 Android Q 中的受限情况出现变化
非 SDK 接口在 Android Q 中的受限情况出现变化 为了帮助确保应用稳定性和兼容性,此平台开始限制您的应用可在 Android 9(API 级别 28)中使用的非 SDK 接口.Androi ...
- “对使用非SDK接口的限制”的适配实战
概述 首先需要说明的是,"对使用非SDK接口的限制"是针对所有应用的.此限制是从9.0(28)开始引入的,只要是运行在9.0及以上系统的app都会有此限制,无论app适配的targ ...
- 非SDK接口自动化检测工具--veridex
前言 在Android P版本,Google对非SDK接口增加了管控. SDK接口指的是Android官方开发文档中声明的方法,即文档地址 中所能查询到的API,除了这些,其他的API都是非SDK接口 ...
- Android 非 SDK 接口常见问题
常规问题 Q1: 什么是非 SDK 接口? A:非 SDK 接口指不在官方Android SDK涵盖范围内的 Java 字段和方法.此类接口是 SDK 的内部实现细节,可能随时会被修改,且不对开发者另 ...
最新文章
- 图解 Kafka,一目了然!
- Openstack Paste.ini 文件详解
- hdu4499 搜索
- 为什么 kubernetes 天然适合微服务
- C++ public、protected、private区别
- OCF 试图为物联网建立标准,但它面临着不小的挑战
- python 获取进程池 sleeping_Python 进程操作之进程池--Pool
- 图书管理系统【JavaWeb:部署开发环境、解决分类、图书、前台页面模块】
- c++ explicit关键字解读
- 经典案例:日活DAU下降,该如何着手分析?
- PS2模拟器 PCSX2 新手向
- 逻辑地址、物理地址、线性地址、虚拟地址、段基地址偏移地址的联系和区别
- 搞明白activated和deactivated
- 译后访谈《Scratch少儿趣味编程》作者阿部和广
- 【人工智能算法】算法基础之离散优化[旅行商问题 背包问题]
- 用人工智能取一个超酷的名字(二)
- 虚拟存储器基本思想:以时间换空间
- php加解密工具php_screw-1.5_php5.3支持php5.3以上版本
- 视频裁剪没声音?解决视频裁剪没声音问题,实现快速裁剪,只需裁剪时间,文件源,一切简单
- 安装应用提示与已安装应用签名不同