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

Android SELinux untrusted_app.te规则解读:为何无法写入/cache

Android普通应用SELinux规则解读疑问:/cache目录创建权限被拒

我正在研究Android普通应用对应的SELinux规则,了解到普通应用归为untrusted_app域。查看对应的untrusted_app.te文件时,发现第79-81行有如下规则:

Write to /cache.

allow untrusted_app cache_file:dir create_dir_perms;
allow untrusted_app cache_file:file create_file_perms;

但我在应用中尝试向/cache创建文件和文件夹时却被权限拒绝,是我对规则的解读有误吗?


问题排查与原因分析

  1. SELinux上下文不匹配
    /cache目录本身的SELinux上下文可能并非cache_file_t类型。你可以通过执行ls -Z /cache命令查看其实际上下文。如果/cache的类型是cache_root_t,那untrusted_app的规则就不适用——因为规则仅授权对cache_file类型的访问,而非cache_root_t。

  2. Android版本差异
    你参考的untrusted_app.te版本对应的系统可能和测试设备版本不一致。不同Android版本的SEPolicy规则会有调整,比如在较新的版本中,普通应用被限制直接访问全局/cache,只能访问应用专属缓存目录(如/data/data/<包名>/cache)。

  3. DAC权限限制
    除SELinux外,Android还有DAC(自主访问控制)限制。/cache的Linux文件权限可能不允许普通应用用户(通常是u:r:untrusted_app:s0)写入,可通过ls -l /cache查看权限位确认。

  4. 宏定义权限范围
    create_dir_perms和create_file_perms是SEPolicy宏,需确认其实际包含的权限。比如create_dir_perms通常包含add_name、create等,但如果/cache父目录未授权搜索权限,即使子目录有创建权限也无法生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:05:23