android - SE Linux 中目录路径映射到标签的位置在哪里?

标签 android android-source selinux android-5.1.1-lollipop google-source-repositories

我看到文件系统类型和文件类型在 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 并将其映射到目录 /data/com.my_app/photos/,我该如何实现?

最佳答案

这些正在被标记,例如。以及 device/manufacturer/device-name/sepolicy/file_contexts 和更多 file_contexts 文件(正如构建 AOSP 时所见)。请参阅Label new services and address denials以获得更详细的解释。

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

关于android - SE Linux 中目录路径映射到标签的位置在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61203701/

相关文章:

android - 如何使 Android 中的 AlertDialog 超时?

java - 如何检测来自url的图像是纵向还是横向(Android)

Android 和 HTML5 CACHE.MANIFEST

未找到 Android 库 media_jni

android - 如何构建Android版本?

nginx - Gunicorn Nginx连接到上游时被拒绝

linux - 即使 crond_disable_trans 被禁用,cron 也可以强制执行 SELinux

java - 在我的手机上使用 android studio 时,创建帐户不适用于 firebase

android - 将应用程序作为系统应用程序包含在 ROM 中

MySQL SELinux 冲突 Fedora 19