내 I2C 장치 중 하나에 대해로드 가능한 모듈로 커널 드라이버를 만들었습니다. 드라이버는 I2C 해당 폴더 (/sys/devices/i2c/i2c-0/0-0008/)
아래에 new_device 파일 (/sys/devices/i2c/i2c-0/new_device)
을 통해 인스턴스를 사용하여 sysfs 파일을 거의 생성하지 않습니다.안드로이드에서 sysfs의 i2c 파일에 대한 SELinux 규칙
Lollipop이 적용된 SELinux이므로 디바이스의 sysfs 파일에 대한 액세스가 필요한 응용 프로그램에 대한 규칙을 만들어야합니다. 주로 시스템 응용 프로그램입니다 (Android SELinux의 platform_app 정의에 해당합니다).
file_context:
/sys/devices/i2c-0/0-0008(/.*)? u:object_r:sysfs_mydeviceic:s0
결과는 흥미 롭다 : 그래서 내 장치 전용 파일 컨텍스트를 만들기로 결정
neverallow { appdomain -bluetooth -nfc }
sysfs:dir_file_class_set write;
: 문제는 응용 프로그램 도메인의 응용 프로그램 sysfs를 파일에 기록 할 수 없습니다 것입니다 기본 드라이버 어떻게 도움을 내가 찾고 있어요
[email protected]:/sys/devices/i2c-0/0-0008 # ls -Z
--w--w--w- root root u:object_r:sysfs:s0 data
lrwxrwxrwx root root u:object_r:sysfs_mydeviceic:s0 driver -> ../../../bus/i2c/drivers/mydevice
-rw-rw-rw- root root u:object_r:sysfs:s0 locked
-r--r--r-- root root u:object_r:sysfs_mydeviceic:s0 modalias
-r--r--r-- root root u:object_r:sysfs_mydeviceic:s0 name
drwxr-xr-x root root u:object_r:sysfs_mydeviceic:s0 power
-rw-rw-rw- root root u:object_r:sysfs:s0 protection
-rw-rw-rw- root root u:object_r:sysfs:s0 state
lrwxrwxrwx root root u:object_r:sysfs_mydeviceic:s0 subsystem -> ../../../bus/i2c
-rw-r--r-- root root u:object_r:sysfs_mydeviceic:s0 uevent
: 파일 등의 이름과 uevent 같은 폴더는 I2C 드라이버의 sysfs를 부분에 의해 생성 된 파일을 적절한 컨텍스트를 얻을 수 있지만 이 문제를 계속 진행하십시오. 나머지 파일에 대해 sysfs 컨텍스트를 sysfs_mydeviceic으로 변환하고 싶다면이 작업을 수행하는 방법은 무엇입니까? 아니면 응용 프로그램에서 sysfs 파일에 쓸 수있는 다른 방법이 있습니까?
나는 또한 해결책을 찾고 있는데, 해결책을 찾았습니까? – david