android 类型“at token”的重复声明;'尝试声明SELinux类型时

wooyq4lh  于 2023-05-15  发布在  Android
关注(0)|答案(2)|浏览(650)

我试图建立一个ROM为我的手机(小米Mi A2建兴)与SELinux强制执行.我已经在许可模式下成功启动了手机,但是在强制模式下,Wi-Fi无法工作,SystemUI每隔几分钟就会重新启动一次,显示“手机正在启动...”而不是启动器屏幕。
我使用audit2allow从我的手机中获取SELinux拒绝,并将输出添加到SELinux策略列表中。然而,当我尝试编译ROM时,我得到以下错误:

device/xiaomi/daisy/sepolicy/daisy.te:224:ERROR 'unknown type qemu_hw_mainkeys_prop' at token ';' on line 75538:
allow platform_app qemu_hw_mainkeys_prop:file read;

在得到这个错误后,我在我的property.te文件中声明了类型:

type qemu_hw_mainkeys_prop, property_type;

在尝试再次编译ROM后,我得到了这个:

device/xiaomi/daisy/sepolicy/property.te:3:ERROR 'Duplicate declaration of type' at token ';' on line 75576:
type qemu_hw_mainkeys_prop, property_type;

DT:https://github.com/tkchn/android_device_xiaomi_daisy/

yhived7q

yhived7q1#

我遇到了同样的重复声明错误。下面是我的设备目录结构:

device/
  my_company/
    my_device/
      BoardConfig.mk
      my_device.mk
    common/
      sepolicy/
        property.te
      my_system.mk

my_device.mk中,我有:

$(call inherit-product, device/my_company/common/my_system.mk)

首先在my_system.mk中,我有:

BOARD_SEPOLICY_DIRS += device/my_company/common/sepolicy

但是这产生了错误,所以我从my_system.mk中删除了上面的BOARD_SEPOLICY_DIRS行,并将其放入BoardConfig.mk中。错误消失了,希望我能确切地解释原因,但也许你也有同样的问题。

kwvwclae

kwvwclae2#

Android会将所有te文件附加到一个文件中。您需要在每个te文件的末尾添加一个空行,否则前一个文件的最后一行和当前文件的第一行将混合。而且,我更喜欢你在每个TE文件的开头添加一个空行,以避免其他TE文件的格式错误。

相关问题