Ahao's Technical Blog Ahao's Technical Blog
首页
  • 001.基础篇
  • 002.玩转AOSP篇
  • 003.学穿Binder篇
  • 004.基础组件篇
  • 005.系统启动过程分析
  • 006.Hal开发入门与实践
  • 007.显示系统
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

阿豪讲Framework

不积跬步无以至千里
首页
  • 001.基础篇
  • 002.玩转AOSP篇
  • 003.学穿Binder篇
  • 004.基础组件篇
  • 005.系统启动过程分析
  • 006.Hal开发入门与实践
  • 007.显示系统
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 基础篇

  • 玩转AOSP篇

  • 学穿Binder篇

  • 基础组件篇

  • 系统启动过程分析

  • Hal开发入门与实践

    • 001.Android HAL 层概览
    • 002.传统 Hal 开发指南1 —— 开发环境准备
    • 003.传统 Hal 开发指南2 —— 传统 HAL 整体架构
    • 004.传统 Hal 开发指南3 —— 驱动开发
    • 005.传统 Hal 开发指南4 —— 实现一个简单的 Hal 模块
    • 006.传统 Hal 开发指南5 —— 添加硬件访问服务
    • 007.传统 Hal 开发指南6 —— 开发一个 App 访问硬件服务
    • 008.HIDL HAL 开发指南1 —— 开发环境准备
    • 009.HIDL Hal 开发指南2 —— Android 8 HAL 变迁
    • 010.HIDL Hal 开发指南3 —— HIDL HAL 实例程序
    • 011.HIDL Hal 开发指南4 —— Binderized HALs 实例分析
    • 012.HIDL Hal 开发指南5 —— Passthrough HALs 实例分析
    • 013.HIDL Hal 开发指南6 —— Same-Process HALs 实例分析
    • 014.HIDL Hal 开发指南7 —— 驱动开发
    • 015.HIDL Hal 开发指南8 —— 简单 HIDL HAL 实现
    • 016.HIDL Hal 开发指南9 —— 添加硬件访问服务
    • 017.HIDL Hal 开发指南10 —— 开发一个 App 访问硬件服务
    • 018.AIDL Hal 开发指南1—— 开发环境准备
      • 使用 VMware 虚拟机安装 Ubuntu 2204
      • AOSP Android14 下载与编译
      • Kernel 下载与编译
      • 参考资料
    • 019.AIDL Hal 开发指南2 —— AIDL HAL 整体架构
    • 020.AIDL Hal 开发指南 3 ———— AIDL HAL 实例分析1
    • 021.AIDL Hal 开发指南 4 ———— AIDL HAL 实例分析2
    • 022.AIDL Hal 开发指南5 —— stable-c HAL 实例分析
    • 023.AIDL Hal 开发指南6 —— 驱动开发
    • 024.AIDL Hal 开发指南7 —— 实现一个简单的 AIDL HAL
    • 025.AIDL Hal 开发指南8 —— 添加硬件访问服务
    • 026.AIDL Hal 开发指南10 —— AIDL HAL 的升级
  • 显示系统

  • Framework
  • Hal开发入门与实践
阿豪
2024-03-29
目录

018.AIDL Hal 开发指南1—— 开发环境准备

AIDL HAL 教程使用 Ubuntu2204 + Android14 环境进行学习。

# 使用 VMware 虚拟机安装 Ubuntu 2204

VMware 虚拟机安装 Ubuntu 2204,这部分内容可以参考AOSP 极速上手 (opens new window)

将镜像文件更换为 Ubuntu2204 的即可

# AOSP Android14 下载与编译

# 下载
repo init https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-14.0.0_r15
repo sync

# 编译
source build/envsetup.sh
lunch aosp_cf_x86_64_phone-eng
m
1
2
3
4
5
6
7
8

Cuttlefish 模拟器安装与启动:

安装 CuttleFish 所需的依赖:

sudo apt install -y git devscripts config-package-dev debhelper-compat golang curl
git clone https://github.com/google/android-cuttlefish
cd android-cuttlefish
for dir in base frontend; do
  cd $dir
  debuild -i -us -uc -b -d
  cd ..
done
sudo dpkg -i ./cuttlefish-base_*_*64.deb || sudo apt-get install -f
sudo dpkg -i ./cuttlefish-user_*_*64.deb || sudo apt-get install -f
sudo usermod -aG kvm,cvdnetwork,render $USER
sudo reboot
1
2
3
4
5
6
7
8
9
10
11
12

启动模拟器:

launch_cvd --start_webrtc=true
1

浏览器中输入 https://localhost:8443 即可使用虚拟机了

# Kernel 下载与编译

# 下载编译
repo init -u https://android.googlesource.com/kernel/manifest -b common-android14-6.1
repo sync

# 编译
tools/bazel run //common-modules/virtual-device:virtual_device_x86_64_dist
1
2
3
4
5
6

Cuttlefish 加载编译 x86 的内核和 ramdisk:

cvd start  -kernel_path=/home/zzh0838/Project/aosp/kernel/out/virtual_device_x86_64/dist/bzImage  -initramfs_path=/home/zzh0838/Project/aosp/kernel/out/virtual_device_x86_64/dist/initramfs.img
1

# 参考资料

最新:Android14源码 + Cuttlefish实战指南 (opens new window)

017.HIDL Hal 开发指南10 —— 开发一个 App 访问硬件服务
019.AIDL Hal 开发指南2 —— AIDL HAL 整体架构

← 017.HIDL Hal 开发指南10 —— 开发一个 App 访问硬件服务 019.AIDL Hal 开发指南2 —— AIDL HAL 整体架构→

最近更新
01
如何调试 SurfaceFlinger
10-05
02
SurfaceFlinger 概述
10-05
03
HWC 接口分析
10-05
更多文章>
Theme by Vdoing | Copyright © 2020-2025 AHao Framework | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式