提示:
前言
以s5p6818支持的 android7 为例在ubuntu24.04中编译android7.1.2
friendlyarm android相关源码下载如下:
NanoPC-T3 Plus/zh - FriendlyELEC WiKi
提示:以下是本篇文章正文内容,下面案例可供参考
一、编译环境搭建
1.安装编译环境
1.1 添加清华源
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-backports main restricted universe multiverse
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ noble-proposed main restricted universe multiverse
参考 :ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
1.2 安装java jdk
sudo apt-get install openjdk-8-jdk
1.3 安装python2
ubuntu24.04默认安装了python3,在编译android7时会提示 "print xxx" 错误,这是python2的格式,python3不支持.
可以去下载python2的源码进行编译安装,我在编译时遇到了很多问题导致无法编译成功
所以这里我使用conda进行安装
conda create -n test python=2.7.10
二、编译
cd s5pxx18-android-7
source build/envsetup.sh
lunch aosp_nanopi3-userdebug
make -j8
1.错误解决
1.1 报错提示 print xxx
使用python2环境:
conda create -n test python=2.7.10
conda activate test
1.2 报错提示 recipe for target 'ninja_wrapper' failed
增加
- export LC_ALL=C
1.3 报错提示 Jack server failed to (re)start
[ 30% 5156/17130] Ensure Jack server is installed and started
FAILED: /bin/bash -c "(prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.8.ALPHA.jar 2>&1 || (exit 0) ) && (JACK_SERVER_VM_ARGUMENTS=\"-Dfile.encoding=UTF-8 -XX:+TieredCompilation\" prebuilts/sdk/tools/jack-admin start-server 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update server prebuilts/sdk/tools/jack-server-4.8.ALPHA.jar 4.8.ALPHA 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-2.28.RELEASE.jar 2.28.RELEASE || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-3.36.CANDIDATE.jar 3.36.CANDIDATE || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-4.7.BETA.jar 4.7.BETA || exit 47 )"
Writing client settings in /home/lyl/.jack-settings
Installing jack server in "/home/lyl/.jack-server"
删除/etc/java-8-openjdk/security/java.security文件里配置项jdk.tls.disabledAlgorithms中的TLSv1, TLSv1.1
sudo vi /etc/java-8-openjdk/security/java.security #删除TLSv1 TLSv1.1
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server
1.4 报错提示dex2oatd E 217979 217979 art/runtime/gc/heap.cc:324] Could not create image
由于编译环境ubuntu24.04使用的内核为6.5.0-28版本,这里需要使用小于 5.17.
sudo apt-cache search linux-image #查询列表中可更新的内核
sudo apt-get install linux-image-4.15.0-39-generic #安装内核
重启系统,选择新安装的内核
2.最终编译
首先编译环境切换到内核 4.15.0 版本
conda activate test
source build/envsetup.sh
lunch aosp_nanopi3-userdebug
export LC_ALL=C
make -j8
总结
这里只记录了大体的流程,不同的编译环境还会遇到一些依赖包等之类的错误,需要自己安装.编译需要的内核版本要小于5.17这个问题网上提到的比较少.需要关注