Глава 6. Как скомпилировать исходный код Android 12
Содержание
6.1. Загрузка исходного кода Android 12
6.2. Компиляция исходного кода Android
6.1. Загрузка исходного кода Android 12
1) Сначала загрузите сжатый пакет с исходным кодом Android 12 из Baidu или Google Disk.
a.Сетевой диск Baidu
Img
6.1
b.Google Диск
Img
6.2
2) После загрузки сжатого пакета части исходного кода Android 12 проверьте
правильность контрольной суммы MD5. Если нет, загрузите исходный код еще раз.
Способ проверки контрольной суммы MD5 следующий:
test@test:~$ md5sum -c H618-Android12-Src.tar.gz.md5sum
H618-Android12-Src.tar.gzaa: OK
H618-Android12-Src.tar.gzab: OK
......
3) Затем вам нужно объединить несколько сжатых файлов в один, а затем извлечь исходный код Android.
Команда выглядит так:
test@test:~$ cat H618-Android12-Src.tar.gza* > H618-Android12-Src.tar.gz
test@test:~$ tar -xvf H618-Android12-Src.tar.gz
6.2. Компиляция исходного кода Android
Сборка Android12 осуществляется на компьютере x86_64 с установленной
Ubuntu 22.04. Другие версии Ubuntu могут иметь некоторые отличия в
зависимостях системных пакетов. Адрес загрузки зеркала версии Ubuntu 22.04
amd64 выглядит следующим образом:
ubuntu-22.04.2-desktop-amd64.iso
Рекомендуется, чтобы аппаратная конфигурация компьютера x86_64 для
компиляции исходного кода Android12 имела 16 ГБ или более памяти и 200 ГБ
или более места на жестком диске. Чем больше ядер процессора, тем лучше.
1) Сначала установите программные пакеты, необходимые для компиляции исходного кода Android12.
test@test:~$ sudo apt-get update
test@test:~$ sudo apt-get install -y git gnupg flex bison gperf build-essential \
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip u-boot-tools python-is-python3 \
libssl-dev libncurses5 clang gawk
2) Затем скомпилируйте код в папку longan, которая в основном содержит u-boot и ядро linux.
a. Сначала запустите ./build.sh config, чтобы установить параметры компиляции.
test@test:~$ cd H618-Android12-Src/longan
test@test:~/H618-Android12-Src/longan$ ./build.sh config
Welcome to mkscript setup progress
All available platform:
0. android
1. linux
Choice [android]: 0
All available ic:
0. h618
Choice [h618]: 0
All available board:
0. ft
1. p1
2. p2
3. p7
4. p7l
5. perf1
6. perf2
7. perf3
8. qa
Choice [p2]: 2
All available flash:
0. default
1. nor
Choice [default]: 0
All available kern_ver:
0. linux-5.4
Choice [linux-5.4]: 0
All available arch:
0. arm
1. arm64
Choice [arm64]: 1
......
*** Default configuration is based on
'sun50iw9p1smp_h618_android_defconfig'
#
# configuration written to .config
#
make[1]: Leaving directory \
'/home/test/H618-Android12-Src/longan/out/kernel/build'
make: Leaving directory \
'/home/test/H618-Android12-Src/longan/kernel/linux-5.4'
INFO: clean buildserver
INFO: prepare_buildserver
b. Затем запустите скрипт ./build.sh, чтобы начать компиляцию.
test@test:~/H618-Android12-Src/longan$ ./build.sh
c. После завершения компиляции вы увидите следующий вывод
sun50iw9p1 compile Kernel successful
INFO: Prepare toolchain ...
......
INFO: build kernel OK.
INFO: build rootfs ...
INFO: skip make rootfs for android
INFO: ----------------------------------------
INFO: build lichee OK.
INFO: ----------------------------------------
3) Затем используйте следующую команду, чтобы скомпилировать исходный код
Android и создать окончательный образ Android.
test@test:~$ cd H618-Android12-Src
test@test:~/H618-Android12-Src$ source build/envsetup.sh
test@test:~/H618-Android12-Src$ lunch apollo_p2-userdebug
test@test:~/H618-Android12-Src$ make -j8
test@test:~/H618-Android12-Src$ pack
4) Путь хранения скомпилированного и сгенерированного образа Android:
longan/out/h618_android12_p2_uart0.img