添加了自定义服务,服务名称为bean,服务没有问题,手动关闭selinux可以正常运行。
在aosp中建立了vendor/jianc/sepolicy
vendor
└── jiangc
└── sepolicy
├── private
│ └── service_contexts
└── public
├── service.te
└── system_server.te
内容如下:
service_contexts:
bean u:object_r:bean_service:s0
service.te
type bean_service, service_manager_type;
system_server.te
allow system_server bean_service:service_manager add;
然后修改aosp/device/generic/car/emulator/aosp_car_emulator.mk文件
最后添加以下内容: BOARD_VENDOR_SEPOLICY_DIRS +=供应商/jianc/sepolicy
然后编译:source build/envsetup.sh 午餐 sdk_car_x86-userdebug 启动模拟器模拟器
仍然错误: auditd:avc:拒绝{添加} for pid=831 uid=1000 name=bean scontext=u:r:system_server:s0 tcontext=u:object_r:default_android_service:s0 tclass=service_manager permissive=0
我尝试make clean,重新编译,还是不行 尝试修改为
BOARD_PLAT_PUBLIC_SEPOLICY_DIR += vendor/jiangc/sepolicy/public
BOARD_PLAT_PRIVATE_SEPOLICY_DIR += vendor/jiangc/sepolicy/private
BOARD_VENDOR_SEPOLICY_DIRS += vendor/jiangc/sepolicy
还是不行
我的问题似乎已经解决了。首先,我不小心更改了service_contexts.txt的文件名。其次,我需要将以下代码添加到相关的mk中
BOARD_PLAT_PUBLIC_SEPOLICY_DIR += vendor/jiangc/sepolicy/public
BOARD_PLAT_PRIVATE_SEPOLICY_DIR += vendor/jiangc/sepolicy/private