I am seeing following sepolicy errors in Android-N.
W Binder:3929_E: type=1400 audit(0.0:29): avc: denied { write } for path="/dev/ttyGS0" dev="tmpfs" ino=73461 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:serial_ic:s0 tclass=chr_file permissive=0
I have created directory "vendor/qcom/sepolicy/acm/" and made its entry in BoardConfig.mk as shown below.
# ACM features belong in vendor/qcom/sepolicy
BOARD_SEPOLICY_DIRS := vendor/qcom/sepolicy/acm
Also I have commented in "device/qcom/sepolicy/common/file_contexts"
-/dev/ttyGS0 u:object_r:gadget_serial_device:s0
+#/dev/ttyGS0 u:object_r:gadget_serial_device:s0
I have changed sepolicy in following directories:
[1] vendor/qcom/sepolicy/acm/file_contexts
# These are the ports used to talk.
# We have to relabel these because domain.te has never allow rules that prevent
# any other domain (other than init or ueventd) from accessing these files
/dev/ttyGS0 u:object_r:serial_ic:s0
[2] vendor/qcom/sepolicy/acm/file.te
type serial_ic, dev_type, fs_type;
[3] vendor/qcom/sepolicy/acm/platform_app.te
allow platform_app serial_ic:chr_file { ioctl open read write };
[4] vendor/qcom/sepolicy/acm/system_server.te
#allow for acm node
allow system_server serial_ic:chr_file rw_file_perms;
[5] vendor/qcom/sepolicy/acm/untrusted_app.te
# for serial chat app
allow untrusted_app serial_ic:chr_file ioctl;
allow untrusted_app serial_ic:chr_file { read write };
[6] vendor/qcom/sepolicy/acm/system_app.te
#allow acm node
allow system_app serial_ic:chr_file { ioctl open read write};
Still I am not able to resolve "write" sepolicy error.Whenever from my serial chat application it tries to access node "/dev/ttyGS0" application crashes.
Posting logs for reference
--------- beginning of crash
01-01 07:11:46.954 15292 15292 E AndroidRuntime: FATAL EXCEPTION: main
01-01 07:11:46.954 15292 15292 E AndroidRuntime: Process: com.android.serialchat, PID: 15292
01-01 07:11:46.954 15292 15292 E AndroidRuntime: DeadSystemException: The system died; earlier logs will point to the root cause
01-01 07:11:46.960 3929 8483 W ActivityManager: Force finishing activity com.android.serialchat/.SerialChat
01-01 07:11:46.965 3929 8483 D ActivityTrigger: ActivityTrigger activityPauseTrigger
01-01 07:11:46.949 8597 8597 W Binder:3929_E: type=1400 audit(0.0:29): avc: denied { write } for path="/dev/ttyGS0" dev="tmpfs" ino=73461 scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:serial_ic:s0 tclass=chr_file permissive=0