乐于分享
好东西不私藏

Ubuntu 24 搭建aosp源码环境详细笔记

Ubuntu 24 搭建aosp源码环境详细笔记

背景:

因为很多新同学的机器等可能比较新,所以机器上的一些硬件驱动不一定老版本的ubuntu系统上有, 比如wifi用不了,显卡驱动没有安装没办法调节分辨率,所以很多同学也不得使用比较新的ubuntu 24版本,但是24版本ubuntu搭建aosp源码环境,相比ubuntu 20.04还是有一些差别。这里为了照顾更多ubuntu 24版本同学搭建aosp环境这里进行新写一篇文章进行指导。

在这里插入图片描述

安装ubuntu 24版本

下载ubuntu 24的安装包官方下载:

 24.04 系统(http://releases.ubuntu.com/24.04/下面的 desktop的image。阿里镜像下载:

如果网速慢自己百度找一个阿里镜像https://mirrors.aliyun.com/ubuntu-releases/24.04/ubuntu-24.04.4-desktop-amd64.iso) 

(环境大家优先考虑直接电脑安装Ubuntu > windows和Ubuntu双系统 > windows上安装VMware方式,不要不建议安装virtualbox)

刷入镜像工具:

建议使用rufus制作u盘启动盘https://rufus.ie/downloads/

如果双系统安装windows + ubuntu请参考如下链接:

Windows和Ubuntu双系统安装手册

安装相关库

1、openjdk 8 的安装 (aosp8.1版本需要,其他高版本aosp不需要,都是源码自带) 

sudo apt-get install openjdk-8-jdk

2、设置默认 java 和 javac(可选)

由于本人当前 Ubuntu 上没有安装其他版本的 jdk,所以跳过此步骤 

sudo update-alternatives –config java 

sudo update-alternatives –config javac 

3、 检查版本 java -version 打印如下:

 openjdk version “1.8.0_252” OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~16.04-b09) 

OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

4、安装所需的软件软件包(注意一定要拷贝换行问题,最好先拷贝到txt上,再拷贝到命令行)

sudo apt-get install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git git-lfs gnupg gperf imagemagick protobuf-compiler python3-protobuf lib32readline-dev lib32z1-dev libdw-dev libelf-dev libgnutls28-dev lz4 libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc xxd zip zlib1g-dev  

5、安装libncurses5

需要如下方式安装libncurses5

wget https://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2_amd64.deb && sudo dpkg -i libtinfo5_6.3-2_amd64.deb && rm -f libtinfo5_6.3-2_amd64.deb
wget https://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libncurses5_6.3-2_amd64.deb && sudo dpkg -i libncurses5_6.3-2_amd64.deb && rm -f libncurses5_6.3-2_amd64.deb

6、安装python2(aosp 8.1版本需要)

python2的配置

高版本ubuntu 24可能没有python2,无法直接使用sudo apt安装,所以需要下载python2源码编译,下面是步骤:

下载源码
wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz
tar xf Python-2.7.18.tar.xz
cd Python-2.7.18


编译安装
./configure --prefix=/usr/local/python2.7
make -j$(nproc)
sudo make install


添加到 PATH
echo'export PATH=/usr/local/python2.7/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

源码下载

网络下载方法: 国内不可以访问 google 故无法下载 aosp 源码,国内清华大学源有相关镜像 参考链接:https://mirror.tuna.tsinghua.edu.cn/help/AOSP/

可能会有一些错误,比如repo时候没反应,还是google网站不是清华大学的,建议查看这里:

ubuntu 20.04 编译android 12/13 :https://blog.csdn.net/learnframework/article/details/121345533

直接repo时候指定的分支为如下:

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b  android-8.1.0_r1

编译 aosp 代码

0、cd 源码根目录

1、 . build/envsetup.sh (注意这里是.+空格不是只有.,也可以直接用source build/envsetup.sh)

2、lunch 这里我们选择:6 –– > aosp_x86_64

3、make

经历大概几个小时等待

 出现如下打印代表成功:

build completed successfully (05:44:08 (hh:mm:ss)) ####

编译可能遇到错误:

1、会产一个jackserver错,解决方法点击这里(https://blog.csdn.net/learnframework/article/details/116861979))

2、如果有的机器有dex2oatd 时候报错,直接core dumped了,请使用关闭优化命令: make  WITH_DEXPREOPT=false,注意以后每次编译要一直带着make  WITH_DEXPREOPT=false

4、执行命令:

emulator,出现如下图界面(注意只要terminal关闭后就需要重新进行 1、 . build/envsetup.sh 2、lunch 然后可以直接emulator,没有修改不需要make,有修改需要make )

修改自己的第一行代码,在框架运行

安装 vim: sudo apt-get install vim 

添加自己的一句 log打印在 framework上

 cd framework/base find -name Activity.java 

vi ./core/java/android/app/Activity.java 

在 onCreate中添加一句 android.util.Log.i(“test1”, “Activity is onCreate”); 

回到根目录: make 

或者单独编译单模块make framework,然后push framwork.jar(但是不适合模拟器,只适用于实体debug手机)

AndroidStudio搭建导入aosp源码

下载 android studio:

 链接: https://pan.baidu.com/s/1ReBs0rx2yE-5bmxIRCerFw?pwd=gyij 提取码: gyij

加载源代码到  AndroidStudio 执行以下四条命令:

  1. “. build/envsetup.sh” (source可以用  .代替,即”.  build/envsetup.sh”)
  2. “lunch”,并选择要编译的项目
  3. “make idegen -j4” (这里的 -j4表示用 4线程来编译,可以不加)
  4. “development/tools/idegen/idegen.sh” (报错find: ‘out/target/product/generic_x86_64/root/d’: Permission denied没有关系不影响ipr和iml文件生成)

详细导入as查看链接:

aosp源码导入android studio常见问题汇总-学员答疑

学完8.1后,aosp12/13高版本android环境搭建:

ubuntu 20.04 android 12/13 https://blog.csdn.net/learnframework/article/details/121345533

手把手教你aosp android 12 pixel 解锁oem 编译刷入大全 https://blog.csdn.net/learnframework/article/details/125269456

aosp 12/13/lineageos19.1 framework学习编译刷入小米手机,努比亚 https://blog.csdn.net/learnframework/article/details/128438325

更多vip免费系统开发经典大厂面试题库获取,课程优惠购买成为vip学员进入vip群,积极讨论各种行业难点痛点疑难问题,答疑服务等。

请联系马哥微信:

目前所有专题课程如下:
1、经典fw的入门到精通实战八件套专题
详细课表:
Android Framework开发rom实战合集课表/车载车机手机高级系统开发工程必会技能