Using Internal/Hidden Classes of the Android API
Pssst… over here. Yeah, did you know about the Hidden Android Classes? Shhh… it’s a secret. They let you do stuff you otherwise couldn’t. You can read internal data, like the text message database stored on a phone. You can also gain lower level access to the hardware in order to extend your app’s access to things like the touchscreen input values, or WiFi radio usage. To get your hands on that kind of contraband, you’ll need to do some poking around in the Android SDK, and make a few… changes… to the way your Eclipse ADT plugin works.
This information comes to our attention because XDA Recognized Developer E:V:A bumped his own post out of year-old obscurity, but boy are we glad he did. If you like to do things you’re not supposed to, it’ll be worth your time to read the guide. Head on over to his original thread for full details.
E:V:A’s work boils down the avalanche of information on the subject which was posted by Inazaruk a couple of years ago. The Java classes that are known synonymously as Hidden or Internal Classes are protected from direct use and hidden from being shown in the Java docs (using the @hide directive). Using them is just a matter of hacking the android.jar file and tweaking your IDE setup to stop blocking your path to the forbidden fruit.
One thing I think Inazaruk and E:V:A both missed was a simple explanation of possible applications for the hidden classes. Read more about that in this article.