解锁Android隐藏API - Anggrayudi Hardiannicko - Medium

作者:API传播员 · 2025-11-19 · 阅读时间:4分钟

在Android开发中,隐藏API的使用一直是开发者关注的热点。本文将介绍如何通过创建自定义的android.jar,解锁Android隐藏API的使用方法。通过本文的教程,您可以轻松访问这些隐藏的API,为您的项目开发带来更多可能性。


准备工作

在开始之前,您需要准备以下两个文件:

  1. framework.jar:位于设备或模拟器的/system/framework目录中。
  2. android.jar:位于Android SDK的<SDK-dir>/platforms/android-X目录中,其中XAPI版本号。

获取android.jar

  1. 打开路径<SDK-dir>/platforms/android-X,将其中的android.jar复制到一个临时文件夹中。

  2. 请务必保留原始的android.jar,以便在需要时恢复。您也可以通过以下链接下载原始版本:

    https://dl.google.com/android/repository/platform-X_rY.zip

    其中,X为API等级,Y为修订号。例如,下载API 29的版本:

    https://dl.google.com/android/repository/platform-29_r04.zip
  3. 解压下载的ZIP文件后,即可找到原始的android.jar


获取framework.jar

  1. 连接运行目标API版本的Android设备或模拟器到电脑。

  2. 使用ADB命令下载framework.jar

    adb pull /system/framework/framework.jar
  3. 如果存在framework2.jar或其他相关文件,也一并下载。


创建自定义android.jar

以下是创建自定义android.jar的详细步骤:

1. 解压framework.jar

framework.jar重命名为framework.zip,然后解压缩该文件。

2. 提取DEX文件

使用Dex Tools提取DEX文件。在终端中运行以下命令:

./d2j-dex2jar.sh 

例如,运行后会生成一个名为classes-dex2jar.jar的新文件。将其扩展名改为.zip,然后解压。解压后,将目录命名为classes以便区分。

classes2.dexclasses3.dex文件重复上述步骤。

3. 合并文件

  1. 将解压后的DEX文件内容与<SDK-dir>/platforms/android-X中的android.jar内容合并。
  2. android.jar重命名为android.zip并解压,解压后的文件夹命名为android
  3. 创建一个名为custom的新文件夹。
  4. android文件夹中的所有文件移动到custom文件夹中。
  5. classes文件夹中的所有内容也移动到custom文件夹中。对其余的类文件夹重复此操作。
  6. 当系统提示替换或合并时,选择合并

4. 生成新的android.jar

在终端中,将当前目录切换到custom文件夹,运行以下命令生成新的android.jar

jar cvf android.jar *

生成的android.jar即为自定义版本。


使用自定义android.jar

将生成的android.jar复制到<SDK-dir>/platforms/android-X目录中。现在,您可以在项目中使用这个自定义的android.jar来访问隐藏的API。


访问隐藏资源

如果需要访问隐藏的资源(如StringDrawableColor),可以添加以下依赖:

implementation 'com.anggrayudi:android-hidden-api:xx'

请访问相关页面以获取最新版本及其使用方法。


通过以上步骤,您已经成功创建并使用了自定义的android.jar,从而解锁了Android隐藏API的使用。希望本文对您的开发工作有所帮助!

原文链接: https://hardiannicko.medium.com/create-your-own-android-hidden-apis-fa3cca02d345