Android9.0对非 SDK 接口的限制

发布时间:2018-10-19 12:00,

浏览次数:919

, 标签:

Android

SDK

在 Android 9.0 版本中,谷歌加入了非 SDK 接口使用限制,无论是通过调用、反射还是JNI等方式,开发者都无法对非 SDK 接口进行访问,此接口的滥用将会带来严重的系统兼容性问题。 在开发过程中,开发者如果调用了非 SDK 接口,会导致应用出现crash,无法启动;或在运行过程中出现崩溃、闪退等现象;也可能导致应用功能不可用等严重兼容性问题,其影响范围波及所有调用此接口的应用。

目的:通过减少对非SDK 接口的调用,提升应用的稳定性。

区分 SDK 接口和非 SDK 接口

SDK 接口是指在 Android 框架软件包索引

API中记录的接口。

非 SDK 接口是 API 抽象化的实现细节,它们是不属于官方 Android SDK 的 Java

字段和函数;其会随时更改,不另行通知,如:private修饰的方法.

用于限制非 SDK 接口的不同名单

测试非 SDK 接口

通过 Android 9 对您的应用进行测试。系统将打印日志,如果您的应用访问某些“列入灰名单的”非 SDK 接口,系统还可能显示 toast。

如果您的应用调用“列入黑名单的”非 SDK 接口,系统将引发错误。

注意 toast,它会提醒您注意被建议禁用的接口。 此外,确保检查应用的日志消息,其中包含关于应用所访问的非 SDK 接口的更多详细信息,包括以

Android 运行时所使用的格式列出的声明类、名称和类型。 日志消息还说明了访问方法:直接、通过反射或者通过 JNI。 最后,日志消息显示调用的非 SDK

接口属于灰名单还是黑名单。

方法1:动态运行,通过日志分析扫描

通过自动化或人工测试,遍历应用每一个界面和所有功能,抓取日志分析调用的所有非 SDK 接口。

关键日志

*Accessinghidden field Landroid/os/Message;->flags:I (light greylist, JNI)

*Accessing hidden method

*Landroid/app/ActivityThread;->currentActivityThread()Landroid/app/ActivityThread;(dark

greylist, reflection)

*Accessing hidden method

*Landroid/app/ActivityThread;->currentActivityThread()Landroid/app/ActivityThread;(blacklist,

reflection)

方法2:静态扫描,通过谷歌提供的 Veridex 扫描工具扫描

*

工具路径:art/tools/veridex/

*

工具编译:make appcompat

*

工具执行:appcompat.sh –dex-file=test.apk

*

工具执行(带参数,扫描的结果更全面,但可能存在误报的情况):  appcompat.sh –dex-file=test.apk –imprecise

*

备注:已经加固的应用,需要使用加固前的 APK进行扫描

*

工具下载:Veridex下载1

*

具体使用请参阅: veridex工具扫描非 SDK 接口

非SDK接口整改

浅灰名单中的非SDK接口若不整改,仍可以正常使用。开发者需要重点关注的是深灰名单和黑名单中的非 SDK 接口,找到可替代的 SDK

接口进行适配。如果调用的接口在深灰名单或者黑名单中,且无法找到可替代的SDK接口,可向谷歌提供必需使用此接口的详细原因,申请重新评估该接口。链接

