老手直接看最后的总结
| 指标 | 数量 |
|---|---|
| Java/Kotlin 源文件 | ~130,700 |
| C/C++ 源文件 | ~388,700 |
| 系统应用 (packages/apps/) | 52 个 |
| APEX 模块 (packages/modules/) | 45 个 |
| 外部依赖库 (external/) | 400+ |
| 支持语言 | 90+ |
| 支持设备型号 | 11+ |
┌─────────────────────────────────────────────────────────────────────────┐
│ 应用层 (Applications) │
│ ┌──────────┐ ┌────────┐ ┌──────────┐ ┌────────┐ ┌──────────────────┐ │
│ │ Settings │ │Camera2 │ │Launcher3 │ │Gallery │ │ Messaging/Dialer │ │
│ └──────────┘ └────────┘ └──────────┘ └────────┘ └──────────────────┘ │
│ ┌──────────┐ ┌────────┐ ┌──────────┐ ┌────────┐ ┌──────────────────┐ │
│ │ Music │ │DeskClk │ │Calculator│ │ Tag │ │ 其他 40+ 系统应用 │ │
│ └──────────┘ └────────┘ └──────────┘ └────────┘ └──────────────────┘ │
│ packages/apps/ │
├─────────────────────────────────────────────────────────────────────────┤
│ APEX 模块层 (Modular System Components) │
│ ┌───────────┐ ┌──────────┐ ┌──────┐ ┌─────────┐ ┌──────────────────┐ │
│ │Connectivity│ │Bluetooth │ │ WiFi │ │Telephony│ │ DnsResolver │ │
│ └───────────┘ └──────────┘ └──────┘ └─────────┘ └──────────────────┘ │
│ ┌───────────┐ ┌──────────┐ ┌──────────────┐ ┌───────────────────────┐│
│ │Permission │ │NetworkStk│ │NeuralNetworks│ │ Virtualization/UWB ││
│ └───────────┘ └──────────┘ └──────────────┘ └───────────────────────┘│
│ packages/modules/ │
├─────────────────────────────────────────────────────────────────────────┤
│ Android 框架层 (Framework) │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ frameworks/base/ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌────────┐ ┌────────┐ ┌─────────┐ │ │
│ │ │ android. │ │ android. │ │android.│ │android.│ │android. │ │ │
│ │ │ app.* │ │content.* │ │ view.* │ │widget.*│ │ os.* │ │ │
│ │ │ Activity │ │ContentPro│ │ View │ │TextView│ │Handler │ │ │
│ │ │ Service │ │ Intent │ │ViewGrp │ │ListView│ │Parcel │ │ │
│ │ │ Fragment │ │BroadcastR│ │Window │ │ ... │ │Bundle │ │ │
│ │ └──────────┘ └──────────┘ └────────┘ └────────┘ └─────────┘ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌────────┐ ┌────────┐ ┌─────────┐ │ │
│ │ │ android. │ │ android. │ │android.│ │android.│ │android. │ │ │
│ │ │graphics.*│ │ media.* │ │ net.* │ │ hw.* │ │telephony│ │ │
│ │ │ Canvas │ │MediaPlayr│ │ Uri │ │Sensor │ │ Mgr │ │ │
│ │ │ Bitmap │ │AudioMgr │ │ConnMgr │ │Camera │ │SmsMgr │ │ │
│ │ └──────────┘ └──────────┘ └────────┘ └────────┘ └─────────┘ │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ ┌──────────────────────┐ ┌──────────────────────────────────────┐ │
│ │ frameworks/av/ │ │ frameworks/native/ │ │
│ │ 音频/视频子系统 │ │ SurfaceFlinger / InputSystem │ │
│ └──────────────────────┘ └──────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ System Services (frameworks/base/services/) │ │
│ │ ActivityManagerService WindowManagerService PackageManager │ │
│ │ PowerManagerService InputMethodManager NotificationMgr │ │
│ │ ConnectivityService TelephonyRegistry SensorService │ │
│ └──────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────┤
│ Android 运行时 (Runtime) │
│ ┌────────────────────────────┐ ┌──────────────────────────────────┐ │
│ │ ART Runtime │ │ libcore/ │ │
│ │ (art/) │ │ Core Java Libraries │ │
│ │ ┌────────┐ ┌───────────┐ │ │ java.lang / java.util / │ │
│ │ │Compiler│ │Interpreter│ │ │ java.io / java.net / │ │
│ │ │dex2oat │ │ │ │ │ java.security / javax.* │ │
│ │ └────────┘ └───────────┘ │ └──────────────────────────────────┘ │
│ │ ┌────────┐ ┌───────────┐ │ ┌──────────────────────────────────┐ │
│ │ │ GC │ │ Profiler │ │ │ libnativehelper/ │ │
│ │ │垃圾回收│ │ 方法分析 │ │ │ JNI 辅助工具库 │ │
│ │ └────────┘ └───────────┘ │ └──────────────────────────────────┘ │
│ └────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────┤
│ 原生库与系统组件 (Native Libraries & System) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────────┐ │
│ │ bionic/ │ │ system/ │ │ system/ │ │ system/ │ │ system/ │ │
│ │ libc │ │ core/ │ │ security │ │ keymastr │ │ apex/ │ │
│ │ libm │ │ adb │ │ keystore │ │ keymint │ │ APEX框架 │ │
│ │ linker │ │ init │ │ │ │ │ │ │ │
│ │ libdl │ │ logd │ │ │ │ │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └─────────────┘ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ external/ (400+ 第三方库) │ │
│ │ openssl / boringssl / icu / sqlite / zlib / libpng / freetype │ │
│ │ protobuf / v8 / chromium / libjpeg / ffmpeg ... │ │
│ └──────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────┤
│ 硬件抽象层 (HAL) │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ hardware/ │ │
│ │ ┌──────────┐ ┌─────────┐ ┌──────────┐ ┌────────┐ ┌──────────┐ │ │
│ │ │ Camera │ │ Audio │ │ Graphics │ │Sensors │ │ Bluetooth│ │ │
│ │ │ HAL │ │ HAL │ │ HAL │ │ HAL │ │ HAL │ │ │
│ │ └──────────┘ └─────────┘ └──────────┘ └────────┘ └──────────┘ │ │
│ │ ┌──────────┐ ┌─────────┐ ┌──────────┐ ┌────────┐ │ │
│ │ │ WiFi │ │ NFC │ │ GPS │ │ USB │ │ │
│ │ │ HAL │ │ HAL │ │ HAL │ │ HAL │ │ │
│ │ └──────────┘ └─────────┘ └──────────┘ └────────┘ │ │
│ └──────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────┤
│ Rockchip 设备定制层 (Device BSP) │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ device/rockchip/ │ │
│ │ ┌──────────────┐ common/ <- 共享配置、脚本、overlay │ │
│ │ ├──────────────┤ │ │
│ │ │ rk3326/ │ PX30_u / rk3326_u / rk3326_ugo │ │
│ │ ├──────────────┤ │ │
│ │ │ rk3399/ │ rk3399_u / preinstall 变体 │ │
│ │ ├──────────────┤ │ │
│ │ │ rk3562/ │ rk3562_t │ │
│ │ ├──────────────┤ │ │
│ │ │ rk3588/ │ rk3588_s / rk3588_t / rk3588_u │ │
│ │ └──────────────┘ │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌────────────────────────────────┐ │
│ │ vendor/ │ │ rkbin/ │ │ RKTools/ & RKDocs/ │ │
│ │ 厂商定制代码 │ │ Rockchip │ │ 瑞芯微工具和文档 │ │
│ │ │ │ 固件二进制 │ │ SDK指南/OTA/SELinux/性能 │ │
│ └─────────────┘ └─────────────┘ └────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────┤
│ 内核与引导 (Kernel & Bootloader) │
│ ┌──────────────────────────────┐ ┌────────────────────────────────┐ │
│ │ kernel-6.1/ │ │ u-boot/ │ │
│ │ Linux Kernel 6.1 │ │ U-Boot 引导程序 │ │
│ │ 设备树 / 驱动 / 调度 / 内存 │ │ 初始化硬件 / 加载内核 │ │
│ └──────────────────────────────┘ └────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────┐
│ 构建入口 │
│ build.sh (Rockchip 定制) │
└──────────────────────┬──────────────────────────────┘
│
┌────────────┼────────────┐
v v v
┌────────────┐ ┌─────────┐ ┌─────────┐
│ Soong │ │ Bazel │ │ Make │
│ Android.bp │ │ BUILD │ │.mk 文件 │
│ (主构建) │ │(新集成) │ │ (遗留) │
└─────┬──────┘ └────┬────┘ └────┬────┘
└─────────────┼───────────┘
v
┌──────────────────────────────┐
│ 产物 (Build Output) │
│ system.img / boot.img / │
│ vendor.img / recovery.img │
│ -> 完整刷机固件 │
└──────────────────────────────┘
用户操作 (触摸/按键)
│
v
┌──────────┐ ┌───────────────┐ ┌──────────────┐
│ Input │───>│ WindowManager │───>│ Activity │
│ System │ │ Service │ │ Manager │
└──────────┘ └───────────────┘ │ Service │
└──────┬───────┘
│
┌─────────────────────────┼──────────────────┐
v v v
┌───────────┐ ┌──────────────┐ ┌────────────┐
│ App层 │ │ Content │ │ System │
│ Activity │<────────>│ Provider │ │ Services │
│ Fragment │ │ (数据共享) │ │ (后台) │
│ View树 │ └──────────────┘ └────────────┘
└─────┬─────┘
│ 渲染
v
┌───────────┐ ┌──────────────┐ ┌──────────────┐
│ Surface │───>│ SurfaceFlinger│───>│ Display │
│ (绘图缓冲)│ │ (合成引擎) │ │ (屏幕输出) │
└───────────┘ └──────────────┘ └──────────────┘
│
v
┌──────────────┐
│ Hardware │
│ Composer HAL │
│ (GPU/DPU) │
└──────────────┘
上电
│
v
┌────────┐ ┌────────┐ ┌────────┐ ┌─────────────┐
│ rkbin/ │────>│U-Boot │────>│ Kernel │────>│ init │
│BootROM │ │引导加载 │ │ 6.1 │ │ (system/core│
│ 固件 │ │ │ │ │ │ /init) │
└────────┘ └────────┘ └────────┘ └──────┬──────┘
│
┌───────────────┼───────────┐
v v v
┌──────────┐ ┌──────────┐ ┌─────────┐
│ Zygote │ │ ServiceMgr│ │ SurfaceF│
│ (ART启动)│ │ (Binder) │ │ linger │
└────┬─────┘ └──────────┘ └─────────┘
│
┌────┴─────┐
v v
┌──────────┐ ┌──────────┐
│SystemSrvr│ │ Launcher│
│系统服务 │ │ 桌面 │
└──────────┘ └──────────┘
| 模块 | 路径 | 功能 |
|---|---|---|
| Framework Core | frameworks/base/core/ |
Android 核心 API:Activity、Service、ContentProvider、BroadcastReceiver 四大组件 |
| System Services | frameworks/base/services/ |
AMS、WMS、PMS、PowerManager 等系统服务,Android 的"大脑" |
| AV 子系统 | frameworks/av/ |
音视频编解码、MediaPlayer、Camera Service、AudioFlinger |
| Native Framework | frameworks/native/ |
SurfaceFlinger 显示合成、InputDispatcher 输入分发、Binder IPC |
| ART 运行时 | art/ |
DEX 字节码编译(dex2oat)、解释执行、GC 垃圾回收、JIT 编译 |
| Bionic | bionic/ |
Android 定制 C 库(libc/libm/linker),替代 glibc |
| HAL | hardware/ |
Camera/Audio/Graphics/Sensor 等硬件抽象接口,隔离上层与驱动 |
| Kernel | kernel-6.1/ |
Linux 6.1 内核,含 Rockchip 特定驱动和设备树 |
| U-Boot | u-boot/ |
引导加载程序,初始化硬件并启动内核 |
| Device BSP | device/rockchip/ |
各芯片型号的 BoardConfig、产品定义、Overlay、SEPolicy |
| System Apps | packages/apps/ |
52 个系统应用:Settings、Camera、Launcher、Gallery 等 |
| APEX Modules | packages/modules/ |
可独立更新的模块化组件:Connectivity、Bluetooth、WiFi 等 |
| 目录 | 说明 |
|---|---|
frameworks/ |
核心 Android 框架 (base/av/native/rs/minikin等) |
packages/ |
系统应用和模块化组件 |
external/ |
400+ 外部第三方库和依赖 |
system/ |
系统级组件 (core/security/apex/keymaster等) |
art/ |
Android Runtime (Dalvik/ART) |
device/ |
设备特定配置 (Rockchip 各板型) |
hardware/ |
硬件抽象层 |
build/ |
构建系统 (Soong/Blueprint) |
bionic/ |
C 库和系统工具 |
libcore/ |
核心 Java 库 |
libnativehelper/ |
JNI 辅助工具 |
kernel-6.1/ |
Linux 内核 |
u-boot/ |
引导加载程序 |
rkbin/ |
Rockchip 二进制工具 |
prebuilts/ |
预编译工具 |
vendor/ |
厂商定制 |
dalvik/ |
Dalvik 虚拟机 |
cts/ |
兼容性测试套件 |
test/ / platform_testing/ |
测试套件 |
tools/ / development/ |
开发工具 |
RKDocs/ |
Rockchip 文档 |
RKTools/ |
Rockchip 工具 |
| 应用 | 说明 |
|---|---|
| Settings | 系统设置 |
| Camera2 / rkCamera2 | 相机应用 |
| Launcher3 | 桌面启动器 |
| Gallery2 / Gallery | 相册 |
| Messaging | 短信 |
| Dialer / Contacts | 拨号器/联系人 |
| Music | 音乐播放器 |
| DeskClock | 闹钟/时钟 |
| Calculator | 计算器 |
| Calendar | 日历 |
| DocumentsUI | 文件管理 |
| StorageManager | 存储管理 |
| SystemUIGo | 系统 UI |
| ThemePicker | 主题选择 |
| WallpaperPicker2 | 壁纸选择 |
| KeyChain | 密钥链 |
| CertInstaller | 证书安装 |
| SoundRecorder | 录音 |
| Stk | SIM 工具包 |
| TvSettings / TvSystemUI | 电视版设置/UI |
| Car | 车载模块 |
| Tag | NFC 标签 |
这是一个 风火轮YY3588 Android 14 SDK 完整系统源码工程,包含从底层 U-Boot 引导 -> Linux Kernel -> HAL 硬件抽象 -> Android Framework -> 系统应用的全部代码。
关键特点:
device/rockchip/ 下不同目录区分build.sh 入口驱动YY3588 的工程定义主要集中在以下位置:
核心目录
device/rockchip/rk3588/rk3588_u/ — 这是 YY3588 的主配置目录
device/rockchip/rk3588/rk3588_u/
├── BoardConfig.mk ← 板级配置 (关键: PRODUCT_KERNEL_DTS := rk3588-yyt)
├── rk3588_u.mk ← 产品定义 (PRODUCT_NAME/DEVICE/MODEL)
├── AndroidBoard.mk ← Android 板级构建
├── Android.mk ← 构建入口
├── bt_vendor.conf ← 蓝牙配置
├── config.cfg / config.cfg_ab / config.cfg_ab_gki ← 分区/固件配置
├── dt-overlay.in ← 设备树 overlay
├── recovery.fstab ← Recovery 分区表
├── media_profiles_default.xml ← 媒体能力配置
├── resolution_white.xml ← 分辨率白名单
└── ota/ ← OTA 升级相关
关键配置文件内容
BoardConfig.mk 中 YY3588 特有配置:
关联的上层配置
┌───────────────────────────────────────────┬────────────────────────────┐
│ 文件 │ 作用 │
├───────────────────────────────────────────┼────────────────────────────┤
│ device/rockchip/rk3588/AndroidProducts.mk │ 注册 rk3588_u 产品变体 │
├───────────────────────────────────────────┼────────────────────────────┤
│ device/rockchip/rk3588/BoardConfig.mk │ RK3588 芯片级通用板配 │
├───────────────────────────────────────────┼────────────────────────────┤
│ device/rockchip/rk3588/device.mk │ RK3588 通用设备定义 │
├───────────────────────────────────────────┼────────────────────────────┤
│ device/rockchip/common/ │ 所有 Rockchip 设备共享配置 │
└───────────────────────────────────────────┴────────────────────────────┘
内核设备树 & 构建脚本
文件: kernel-6.1/ 中的 rk3588-yyt.dts
作用: YY3588 硬件描述 (引脚/外设/时钟等)
────────────────────────────────────────
文件: device/rockchip/common/build/rockchip/build-kernel.sh
作用: 包含 rk3588-yyt.img 的内核构建命令
编译命令
lunch rk3588_u-userdebug # 或 rk3588_u-user