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

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

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

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
更多原创,欢迎关注: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语法

cpp 复制代码
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语法

cpp 复制代码
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语法

cpp 复制代码
LOCAL_PRODUCT_MODULE := true

5.输出到odm分区

<1>.Android.bp语法

cpp 复制代码
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语法

cpp 复制代码
LOCAL_ODM_MODULE := true

6.输出到vendor分区

<1>.Android.bp语法

cpp 复制代码
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语法

cpp 复制代码
LOCAL_VENDOR_MODULE := true
相关推荐
Evan_ZGYF丶6 天前
【RK3576】【Android14】SDK源码编译
驱动开发·android14·rk3576
Evan_ZGYF丶7 天前
【RK3576】【Android14】ADB工具说明与使用
android·驱动开发·android14·rk3576
Evan_ZGYF丶8 天前
【RK3576】Android 14 驱动开发实战指南
驱动开发·android14·rk3576
Evan_ZGYF丶9 天前
【RK3576】【Android14】开发板概述
嵌入式·android14·rk3576
a31582380611 天前
Android14 源码开发Launcher界面优化,显示AllApp 抽屉, 底部虚拟按键(Home,Back,Menu)变深色
android·framework·android14
毛豆的毛豆Y3 个月前
AOSP Android14 Launcher3——动画核心类QuickstepTransitionManager详解
aosp·launcher3·android14
毛豆的毛豆Y3 个月前
AOSP Android14 Launcher3——RecentsView最近任务数据加载
aosp·launcher3·android14
毛豆的毛豆Y3 个月前
AOSP Android14 Launcher3——点击桌面图标启动应用动画流程
aosp·launcher3·android14
毛豆的毛豆Y3 个月前
AOSP Android14 Launcher3——远程窗口动画关键类SurfaceControl详解
aosp·launcher3·android14
毛豆的毛豆Y3 个月前
AOSP Android14 Launcher3——底部任务栏Taskbar详解
aosp·launcher3·android14