Android_SDK 源码编译
编译环境
在PC上搭建环境,对 Android/Linux SDK进行编译。
环境准备
在PC上安装Ubuntu,进行SDK编译。
- 硬件:PC满足RAM ≥ 16 GB,CPU core ≥ 4,Hard Drive ≥ 500GB
- 软件:Ubuntu 22.04 ,虚拟机磁盘空间分配 ≥ 200GB
依赖安装
1. 进入Ubuntu,打开Terminal,切换为root用户

2. 依次输入下列命令安装依赖。
sudo apt install git bc bison build-essential curl flex libsdl1.2-dev
sudo apt install g++-multilib gcc-multilib gnupg gperf libncurses5-dev
sudo apt install imagemagick lib32ncurses5-dev lib32readline-dev squashfs-tools
sudo apt install lib32z1-dev liblz4-tool xsltproc libssl-dev libwxgtk3.0-gtk3-dev
sudo apt install libxml2 libxml2-utils schedtool lzop pngcrush rsync
sudo apt install yasm zip zlib1g-dev python3 device-tree-compiler
sudo apt install python-pip gawk openjdk-8-jdk u-boot-tools patchelf expect
sudo pip install pyelftools
SDK源码获取
Note
1.源码不可放在共享目录下编译
2.编译主机不可用ROOT账号登陆
1.点击下载 SDK,拷贝源码压缩包到编译主机目录。
2.进入源码所在目录,输入命令解压。
3.进入解压生成的a133-linux目录,输入命令恢复源码。
首次编译配置
./build.sh lunch
======you are building a133 android======
1. BoardConfig-a133-kickpi-k5.mk
2. BoardConfig-a133-kickpi-k5c.mk
which board would you like (1-2): //选择根据板型K5或者K5C

编译完整镜像
Warning
如果编译Android失败,没有明显报错,可以修改build.sh中Android编译的进程数,将make -j32减小至你设备的实际情况。
Tip
生成的镜像位于a133-android10.0-v2.0/longan/out/。

常见问题
- 安卓编译失败?
编译安卓时失败且没有明显报错,修改以下内容尝试重新编译。

- 编译 yylloc 报错问题?
由于编译环境 ld 不同,可能会导致 yylloc 报错,需要修改代码中的yylloc,实际路径根据报错提示修改。
--- a/longan/kernel/linux-4.9/scripts/dtc/dtc-lexer.lex.c
+++ b/longan/kernel/linux-4.9/scripts/dtc/dtc-lexer.lex.c
@@ -631,8 +631,8 @@ char *yytext;
#include "srcpos.h"
#include "dtc-parser.tab.h"
-//YYLTYPE yylloc;
-extern YYLTYPE yylloc;
+YYLTYPE yylloc;
+//extern YYLTYPE yylloc;
- APP 、文件编译不生效问题?
android 为惰性编译,直接替换后编译,一些APP、文件不一定编译到镜像中,可以通过如下其中一种方式解决。
-
make installclean
-
rm out/target/product/apollo-p2/xxx/xxx
-
编译的条件发生变化(比如文件名、APK名)
-
Ubuntu 22.04无法打开Terminal?
在虚拟机页面按下ctrl+alt+F3,进入命令行模式,按照图示进行操作。

将en_US改为en_US.UTF-8,保存退出,输入reboot重启。
