立即注册
查看: 1060|回复: 5

[展讯开发资料] 展讯Product分区及9.0运营商定制机制

已绑定手机
发表于 2022-3-24 16:35:52 | 显示全部楼层 |阅读模式 来自 广东省深圳市
1. Android 定制分区和 product 分区介绍
OEM 厂商通过定制原生 system image 的方式来实现运营商相关 Feature 或需求。为了支持不同的语言、运营商等,每个 system image 都会不同,这样的定制无法通过唯一的 system image 来实现。因此,可以考虑这样的方式:使用一个和 system 分离开的 Prouduct 分区来包含定制内容。同样,ODM 厂商也定制片上系统(SoC)供应商板级支持包(BSP),以在 HAL 上实现其自己的功能。同样地,无法通过唯一的 Vendor 分区来实现这种定制,所以 ODM 分区(会在 AndroidQ 引入)使得这样的定制成为可能。
1.1 OEM 分区和 Product 分区
新的 Product 分区和传统的 OEM 分区是不同的。
/OEM:
- 无法更新,通常是在工厂一次刷新;
- 根据微小差异创建,比如商标,颜色等;不同的 OEM 分区内容无法成为不同的产品软件;
- System 分区无法依赖于 OEM 分区
- 无法使用 public api 之外的其它系统 API
/Product:
- 可以更新;
- 根据不同的产品或产品系列创建;
- System 分区可以依赖 Product 分区;
- 由于和 System 分区同时更新,所以可以使用非 Public API
鉴于以上结果,google 决定使用新的 Product 分区来实现定制。

1.2 Product 分区组件
AndroidP 上,product 分区支持如下组件: Product-specific system properties ( /product/build.prop )
Product-specific RROs ( /product/overlay/*.apk ) Product-specific apps ( /product/app/*.apk )
Product-specific priv-apps ( /product/priv-app/*.apk ) Product-specific java libraries ( /product/Framework/*.jar )
Product-specific Android Framework system configs (/product/etc/sysconfig/* and /product/etc/permissions/* )
.......

1.3 维护分区之间的 ABI
AndroidP 中,Product 分区是 system 分区的扩展。
1. Product 分区和 system 分区存在弱相关的 ABI,product 分区和 system 分区必须同时更新并且 ABI 需基于 System SDK;
2. 如果 SystemSDK无法覆盖分区之间所有的 API 接口,那就需要 OEM 来维护他们自己的ABI;
3. Product 分区和 System 分区可以互相依赖;
4. 不替换 Product 分区,GSI 测试也能照常工作;
5. Product 分区和 Vendor 或 ODM 分区之间不能有任何直接的交互
1.jpg

2. Product 编译原理介绍
2.1 PRODUCT_PRODUCT_PROPERTIES
使用 PRODUCT_PRODUCT_PROPERTIES 可将 prop 编译至/product/build.prop,比如: PRODUCT_PRODUCT_PROPERTIES := ro.product.abc=abc
PRODUCT_PRODUCT_PROPERTIES += some.property=1
Google 参考提交如下: https://android-review.googlesou ... ystem/core/+/598559
https://android-review.googlesource.com/c/platform/build/+/598454
2.2 Module Install to Product
在 mk 文件中,使用 LOCAL_PRODUCT_MODULE := true 可将模块编译至 product 分区;
在 bp 文件中,使用 product: true 可将模块编译至 product 分区。 适 应 于 Product-specific apps ( /product/app/*.apk ) 、 Product-specific priv-apps
( /product/priv-app/*.apk )、Product-specific java libraries ( /product/framework/*.jar ),可以将相关的 apps/priv-apps/java libraries 编译至 Product 分区。
2.3 TARGET_COPY_OUT_PRODUCT
PRODUCT_COPY_FILES 可将相关配置文件 copy 至指定分区,Android Framework System
Configs(/product/etc/sysconfig/*、/product/etc/permissions/*)和 media files (/product/med ia/audio/*)等都是采用 PRODUCT_COPY_FILES 的方式将文件 copy 至 system 或 vendor 分区下,
比如:PRODUCT_COPY_FILES += \
device/google/marlin/qti_whitelist.xml:system/etc/sysconfig/qti_whitelist.xml
如需 copy 至 product 分区,只需将上例红色的 system 换成 TARGET_COPY_OUT_PRODUCT。

更多详细内容请下载附件查看
游客,如果您要查看本帖隐藏内容请回复
已绑定手机
发表于 2022-3-24 17:14:16 | 显示全部楼层 来自 广东省深圳市罗湖区
看了吗,这个不知道可以走哦吗
已绑定手机
已实名认证
本站提供mt6582开发板、承接手机类,基于手机芯片类项目开发详情请点击-->>https://www.16rd.com/thread-13261-1-1.html
发表于 2023-3-14 09:46:18 | 显示全部楼层 来自 广东省深圳市
感谢分享
已绑定手机
发表于 2023-3-14 14:10:58 | 显示全部楼层 来自 湖南省湘潭市
谢谢分享!
已绑定手机
发表于 2023-4-25 17:29:32 | 显示全部楼层 来自 四川省成都市

感谢分享,前来学习
已绑定手机
发表于 2023-4-28 08:10:36 | 显示全部楼层 来自 广东省中山市
展讯Product分区及9.0运营商定制机制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表