Skip to content


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation

Tested on:

  • HiKey 620
  • Android 10 for BeagleBone Black
  • Emulator

How to run this project using prebuilt packages

We've made available 3 prepared packages using the Releases feature of GitHub


ARM 32 bits:

ARM 64 bits:

To use any of those release packages:

  • Forward port 3000 to your local computer with adb
$ adb forward tcp:3000 tcp:3000
  • Use adb push to move the package corresponding to your device architecture to a directory. We generally use /data/local/tmp for demonstrations
$ adb push binder-explorer_x86_64.tar.gz /data/local/tmp
  • Enter your device adb shell:
$ adb shell
$ cd /data/local/tmp
  • Extract the .tar.gz file locally
$ tar -zxvf binder-explorer_x86_64.tar.gz
  • Move to the directory that was created following the extraction
$ cd dist_x86_64
  • Use the run script in that directory to start Binder Explorer
$ ./run

How to build this project

You need a recent version of Node.js to build the distributions. There are prebuilt binaries in the bin directory which will be copied to the distribution output but besides that, Binder Explorer is a fairly straightforward Node.js project.

Make sure you've got bower installed globally:

$ npm install -g bower
  • Install the server side packages:
$ npm install
  • Install the client side packages:
$ bower install
  • Assemble the distribution for the target architecture you want (arm, arm64, x86_64):
$ grunt dist_x86_64
  • You can then push the dist_x86_64 directory, or the directory that corresponds to your architecture, to a directory on your device.
$ adb push dist_x86_64 /data/local/tmp

User guide

Connecting to the web interface

If you have correctly forwarded port 3000 from your device to the emulator, you can browser (Firefox or Chrome) to connect to http://localhost:3000.

Mouse functions

  • Left click + drag: Pan screen
  • Mouse Wheel: Zoom

If Binder Explorer is working correctly, you will see a screen that looks like the following if you zoom out a bit. You can see that services are grouped together depending if they are regular system services or hardware services. The applications are grouped in the middle and they should dynamically as they get started or stopped.

Binder Explorer Fullscreen


Hovering over an object will show informations about the object

Tooltip details

Blue circles around process represents the application-level services that the application has started. Only the service that have a Binder interface are shown that way as local service are invisible to Binder Explorer.

User service tooltip

Object dialogs

Clicking on an object will open a dialog box with more details

Dialog details

The content of the dialog box depends on what object you click. The screenshot above captures what happens when you click on a process. Similar content is available for user services.