当前位置: 首页 > news >正文

Android 13 Framework 裁剪

裁剪应用

1. 修改 build/core/product.mk

添加PRODUCT_DEL_PACKAGES变量的声明
新增一行_product_single_value_vars += PRODUCT_DEL_PACKAGES

# The first API level this product shipped with
_product_single_value_vars += PRODUCT_SHIPPING_API_LEVEL
_product_single_value_vars += PRODUCT_DEL_PACKAGES # 新增_product_list_vars += VENDOR_PRODUCT_RESTRICT_VENDOR_FILES
_product_list_vars += VENDOR_EXCEPTION_MODULES

2. 修改 build/core/main.mk

修改 product-installed-files 函数的定义,增加两行:

$(eval _pif_dels := ( c a l l g e t − p r o d u c t − v a r , (call get-product-var, (callgetproductvar,(1),PRODUCT_DEL_PACKAGES))
$(eval _pif_modules := $(filter-out $(_pif_dels), $(_pif_modules))) \

  $(eval ### Filter out the overridden packages and executables before doing expansion) \$(eval _pif_overrides := $(call module-overrides,$(_pif_modules))) \$(eval _pif_modules := $(filter-out $(_pif_overrides), $(_pif_modules))) \$(eval _pif_dels := $(call get-product-var,$(1),PRODUCT_DEL_PACKAGES)) \$(eval _pif_modules := $(filter-out $(_pif_dels), $(_pif_modules))) \$(eval ### Resolve the :32 :64 module name) \

3. 在相应的设备产品mk文件中添加用PRODUCT_DEL_PACKAGES属性来控制模块删除

一般编辑的文件路径为device/公司名/产品名/device.mk, 比如rk3399中:
device/rockchip/rk3399/device.mk

我用的模拟器,使用 lunch sdk_pc_x86_64-userdebug,文件位置为:
aosp/build/target/board/emulator_x86_64/device.mk

PRODUCT_SOONG_NAMESPACES += device/generic/goldfish # for libwifi-hal-emu
PRODUCT_SOONG_NAMESPACES += device/generic/goldfish-opengl # for goldfish deps.ifdef NET_ETH0_STARTONBOOTPRODUCT_VENDOR_PROPERTIES += net.eth0.startonboot=1
endif# Ensure we package the BIOS files too.
PRODUCT_HOST_PACKAGES += \bios.bin \vgabios-cirrus.bin \# 要裁剪的应用
PRODUCT_DEL_PACKAGES += \messaging \Dialer \Contacts \Email \Camera2 \Browser2 \Calendar \DocumentsUI \Music \MusicFX \ExactCalculator \

4. 进行编译

source build/envsetup.sh
# lunch sdk_pc_x86_64-userdebug # 模拟器
lunch xxx-userdebug #xxx表示对应的产品名
make

Android12 系统的裁剪编译规则

裁剪服务

Android 编译之make基础

Android10.0编译系统

裁剪SystemServer服务以及关闭SystemFeature

android device.mk文件在哪里

http://www.lryc.cn/news/205596.html

相关文章:

  • 【Axios封装示例Vue2】
  • k8s-----20、持久化存储--PV/PVC
  • python matplotlib 生成矢量图
  • 机器学习中常见的特征工程处理
  • Spring IOC 和 AOP
  • echarts插件-liquidFill(水球图)
  • c++ vscode cmake debug for mac
  • 17 结构型模式-享元模式
  • 创建Secret(手动)
  • 基于PHP的线上购物商城,MySQL数据库,PHPstudy,原生PHP,前台用户+后台管理,完美运行,有一万五千字论文。
  • Lua 事件触发机制(注册,触发)
  • c++ 并发与多线程(12)线程安全的单例模式-1
  • Python学习笔记--迭代
  • idea免费插件分享
  • Pytorch使用torch.utils.data.random_split拆分数据集,拆分后的数据集状况
  • 每日一练 | 华为认证真题练习Day122
  • SQL sever中函数(2)
  • win10专业版驱动开发
  • 【JavaEE】网络编程---TCP数据报套接字编程
  • 用 Go 访问 MySql 数据库
  • mac 升级node到指定版本
  • 欢迎进QQ群讨论交流
  • C语言解决八皇后问题
  • springboot集成canal,将数据发送至接口
  • Selenum八种常用定位(案例解析)
  • Web前端接入Microsoft Azure AI文本翻译
  • 容联七陌助力鱼跃医疗升级智能联络中心,让客户服务更“鱼跃”
  • 【Redis系列】在Centos7上安装Redis5.0保姆级教程!
  • 线性代数-Python-03:矩阵的变换 - 手写Matrix Transformation及numpy中的用法
  • 【单片机基础】按键状态机实现短按、长按、双击、三击和N击