ERROR 'duplicate declaration of type/attribute' at token ';' on line 14430

本文介绍了解决MTK平台Android编译时出现的权限文件重复导致的错误。详细分析了错误产生的原因,并提供了具体的解决方案,包括删除重复的权限文件及清理缓存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MTK添加Android权限te文件后,编译make bootimage报重复duplicate错误。

错误信息:
------------------------------------------------------------------------
out/host/linux-x86/bin/checkpolicy: loading policy configuration from out/target/product/xxx/obj/ETC/sepolicy_intermediates/policy.conf
device/mediatek/common/sepolicy/device.te:164:ERROR 'duplicate declaration of type/attribute' at token ';' on line 14430:
type xxx_device, dev_type;
checkpolicy: error(s) encountered while parsing configuration
------------------------------------------------------------------------
注意:报错信息中14430行说的是policy.conf文件,不过这不是重点。

duplicate,重复。
报错,重复,哪里重复了呢?

是在这两个目录下重复了:
xxxprj/device/mediatek/common/sepolicy
xxxprj/external/sepolicy

通过这个命令可以看到,确实两个目录下都有,重复了。
xxxprj/device/mediatek/common/sepolicy# find * |xargs grep xxx_device
xxxprj/external/sepolicy# find * |xargs grep xxx_device

原因在于,Android的te权限文件,在两个路径下都可以添加,效果一样,但不能同时有,不然会报重复错误!

解决方法:
删除device或external目录下sepolicy中的一个权限te文件,
删除中间缓存,
# rm -rf out/target/product/xxx/obj/ETC/sepolicy_intermediates
重新编译,生成boot.img,OK。

# #============= hal_nfc_default ============== # allow hal_nfc_default hal_secure_element_default:binder call; # 允许init执行此文件 allow init hal_nfc_default_exec:file execute; # 允许init进程切换到hal_nfc_default域 allow init hal_nfc_default:process transition; # 设置自动类型转换:当init执行该文件时,进程域变为hal_nfc_default type_transition init hal_nfc_default_exec:process hal_nfc_default; type hal_nfc_default, domain; init_daemon_domain(hal_nfc_default) get_prop(hal_nfc, vendor_nfc_prop) set_prop(hal_nfc, vendor_nfc_prop) allow hal_nfc_default self:process { fork signal }; allow hal_nfc_default vendor_toolbox_exec:file rx_file_perms; allow hal_nfc_default servicemanager:service_manager find; allow hal_nfc_default aidl_nfc_service:service_manager add; allow hal_nfc_default devlog:sock_file write; #allow hal_nfc_default nxpese_hwservice:hwservice_manager find; allow hal_nfc_default nxpnfc_hwservice:hwservice_manager { find add }; # allow hal_nfc_default vendor_hal_nxpnfc_service:service_manager { find add }; # allow hal_nfc_default nfc_device:chr_file { read write }; # allow hal_nfc_default nfc_data_file:file getattr; # allow hal_nfc_default nfc_vendor_data_file:dir { getattr add_name read write search remove_name }; # allow hal_nfc_default nfc_vendor_data_file:file { getattr open create read write unlink setattr append }; allow hal_nfc_default nfc_vendor_debug_data_file:dir { rw_dir_perms }; allow hal_nfc_default nfc_vendor_debug_data_file:file { create_file_perms }; # allow hal_nfc_default secure_element_vendor_data_file:file { getattr open read write unlink create setattr }; # allow hal_nfc_default secure_element_vendor_data_file:dir search; device/mediatek/vendor/common/nfc/sepolicy_nxp/nfc/hal_nfc_default.te:14:ERROR 'Duplicate declaration of type' at token ';' on line 75384:
最新发布
07-14
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值