Appendix A: Key Files Reference¶
This appendix is a quick-reference table of the most important source files
in AOSP. The tables group the files by subsystem. Each heading gives the
chapter where the files are discussed. Paths are relative to the AOSP root ($AOSP/).
Build System (Chapter 2)¶
| File Path | Purpose |
|---|---|
build/make/core/main.mk |
Top-level build entry point; includes all other makefiles |
build/make/core/Makefile |
Legacy build rules for images, OTA, packaging |
build/make/core/definitions.mk |
Common macro definitions used across the build |
build/make/core/envsetup.mk |
Environment variable setup for build configuration |
build/make/core/product.mk |
Product-level build variable definitions |
build/make/core/product_config.mk |
Product configuration loading and validation |
build/make/core/board_config.mk |
Board-level hardware configuration |
build/make/core/binary.mk |
Shared rules for building native binaries |
frameworks/libs/binary_translation/berberis_config.mk |
Berberis (riscv64-to-x86_64) product-package configuration for native bridge |
build/make/envsetup.sh |
Shell environment setup; defines lunch (plus tapas, banchan, croot) and puts build/soong/bin -- home of the standalone m, mm, mmm scripts -- on PATH |
build/soong/cmd/soong_build/main.go |
Soong build system entry point |
build/soong/android/module.go |
Base module type definitions for Soong |
build/soong/android/androidmk.go |
Emits Android.mk entries for Soong modules so Kati can consume them (Make-Soong interoperability) |
build/soong/cc/cc.go |
C/C++ module build rules for Soong |
build/soong/cc/library.go |
Shared/static library build rules |
build/soong/cc/binary.go |
Native binary build rules |
build/soong/cc/config/riscv64_device.go |
RISC-V 64-bit device configuration |
build/soong/java/java.go |
Java module build rules for Soong |
build/soong/java/app.go |
Android application build rules |
build/soong/apex/apex.go |
APEX module build rules |
build/blueprint/context.go |
Blueprint core context and dependency resolution |
build/blueprint/module_ctx.go |
Module context interface for Blueprint |
device/generic/goldfish/board/BoardConfigCommon.mk |
Emulator board configuration (common) |
device/google/cuttlefish/vsoc_x86_64/BoardConfig.mk |
Cuttlefish virtual device board config (x86_64) |
Boot and Init (Chapter 4)¶
| File Path | Purpose |
|---|---|
system/core/init/init.cpp |
PID-1 init process main entry point |
system/core/init/service.cpp |
Service lifecycle management (start/stop/restart) |
system/core/init/service_parser.cpp |
Parsing of service definitions in .rc files |
system/core/init/action.cpp |
Action and trigger execution engine |
system/core/init/action_parser.cpp |
Parsing of action blocks in .rc files |
system/core/init/property_service.cpp |
System property daemon and persistence |
system/core/init/first_stage_init.cpp |
First-stage init before mounting partitions |
system/core/init/first_stage_mount.cpp |
Early partition mounting logic |
system/core/init/selinux.cpp |
SELinux policy loading during init |
system/core/init/ueventd.cpp |
Device node creation daemon |
system/core/init/reboot.cpp |
Shutdown and reboot sequencing |
system/core/rootdir/init.rc |
Root init script; defines core services and triggers |
system/core/rootdir/init.zygote64_32.rc |
Zygote startup configuration (64+32-bit) |
system/core/fastboot/fastboot.cpp |
Fastboot protocol host-side implementation |
bootable/recovery/recovery.cpp |
Recovery mode main entry point |
Kernel (Chapter 5)¶
Unlike the rest of this appendix, these paths are relative to a separate Android
Common Kernel checkout (its own repo init). In that checkout, the kernel
source tree is common/ and the build tooling is build/. The platform
checkout's kernel/ directory holds only configs, prebuilts, and tests.
| File Path | Purpose |
|---|---|
common/Makefile |
Top-level kernel Makefile |
common/arch/arm64/configs/gki_defconfig |
GKI default kernel configuration |
common/drivers/android/binder.c |
Binder kernel driver implementation |
common/drivers/android/binder_alloc.c |
Binder memory allocation |
common/drivers/staging/android/ion/ |
ION memory allocator (legacy) |
common/drivers/dma-buf/ |
DMA-BUF framework for buffer sharing |
common/drivers/gpu/drm/ |
DRM/KMS graphics driver framework |
common/include/uapi/linux/android/binder.h |
Binder UAPI header |
common/fs/fuse/dev.c |
FUSE device implementation (for scoped storage) |
build/build.sh |
Kernel build wrapper script (legacy) |
build/kleaf/ |
Kleaf (Bazel-based) kernel build system |
Bionic and the Dynamic Linker (Chapter 7)¶
| File Path | Purpose |
|---|---|
bionic/libc/bionic/malloc_common.cpp |
malloc dispatch (jemalloc/scudo selection) |
bionic/libc/bionic/pthread_create.cpp |
POSIX thread creation |
bionic/libc/bionic/libc_init_dynamic.cpp |
Dynamic-linked process startup |
bionic/libc/bionic/libc_init_static.cpp |
Static-linked process startup |
bionic/libc/bionic/system_property_api.cpp |
System property client API |
bionic/libc/arch-arm64/ |
ARM64 architecture-specific code |
bionic/libc/include/ |
Public C library headers |
bionic/linker/linker.cpp |
Dynamic linker main logic |
bionic/linker/linker_phdr.cpp |
ELF program header parsing and loading |
bionic/linker/linker_namespaces.cpp |
Linker namespace implementation |
bionic/linker/linker_soinfo.cpp |
Shared object info management |
bionic/linker/linker_config.cpp |
Linker configuration file parsing |
system/core/rootdir/etc/ld.config.txt |
Default linker namespace configuration |
bionic/libm/ |
Math library implementation |
bionic/libdl/libdl.cpp |
dlopen/dlsym implementation |
Binder IPC (Chapter 9)¶
| File Path | Purpose |
|---|---|
frameworks/native/libs/binder/IPCThreadState.cpp |
Per-thread Binder transaction processing |
frameworks/native/libs/binder/ProcessState.cpp |
Per-process Binder driver state |
frameworks/native/libs/binder/Binder.cpp |
BBinder (local) base class |
frameworks/native/libs/binder/BpBinder.cpp |
BpBinder (proxy) base class |
frameworks/native/libs/binder/Parcel.cpp |
Data serialization for Binder transactions |
frameworks/native/libs/binder/IServiceManager.cpp |
Service manager client interface |
frameworks/native/cmds/servicemanager/ServiceManager.cpp |
Service manager daemon |
frameworks/native/cmds/servicemanager/main.cpp |
Service manager entry point |
frameworks/base/core/java/android/os/Binder.java |
Java-side Binder base class |
frameworks/base/core/java/android/os/BinderProxy.java |
Java-side Binder proxy |
frameworks/base/core/java/android/os/Parcel.java |
Java-side Parcel |
frameworks/base/core/java/android/os/ServiceManager.java |
Java service manager client |
frameworks/base/core/jni/android_util_Binder.cpp |
Binder JNI bridge |
HAL -- Hardware Abstraction Layer (Chapter 10)¶
| File Path | Purpose |
|---|---|
hardware/interfaces/ |
Top-level HIDL/AIDL HAL interface directory |
hardware/interfaces/audio/aidl/ |
Audio HAL AIDL interface definitions |
hardware/interfaces/camera/provider/aidl/ |
Camera provider HAL interface |
hardware/interfaces/graphics/composer/aidl/ |
HWC (Hardware Composer) HAL interface |
hardware/interfaces/graphics/allocator/aidl/ |
Gralloc allocator HAL interface |
hardware/interfaces/graphics/mapper/stable-c/ |
Gralloc mapper stable-C HAL interface |
hardware/interfaces/health/aidl/ |
Battery/health HAL interface |
hardware/interfaces/sensors/aidl/ |
Sensors HAL interface |
hardware/interfaces/neuralnetworks/aidl/ |
NNAPI HAL interface |
hardware/interfaces/power/aidl/ |
Power HAL interface |
hardware/interfaces/thermal/aidl/ |
Thermal HAL interface |
hardware/interfaces/bluetooth/aidl/ |
Bluetooth HAL interface |
hardware/interfaces/wifi/aidl/ |
Wi-Fi HAL interface |
hardware/interfaces/vibrator/aidl/ |
Vibrator HAL interface |
hardware/libhardware/include/hardware/hardware.h |
Legacy HAL module interface (hw_module_t) |
system/libhidl/transport/HidlTransportSupport.cpp |
HIDL transport initialization |
system/tools/hidl/ |
HIDL compiler (hidl-gen) |
system/tools/aidl/ |
AIDL compiler for HAL interfaces |
NDK -- Native Development Kit (Chapter 11)¶
| File Path | Purpose |
|---|---|
frameworks/native/include/android/ |
Public NDK native headers |
frameworks/native/libs/nativewindow/include/android/native_window.h |
ANativeWindow API |
frameworks/native/include/android/native_activity.h |
NativeActivity API |
frameworks/native/include/android/sensor.h |
Sensor NDK API |
frameworks/native/include/android/asset_manager.h |
Asset manager NDK API |
frameworks/av/media/ndk/ |
Media NDK implementation (AMediaCodec, etc.) |
packages/modules/NeuralNetworks/runtime/ |
NNAPI runtime implementation |
frameworks/native/libs/nativewindow/ |
ANativeWindow implementation |
Native Services (Chapter 12)¶
| File Path | Purpose |
|---|---|
frameworks/native/services/inputflinger/dispatcher/InputDispatcher.cpp |
Input event dispatch to windows |
frameworks/native/services/inputflinger/reader/InputReader.cpp |
Input device event reading |
frameworks/native/services/inputflinger/InputManager.cpp |
Input subsystem coordinator |
frameworks/native/services/sensorservice/SensorService.cpp |
Sensor event multiplexing |
frameworks/native/services/surfaceflinger/main_surfaceflinger.cpp |
SurfaceFlinger process entry point |
system/logging/logd/SerializedLogBuffer.cpp |
System log ring buffer |
system/memory/lmkd/lmkd.cpp |
Low memory killer daemon |
system/memory/lmkd/ |
Modern LMKD implementation |
system/core/healthd/ |
Battery/health daemon |
system/netd/server/NetdNativeService.cpp |
Network daemon native service |
Graphics and Render Pipeline (Chapter 13)¶
| File Path | Purpose |
|---|---|
frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp |
Compositor main class |
frameworks/native/services/surfaceflinger/SurfaceFlinger.h |
SurfaceFlinger declarations |
frameworks/native/services/surfaceflinger/Scheduler/Scheduler.cpp |
VSYNC scheduling and frame pacing |
frameworks/native/services/surfaceflinger/Scheduler/VSyncReactor.cpp |
VSYNC controller implementation (VsyncController interface in VsyncController.h) |
frameworks/native/services/surfaceflinger/CompositionEngine/ |
Composition strategy engine |
frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.cpp |
HWC abstraction layer |
frameworks/native/services/surfaceflinger/PowerAdvisor/PowerAdvisor.cpp |
Power hint integration |
frameworks/native/services/surfaceflinger/Layer.cpp |
Individual surface/layer management |
frameworks/native/services/surfaceflinger/FrontEnd/LayerSnapshot.cpp |
Buffer-backed layer state snapshot (frontend) |
frameworks/native/services/surfaceflinger/FrontEnd/LayerLifecycleManager.cpp |
Layer lifecycle tracking |
frameworks/native/services/surfaceflinger/Tracing/TransactionTracing.cpp |
Transaction trace capture |
frameworks/native/libs/gui/Surface.cpp |
Client-side Surface implementation |
frameworks/native/libs/gui/BufferQueue.cpp |
Producer-consumer buffer queue |
frameworks/native/libs/gui/BufferQueueProducer.cpp |
Buffer queue producer side |
frameworks/native/libs/gui/BufferQueueConsumer.cpp |
Buffer queue consumer side |
frameworks/native/libs/gui/SurfaceComposerClient.cpp |
SurfaceFlinger client interface |
frameworks/native/libs/gui/BLASTBufferQueue.cpp |
BLAST buffer queue (modern path) |
frameworks/native/libs/renderengine/skia/SkiaGLRenderEngine.cpp |
Skia-based GPU composition |
frameworks/native/libs/renderengine/skia/SkiaVkRenderEngine.cpp |
Skia Vulkan render engine |
frameworks/native/opengl/libs/EGL/eglApi.cpp |
EGL API entry points |
frameworks/native/opengl/libs/EGL/Loader.cpp |
EGL driver loader |
frameworks/native/vulkan/libvulkan/driver.cpp |
Vulkan loader/driver interface |
frameworks/native/vulkan/libvulkan/api.cpp |
Vulkan API dispatch |
external/skia/src/gpu/ganesh/GrDirectContext.cpp |
Skia GPU context |
external/skia/src/gpu/graphite/ |
Skia Graphite (next-gen GPU backend) |
frameworks/base/libs/hwui/renderthread/RenderThread.cpp |
HWUI render thread |
frameworks/base/libs/hwui/renderthread/CanvasContext.cpp |
Per-window render context |
frameworks/base/libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp |
Skia GL rendering pipeline |
frameworks/base/libs/hwui/pipeline/skia/SkiaVulkanPipeline.cpp |
Skia Vulkan rendering pipeline |
frameworks/base/libs/hwui/RenderNode.cpp |
Display list render node |
frameworks/base/libs/hwui/RecordingCanvas.cpp |
Display list recording canvas |
frameworks/base/libs/hwui/DamageAccumulator.cpp |
Dirty region tracking |
frameworks/base/libs/hwui/JankTracker.cpp |
Frame jank detection and reporting |
frameworks/base/graphics/java/android/graphics/Canvas.java |
Java Canvas API |
frameworks/base/graphics/java/android/graphics/RenderNode.java |
Java RenderNode API |
frameworks/base/core/java/android/view/Choreographer.java |
VSYNC-based callback scheduler |
frameworks/base/core/java/android/view/ViewRootImpl.java |
View hierarchy root; drives measure/layout/draw |
frameworks/base/core/java/android/view/ThreadedRenderer.java |
Java bridge to HWUI RenderThread |
Animation System (Chapter 14)¶
| File Path | Purpose |
|---|---|
frameworks/base/core/java/android/animation/ValueAnimator.java |
Core property animation engine |
frameworks/base/core/java/android/animation/ObjectAnimator.java |
Property-targeted animation |
frameworks/base/core/java/android/animation/AnimatorSet.java |
Coordinated animation sequencing |
frameworks/base/core/java/android/view/animation/Animation.java |
Legacy view animation base class |
frameworks/base/core/java/android/transition/TransitionManager.java |
Scene transition framework |
frameworks/base/core/java/android/window/TransitionInfo.java |
Shell transition metadata |
frameworks/libs/systemui/animationlib/src/ |
SystemUI shared animation library |
Audio System (Chapter 15)¶
| File Path | Purpose |
|---|---|
frameworks/av/services/audioflinger/AudioFlinger.cpp |
Audio mixing daemon main class |
frameworks/av/services/audioflinger/Threads.cpp |
Playback and record thread implementations |
frameworks/av/services/audioflinger/Tracks.cpp |
Audio track management |
frameworks/av/services/audioflinger/Effects.cpp |
Audio effects chain processing |
frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cpp |
Audio routing policy |
frameworks/av/services/audiopolicy/common/managerdefinitions/src/PolicyAudioPort.cpp |
Audio port abstraction |
frameworks/av/media/libaudioclient/AudioTrack.cpp |
Client-side audio playback |
frameworks/av/media/libaudioclient/AudioRecord.cpp |
Client-side audio recording |
frameworks/av/media/libaudioclient/AudioSystem.cpp |
Audio system client interface |
frameworks/av/media/libaudiohal/impl/DeviceHalAidl.cpp |
Audio device HAL AIDL adapter |
frameworks/base/media/java/android/media/AudioTrack.java |
Java audio playback API |
frameworks/base/services/core/java/com/android/server/audio/AudioService.java |
Audio service (volume, routing) |
Media and Video Pipeline (Chapter 16)¶
| File Path | Purpose |
|---|---|
frameworks/av/media/libmediaplayerservice/MediaPlayerService.cpp |
Media player daemon |
frameworks/av/media/codec2/sfplugin/CCodec.cpp |
Codec2 framework plugin |
frameworks/av/media/codec2/sfplugin/CCodecBufferChannel.cpp |
Codec2 buffer management |
frameworks/av/media/codec2/components/ |
Software codec implementations |
frameworks/av/media/libstagefright/MediaCodec.cpp |
MediaCodec native implementation |
frameworks/av/media/libstagefright/ACodec.cpp |
Legacy OMX codec adapter |
frameworks/av/media/libmediaplayerservice/nuplayer/NuPlayer.cpp |
Media playback engine |
frameworks/av/media/module/extractors/ |
Media file format extractors (MP4, MKV, etc.) |
frameworks/av/services/camera/libcameraservice/CameraService.cpp |
Camera service daemon |
frameworks/av/drm/mediadrm/plugins/clearkey/ |
ClearKey DRM reference implementation |
frameworks/base/media/java/android/media/MediaCodec.java |
Java MediaCodec API |
frameworks/base/media/java/android/media/MediaPlayer.java |
Java MediaPlayer API |
ART Runtime (Chapter 18)¶
| File Path | Purpose |
|---|---|
art/runtime/runtime.cc |
ART runtime initialization |
art/runtime/class_linker.cc |
Class loading and linking |
art/runtime/interpreter/interpreter.cc |
Bytecode interpreter entry point |
art/runtime/jit/jit.cc |
JIT compiler coordinator |
art/runtime/jit/jit_code_cache.cc |
JIT compiled code cache |
art/runtime/gc/heap.cc |
Garbage collector heap management |
art/runtime/gc/collector/concurrent_copying.cc |
Concurrent copying GC |
art/runtime/thread.cc |
Thread management |
art/runtime/oat/oat_file.cc |
OAT file format handling |
art/runtime/mirror/object.h |
Root object type for managed heap |
art/runtime/mirror/class.h |
Class metadata representation |
art/compiler/optimizing/optimizing_compiler.cc |
AOT/JIT optimizing compiler |
art/compiler/optimizing/code_generator_arm64.cc |
ARM64 code generation backend |
art/compiler/optimizing/register_allocator_linear_scan.cc |
Register allocation |
art/dex2oat/dex2oat.cc |
Ahead-of-time compilation tool |
art/dex2oat/dex2oat_options.cc |
DEX-to-OAT compilation options |
art/libdexfile/dex/dex_file.h |
DEX file format definitions |
art/runtime/native_bridge_art_interface.cc |
ART-side native bridge integration |
Native Bridge and Binary Translation (Chapter 19)¶
| File Path | Purpose |
|---|---|
frameworks/libs/binary_translation/native_bridge/native_bridge.h |
NativeBridgeCallbacks interface (v3-v8) |
frameworks/libs/binary_translation/native_bridge/native_bridge.cc |
Native bridge framework implementation |
frameworks/libs/binary_translation/guest_loader/ |
Guest library loading and linking |
frameworks/libs/binary_translation/guest_abi/ |
ABI conversion between host and guest |
frameworks/libs/binary_translation/guest_state/ |
Guest CPU state abstraction |
frameworks/libs/binary_translation/jni/ |
JNI trampoline generation |
frameworks/libs/binary_translation/cpu_emulation/interpreter/ |
Guest instruction interpreter |
frameworks/libs/binary_translation/cpu_emulation/decoder/ |
Guest instruction decoder |
frameworks/libs/binary_translation/cpu_emulation/backend/ |
Host code generation backend |
frameworks/libs/binary_translation/cpu_emulation/assembler/ |
Host instruction assembler |
frameworks/libs/binary_translation/android_api/ |
Android framework proxy stubs |
frameworks/libs/native_bridge_support/native_bridge_support.mk |
Build synchronization for bridge support |
art/libnativebridge/native_bridge.cc |
System-side native bridge loading |
system_server (Chapter 20)¶
| File Path | Purpose |
|---|---|
frameworks/base/services/java/com/android/server/SystemServer.java |
system_server boot sequence |
frameworks/base/services/core/java/com/android/server/SystemServiceManager.java |
Service lifecycle manager |
frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java |
Activity Manager Service |
frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java |
Window Manager Service |
frameworks/base/services/core/java/com/android/server/wm/ActivityTaskManagerService.java |
Activity Task Manager Service |
frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java |
Package Manager Service |
frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java |
Power management |
frameworks/base/services/core/java/com/android/server/display/DisplayManagerService.java |
Display management |
frameworks/base/services/core/java/com/android/server/input/InputManagerService.java |
Input management bridge |
frameworks/base/core/java/com/android/internal/os/ZygoteInit.java |
Zygote process initialization |
frameworks/base/core/java/com/android/internal/os/ZygoteConnection.java |
Zygote fork request handling |
frameworks/base/core/java/com/android/internal/os/Zygote.java |
Zygote fork mechanics |
frameworks/base/core/java/com/android/internal/os/RuntimeInit.java |
App process runtime initialization |
Activity and Window Management (Chapter 22)¶
| File Path | Purpose |
|---|---|
frameworks/base/services/core/java/com/android/server/wm/Task.java |
Task (back stack) container |
frameworks/base/services/core/java/com/android/server/wm/ActivityRecord.java |
Per-activity state tracking |
frameworks/base/services/core/java/com/android/server/wm/ActivityStarter.java |
Intent resolution and activity start |
frameworks/base/services/core/java/com/android/server/wm/ActivityClientController.java |
Activity lifecycle IPC handler |
frameworks/base/services/core/java/com/android/server/wm/RootWindowContainer.java |
Root of the window hierarchy |
frameworks/base/services/core/java/com/android/server/wm/TaskFragment.java |
Activity embedding container |
frameworks/base/core/java/android/app/Activity.java |
Application-side activity base class |
frameworks/base/core/java/android/app/ActivityThread.java |
Main thread of every Android app |
frameworks/base/core/java/android/app/Instrumentation.java |
Activity lifecycle instrumentation hooks |
Window System (Chapter 23)¶
| File Path | Purpose |
|---|---|
frameworks/base/services/core/java/com/android/server/wm/WindowState.java |
Per-window server state |
frameworks/base/services/core/java/com/android/server/wm/WindowToken.java |
Window grouping token |
frameworks/base/services/core/java/com/android/server/wm/Session.java |
Per-app WMS session |
frameworks/base/services/core/java/com/android/server/wm/WindowStateAnimator.java |
Window-to-Surface bridge; creates and manages the window's SurfaceControl |
frameworks/base/services/core/java/com/android/server/wm/WindowAnimator.java |
Window animation coordinator |
frameworks/base/services/core/java/com/android/server/wm/InsetsStateController.java |
System insets management |
frameworks/base/services/core/java/com/android/server/wm/InsetsPolicy.java |
Insets visibility policy |
frameworks/base/core/java/android/view/WindowManager.java |
Client window manager interface |
frameworks/base/core/java/android/view/WindowManagerImpl.java |
Window manager implementation |
frameworks/base/core/java/android/view/View.java |
Base UI component (measure/layout/draw) |
frameworks/base/core/java/android/view/ViewGroup.java |
Container for child views |
frameworks/base/core/java/android/view/SurfaceView.java |
Separate-surface view component |
Display System (Chapter 24)¶
| File Path | Purpose |
|---|---|
frameworks/base/services/core/java/com/android/server/wm/DisplayContent.java |
Per-display window container |
frameworks/base/services/core/java/com/android/server/wm/DisplayPolicy.java |
Per-display window policy (bars, cutouts) |
frameworks/base/services/core/java/com/android/server/wm/DisplayRotation.java |
Display rotation handling |
frameworks/base/services/core/java/com/android/server/display/LogicalDisplay.java |
Logical display abstraction |
frameworks/base/services/core/java/com/android/server/display/DisplayDeviceInfo.java |
Physical display properties |
frameworks/base/services/core/java/com/android/server/display/LocalDisplayAdapter.java |
Built-in display adapter |
PackageManagerService (Chapter 26)¶
| File Path | Purpose |
|---|---|
frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java |
Package management core |
frameworks/base/services/core/java/com/android/server/pm/Settings.java |
Package settings persistence |
frameworks/base/services/core/java/com/android/server/pm/InstallPackageHelper.java |
Package installation logic |
frameworks/base/services/core/java/com/android/server/pm/PackageInstallerService.java |
Installer session management |
frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerService.java |
Runtime permission management |
frameworks/base/core/java/com/android/internal/pm/pkg/parsing/ParsingPackageUtils.java |
APK manifest parsing |
frameworks/base/services/core/java/com/android/server/pm/resolution/ComponentResolver.java |
Intent filter resolution |
frameworks/base/services/core/java/com/android/server/pm/dex/ArtManagerService.java |
ART profile and DEX optimization service |
frameworks/base/core/java/android/content/pm/PackageManager.java |
Public PackageManager API |
Security (Chapter 40)¶
| File Path | Purpose |
|---|---|
system/sepolicy/public/ |
Public SELinux policy definitions |
system/sepolicy/private/ |
Private (platform) SELinux policy |
system/sepolicy/vendor/ |
Vendor SELinux policy |
system/security/keystore2/ |
Keystore2 service (Rust) |
system/security/identity/ |
Identity credential service |
external/selinux/ |
SELinux userspace tools |
system/extras/verity/ |
dm-verity tools |
system/fs/fs_mgr/libfs_avb/ |
AVB (Android Verified Boot) integration |
frameworks/base/services/core/java/com/android/server/biometrics/ |
Biometric authentication |
frameworks/base/keystore/java/android/security/keystore2/ |
Keystore Java API |
SystemUI (Chapter 48)¶
| File Path | Purpose |
|---|---|
frameworks/base/packages/SystemUI/src/com/android/systemui/application/SystemUIApplication.kt |
SystemUI application entry |
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java |
Status bar + notification shade |
frameworks/base/packages/SystemUI/src/com/android/systemui/qs/panels/domain/startable/QSPanelsCoreStartable.kt |
Quick Settings panels startup coordinator |
frameworks/base/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyRecentsImpl.java |
Recents/overview proxy to Launcher |
frameworks/base/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java |
Lock screen coordinator |
frameworks/base/packages/SystemUI/src/com/android/systemui/navigationbar/views/NavigationBar.java |
Navigation bar |
frameworks/base/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogControllerImpl.java |
Volume dialog logic |
frameworks/base/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java |
Notification panel controller |
Launcher3 (Chapter 49)¶
| File Path | Purpose |
|---|---|
packages/apps/Launcher3/src/com/android/launcher3/Launcher.java |
Main Launcher activity |
packages/apps/Launcher3/src/com/android/launcher3/Workspace.java |
Home screen workspace |
packages/apps/Launcher3/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java |
All-apps drawer |
packages/apps/Launcher3/src/com/android/launcher3/model/LoaderTask.java |
App list loading |
packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java |
Drag-and-drop coordinator |
packages/apps/Launcher3/quickstep/src/com/android/quickstep/RecentsActivity.java |
Recents (overview) activity |
packages/apps/Launcher3/quickstep/src/com/android/quickstep/TouchInteractionService.kt |
Gesture navigation service |
Settings App (Chapter 50)¶
| File Path | Purpose |
|---|---|
packages/apps/Settings/src/com/android/settings/Settings.java |
Main Settings activity |
packages/apps/Settings/src/com/android/settings/dashboard/DashboardFragment.java |
Preference dashboard base |
packages/apps/Settings/src/com/android/settings/search/SearchFeatureProvider.java |
Settings search |
packages/apps/Settings/src/com/android/settings/biometrics/ |
Biometrics enrollment |
CompanionDeviceManager and Virtual Devices (Chapter 52)¶
| File Path | Purpose |
|---|---|
frameworks/base/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java |
CDM service |
frameworks/base/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java |
VDM service |
Mainline Modules (Chapter 54)¶
| File Path | Purpose |
|---|---|
packages/modules/Wifi/ |
Wi-Fi Mainline module |
packages/modules/Bluetooth/ |
Bluetooth Mainline module |
packages/modules/NetworkStack/ |
Network stack Mainline module |
packages/modules/Permission/ |
Permission controller module |
packages/providers/MediaProvider/ |
Media storage provider module |
packages/modules/adb/ |
ADB Mainline module |
packages/modules/common/ |
Shared Mainline module infrastructure |
system/apex/apexd/ |
APEX daemon (module installer) |
system/apex/apexd/apexd.cpp |
APEX installation and activation |
system/apex/libs/libapexutil/ |
APEX utility library |
Virtualization Framework (Chapter 56)¶
| File Path | Purpose |
|---|---|
packages/modules/Virtualization/ |
Android Virtualization Framework top-level |
packages/modules/Virtualization/android/virtualizationservice/ |
VM lifecycle management |
packages/modules/Virtualization/build/microdroid/ |
Minimal guest OS (Microdroid) build files |
packages/modules/Virtualization/guest/pvmfw/ |
Protected VM firmware |
packages/modules/Virtualization/libs/libvm_payload/ |
Guest payload interface |
Testing (Chapter 57)¶
| File Path | Purpose |
|---|---|
test/vts/ |
Vendor Test Suite top-level |
cts/tests/ |
Compatibility Test Suite tests |
tools/tradefederation/core/ |
Trade Federation test harness core |
tools/tradefederation/core/src/com/android/tradefed/ |
TradeFed framework classes |
platform_testing/tests/ |
Platform integration tests |
frameworks/base/core/tests/ |
Framework core unit tests |
frameworks/base/test-runner/ |
Android test runner framework |
Architecture Support (Chapter 59)¶
| File Path | Purpose |
|---|---|
build/soong/cc/config/arm64_device.go |
ARM64 toolchain: arch variants, CPU tuning, PAC/BTI |
build/soong/cc/config/arm_device.go |
ARM 32-bit toolchain: Thumb/ARM, errata workarounds |
build/soong/cc/config/x86_device.go |
x86 32-bit toolchain: SSE, stack realignment |
build/soong/cc/config/x86_64_device.go |
x86_64 toolchain: microarchitecture variants |
build/soong/cc/config/riscv64_device.go |
RISC-V 64-bit toolchain: ISA extensions |
build/soong/cc/config/toolchain.go |
Toolchain interface and factory registry |
build/soong/cc/config/global.go |
Global compiler/linker flags for all architectures |
build/soong/cc/config/bionic.go |
Bionic CRT objects and default shared libraries |
build/soong/cc/config/clang.go |
Clang unknown-flags filter |
build/soong/android/arch.go |
Arch struct, ArchType, multilib decode logic |
bionic/libc/arch-arm64/ifuncs.cpp |
ARM64 ifunc dispatchers (MTE variant selection; SVE variants present but not yet enabled) |
art/runtime/arch/riscv64/instruction_set_features_riscv64.h |
ART RISC-V feature detection |
art/runtime/arch/arm64/instruction_set_features_arm64.h |
ART ARM64 feature bitmap and errata |
Emulator (Chapter 60)¶
| File Path | Purpose |
|---|---|
external/qemu/android-qemu2-glue/emulation/ |
Glue between QEMU and the android-emu emulation layer |
external/qemu/android/android-emu/android/emulation/ |
Emulator hardware emulation |
device/generic/goldfish/ |
Goldfish virtual device definitions |
device/google/cuttlefish/ |
Cuttlefish virtual device definitions |
device/google/cuttlefish/host/commands/run_cvd/ |
Cuttlefish launcher |
external/crosvm/ |
CrosVM virtual machine monitor |
external/qemu/android/android-grpc/ |
Emulator gRPC control interface |
Device Form Factors (Chapter 62)¶
| File Path | Purpose |
|---|---|
packages/services/Car/ |
Android Automotive service layer |
packages/services/Car/service/src/com/android/car/CarServiceImpl.java |
Automotive car service |
packages/apps/Car/Launcher/ |
Automotive launcher |
device/google/atv/ |
Android TV device configuration |
packages/apps/TvSettings/ |
TV settings application |
prebuilts/sdk/opt/wear/ |
Wear OS SDK prebuilts |
Note: Paths may shift between AOSP branches. The paths above target AOSP
mainas of early 2026. Usefindorcs.android.comto verify against your checked-out branch.