6067b53d4f
A vendor has an audio HAL implementation for Android Automotive that controls amplifiers with tcp sockets. This violates a neverallow rule in 'public/hal_audio.te': neverallow hal_audio_server domain:{ tcp_socket udp_socket rawip_socket } *; This rule prevents any audio HAL server from accessing sockets; But public/hal_neverallows.te, line 19 exempts HAL servers on automotive devices; because in a car it is common to have external modules accessible over in-vehicle networks. Therefore, the existing neverallow rule in hal_audio.te is a duplicate; and this CL removes this rule. Vendors on automotive devices should refer to 'vendor/hal_audio_default.te', by (1) creating a new type; (2) associating the type with the 'hal_automotive_socket_exemption' attribute. Bug: 150400684 Test: tested with the following rules in 'vendor/hal_audio_default.te' Test: type harmon_amplifier, domain; Test: typeattribute hal_audio_default hal_automotive_socket_exemption; Test: allow hal_audio_default harmon_amplifier:tcp_socket connect; Test: m -j should compile sepolicy without complaints Change-Id: I517b050d0582d08f94f35ba815a030121385f319
37 lines
1.2 KiB
Text
37 lines
1.2 KiB
Text
# HwBinder IPC from client to server, and callbacks
|
|
binder_call(hal_audio_client, hal_audio_server)
|
|
binder_call(hal_audio_server, hal_audio_client)
|
|
|
|
hal_attribute_hwservice(hal_audio, hal_audio_hwservice)
|
|
|
|
allow hal_audio ion_device:chr_file r_file_perms;
|
|
|
|
r_dir_file(hal_audio, proc)
|
|
r_dir_file(hal_audio, proc_asound)
|
|
allow hal_audio_server audio_device:dir r_dir_perms;
|
|
allow hal_audio_server audio_device:chr_file rw_file_perms;
|
|
|
|
# Needed to provide debug dump output via dumpsys' pipes.
|
|
allow hal_audio shell:fd use;
|
|
allow hal_audio shell:fifo_file write;
|
|
allow hal_audio dumpstate:fd use;
|
|
allow hal_audio dumpstate:fifo_file write;
|
|
|
|
# Needed to allow sound trigger hal to access shared memory from apps.
|
|
allow hal_audio_server appdomain:fd use;
|
|
|
|
# allow hal audio to use vnbinder
|
|
vndbinder_use(hal_audio)
|
|
|
|
###
|
|
### neverallow rules
|
|
###
|
|
|
|
# Should never execute any executable without a domain transition
|
|
neverallow hal_audio_server { file_type fs_type }:file execute_no_trans;
|
|
|
|
# Only audio HAL may directly access the audio hardware
|
|
neverallow { halserverdomain -hal_audio_server -hal_omx_server } audio_device:chr_file *;
|
|
|
|
get_prop(hal_audio, bluetooth_a2dp_offload_prop)
|
|
get_prop(hal_audio, bluetooth_audio_hal_prop)
|