跳到主要内容

Android 13系统架构

Android 13 自上而下可分为应用层、Framework、Native/System Service、HAL 和 Linux Kernel。调试功能时,先判断问题位于哪一层,再决定抓取什么日志和修改哪个目录。

分层关系​

Application
↓
Application Framework / System Service
↓
Native Framework / Binder / SurfaceFlinger / Media Service
↓
HAL
↓
Linux Kernel / Allwinner BSP Driver
↓
Hardware

常见模块与代码位置​

模块Android侧常见位置Longan/BSP侧常见位置
多媒体frameworks/av/media/、frameworks/base/media/CedarX/CedarC 相关驱动与私有库
显示frameworks/native/services/surfaceflinger/、hardware/aw/display/longan/bsp/drivers/video/ 或 DRM/DE 驱动目录
音频frameworks/av/services/audioflinger/、音频 HALlongan/bsp/drivers/sound/、ALSA SoC 驱动
CameraCamera Framework、Camera Service、Camera HALlongan/bsp/drivers/media/、CSI/ISP/Sensor 驱动
Wi-FiWi-Fi Framework、wpa_supplicant、Wi-Fi HALWLAN 模组驱动、SDIO/USB 总线驱动
蓝牙Bluetooth Framework、Bluetooth HALUART/USB、rfkill、模组电源控制
OTA/Recoverybootable/recovery/、update_engine、产品配置分区表、misc、boot/recovery 镜像

目录名称会随 SDK 分支变化,应使用下面的方式查找:

cd <ANDROID_TOP>

grep -Rni "camera.provider" hardware vendor device 2>/dev/null | head
grep -Rni "audio.primary" hardware vendor device 2>/dev/null | head
find longan/bsp -type d -iname '*display*' -o -iname '*camera*' -o -iname '*audio*'

判断问题所在层​

内核和硬件层​

典型现象:

  • /dev 中没有对应设备节点。
  • dmesg 出现 probe、clock、reset、GPIO、IRQ 或超时错误。
  • I2C/SPI 总线无法读到设备。

优先检查:设备树、内核配置和 BSP 驱动。

HAL层​

典型现象:

  • 内核设备节点存在,但 Android 服务找不到设备。
  • lshal、dumpsys 或 HAL 日志显示初始化失败。

优先检查:HAL 服务、权限、SELinux、VINTF 和产品配置。

Framework和应用层​

典型现象:

  • HAL 已正常工作,但设置界面或应用行为不正确。
  • logcat 中出现 Java exception、Service 或权限错误。

优先检查:Framework、System Service、Overlay 和应用配置。

基本日志组合​

adb root
adb shell dmesg -w
adb logcat -b all
adb shell lshal
adb shell dumpsys

驱动功能文档会同时给出内核层和 Android 层验证方法,避免只看到设备节点就判断功能已经完整可用。