Android P及以上非SDK的隐藏API调用检测

1,386 阅读1分钟

背景

Android 11 包含更新后的受限制非 SDK 接口列表,在限制使用非 SDK 接口之前,Google尽可能确保提供公开替代方案。具体调整如下:

1 非 SDK 测试 API 现在受到限制 从 Android 11 开始,默认情况下,非 SDK 测试 API(即 AOSP 中使用 @TestApi 注释的 API)现在受到限制。这些非 SDK 接口用于在 Android 平台上执行内部测试。应用可以继续使用灰名单中的测试 API,但任何新的测试 API 都会包含在黑名单中。

2 目前在 Android 11 中受限的灰名单中的非 SDK 接口 developer.android.google.cn/preview/non… 上述列出了 Android 10(API 级别 29)中列入灰名单而目前在 Android 11 中受限的所有非 SDK 接口。只要有可能,接口名称后面的注释中都会提供建议的替代 API。每个接口占一行。

3 Android 11 中已列入白名单的非 SDK 接口(这些接口原本列在灰名单中) developer.android.google.cn/preview/non…

使用veridex进行检测

官方提供veridex对浅灰名单,深灰名单和黑名单进行扫描处理,提供不翻梯*子资源

链接: pan.baidu.com/s/1kLV_w94O… 密码: luh4

根据系统环境来进行zip解压。我这里用mac系统来演示。

将要检测的包(xxx9.apk)放到veridex-mac目录下,执行如下命令

./appcompat.sh --dex-file=xxx9.apk

可以扫描出如下内容

可以看到 0个黑名单,10个深灰名单,105个浅名单。然后根据结果进行逐一修改。