type factory_ota_app, domain, coredomain;

app_domain(factory_ota_app)
net_domain(factory_ota_app)

# Write to /data/ota_package for OTA packages.
# Factory OTA client will download OTA image into ota_package folder and unzip it.
# Than Update engine could use it to execute OTA process.
# So Factory OTA client need read / write and create file access right for this folder
allow factory_ota_app ota_package_file:dir rw_dir_perms;
allow factory_ota_app ota_package_file:file create_file_perms;

# Properties
# For write system property persist.*
set_prop(factory_ota_app, sota_prop);

# Services
# For get access WiFi manager service and activity service
allow factory_ota_app app_api_service:service_manager find;
# Allow Factory OTA to call Update Engine
binder_call(factory_ota_app, update_engine)
# Allow Update Engine to call the Factory OTA callback
binder_call(update_engine, factory_ota_app)
#For access update engine function
allow factory_ota_app update_engine_service:service_manager find;
#For disable NFC wake up device feature
allow factory_ota_app nfc_service:service_manager find;
#For get device IMEI
allow factory_ota_app radio_service:service_manager find;

# For suppress more GPU service sepolicy error log.
dontaudit factory_ota_app gpuservice:binder call;
