This version of init contains code to perform "bootcharting", i.e. generating log files that can be later processed by the tools provided by www.bootchart.org. To activate it, you need to define build 'init' with the INIT_BOOTCHART environment variable defined to 'true', for example: touch system/init/init.c m INIT_BOOTCHART=true On the emulator, use the new -bootchart <timeout> option to boot with bootcharting activated for <timeout> seconds. Otherwise, flash your device, and start it. Then create a file on the /data partition with a command like the following: adb shell 'echo $TIMEOUT > /data/bootchart-start' Where the value of $TIMEOUT corresponds to the wanted bootcharted period in seconds; for example, to bootchart for 2 minutes, do: adb shell 'echo 120 > /data/bootchart-start' Reboot your device, bootcharting will begin and stop after the period you gave. You can also stop the bootcharting at any moment by doing the following: adb shell 'echo 1 > /data/bootchart-stop' Note that /data/bootchart-stop is deleted automatically by init at the end of the bootcharting. This is not the case of /data/bootchart-start, so don't forget to delete it when you're done collecting data: adb shell rm /data/bootchart-start The log files are placed in /data/bootchart/. you must run the script tools/grab-bootchart.sh which will use ADB to retrieve them and create a bootchart.tgz file that can be used with the bootchart parser/renderer, or even uploaded directly to the form located at: http://www.bootchart.org/download.html NOTE: the bootchart.org webform doesn't seem to work at the moment, you can generate an image on your machine by doing the following: 1/ download the sources from www.bootchart.org 2/ unpack them 3/ in the source directory, type 'ant' to build the bootchart program 4/ type 'java -jar bootchart.jar /path/to/bootchart.tgz technical note: this implementation of bootcharting does use the 'bootchartd' script provided by www.bootchart.org, but a C re-implementation that is directly compiled into our init program.