1. 前期准备
1.1. 源码包
#连接文件为单独一个
cat filename.tar.gz.a* >> filename.tar.gz
#解压文件
tar xvf filename.tar.gz
1.2. liunx系统
sudo apt-get install gcc
sudo apt-get install make
sudo apt-get install m4 #解决:exec of /usr/bin/m4 failed
sudo apt-get install libxml2-utils #解决:exec of /usr/bin/m4 failed
sudo apt-get install curl
sudo apt-get install gawk #解决:awk: line 2: function strtonum never defined
apt-get install fakeroot #解决:…/scripts/build_rootfs.sh: line 19: fakeroot: command not found
sudo apt-get install g++-multilib gcc-multilib #解决:lichee/tools/pack/pctools/linux/android/mkbootimg: No such file or directory
sudo apt-get install libncurses5 #解决:prebuilts/clang/host/linux-x86/clang-2690385/bin/clang++: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
修改lichee目录下的dtc-lexer.lex.c_shipped,第640行YYLTYPE yylloc; 增加extern。更改为extern YYLTYPE yylloc; #解决:usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of 'yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
修改android目录下的Makefile.
export LC_CTYPE=C.UTF-8
安装JDK(确保java,javac命令都是正常的),
apt install openjdk-8-jdk-headless
Linux查找Java的安装目录并设置环境变量 | Linux下执行javac未找到命令_red hat linux release 9 无javac 命令-CSDN博客
修改security/java.security中取消TLSv1, TLSv1.1 禁用(删除TLSv1, TLSv1.1 )
修改前
修改后:
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \ DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ include jdk.disabled.namedCurves
python2版本
which python2
apt install python2
ln -s /usr/bin/python /usr/bin/python2
准备好之后重启电脑
2. 编译过程
2.1. 内核源码编译
cd lichee
./build.sh
结果出现下列信息为成功
un50iw1p1 compile Kernel successful
INFO: build kernel OK.
INFO: build rootfs ...
INFO: skip make rootfs for android
INFO: build rootfs OK.
INFO: ----------------------------------------
INFO: build lichee OK.
INFO: ----------------------------------------
2.2. 系统源码编译
cd android
source build/envsetup.sh
lunch
提示Which would you like? [aosp_arm-eng] 输入22 选择tulip_p1-eng
#解决:[aosp_arm-eng] 22 /bin/bash: 行 1: python: 未找到命令
$ which python
/usr/bin/which : no python in (/usr/lib64/bin:/usr/lib64/sbin:/usr/lib/bin)
$ which python3
/usr/bin/python3
$ ls -l /usr/bin/python3
lrwxrwxrwx 1 root root 9 11月 2 22:16 /usr/bin/python3 -> python3.8
$ ln -s /usr/bin/python3.8 /usr/bin/python
extract-bsp
make
make报错修改万了以后 make clean,再从 source build/envsetup.sh开始执行命令
make历时比较久
pack