Android NDK open () Geräteberechtigung verweigert

ei einem systemeigenen Anruf versuche ich,open("/dev/video4", O_RDWR) aber ich bekomme errno EACCES 13 "Erlaubnis verweigert".

Wenn ich den gleichen Code * in einer ausführbaren Datei auf demselben Android-Host wie die gleiche UID der installierten App ausführe, die ich oben ausgeführt habe, funktioniert dies einwandfrei. (* kleine Unterschiede wiemain() Anstatt vonJava_com_test_testOpen())

Ich habe es versuchtchmod 666 /dev/video4 und immer noch EACCES, was besonders seltsam ist.

Warum macht dassame code, auf dersame host, als diesame user, geben Sie EACCESS, wenn Sie über JNI aufgerufen werden, und Erfolg, wenn Sie als eigenständige ausführbare Datei aufgerufen werden?

Das Testgerät ist gerootet und führt Cyanogenmod 12.1 (API 22) aus. Auf gerooteten Geräten ziele ich auf> = API 21 (5.0 Lollipop). Danke für Ihre Hilfe

Antworten auf die Frage(6)

Ihre Antwort auf die Frage