typeattribute radio coredomain;

app_domain(radio)

read_runtime_log_tags(radio)

# Telephony code contains time / time zone detection logic so it reads the associated properties.
get_prop(radio, time_prop)

# allow telephony to access platform compat to log permission denials
allow radio platform_compat_service:service_manager find;

allow radio uce_service:service_manager find;

# Manage /data/misc/emergencynumberdb
allow radio emergency_data_file:dir r_dir_perms;
allow radio emergency_data_file:file r_file_perms;

# allow sending pulled atoms to statsd
binder_call(radio, statsd)

# allow telephony to access related cache properties
set_prop(radio, binder_cache_telephony_server_prop);
neverallow { domain -radio -init }
    binder_cache_telephony_server_prop:property_service set;
