open tty_open seclinux te


<4>[   16.709009] .(4)[1:init]pan... do_sys_open() name=/dev/ttyS1 fd=16
<4>[   16.709826] .(4)[1:init]pan... path_openat() 111
<4>[   16.710439] .(4)[1:init]pan... link_path_walk() 111
<4>[   16.710975] .(6)[1484:m.android.phone]pan... path_openat() 111
<4>[   16.711088] .(4)[1:init]pan... selinux_inode_permission() 111, mask=0x81
<4>[   16.711477] .(3)[1718:AsyncTask #1]pan... link_path_walk() 111
<4>[   16.711483] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 111, mask=0x81
<4>[   16.711486] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 222, sid=1401
<4>[   16.711510] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 333, rc=0
<4>[   16.711516] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 111, mask=0x81
<4>[   16.711518] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 222, sid=1401
<4>[   16.711545] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 333, rc=0
<4>[   16.711548] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 111, mask=0x81
<4>[   16.711550] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 222, sid=1401
<4>[   16.711553] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 333, rc=0
<4>[   16.711588] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 111, mask=0x81
<4>[   16.711591] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 222, sid=1401
<4>[   16.711593] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 333, rc=0
<4>[   16.711596] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 111, mask=0x81
<4>[   16.711598] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 222, sid=1401
<4>[   16.711600] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 333, rc=0
<4>[   16.711603] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 111, mask=0x81
<4>[   16.711606] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 222, sid=1401
<4>[   16.711608] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 333, rc=0
<4>[   16.711852] .(6)[1484:m.android.phone]pan... link_path_walk() 111
<4>[   16.712007] .(3)[1718:AsyncTask #1]pan... path_openat() 111
<4>[   16.712011] .(3)[1718:AsyncTask #1]pan... link_path_walk() 111
<4>[   16.712014] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 111, mask=0x81
<4>[   16.712016] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 222, sid=1401
<4>[   16.712020] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 333, rc=0
<4>[   16.712023] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 111, mask=0x81
<4>[   16.712027] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 222, sid=1401
<4>[   16.712030] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 333, rc=0
<4>[   16.712033] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 111, mask=0x81
<4>[   16.712035] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 222, sid=1401
<4>[   16.712037] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 333, rc=0
<4>[   16.712041] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 111, mask=0x81
<4>[   16.712044] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 222, sid=1401
<4>[   16.712046] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 333, rc=0
<4>[   16.712049] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 111, mask=0x81
<4>[   16.712051] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 222, sid=1401
<4>[   16.712055] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 333, rc=0
<4>[   16.712058] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 111, mask=0x81
<4>[   16.712061] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 222, sid=1401
<4>[   16.712063] .(3)[1718:AsyncTask #1]pan... selinux_inode_permission() 333, rc=0
<4>[   16.712139] .(3)[1718:AsyncTask #1]pan... path_openat() 333
<4>[   16.712388] .(1)[1718:AsyncTask #1]pan... do_sys_open() exit fd=-2

<4>[   16.712777] .(4)[1:init]pan... tty_open() 111
<4>[   16.713510] .(4)[1:init]pan... tty_port_open() 111
<4>[   16.732802] .(4)[1:init]pan... mtk8250_do_pm() irq=287, state=0, old=3
<4>[   16.762608] .(7)[1:init]pan... mtk8250_startup() state=0, irq=287, iobase=0x0

<14>[   16.768057] .(7)[1:init]init 18: pan... SecondStageMain() open ok fd=16

<4>[   16.769044] .(7)[1:init]pan... tty_release() 111
<4>[   16.769677] .(7)[1:init]pan... tty_port_close_start() 111
<4>[   16.770402] .(7)[1:init]pan... tty_port_shutdown() 111
<4>[   16.771090] .(7)[1:init]pan... mtk8250_shutdown() state=2, irq=287
<4>[   16.771895] .(7)[1:init]pan... serial8250_do_shutdown() 11111
<4>[   16.771946] .(7)[1:init]pan... serial8250_do_shutdown() 22222
<4>[   16.772747] .(7)[1:init]pan... serial8250_do_shutdown() 33333
<4>[   16.773503] .(7)[1:init]pan... mtk8250_do_pm() irq=287, state=3, old=0
<4>[   16.775138] .(7)[1:init]pan... tty_port_close_end() 111

selinux_inode_permission

原始设备制造商 (OEM) 最好从 AOSP 中的政策入手,然后在这些政策的基础上创建自己的自定义政策。

一般应该不需要直接修改 system/sepolicy 中的文件,而只需添加您自己的设备专用政策文件(位于 /device/manufacturer/device-name/sepolicy 目录中)即可。
要实现 SELinux,您必须创建或修改以下文件:

1.新的 SELinux 政策源代码 (*.te) 文件 - 位于 /device/manufacturer/device-name/sepolicy 目录中。这些文件用于定义域及其标签。在编译到单个 SELinux 内核政策文件时,新的政策文件会与现有的政策文件组合在一起。
> 请勿更改 Android 开放源代码项目提供的 app.te 文件,否则可能会破坏所有第三方应用。
2.更新后的 BoardConfig.mk makefile - 位于包含 sepolicy 子目录的目录中。如果初始实现中没有 sepolicy 子目录,那么在该子目录创建之后,必须更新 BoardConfig.mk makefile,以引用该子目录。
3.file_contexts - 位于 sepolicy 子目录中。该文件用于为文件分配标签,并且可供多种用户空间组件使用。在创建新政策时,请创建或更新该文件,以便为文件分配新标签。
4.genfs_contexts - 位于 sepolicy 子目录中。该文件用于为不支持扩展属性的文件系统(例如,proc 或 vfat)分配标签。此配置会作为内核政策的一部分进行加载,但更改可能对核心内 inode 无效。要全面应用更改,需要重
新启动设备,或卸载后重新装载文件系统。此外,通过使用 context=mount 选项,还可以为装载的特定系统文件(例如 vfat)分配特定标签。
5.property_contexts - 位于 sepolicy 子目录中。该文件用于为 Android 系统属性分配标签,以便控制哪些进程可以设置这些属性。在启动期间,init 进程会读取此配置。
6.service_contexts - 位于 sepolicy 子目录中。该文件用于为 Android Binder 服务分配标签,以便控制哪些进行可以为相应服务添加(注册)和查找(查询)Binder 引用。在启动期间,servicemanager 进程会读取此配置。
7.seapp_contexts - 位于 sepolicy 子目录中。该文件用于为应用进程和 /data/data 目录分配标签。在每次应用启动时,zygote 进程都会读取此配置;在启动期间,installd 会读取此配置。
8.mac_permissions.xml - 位于 sepolicy 子目录中。该文件用于根据应用签名和应用软件包名称(后者可选)为应用分配 seinfo 标记。然后,分配的 seinfo 标记可在 seapp_contexts 文件中用作密钥,以便为带有该 seinfo
标记的所有应用分配特定标签。在启动期间,system_server 会读取此配置。

security_inode_permission()函数用于通过挂载到LSM的安全策略模块来对文件的访问权限进行检查,以判断某一主体是否可以访问指定的文件,其代码如下所示:

int security_inode_permission(struct inode*inode, int mask)

Linux多安全策略和动态安全策略框架模块详细分析之函数实现机制中文件对象管理器分析(3)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值