2

我看到文件系统类型和文件类型在 AOSP 的 /external/sepolicy/file.te 中声明。但是每种类型都表示或映射到评论中提到的特定目录。

链接:https ://android.googlesource.com/platform/external/sepolicy/+/refs/heads/lollipop-release/file.te

示例 1:

#Default type for anything under /system.
type system_file, file_type;

示例 2:

#/data/data subdirectories - app sandboxes
type app_data_file, file_type, data_file_type;

这意味着我们正在声明一个类型app_data_file并将该类型关联到属性file_typedata_file_type

注意:所有属性都在属性文件中声明。

链接:https ://android.googlesource.com/platform/external/sepolicy/+/refs/heads/lollipop-release/attributes

  1. 提到类型system_file用于路径/system并且app_data_file用于/data/data子目录。但是这些类型和路径在哪里显式映射或关联?如果它们没有映射到任何地方,那么操作系统如何知道这system_file是为了/system

  2. 如果我必须创建一个新类型my_app_type并将其映射到 dir /data/com.my_app/photos/,我该如何实现?

4

1 回答 1

2

这些被标记,例如。和device/manufacturer/device-name/sepolicy/file_contexts其他file_contexts文件(在构建 AOSP 时可以看到)。有关更详细的说明,请参阅标记新服务和地址拒绝。

另请参阅RHEL 文档(它来自哪里),因为问题的第二部分很难回答;我宁愿想知道这是否甚至是必需的,为什么?如果我正确理解该目录的用途,那么在 Android 上,这可能更适合FileProvider将这些文件公开给其他应用程序。降低安全标准通常不是一个好主意,但还有另一种可用的方法,可以从已经允许的安全上下文中访问。我的意思是,即使可以使用ls -laZ(类似于文件系统列表)列出标签,安全上下文始终是访问发生的角度。AndroidX Camera2Basic示例将演示我的意思(它FileProvider用于应用程序内部存储)。

于 2020-04-14T09:04:56.333 回答