给 AI 用的 Android 隐藏 API 兼容性查询 MCP

发布于

# 开源地址

[https://github.com/android-cs/android-api-diff](https://github.com/android-cs/android-api-diff)

如果你的应用有对接 shizuku/shell/root 的功能场景,基本都会调用 Android 的隐藏 API。

但隐藏 API 不考虑兼容性,因为它是给 Android 内部自己用的并且编译时不可见会编译失败。

工程化的做法是创建 hidden-api 模块去声明隐藏 API 让主项目顺利通过编译,然后使用 [HiddenApiBypass](https://github.com/LSPosed/AndroidHiddenApiBypass) 允许调用隐藏 API,基本 0 反射调用。

但每个大版本签名情况不一样,甚至单个版本内的不同小版本也有区别,下面是一些常用例子:

- [IUserManager.getUsers](https://diff.songe.li/i/IUserManager.getUsers) 有 2 个签名
- [IPackageManager.getInstalledPackages](https://diff.songe.li/i/IPackageManager.getInstalledPackages) 有 3 个签名
- [IActivityTaskManager.getTasks](https://diff.songe.li/i/IActivityTaskManager.getTasks) 有 3 个签名

古法编程时代是人工查看每个版本,出纰漏的概率很大。

AI 时代虽然 AI 自己也能查源码,但仍需要有工具能快速给 AI 准确的信息。

本项目原本是在线网页,给我自己一键查看兼容性的,效率相比以前自己手动拼链接看快了很多。

后面全使用 AI 了,再人工查看就不太行了,索性直接一步到位封装了 MCP 给 AI 调用。

虽然现在 Android 拉了,但如果你的 Android 项目有开头说的使用场景,那本项目应该是必备的。

![img](https://gist.github.com/user-attachments/assets/7a707e2a-7e4c-4ec7-a36e-c38658c064d5)

---

原文链接:[点击查看](https://www.v2ex.com/t/1227552)

评论

暂无评论。