MSM平台linux/android build笔记

2024-04-22 17:48

本文主要是介绍MSM平台linux/android build笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

对两个命令的分析如下:

1/ . ./ccicenv/pid_env设置编译环境以及编译参数:

2/ make命令:

MSM的make命令全都需要在源码根目录下执行,直接查找整个./build/core/目录会找到很多PHONY目标。

简单介绍一部分如下:

>>make droid

默认的make对象,会编译整个Android系统

>>make aboot

编译bootloader

>>make bootimage

相当于把bootloader和kernel都编译出来然后合并成boot.img

>>make apps_only

只编译自带的应用

>>make docs

只编译文档

>>make SDK

只编译SDK

>>make checkapi

检查API

>>make update-api

根据API更新current.xml

>>make [lib-name]

编译某个由于LOCAL_MODULE标注的库,源代码所在目录中需要有Android.mk

eg:make libaudio

>>make clean

清除build的输出

 

>>make kernel

编译linux kernel,FSL平台是在./kernel/目录下执行,而MSM平台是在根目录下执行。

在./kernel/目录下执行make mrproper来清除linux内核的编译。

>>make kernelconfig

配置内核选项,FSL平台是在./kernel/目录下执行,而MSM平台是在根目录下执行。

 

重点分析一下linux kernel层的几个make目标,它们都是在./kernel/AndroidKernel.mk里面定义的。

其中kernelconfig的目标定义为:

 kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG)
      env KCONFIG_NOTIMESTAMP=true \
      $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- menuconfig
      cp $(KERNEL_OUT)/.config kernel/arch/arm/configs/$(KERNEL_DEFCONFIG)

其依赖定义为:

$(KERNEL_OUT):
      mkdir -p $(KERNEL_OUT)

$(KERNEL_CONFIG): $(KERNEL_OUT)
      $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- $(KERNEL_DEFCONFIG)

因此,如果想在./kernel/目录下运行make menuconfig,根据项目的配置将上述脚本展开为:

mkdir -p ./out/target/product/pid/obj/KERNEL_OBJ

make -C kernel O=../out/target/product/pid/obj/KERNEL_OBJ/ ARCH=arm CROSS_COMPILE=arm-eabi- pid_defconfig

env KCONFIG_NOTIMESTAMP=true

make -C kernel O=../out/target/product/pid/obj/KERNEL_OBJ/ ARCH=arm CROSS_COMPILE=arm-eabi- menuconfig

(其中pid为产品名称)

如果不需要拷贝配置的结果,则最后cp那句。


这篇关于MSM平台linux/android build笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/926453

相关文章

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me