kitkat 버전에서 정상 동작하고, oreo버전으로 급 4단계를 버전업 해버리니까 변경사항이 장난이 아니네요..
구조는 APP - JNI - app Framework - native Framework - HAL 로 이어지는 구조의 프로그램입니다
binder 통신을 하고 있고요
궁금점은 기존 kitkat때는 없던 보안문제들이 수두룩 걸립니다.
1. service를 실행 후, application에서 binder통신을 위해 connect 할 시, avc: denied { find } 에러가 뜹니다.
해당문제는 일단 sepolicy쪽의 service_context 및 service.te 를 건드리면 뭔가 될거 같은 느낌이 옵니다만
확실한 방향을 모르는 상태입니다. 일단 급하면 setenforce 0 명령어 입력 시, 권한을 무시하더군요..
2.현재 가장 궁금한 사항입니다. 기존 kitkat에서는 application에서 manifests 에 permission을 정의하여서
사용했습니다.
<uses-permission android:name="android.permission.ServiceA" />
이런식으로 말이죠.. 근데 이것또한 버전업되면서 요새는 Runtime Permission rule을 따라야 된다고 하더군요
그런데 여기서 제가 궁금한것은 "android.permission.ServiceA" 란 놈은 제가 임의로 정의한 이름이며,
native Service 코드쪽에서도 if (!checkCallingPermission(("android.permission.ServiceA"))) 이런식으로 permission을 체크합니다.
그런데 checkCallingPermission 함수에서 에러가 항상 나는데, 이 문제가 버전이 업그레이드 되면서 Runtime permission rule 과 연관이 있는건지가 궁금합니다.
또한 저 처럼 Custom Service 를 작성할 시, 어떤식으로 application에서 권한 획득을 해야되는지도
궁금하네요..
이상입니다.ㅜ