Skip to content
Snippets Groups Projects
Commit 35aa81ad authored by Jerry Zhang's avatar Jerry Zhang Committed by Gerrit Code Review
Browse files

Merge "Move MediaProvider to its own domain, add new MtpServer permissions"

parents 02bf4aad f921dd9c
No related branches found
No related tags found
No related merge requests found
...@@ -51,4 +51,9 @@ ...@@ -51,4 +51,9 @@
<seinfo value="platform" /> <seinfo value="platform" />
</signer> </signer>
<!-- Media key in AOSP -->
<signer signature="@MEDIA" >
<seinfo value="media" />
</signer>
</policy> </policy>
app_domain(mediaprovider)
...@@ -93,6 +93,7 @@ user=radio seinfo=platform domain=radio type=radio_data_file ...@@ -93,6 +93,7 @@ user=radio seinfo=platform domain=radio type=radio_data_file
user=shared_relro domain=shared_relro user=shared_relro domain=shared_relro
user=shell seinfo=platform domain=shell type=shell_data_file user=shell seinfo=platform domain=shell type=shell_data_file
user=_isolated domain=isolated_app levelFrom=user user=_isolated domain=isolated_app levelFrom=user
user=_app seinfo=media domain=mediaprovider name=android.process.media type=app_data_file levelFrom=user
user=_app seinfo=platform domain=platform_app type=app_data_file levelFrom=user user=_app seinfo=platform domain=platform_app type=app_data_file levelFrom=user
user=_app isEphemeralApp=true domain=ephemeral_app type=ephemeral_data_file levelFrom=all user=_app isEphemeralApp=true domain=ephemeral_app type=ephemeral_data_file levelFrom=all
user=_app isPrivApp=true domain=priv_app type=app_data_file levelFrom=user user=_app isPrivApp=true domain=priv_app type=app_data_file levelFrom=user
......
...@@ -59,7 +59,7 @@ type debugfs, fs_type; ...@@ -59,7 +59,7 @@ type debugfs, fs_type;
type debugfs_trace_marker, fs_type, debugfs_type, mlstrustedobject; type debugfs_trace_marker, fs_type, debugfs_type, mlstrustedobject;
type debugfs_tracing, fs_type, debugfs_type; type debugfs_tracing, fs_type, debugfs_type;
type pstorefs, fs_type; type pstorefs, fs_type;
type functionfs, fs_type; type functionfs, fs_type, mlstrustedobject;
type oemfs, fs_type, contextmount_type; type oemfs, fs_type, contextmount_type;
type usbfs, fs_type; type usbfs, fs_type;
type binfmt_miscfs, fs_type; type binfmt_miscfs, fs_type;
......
type mediaprovider, domain;
# MtpServer uses /dev/mtp_usb
allow mediaprovider mtp_device:chr_file rw_file_perms;
# MtpServer uses /dev/usb-ffs/mtp
allow mediaprovider functionfs:dir search;
allow mediaprovider functionfs:file rw_file_perms;
# MtpServer sets sys.usb.ffs.mtp.ready
set_prop(mediaprovider, ffs_prop)
allow mediaprovider mediacodec_service:service_manager find;
allow mediaprovider mediadrmserver_service:service_manager find;
allow mediaprovider mediaextractor_service:service_manager find;
allow mediaprovider mediaserver_service:service_manager find;
allow mediaprovider app_api_service:service_manager find;
allow mediaprovider system_api_service:service_manager find;
# /sys and /proc access
r_dir_file(mediaprovider, sysfs_type)
r_dir_file(mediaprovider, proc)
r_dir_file(mediaprovider, rootfs)
# Access to /data/preloads
allow mediaprovider preloads_data_file:file r_file_perms;
###
### neverallow rules (see corresponding rules in priv_app)
###
# Receive or send uevent messages.
neverallow mediaprovider domain:netlink_kobject_uevent_socket *;
# Receive or send generic netlink messages
neverallow mediaprovider domain:netlink_socket *;
# Too much leaky information in debugfs. It's a security
# best practice to ensure these files aren't readable.
neverallow mediaprovider debugfs:file read;
# Only trusted components of Android should be registering
# services.
neverallow mediaprovider service_manager_type:service_manager add;
# Do not allow mediaprovider to be assigned mlstrustedsubject.
neverallow mediaprovider mlstrustedsubject:process fork;
# Do not allow mediaprovider to hard link to any files.
neverallow mediaprovider file_type:file link;
...@@ -16,9 +16,6 @@ allow priv_app self:process ptrace; ...@@ -16,9 +16,6 @@ allow priv_app self:process ptrace;
allow priv_app app_data_file:file rx_file_perms; allow priv_app app_data_file:file rx_file_perms;
auditallow priv_app app_data_file:file execute_no_trans; auditallow priv_app app_data_file:file execute_no_trans;
# android.process.media uses /dev/mtp_usb
allow priv_app mtp_device:chr_file rw_file_perms;
allow priv_app audioserver_service:service_manager find; allow priv_app audioserver_service:service_manager find;
allow priv_app cameraserver_service:service_manager find; allow priv_app cameraserver_service:service_manager find;
allow priv_app drmserver_service:service_manager find; allow priv_app drmserver_service:service_manager find;
...@@ -34,10 +31,6 @@ allow priv_app system_api_service:service_manager find; ...@@ -34,10 +31,6 @@ allow priv_app system_api_service:service_manager find;
allow priv_app persistent_data_block_service:service_manager find; allow priv_app persistent_data_block_service:service_manager find;
allow priv_app recovery_service:service_manager find; allow priv_app recovery_service:service_manager find;
# Traverse into /mnt/media_rw for bypassing FUSE daemon
# TODO: narrow this to just MediaProvider
allow priv_app mnt_media_rw_file:dir search;
# Write to /cache. # Write to /cache.
allow priv_app { cache_file cache_recovery_file }:dir create_dir_perms; allow priv_app { cache_file cache_recovery_file }:dir create_dir_perms;
allow priv_app { cache_file cache_recovery_file }:file create_file_perms; allow priv_app { cache_file cache_recovery_file }:file create_file_perms;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment