SEAndroid: состояние дампа нарушает правило никогда не разрешать
При сборке AOSP S(12) я столкнулся со странной проблемой, но, может быть, только на некоторых машинах. Журнал ошибок выглядит следующим образом
neverallow check failed at out/target/product/msmnile_au/obj/ETC/plat_sepolicy.cil_intermediates/plat_sepolicy.cil:22861 from system/sepolicy/private/property.te:46
(neverallow domain base_typeattr_745 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
<root>
allow at out/target/product/msmnile_au/obj/ETC/plat_sepolicy.cil_intermediates/plat_sepolicy.cil:8901
(allow dumpstate property_type (file (read getattr map open)))
<root>
allow at out/target/product/msmnile_au/obj/ETC/plat_sepolicy.cil_intermediates/plat_sepolicy.cil:11533
(allow init property_type (file (read write create getattr setattr relabelto append map unlink rename open)))
<root>
allow at out/target/product/msmnile_au/obj/ETC/plat_pub_versioned.cil_intermediates/plat_pub_versioned.cil:6370
(allow dumpstate_31_0 property_type (file (read getattr map open)))
<root>
allow at out/target/product/msmnile_au/obj/ETC/plat_pub_versioned.cil_intermediates/plat_pub_versioned.cil:8170
(allow init_31_0 property_type (file (read write create getattr setattr relabelto append map unlink rename open)))
Failed to generate binary
Failed to build policydb
Потом проверяю правила. system/sepolicy/private/property.te:46 говорит:
enforce_sysprop_owner(`
neverallow domain {
property_type
-system_property_type
-product_property_type
-vendor_property_type
}:file no_rw_file_perms;
')
и system/sepolicy/public/dumpstate.te:278 говорит:
# Read any system properties
get_prop(dumpstate, property_type)
Мой вопрос: нарушает ли это правило «никогда не разрешать» и вызывает ли эту ошибку? Если да, то почему иногда не выскакивает эта ошибка. Если нет, то в чем причина моей ошибки?
Заранее спасибо.
2 ответа
Я добавил ниже код в устройство/xiaomi/juice/BroadConfig.mk
# Sepolicy
SELINUX_IGNORE_NEVERALLOWS := true
Однако это не поддерживается в пользовательских сборках. Поддерживается только в сборках userdebug и eng.
Я понял причину. Причина в том, что у меня есть другой файл, который использует property_type, если этот файл существует, появляется всплывающее окно с проблемой; в остальном все идет хорошо. Надеюсь, это будет полезно для вас. Кстати, сообщение об ошибке далеко от реальной проблемы.