AOSP Android13 新增Product实践

  1. 在device目录新建下面目录hht\hht_x86_64,其中hht代表公司、hht_x86_64代表某台设备,即device/<vendor>/<TARGET_DEVICE>。

  2. 在hht_x86_64目录下,分别创建AndroidProducts.mk、BoardConfig.mk、hht_x86_64.mk文件。

  3. 由于直接要在PC上通过emulator运行,所以拷贝device\generic\goldfish\pc\sdk_pc_x86_64.mk内容到hht_x86_64.mk。

    修改PRODUCT_DEVICE与第1步创建的<TARGET_DEVICE>名称一致,即hht_x86_64,其他三个属性随意。修改后文件:

    bash 复制代码
    #
    # Copyright (C) 2021 The Android Open Source Project
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #      http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    PRODUCT_COPY_FILES += device/generic/goldfish/pc/config.ini.pc:config.ini
    
    $(call inherit-product, $(SRC_TARGET_DIR)/product/sdk_x86_64.mk)
    
    PRODUCT_NAME := HHT Edu Phone
    PRODUCT_DEVICE := hht_x86_64
    PRODUCT_BRAND := HHT
    PRODUCT_MODEL :=  1st
    PRODUCT_PACKAGE_OVERLAYS := device/generic/goldfish/pc/overlay
    PRODUCT_COPY_FILES += \
        device/generic/goldfish/pc/data/etc/pc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/pc.xml
    PRODUCT_SDK_ADDON_SYS_IMG_SOURCE_PROP := device/generic/goldfish/pc/images_source.prop_template

    由于要在pc上直接运行emulator,所以参考sdk_pc_x86_64.mk文件内容,其中sdk表示生成文件带userdata.img等文件,可以通过emulator执行。如果是aosp,生成标准系统GSI,不带userdata.img,无法直接通过emulator运行。

    通过下面命令查找目标配置文件:

    bash 复制代码
    # 进入源码根目录,查找该文件
    find . -type f -name "sdk_pc_x86_64.mk"
  4. 将build\make\target\board\generic_x86_64\BoardConfig.mk拷贝到BoardConfig.mk。无需修改。

  5. AndroidProduct.mk添加如下内容。

    bash 复制代码
    PRODUCT_MAKEFILES := \
        $(LOCAL_DIR)/hht_x86_64.mk
    
    COMMON_LUNCH_CHOICES := \
        hht_x86_64-eng \
        hht_x86_64-userdebug \
        hht_x86_64-user
  6. 重新编译

    bash 复制代码
    source build/envsetup.mk
    lunch
    #得到下面选项
    lunch 62
    #编译等到结果
    make -j24

备注:

新产品的添加更多是参考现有配置文件,然后参考修改,且修改内容不多。例如可能在PC运行automatic,而现有产品,lunch menu不存在。

相关推荐
晚风叙码35 分钟前
MySQL 数据类型详解:从数值到字符串,一篇讲透
android·mysql·adb
传奇开心果编程1 小时前
【Compose Multiplatform 跨端开发学与练】第3课 布局与组件
android·windows·学习·ui·ios·kotlin·composer
传奇开心果编程4 小时前
【Compose Multiplatform 跨端开发学与练】第8课 资源管理与主题
android·windows·学习·ios·kotlin·web·composer
传奇开心果编程5 小时前
【Compose Multiplatform 跨端开发学与练】第9课 测试与调试
android·学习·macos·ios·kotlin·web·composer
传奇开心果编程6 小时前
【Compose Multiplatform 跨端开发学与练】第4课 导航与路由
android·windows·学习·ui·ios·kotlin·composer
传奇开心果编程6 小时前
【Compose Multiplatform 跨端开发学与练】第6课 状态管理与架构
android·学习·ui·ios·架构·kotlin·composer
事圆则缓6 小时前
Android AOSP 定制常见概念:源码目录、系统镜像与刷机流程
android
传奇开心果编程6 小时前
【Compose Multiplatform 跨端开发学与练】第2课 Compose 基础语法
android·windows·学习·ui·ios·kotlin·composer
supabc1236 小时前
Celium:连接 Windows、Mac、Linux 与 Android,让远程访问和设备管理更简单
android·linux·windows·macos·远程访问·网络管理·celium
Dovis(誓平步青云)7 小时前
导览音频切换太快,旧讲解不能覆盖新展品
android·前端·javascript·ecmascript·音视频·宠物