2021년 8월 22일 일요일

android, device node의 owner 설정하기

device node의 권한이 오락가락한다고.... 누군가가 나한테 문의하였다. 


Android에서 커널 Device 드라이버를 만들고 user 영역과 통신을 위해서 device node를 사용하곤 합니다. 

이때 device node에 권한을 주는 방법에 대해 알아보겠습니다.

android에서 권한을 쉽게 주는 방법은 init.rc 파일에서 간단하게 처리가 가능합니다.

아래는 init.rc의 예제 코드 입니다.

https://android.googlesource.com/platform/system/core/+/fa14d21ca44377f2c70769b6ebb2cc28a65d53d7/rootdir/init.rc

    # checker programs.

    mkdir /dev/fscklogs 0770 root system

    # pstore/ramoops previous console log

    mount pstore pstore /sys/fs/pstore nodev noexec nosuid

    chown system log /sys/fs/pstore

    chmod 0550 /sys/fs/pstore


chown / chmod 를 이용해서 권한을 주게됩니다.


하지만 device node가 동적으로 생겼다가 사라지는 node라면 어떻게 할까요 ?

이것도 init.rc의 on event를 이용하여 처리할 수는 있을 겁니다.

하지만 이런방법은 좋은 방법이 아니며, 이런 처리를 위하여 이미 준비가되어 있습니다.


ueventd.rc 를 참고 하기 바랍니다.

https://android.googlesource.com/platform/system/core/+/master/rootdir/ueventd.rc


# sysfs properties

/sys/devices/platform/trusty.*      trusty_version        0440  root   log

/sys/devices/virtual/input/input*   enable      0660  root   input

/sys/devices/virtual/input/input*   poll_delay  0660  root   input




댓글 없음:

댓글 쓰기