Chris Simmonds

Looking after the inner penguin

Talk Title

Exploring Android internals with ADB






13:30 > 40 min


on Twitter

We all use ADB during development for debugging and admin tasks. But, what else can you find out and what can you do with it?

In this talk I will show how to use ADB as a window into the internal workings of the Android operating system. I will begin with system services, which are the core of Android, and show how to dump state, interact with them from the command line, and how to send binder messages. You can, for example, place a
phone call from the command line

At an even lower level, we have native services. These are Unix daemons that are started during early boot. You can list them, start and stop them, and even restart the Android run-time

Next, file permissions: what prevents an app or service from accessing a file? This is a story of Unix file permissions and SELinux policy. I will show how you can see the permissions and the policy, and change them - but only if you have root access

Finally, I will look at system properties. These are global variables used throughout Android to tune the framework, to record status information and to act as signals when a property changes

Speaker Bio

Chris Simmonds is a software consultant and trainer living in southern England. He has spent almost two decades designing and building open-source embedded systems of all shapes and sizes, and he has encapsulated much of that experience in his book, “Mastering Embedded Linux Programming”.

He is a frequent presenter at open source and embedded conferences, including the Embedded Linux Conference and Embedded World. You can see some of his work on the “Inner Penguin” blog at