0


SeLinux安全上下文文件

在SeLinux 框架中,需要为每个主体和客体设置好安全上下文。在Android中,常见的安全上下文文件有file_contexts、genfs_contexts、service_contexts、mac_permissions.xml和seapp_contexts

file_contexts

根系统中所有文件的安全上下文, 如/system/bin, /system/etc 等文件

/system(/.*)?        u:object_r:system_file:s0
/system/apex/com.android.art    u:object_r:art_apex_dir:s0
/system/lib(64)?(/.*)?        u:object_r:system_lib_file:s0
/system/lib(64)?/bootstrap(/.*)? u:object_r:system_bootstrap_lib_file:s0
/system/bin/atrace    u:object_r:atrace_exec:s0
/system/bin/auditctl    u:object_r:auditctl_exec:s0

genfs_contexts

虚拟文件系统的安全上下文,如proc、sys、debugfs

genfscon proc / u:object_r:proc:s0
genfscon proc /asound u:object_r:proc_asound:s0
genfscon proc /buddyinfo u:object_r:proc_buddyinfo:s0
genfscon sysfs / u:object_r:sysfs:s0
genfscon sysfs /devices/system/cpu u:object_r:sysfs_devices_system_cpu:s0
genfscon sysfs /class/android_usb                 u:object_r:sysfs_android_usb:s0
genfscon sysfs /class/extcon                      u:object_r:sysfs_extcon:s0
genfscon debugfs /kprobes                             u:object_r:debugfs_kprobes:s0
genfscon debugfs /mmc0                                u:object_r:debugfs_mmc:s0
genfscon debugfs /tracing                             u:object_r:debugfs_tracing_debug:s0
genfscon tracefs /                                    u:object_r:debugfs_tracing_debug:s0
genfscon debugfs /tracing/tracing_on                  u:object_r:debugfs_tracing:s0

service_contexts

系统binder服务的安全上下文,在启动过程中,servermanger会读取该配置

media.audio_flinger                       u:object_r:audioserver_service:s0
media.audio_policy                        u:object_r:audioserver_service:s0
media.camera                              u:object_r:cameraserver_service:s0
wifiaware                                 u:object_r:wifiaware_service:s0
wifirtt                                   u:object_r:rttmanager_service:s0
window                                    u:object_r:window_service:s0
*                                         u:object_r:default_android_service:s0

自定义的系统服务,在没有特别指定的情况下,默认的安全上下文是u:object_r:default_android_service:s0

mac_permissions.xml和seapp_contexts

mac_permissions.xml用于根据应用签名和应用软件包名称(后者可选)为应用分配seinfo 标记。随后,分配的seinfo 标记可在seapp_contexts 文件中用作密钥,以便为带有该seinfo 标记的所有应用分配特定标签。在启动期间,system_server 会读取此配置

<signer signature="@PLATFORM"><seinfo value="platform"/></signer><!-- Media key in AOSP --><signer signature="@MEDIA"><seinfo value="media"/></signer><signer signature="@NETWORK_STACK"><seinfo value="network_stack"/></signer>

seapp_contexts,app的安全上下文,用于描述apk 安装之后的目录文件和/data/data 目录分配标签。在每次应用启动时,zygote 进程都会读取此配置;在启动期间,installd 会读取此配置

user=_app seinfo=platform name=com.android.traceur domain=traceur_app type=app_data_file levelFrom=all
user=system seinfo=platform domain=system_app type=system_app_data_file
user=bluetooth seinfo=platform domain=bluetooth type=bluetooth_data_file
user=_app isPrivApp=true name=com.google.android.gms:* domain=gmscore_app type=privapp_data_file levelFrom=user
user=_app isPrivApp=true name=com.google.android.gsf domain=gmscore_app type=privapp_data_file levelFrom=user
user=_app minTargetSdkVersion=30 domain=untrusted_app type=app_data_file levelFrom=all
user=_app minTargetSdkVersion=29 domain=untrusted_app_29 type=app_data_file levelFrom=all
user=_app minTargetSdkVersion=28 domain=untrusted_app_27 type=app_data_file levelFrom=all

在Android 8.0 之后启动了treble计划,分为了平台和非平台。selinux 安全上下文也被分为了平台和非平台,可以查看system/sepolicy/Android.mk 中的编译说明。

system/sepolicy/private:平台私有规则,不会向vendor 部分暴露。里面包含了各种策略控制te 文件,以及上面提到的上下文文件。
system/sepolicy/public: 平台共有策略的全部定义,里面包含了各种策略控制te 文件,
system/sepolicy/vendor 厂商规则,可引用public 的规则,不能引用private 的规则
device/manufacturer/device-name/sepolicy 厂商自定义的规则,包括如上的vendor 部分

上面说的安全上下文文件在编译之后,都会放到system/etc/seliunx和vendor/etc/seliunx 目录下。

标签: android Selinux

本文转载自: https://blog.csdn.net/littleyards/article/details/137232232
版权归原作者 Kbattery 所有, 如有侵权,请联系我们删除。

“SeLinux安全上下文文件”的评论:

还没有评论