You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

三星手机使用ftrace:读取saved_tgids遭权限拒绝的原因咨询

问题原因分析

出现这种差异的核心原因是SELinux强制访问控制策略的厂商定制差异,具体细节如下:

  • SELinux优先级高于文件权限:Android 8默认运行在SELinux Enforcing模式,此时系统访问控制会同时遵循DAC(自主访问控制,即你看到的-r--r--r--文件权限)和MAC(强制访问控制,SELinux规则)。即使文件设置为全局可读,只要SELinux规则禁止当前进程访问该文件,就会返回permission denied。

  • 厂商ROM的SELinux规则不同:

    • Pixel 3a XL搭载原生Android系统,默认允许shell域(adb shell进程的SELinux域)访问sys/kernel/debug/tracing下的trace相关文件,因此能正常读取。
    • 三星A5的定制ROM修改了SELinux策略,收紧了debugfs的访问权限,禁止shell域访问saved_tgids文件,所以即使文件权限符合要求,依然会被拦截。
  • 验证方式:

    1. 在两台设备的adb shell中执行getenforce,确认均处于Enforcing模式;
    2. 执行ls -Z sys/kernel/debug/tracing/saved_tgids查看文件的SELinux上下文;
    3. 执行id -Z查看当前adb shell进程的SELinux域;
      对比两者的上下文,就能看到三星设备的SELinux规则中没有允许shell域访问该文件上下文的条目。
  • 临时解决方法(若需要):

    • 获得root权限后,切换SELinux到Permissive模式:setenforce 0,之后就能读取该文件;
    • 直接用root权限执行命令:su -c cat sys/kernel/debug/tracing/saved_tgids。

内容的提问来源于stack exchange,提问作者Luca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:22:11