Руководство пользователя Orange Pi Zero 3

  Обзор   |  Запуск   |  Linux   |  Сборка Linux   |  Android   |    Сборка Android     |

  RU            EN  

Глава 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

     <         >