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请参考如下链接:
安装相关库
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 执行以下四条命令:
-
“. build/envsetup.sh” (source可以用 .代替,即”. build/envsetup.sh”) -
“lunch”,并选择要编译的项目 -
“make idegen -j4” (这里的 -j4表示用 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群,积极讨论各种行业难点痛点疑难问题,答疑服务等。
请联系马哥微信:

夜雨聆风