android - 在标记 ';' 处重复声明类型' 尝试声明 SELinux 类型时
问题描述
我正在尝试为我的手机(小米米 A2 Lite)构建一个带有 SELinux 强制的 ROM。我已经在许可模式下成功启动了手机,但是在强制模式下,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;
解决方案
Android 会将所有 te 文件附加到一个文件中。需要在每个 te 文件的末尾添加一个空行,否则前一个文件的最后一行和当前文件的第一行会混在一起。而且,我更喜欢在每个 te 文件的开头添加一个空白行,以避免其他 te 文件出现格式错误。
推荐阅读
- docker - ubuntu 20.04 docker consul 图像 - 退出状态
- c++ - 缺少用户定义的 to_string() 的编译时检测
- r - 按顺序合并按字符分隔的列
- javascript - 为什么我的平滑滚动功能不起作用?
- python - 在 Python 中的 abs(number) 中使用 AND
- javascript - 猴子补丁外部 CSS
- azure-devops - Azure App Service 部署任务选项,用于在部署时删除容器中的文件
- react-native - React Navigation v5 中的 setOptions 内的 CardStyleInterpolators
- user-interface - .container 或 .container-fluid 哪个更适合设计?
- c# - 如何自动向下滚动 - Windows 窗体 C#