IMX8MP Android 10系统编译SDK

概述:

本文描述了在Ubuntu 20.04操作系统上搭建IMX8MP Android10系统编译环境。

ubuntu主机端设置

  1. ubuntu 20.04

  2. 450G Free Disk space

  3. 16GB RAM以上

  4. 安装

sudo apt-get install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop git curl u-boot-tools mtd-utils android-sdk-libsparse-utils device-tree-compiler gdisk m4 bison flex make libssl-dev gcc-multilib libgnutls28-dev swig liblz4-tool libdw-dev dwarves bc cpio tar lz4 rsync ninja-build clang libelf-dev build-essential libncurses5 clang-11 lld-11

Android 10代码的同步

1、 mkdir IMX8M_Android10

2、cd IMX8M_Android10

3、进入Q10.0.0_2.6.0_ANDROID_SOURCE

网站下载源码 imx-android-10.0.0_2.6.0.tar.gz,

4、解压下载的源码到IMX8M_Android10文件夹

tar -xvf imx-android-10.0.0_2.6.0.tar.gz -C IMX8M_Android10

5.执行 source ~imx-android-10.0.0_2.6.0/imx_android_setup.sh 进行源码同步

注: 因为imx8mp Android10源码大部分托管到了github网站,因此同步imx8mp相关部分,需要有能访问github的能力

Android 10 安装编译工具

Downloads | GNU-A Downloads -- Arm Developer网站下载

1、aarch32 GCC工具

下载:gcc-arm-8.3-2019.02-x86_64-arm-eabi.tar.xz

解压

sudo tar -xvf gcc-arm-8.3-2019.02-x86_64-arm-eabi.tar.xz -C /opt

2、aarch64 GCC工具

下载 gcc-arm-8.3-2019.02-x86_64-aarch64-linux-gnu.tar.xz

解压

sudo tar -xvf gcc-arm-8.3-2019.02-x86_64-arm-eabi.tar.xz -C /opt

3、在Android 10源码,修改imx-make.sh文件。增加如下修改:

export AARCH32_GCC_CROSS_COMPILE=/opt/gcc-arm-8.3-2019.03-x86_64-arm-eabi/bin/arm-eabi-

export AARCH64_GCC_CROSS_COMPILE=/opt/gcc-arm-8.3-2019.03-x86_64-aarch64-linuxgnu/bin/aarch64-linux-gnu-

编译步骤

除了编译uboot和kernel外,Android镜像的编译,可以使用通用版本的编译命令;

其中MY_ANDROID为Android10源码路径

编译Android 全部镜像

cd {MY_ANDROID}

$ source build/envsetup.sh

$ lunch evk_8mp-userdebug

$ ./imx-make.sh -j4

等价于如下的操作:

cd {MY_ANDROID}

$ source build/envsetup.sh

$ lunch evk_8mp-userdebug

$ ./imx-make.sh bootloader kernel -j4

$ make -j4

编译U-boot

cd {MY_ANDROID}

$ source build/envsetup.sh

$ lunch evk_8mp-userdebug

$ ./imx-make.sh bootloader -j4

编译内核

cd {MY_ANDROID}

$ source build/envsetup.sh

$ lunch evk_8mp-userdebug

$ ./imx-make.sh kernel -c -j4

编译bootimage

$ source build/envsetup.sh

$ lunch evk_8mp-userdebug

$ ./imx-make.sh bootimage -j4

编译dtbo.img

$ source build/envsetup.sh

$ lunch evk_8mp-userdebug

$ ./imx-make.sh dtboimage -j4

烧写步骤

  1. 从github下载uuu工具

https://github.com/nxp-imx/mfgtools/releases

chmod a+x uuu

cp uuu /usr/bin

生效如下:

emmc的烧写

  1. 板子进入Serial Download Mode

  2. 板上上电

  3. 在镜像生成目录out/product/target执行

sudo ./uuu_imx_android_flash.sh -f imx8mp -e -u dual -d lvds-panel

烧写参数说明,请查看uuu_imx_android_flash.sh脚本文件,有详细的描述。

相关推荐
鸟儿不吃草35 分钟前
安卓实现左右布局聊天界面
android·开发语言·python
xxjj998a2 小时前
Laravel 1.x:PHP框架的原始魅力
android·php·laravel
formula100002 小时前
在iOS/安卓上远程连接任何 Agent!Claude、Codex、Copilot、Gemini、OpenCode 等
android·copilot
该用户可能存在2 小时前
Blbl-android 更新至 v0.1.24,体验更流畅、更稳定
android·哔哩哔哩·电视app·androidtv·bbll·blbl·bilibilitv
lKWO OMET3 小时前
mysql之字符串函数
android·数据库·mysql
liang_jy13 小时前
Android SparseArray
android·源码
liang_jy14 小时前
Activity 启动流程扩展篇(一)—— startActivityInner 任务决策全解析
android·源码
NPE~15 小时前
[App逆向]脱壳实战
android·教程·逆向·android逆向·逆向分析
木易 士心15 小时前
别再只会用 drawCircle 了!一文搞懂 Android Canvas 底层机制
android
AtOR CUES16 小时前
MySQL——表操作及查询
android·mysql·adb