문제 해결 - Java SDK
이 페이지의 내용
사용자 지정 Android ROM의 시스템 앱에서 사용
Atlas Device SDK는 명명된 파이프를 사용하여 여러 프로세스에서 Realm 파일 에 대한 알림 과 액세스 를 지원 합니다. 이는 일반 사용자 앱의 경우 기본값 허용되지만 시스템 앱의 경우 허용되지 않습니다.
시스템 앱은 Android 매니페스트에서 android:sharedUserId="android.uid.system"
를 설정하여 정의됩니다. 시스템 앱의 경우 Logcat에 다음과 같은 보안 위반이 표시될 수 있습니다.
05-24 14:08:08.984 6921 6921 W .realmsystemapp: type=1400 audit(0.0:99): avc: denied { write } for name="realm.testapp.com.realmsystemapp-Bfqpnjj4mUvxWtfMcOXBCA==" dev="vdc" ino=14660 scontext=u:r:system_app:s0 tcontext=u:object_r:apk_data_file:s0 tclass=dir permissive=0 05-24 14:08:08.984 6921 6921 W .realmsystemapp: type=1400 audit(0.0:100): avc: denied { write } for name="realm.testapp.com.realmsystemapp-Bfqpnjj4mUvxWtfMcOXBCA==" dev="vdc" ino=14660 scontext=u:r:system_app:s0 tcontext=u:object_r:apk_data_file:s0 tclass=dir permissive=0
이 문제를 해결하려면 ROM에서 SELinux 보안 규칙을 조정해야 합니다.audit2allow
이 작업은 도구를 사용하여 수행할 수 있습니다. 이 도구는 AOSP의 일부로 제공됩니다.
기기에서 현재 정책을 가져옵니다:
adb pull /sys/fs/selinux/policy
.input.txt
이라는 텍스트 파일 내에 SELinux 오류를 복사합니다.audit2allow
도구를 실행합니다:audit2allow -p policy -i input.txt
.이 도구는 기존 정책에 추가할 수 있는 규칙을 출력해야 합니다. 이 규칙을 사용하면 여러 프로세스에서 Realm 파일에 액세스할 수 있습니다.
audit2allow
은(는) AOSP/ROM을 컴파일할 때 생성되며 Linux에서만 실행됩니다. Android 소스 문서 에서 자세한 내용을 확인하세요. . 또한 Android Oreo 이후 Google은 SELinux를 구성하는 방식을 변경했으며 기본 보안 정책이 이제 더 모듈화되었습니다. 자세한 내용은 Android 소스 문서를 참조하세요.