android sdk 9.0下载地址,Android9.0对非 SDK 接口的限制相关推荐

  1. Visual Studio 6.0 下载地址 V6.0各种版本官方下载网址

    Visual Stdio 6包含下列组件: [下列全套组件包含在VSE600ENU1.iso,VSE600ENU2.iso,VSE600ENU3.iso,VJP60_ENU1.iso] Microso ...

  2. mix2s android p功能,小米MIX2S升级Android P教程 小米mix2s安卓9.0下载地址

    原标题:小米MIX2S升级Android P教程 小米mix2s安卓9.0下载地址 谷歌今天正式开启了Android P的测试,如果没多大问题的话就是之后会发布的Android 9.0了,比较惊喜的是 ...

  3. Android SDK开发包下载地址

    Android SDK开发包国内下载地址 不知道是因为最近kaihui还是怎么的,打开android sdk官方网站特别的慢,想下载最新版本的platform几乎变成不可能完成的任务,不知道为什么Go ...

  4. android m在哪下载地址,android m预览版SDK下载地址 android m预览版SDK下载网址

    android m预览版SDK,其中包括开发工具.Android系统文件.库文件以及将在该平台下个版本发布时到来的全新API,这些工具和文件可以帮助开发者测试应用. 开发者可通过Android SDK ...

  5. Win7下MATLAB 7.0下载地址+详细安装+运行错误解决

    MATLAB 7.0下载地址 http://pan.baidu.com/share/link?shareid=10874&uk=3928989303 ed2k链接下载地址,打开迅雷或者旋风后, ...

  6. netgen.5.0.0下载地址与Windows下编译方法

    1 综述 Netgen 为奥地利科学家Joachim Schoeberl负责编写的格网(曲面和实体)剖分程序.是格网划分技术中极为先进与完善的,在3D格网划分领域更是具有极大的优势. 2 Netgen ...

  7. quartus ii 13.0下载地址

    原文地址为: quartus ii 13.0下载地址 http://download.altera.com/akdlm/software/acdsinst/13.0/156/ib_tar/Quartu ...

  8. WINCE6.0下载地址

    Windows Embedded CE 6.0下载地址: 用url地址加文件名,一共364个文件,3.76G http://download.microsoft.com/download/a/0/9/ ...

  9. windows CE 4.2、5.0、6.0下载地址

    windows CE 4.2.5.0.6.0下载地址 ed2k://|file|[WINDOWS.CE..NET.WITH.PLATFORM.BUILDER].Windows.CE.NET.4.2.P ...

最新文章

  1. Ubuntu16.04 安装
  2. ios 替换数组中元素_ios可变数组的所有操作
  3. 嵌入式开发笔记-存储控制器
  4. Quartz调度器学习--基本概念
  5. EMVTag系列9《卡片管理数据》
  6. Tramp data In Kernel
  7. 高新面试系列 性格篇
  8. 信息学奥赛一本通C++语言——1052:计算邮资
  9. transport方式连接Elasticsearch6.2.3
  10. php 正则 修饰符,php 正则修饰符
  11. 网络工程制图论文计算机,工程制图论文.doc
  12. ggtree/FigTree可视化系统发育树及bootstrap值
  13. BOM有效日期的设置
  14. 拟合数据和原始数据误差计算
  15. 精选6个PPT模板网站,完全免费,速速收藏
  16. 加权平均值不等式的证明
  17. BIOS知识枝桠—— Protocol
  18. SAP HANA XS ODATA使用参数展示具体数据
  19. 计算机毕业设计Java银行贷款管理系统(系统+程序+mysql数据库+Lw文档)
  20. Hibernate报错 Cannot add foreign key constraint

热门文章

  1. 自来水厂自动化控制系统
  2. ArcMap(ArcGIS)导出属性表用Excel打开中文乱码的解决方法
  3. linux查看es日志,golang 获取es 日志
  4. 学生在使用计算机过程中,学生用计算机基础复习题带标准标准答案.doc
  5. 修改tomcat编码格式
  6. C语言学习专栏(1):易忘点
  7. 知乎高赞:假如我有500w存进余额宝,可以每天坐着等吃吗?
  8. 【Vue 项目】html2canvas + jspdf 实现将页面内容生成 PDF 及相关问题解决方案(页面被分页分割问题、html2canvas生成图片只有一半)
  9. linux中文语言包rpm下载,centos中文语言包下载-centos中文语言包 fonts-chinese-3.02-12.el5.noarch.rpm下载__飞翔下载...
  10. 浏览器无痕模式的使用