如何从Android 13 Pixel 6 Pro(Raven)源码中移除NFC HAL模块
彻底移除Android 13 AOSP Pixel 6 Pro的NFC HAL模块
仅删除device-raven.mk中的NFC服务行和manifest_nfc.xml不足以彻底移除NFC模块,因为AOSP中NFC的依赖分布在设备公共配置、HAL编译脚本、框架配置等多个位置,需按以下步骤操作:
清理设备配置中的NFC依赖
- 检查
device/google/raviole/common/device-common.mk(或同目录下的公共配置文件),删除所有包含android.hardware.nfc的PRODUCT_PACKAGES条目,比如android.hardware.nfc@1.2-service.st、android.hardware.nfc@1.2-impl等。 - 在
device/google/raviole/raven/device-raven.mk中,删除所有与NFC相关的PRODUCT_COPY_FILES行,例如拷贝NXP固件或配置文件的命令。
- 检查
禁用NFC HAL编译
- 在
device/google/raviole/raven/BoardConfig.mk中添加宏定义:
该宏会让AOSP跳过NFC相关HAL模块的编译逻辑。BOARD_HAS_NO_NFC := true - 若上述宏未生效,直接修改NFC HAL源码目录(通常为
hardware/nfc/nxp)下的Android.bp,注释掉所有编译android.hardware.nfc系列接口的模块定义。
- 在
移除框架层的NFC支持
- 在
device/google/raviole/raven/overlay/frameworks/base/core/res/res/values/config.xml中添加(若overlay目录不存在则创建):
通过overlay覆盖系统默认配置,关闭NFC框架支持。<bool name="config_nfcEnabled">false</bool> - 在设备配置文件(device-raven.mk和common.mk)中,删除
PRODUCT_PACKAGES中的NfcNci、Tag、NfcService等NFC应用和服务包。
- 在
清理缓存并重新编译
- 执行
m clean清理编译缓存,避免残留模块被打包:m clean - 重新编译系统并刷机:
make -j$(nproc) fastboot flashall -w
- 执行
验证移除效果
刷机完成后,执行以下命令确认NFC HAL已被移除:lshal | grep nfc若输出为空,且系统设置中无NFC选项,则说明移除成功。
内容的提问来源于stack exchange,提问作者Ilaveni Ranjith
相关产品推荐
相关产品推荐

