# init_regions.sh reads region from vpd and sets
# ro.product.locale property
type locale, domain, domain_deprecated;
type locale_exec, exec_type, file_type;

init_daemon_domain(locale)

set_prop(locale, product_locale_prop)
set_prop(locale, wifi_region_prop)

# use cat to read /sys/firmware/vpd/ro/region
allow locale shell_exec:file rx_file_perms;

# execute toolbox/toybox
allow locale toolbox_exec:file rx_file_perms;
