03-ANDROID_SDK源码编译

SDK介绍

Android SDK 版本信息

内核版本:4.9

Android系统版本:10.0

Android SDK编译

编译完整镜像

环境配置

$ cd longan/
$ ./build.sh config

Welcome to mkscript setup progress
All available platform:
   0. android
   1. linux
Choice [android]: 0
All available ic:
   0. a133
   1. t509
Choice [a133]: 0
All available board:
   0. b1
   1. b3
   2. b4
   3. c3
   4. c4
   5. dpf
   6. fpga
   7. perf1
   8. perf2
   9. perf3
  10. qa
  11. ver
Choice [c3]: 3

编译整包镜像

$ cd - 
$ ./build.sh lunch //根据板型选择K5或K5C
$ ./build.sh

镜像生成目录:longan/out/

**kconfig **

路径

longan/kernel/linux-4.9/arch/arm64/configs/sun50iw10p1smp_a133_android_defconfig

配置kconfig

$ cd longan
$./build.sh loadconfig
$./build.sh menuconfig
$./build.sh saveconfig
$./build.sh mergeconfig

设备树路径

a133-android10.0-v2.0/longan/device/config/chips/a133/configs/c3/kickpi-k5c.dts

Android 环境

cd android
source build/envsetup.sh
lunch ceres_c3-userdebug

常见问题

安卓编译失败

编译安卓时失败 且没有明显错误报错,修改一下内容尝试重新编译

image-20250814093933050

编译 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、文件不一定编译到镜像中

可以通过如下其中一种方式解决

  1. make installclean

  2. rm out/target/product/apollo-p2/xxx/xxx

  3. 编译的条件发生变化(比如文件名、APK名)

Last updated