Android Source Code Description

Repo tag version - android-4.0.3_r1

1. abi
 * cpp
 * The content of this directory is not clear what it is about as it contains several C++ files.

2. bionic
 * Bionic is mainly a port of the BSD C library to our Linux kernel with the following additions/changes:
 * - no support for locales
 * - no support for wide chars (i.e. multi-byte characters)
 * - its own smallish implementation of pthreads based on Linux futexes
 * - support for x86, ARM and ARM thumb CPU instruction sets and kernel interfaces
 * libc
 * This directory contains the different architecture that is supported to use bionic, namely - ARM (under the arch-arm/) and x86 (under the arch-x86/ directory). In order to understand in detail on how to add functions or port it to different architecture you want to read the file OVERVIEW.TXT under the docs/ folder
 * libdl
 * This directory what looks like a ‘stub’ program that are being used during linking process. The main function of the program is to open a library and read the symbol. The file that contains the main functionality is dlfcn.c under the /bionic/linker/ directory
 * libm
 * Contains Math library. Several architecture are supported inside this directory.
 * libstdc++
 * libthread_db
 * linker
 * This directory contains utility that is used during linking process. The tool is called Android Dynamic Linker what is does is it assign fix addresses to the library to reduce the size of the library and also increases the loading speed..

3. bootable
 * legacy/bootloader
 * This directory contains a sample bootloader for a fictional SoC. The sample code is to show on how to implement a bootloader for a particular SoC. The directory contains a file called fastboot_protocol.txt which outlines the Fastboot protocol implemented by vendor. There is a good detail explanation about the code in the README file
 * diskinstaller
 * There is no README file or any such file inside this directory that give some information about the content. Looking at the source code it seems to be code written to write image files into partition, not sure for what kind of devices.
 * recovery
 * This directory contains code for creating recovery program. The code inside shows the different things that needs to be implemented. This can be used as a boilerplate to create your own custom recoveries like the ClockworkMod.
 * applypatch - Applies binary patches to files
 * edify - Contains code that parse update scripts. The language is call ‘edify’ (this is used in conjuction with the updater sub-project)
 * etc - contains sample update script (the file is called update-script)
 * minelf - contains source library that is used by the updater sub-project
 * minui - contains graphical library to be used by the recovery project.The library are mostly utilized for displaying information
 * minzip - library utilized in the recovery project+
 * mtdutils - library utilized for reading & writing to the Flash memory
 * res - contains images that are used as background in the recovery project
 * testdata - test .zip files for testing the update process
 * tools - library that contains misc function that are used by the recovery project. Some interesting function that allow checking of “unclean” reboot.
 * updater - This contains the executable to run the update script