type vendor_telephony_app, domain;
app_domain(vendor_telephony_app)

get_prop(vendor_telephony_app, vendor_rild_prop)
set_prop(vendor_telephony_app, vendor_persist_sys_default_prop)
set_prop(vendor_telephony_app, vendor_modem_prop)
set_prop(vendor_telephony_app, vendor_slog_prop)

allow vendor_telephony_app vendor_slog_file:dir create_dir_perms;
allow vendor_telephony_app vendor_slog_file:file create_file_perms;

allow vendor_telephony_app app_api_service:service_manager find;
allow vendor_telephony_app hal_vendor_oem_hwservice:hwservice_manager find;
binder_call(vendor_telephony_app, dmd)
binder_call(vendor_telephony_app, sced)

userdebug_or_eng(`
# Silent Logging
dontaudit vendor_telephony_app system_app_data_file:dir create_dir_perms;
dontaudit vendor_telephony_app system_app_data_file:file create_file_perms;
dontaudit vendor_telephony_app default_prop:file { getattr open read map };
allow vendor_telephony_app selinuxfs:file { read open };
')
