Android hidden api
A library that provides access to Android hidden APIs and internal resources.
**Android Hidden APIs** are classes, methods and resources that Google hides from you because of stability reason. These features are hidden because they may be changed on next API version. The project is written primarily in Java, distributed under the Apache License 2.0 license, first published in 2015. It has gained significant community traction with 3,604 stars and 650 forks on GitHub. Key topics include: android, android-framework, api, internal-resources, java.
Android Hidden APIs
Android Hidden APIs are classes, methods and resources that Google hides from you because of stability reason.
These features are hidden because they may be changed on next API version.
The internal APIs are located in package com.android.internal and available in the framework.jar,
while the hidden APIs are located in the android.jar file with @hide javadoc attribute.
Now you know the difference. But I will refer to both as hidden APIs.
This repo contains custom android.jar which you can use to develop your app.
However, if you urgently need to create your own android.jar, I also share you the Krabby Patty
secret recipe here: Create Your Own Android Hidden APIs.
Use Custom android.jar
- Download custom
android.jarfrom Google Drive. - Go to
<SDK location>/platforms/. - Copy, paste and replace the downloaded hidden API file into this directory, e.g.
android-30/android.jar. - Change
compileSdkVersionandtargetSdkVersionto 35 (for example). - Finally, rebuild your project.
Note: Higher compileSdkVersion and targetSdkVersion will be better.
Resources Helper
If you plan to use only Android internal resources rather than internal classes or methods, do:
gradledependencies { implementation 'com.anggrayudi:android-hidden-api:X.Y' }
Where X.Y is the library version:
All versions can be found here.
To use SNAPSHOT version, you need to add this URL to the root Gradle:
groovyallprojects { repositories { google() mavenCentral() // add this line maven { url "https://oss.sonatype.org/content/repositories/snapshots" } } }
Here's some example of accessing internal resources:
javaString accept = InternalAccessor.getString("accept"); float sbar_height = InternalAccessor.getDimension("status_bar_height"); int notif_color = InternalAccessor.getColor("config_defaultNotificationColor");
Contributing
If you have your own custom android.jar and want to add it to
Google Drive,
please create an issue. I will upload it.
License
Copyright 2015-2025 Anggrayudi Hardiannico A.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Contributors
Showing top 3 contributors by commit count.
