Android SEpolicy file_contexts не применяется для файлов в каталоге - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь написать SEpolicy для пользовательского сервиса, который создает сокеты в папке / dev / test_sock /.

При запуске он создает десять сокетов

/dev/test_sock/sock1
/dev/test_sock/sock2
/dev/test_sock/sock3
...
/dev/test_sock/sock10

Мне нужен другой файлконтекст для каждого из этих сокетов. В качестве примера я проверил AOSP, как это было сделано, например, на блочном устройстве

/dev(/.*)?                      u:object_r:device:s0
/dev/block(/.*)?            u:object_r:block_device:s0
/dev/block/loop[0-9]*   u:object_r:loop_device:s0
/dev/block/ram[0-9]*    u:object_r:ram_device:s0

И я проверил контексты реальных устройств, они выглядят нормально

30|console:/ # ls -alZ /dev/block/
total 0
drwxr-xr-x  5 root root          u:object_r:block_device:s0               640 1970-01-01 00:00 .
drwxr-xr-x 18 root root          u:object_r:device:s0                    3600 1970-01-01 00:00 ..
brw-------  1 root root          u:object_r:loop_device:s0             7,   0 1970-01-01 00:00 loop0
brw-------  1 root root          u:object_r:userdata_block_device:s0 179,   0 1970-01-01 00:00 mmcblk0
bdrwx------  2 root reserved_disk u:object_r:block_device:s0                40 1970-01-01 00:00 vold

Поэтому я попыталсясделать то же самое для моего собственного обслуживания.Я создал file_contexts с содержимым:

/dev/test_sock(/.*)?        u:object_r:test_sock_device:s0
/dev/test_sock/sock1        u:object_r:test_sock_device1:s0
/dev/test_sock/sock[2-4]    u:object_r:test_sock_device_other:s0

Правильный контекст файла применен для папки / dev / test_sock /, но сокеты внутри этой папки имеют одинаковые контексты файла.Из моего понимания контекст для sock1 должен быть test_sock_device1, а для sock [1 - 4] должен быть test_sock_device_other

130|console:/ # ls -alZ /dev/test_sock/
total 0
drwxr-xr-x  2 root   root u:object_r:test_sock_device:s0      280  1970-01-01  00:00 .
drwxr-xr-x 18 root   root u:object_r:device:s0                3600 1970-01-01  00:00 ..
srw-rw----  1 root   root u:object_r:test_sock_device:s0    0 1970-01-01 00:00 sock1
srw-rw----  1 root   root u:object_r:test_sock_device:s0    0 1970-01-01 00:00 sock2
srw-rw----  1 root   root u:object_r:test_sock_device:s0    0 1970-01-01 00:00 sock3

Как исправить контекст контекста, используя file_contexts в моем случае?

...