Невозможно открыть узел устройства из пространства пользователя в Android

В Android возникают проблемы с открытием узла устройства (dev/dri/card0) от hwcomposer, работающего в пространстве пользователя. Я пытаюсь открыть устройство, как:

fd_ = open("/dev/dri/card0", O_RDWR);
if (fd_ < 0) {
    ALOGE("Failed to open dri- %s", strerror(-errno));
    return -ENODEV;
}

Ошибка:

hwc-drm-resources: Failed to open dri- Unknown error -13 

Ошибка 13 - проблемы с правами доступа. Для этого я настроил разрешение в ueventd.rc в Android:

/dev/dri/*                0666   root       graphics

Я также попытался установить разрешение для системы. Это все еще не работает.

Когда я запускаю ls -la в /dev/dri. Это показывает следующий вывод, у него есть разрешение rw для пользовательского режима.

crw-rw-rw- root     graphics 226,   0 2015-01-01 00:26 card0
crw-rw-rw- root     graphics 226,  64 2015-01-01 00:26 controlD64

Я не понимаю, почему hwcomposer не сможет получить доступ к узлу устройства, так как разрешение установлено для узла устройства.

1 ответ

Решено. Я забыл поместить запись для узлов устройства в /external/sepolicy.

/dev/dri(/.*)?         u:object_r:graphics_device:s0

Более подробная информация о sepolicy приведена на сайте Android. https://source.android.com/security/selinux/implement.html.

Другие вопросы по тегам