Глава 6. SDK Андроид - Android SDK
Содержание
6.1. Загрузка исходного кода Android SDK
6.2. Сборка среды компиляции Android
6.3. Компиляция образа Android
6.3.1. Компиляция ядра Android
6.3.2. Компиляция исходного кода Android
6.1. Загрузка исходного кода Android SDK (Download the source code of android SDK)
Компиляция Android SDK выполняется на ПК с установленным Ubuntu 14.04, другие
версии ОС Ubuntu могут иметь некоторые отличия.
Android SDK - это оригинальный SDK, выпущенный производителем чипа.
Если вы хотите использовать образ Android, скомпилированный Android SDK
на плате разработки Orange Pi, вам необходимо адаптироваться к различным платам,
чтобы гарантировать нормальное использование всех функций.
1) Исходный код Android H616 содержит следующие 4 файла:
a)android.tar.gzxx - исходный код Android
b)android.tar.gz.md5sum - файл контрольной суммы MD5 для android.tar.gzxx
c)longan.tar.gz - содержит исходный код ядра u-boot, linux (не включает исходный код boot0)
d)longan.tar.gz.md5sum - файл контрольной суммы MD5 для longan.tar.gz
2) После загрузки исходного кода Android сначала проверьте правильность контрольной суммы MD5,
если нет, загрузите исходный код еще раз.
test@test:~$ md5sum -c android.tar.gz.md5sum
android.tar.gzaa: OK
android.tar.gzab: OK
android.tar.gzac: OK
android.tar.gzad: OK
android.tar.gzae: OK
android.tar.gzaf: OK
android.tar.gzag: OK
android.tar.gzah: OK
android.tar.gzai: OK
android.tar.gzaj: OK
android.tar.gzak: OK
test@test:~$ md5sum -c longan.tar.gz.md5sum
longan.tar.gz: OK
3) Затем разархивируйте исходный код Android
android - хранит исходный код, связанный с Android
longan - хранит исходный код ядра Linux и u-boot (не включая исходный код boot0) и другие файлы конфигурации.
test@test:~$ cat android.tar.gza* | tar -zx
test@test:~$ tar -zxf longan.tar.gz
test@test:~$ ls
android longan
6.2. Сборка среды компиляции Android (Build android compilation environment)
1) Установите JDK
test@test:~$ sudo add-apt-repository ppa:openjdk-r/ppa
test@test:~$ sudo apt-get update
test@test:~$ sudo apt-get install openjdk-8-jdk
2) Настройте переменные среды JAVA
Сначала определите путь установки java, обычно
test@test:~$ ls /usr/lib/jvm/java-8-openjdk-amd64
ASSEMBLY_EXCEPTION bin docs include jre lib man src.zip
THIRD_PARTY_README
Затем используйте следующую команду для экспорта переменных среды Java
test@test:~$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
test@test:~$ export PATH=$JAVA_HOME/bin:$PATH
test@test:~$ export
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
3) Используйте Ubuntu 14.04 для компиляции исходного кода Android 10,
вам необходимо убедиться, что Ubuntu 14.04 использует ядро linux 4.4,
в противном случае при компиляции будет сообщено об ошибке, если ядро не Linux 4.4, обновите ядро
test@test:~$ uname -a
Linux ubuntu 4.4.0-142-generic #168~14.04.1-Ubuntu SMP Sat Jan 19 11:26:28
UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
4) Установите программное обеспечение поддержки платформы
test@test:~$ sudo apt-get update
test@test:~$ sudo apt-get install 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
test@test:~$ sudo apt-get install u-boot-tools
6.3. Компиляция образа Android (Compile android image)
6.3.1. Компиляция ядра Android (Compile the kernel)
1) Сначала настройте среду компиляции
test@test:~$ cd longan
test@test:~/longan$ ./build.sh config
Welcome to mkscript setup progress
All available platform:
0. android
1. linux
Choice [android]: 0
All available ic:
0. h313
1. h616
2. h700
Choice [h616]: 1
All available board:
0. fpga
1. ft
2. p1
3. p2
4. perf1
5. perf1_axp152
6. perf2
7. perf3
8. qa
Choice [p2]: 3
INFO: kernel defconfig: generate /wspace2/H616/Android_10/longan/kernel/linux-4.9/.config
by /wspace2/H616/Android_10/longan/kernel/linux-4.9/arch/arm64/
configs/sun50iw9p1smp_h616_android_defconfig
*** Default configuration is based on 'sun50iw9p1smp_h616_android_defconfig'
#
#configuration written to .config
#
2) Затем начните компилировать
test@test:~/longan$ ./build.sh
3) Результат после компиляции выглядит следующим образом:
sun50iw9p1 compile Kernel successful
INFO: build kernel OK.
INFO: build rootfs ...
INFO: skip make rootfs for android
INFO: ----------------------------------------
INFO: build lichee OK.
INFO: ----------------------------------------
6.3.2. Компиляция исходного кода Android (Compile android source code)
1) Команда для компиляции Android выглядит следующим образом:
test@test:~$ cd android
test@test:~/android$ source build/envsetup.sh
test@test:~/android$ lunch cupid_p2-eng
test@test:~/android$ extract-bsp
test@test:~/android$ make -j8
2) После компиляции будет напечатана следующая информация
#### build completed successfully (01:51 (mm:ss)) ####
3) Затем используйте команду pack для упаковки и генерации образа Android
test@test:~/android$ pack
......
----------image is at----------
longan/out/h616_android10_p2_uart0.img
pack finish
use pack4dist for release
4) Путь хранения сгенерированного образа Android
longan/out/h616_android10_p2_uart0.img