Android14之编译输出system/product/vendor/odm分区(一百九十一)

本文详细介绍了Android14系统中vendor、ODM、system和product分区的作用,以及如何通过Android.bp和Android.mk语法将编译后的文件分别输出到这些分区。重点讲解了cc_binary的配置以实现不同分区的定制输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏:多媒体系统工程师系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:Android14之编译输出system/product/vendor/odm分区

2.system、product、vendor、odm分区介绍

  • Android系统中的分区对于设备的构建和管理至关重要。在Android系统中,我们常常听到vendor、ODM、system、product等分区,它们各自有不同的作用和职责。以下是对这些分区的简要介绍:
  1. vendor分区:vendor分区包含了设备厂商定制的底层驱动程序和系统库。这些定制化的驱动程序和库使得设备能够支持特定的硬件组件,如相机、音频芯片等。vendor分区通常是设备制造商根据Android开源项目的源代码进行定制化的结果。这个分区的存在使得设备厂商可以对设备的硬件功能进行更细致的控制,同时也使得设备的硬件特性得以充分发挥。
  2. ODM分区:ODM(Original Design Manufacturer)分区是指设备制造商为满足不同客户需求而进行的定制化分区。ODM分区通常包含了客户定制的软件功能和配置文件。这个分区的存在使得设备制造商能够为客户提供更加个性化的服务,满足客户的特定需求。
  3. system分区:system分区是Android系统的基础分区,包含了Android系统的核心文件和应用程序。这个分区中的文件是Android系统运行所必需的,任何对system分区的修改都可能导致系统不稳定或者功能失效。因此,通常情况下,我们不建议对system分区进行修改。
  4. product分区:product分区是Android系统中的一个高级定制分区。它通常包含了针对某一特定设备系列进行优化的系统配置和应用程序。product分区使得设备制造商可以在保持系统稳定性的前提下,对设备的性能和功能进行进一步的提升。此外,通过对product分区的定制,设备制造商还可以实现对设备的外观、主题等方面的个性化设置。
  • 总之,Android系统中的vendor、ODM、system、product等分区各自承担着不同的职责,共同构成了设备的系统架构。这些分区的合理使用和管理,有助于提高设备的性能和用户体验,同时也为设备制造商和客户提供了更大的灵活性和定制空间。

3.输出到system分区

<1>.Android.bp语法

cc_binary {
    name: "test",

    srcs: ["test.cpp"],
    shared_libs: [
        "libutils",
        "liblog",
        "libcutils",
    ],
    cflags: [
    "-Wno-multichar",
    "-Werror",
    "-Wall",
	"-Wno-implicit-fallthrough",
	"-Wno-missing-field-initializers",
	"-Wno-missing-braces",
	"-Wno-unused-variable",
    ],
}

默认输出到:system分区
默认输出到:out/target/product/redfin/system/bin/test目录

4.输出到product分区

<1>.Android.bp语法

cc_binary {
    name: "test",

    srcs: ["test.cpp"],
    shared_libs: [
        "libutils",
        "liblog",
        "libcutils",
    ],

    //v2.0 输出到:product分区
    product_specific: true,

    cflags: [
        "-Wno-multichar",
        "-Werror",
        "-Wall",
	"-Wno-implicit-fallthrough",
	"-Wno-missing-field-initializers",
	"-Wno-missing-braces",
	"-Wno-unused-variable",
    ],
}

输出到:out/target/product/redfin/product/bin/test

<2>.Android.mk语法

LOCAL_PRODUCT_MODULE := true

5.输出到odm分区

<1>.Android.bp语法

cc_binary {
    name: "test",

    srcs: ["test.cpp"],
    shared_libs: [
        "libutils",
        "liblog",
        "libcutils",
    ],

    //v3.0 输出到odm分区
    device_specific: true, 

    cflags: [
        "-Wno-multichar",
        "-Werror",
        "-Wall",
	"-Wno-implicit-fallthrough",
	"-Wno-missing-field-initializers",
	"-Wno-missing-braces",
	"-Wno-unused-variable",
    ],
}

输出到:out/target/product/redfin/vendor/odm/bin/test

<2>.Android.mk语法

LOCAL_ODM_MODULE := true

6.输出到vendor分区

<1>.Android.bp语法

cc_binary {
    name: "test",

    srcs: ["test.cpp"],
    shared_libs: [
        "libutils",
        "liblog",
        "libcutils",
    ],
    //v4.0 输出到:vendor分区
    vendor: true,

    cflags: [
        "-Wno-multichar",
        "-Werror",
        "-Wall",
	"-Wno-implicit-fallthrough",
	"-Wno-missing-field-initializers",
	"-Wno-missing-braces",
	"-Wno-unused-variable",
    ],
}

输出到:out/target/product/redfin/vendor/bin/test

<2>.Android.mk语法

LOCAL_VENDOR_MODULE := true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android系统攻城狮

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值