跳到主要内容

Android 13编译

T527 Android 13 使用 Linux 5.15。完整固件编译通常包含 Longan 配置与编译、Android lunch 与编译、最后打包三个阶段。

编译环境​

不同 SDK 和 Ubuntu 版本所需软件包不同,建议以项目提供的环境文档为准。Linux 5.15 内核编译至少应确认安装:

sudo apt-get update
sudo apt-get install -y \
git gnupg flex bison gperf build-essential zip curl \
zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses-dev libx11-dev lib32z1-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip \
libelf-dev gawk fontconfig openssl libssl-dev

缺少 libelf-dev 时常见报错:

fatal error: gelf.h: No such file or directory
fatal error: libelf.h: No such file or directory

检查主机 make 版本:

make --version

旧版 GNU make 3.82 在部分 Allwinner Linux 5.15 构建中可能产生问题,优先使用项目验证过的较新版本。

配置Longan​

cd <ANDROID_TOP>/longan
./build.sh config

选择:

platform : android
ic : t527
board : <BOARD>
flash : default

然后编译 Longan:

./build.sh

导入Android编译环境​

cd <ANDROID_TOP>
source build/envsetup.sh

选择lunch目标​

列出当前 T527 方案:

lunch 2>&1 | grep -i t527

或者查询产品定义:

grep -Rni 'COMMON_LUNCH_CHOICES.*t527\|t527_.*userdebug' \
device vendor 2>/dev/null | head -50

官方 SDK 中常见示例包括:

t527_demo_arm64-userdebug
t527_demo_car_arm64-userdebug

公司项目可能使用完全不同的产品名,应选择与 Longan <BOARD> 和产品 mk 配套的目标。

lunch <PRODUCT>-userdebug

构建类型:

类型用途
user量产版本,调试权限受限
userdebug接近 user,但保留 root 和常用调试能力
eng开发配置,调试能力最多,不用于量产

完整编译​

make -j$(nproc)

服务器不稳定或内存不足时,可降低并发:

make -j16

编译单个模块​

m Settings -j16
m <模块名> -j16

查找输出:

find "$OUT" -iname '*Settings*.apk' -o -name '<模块文件名>'

快速更新APK​

adb root
adb install -r <APK绝对路径>

系统应用无法直接安装时,使用 remount:

adb root
adb remount
adb push <APK或SO绝对路径> <设备目标路径>
adb reboot

动态分区、安全启动和 release key 可能限制 remount,遇到失败应先确认固件类型和设备是否解锁。

一键build函数​

导入 build/envsetup.sh 后,部分全志 SDK 提供 build 函数:

build --help

常见参数包括:

-k build kernel
-l build longan
-a build Android
-r Android release build
-p pack firmware
-d pack debug firmware
-v pack secure firmware
-c clean
-j set job count

必须以当前 SDK 的 build --help 输出为准。