aosp系统定制之如何高效的裁剪系统?

背景:

经常在企业做一个设备产品时候,都会有需要对原生的aosp进行相关的定制,定制中有一个很重要功能就是裁剪掉系统的很多没有用的模块,只留下自己最核心的一些模块。具体如下图:
正常原生代码有很多个模块都集成的情况
在这里插入图片描述
要求裁剪一些不重要的减少体积等

在这里插入图片描述

当然也有一些需求在可能是针对客户定制的,同一套代码但是要求有一些机型删除某些应用模块等,所以针对系统裁剪这块就属于一个需要经常修改的部分。

那么具体如何实现呢?下面来介绍2种方案,一个常规方案,一个高效改进后方案

常规方案

核心思路就是确定要删除的目标名字,去相关的devices或者build目录进行grep名字,然后找到对应的PRODUCT_PACKAGES列表,从列表中删除对应的目标。

在这里插入图片描述
这个方法虽然简单直接,但是也有较大问题
缺点:
a.原生耦合太大,因为很多时候是多个机型共用一套Product,一旦删除可能多个机型都删除
b.有时候比较难找到目标的mk
在这里插入图片描述
那么有啥更好方案可以解决该问题吗?

高效改进方案

准备好一个专门用于删除模块的txt,具体编写格式如下:
在这里插入图片描述
有了这个txt后,后续要删除任何模块只需要添加既可以
接下来的核心部分就是在mk中读取txt中这些要删除的目标,然后把这些目标赋值给一个全局PRODUCT_DEL_PACKAGES变量的变量。
接下来就是怎么在系统集成目标时候,过滤掉这个PRODUCT_DEL_PACKAGES中所有的目标,这里其实主要是参考了系统的Override机制。
实际是在main.mk中最后的
product-installed-files方法中参考override方式过滤掉PRODUCT_DEL_PACKAGES对应的值。
在这里插入图片描述

具体成果展示看如下链接的最后3分钟:
https://www.bilibili.com/video/BV1nKL6zvEPj/

详细源码实现请vip学员qun联系马哥哈。

更多framework实战开发,请关注下面“千里马学框架”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

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

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

打赏作者

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

抵扣说明:

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

余额充值