Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
sepolicy
Manage
Activity
Members
Plan
Wiki
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
CodeLinaro
public-release-test
platform
system
sepolicy
Commits
a7397469
Commit
a7397469
authored
6 years ago
by
Treehugger Robot
Committed by
Gerrit Code Review
6 years ago
Browse files
Options
Downloads
Plain Diff
Merge "Use bpfloader to create bpf maps instead of netd"
parents
7813cf42
7b571040
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
private/bpfloader.te
+4
-9
4 additions, 9 deletions
private/bpfloader.te
private/netd.te
+3
-2
3 additions, 2 deletions
private/netd.te
private/system_server.te
+1
-1
1 addition, 1 deletion
private/system_server.te
public/netd.te
+2
-3
2 additions, 3 deletions
public/netd.te
with
10 additions
and
15 deletions
private/bpfloader.te
+
4
−
9
View file @
a7397469
...
@@ -3,11 +3,6 @@ type bpfloader, domain;
...
@@ -3,11 +3,6 @@ type bpfloader, domain;
type bpfloader_exec, system_file_type, exec_type, file_type;
type bpfloader_exec, system_file_type, exec_type, file_type;
typeattribute bpfloader coredomain;
typeattribute bpfloader coredomain;
# Process need CAP_NET_ADMIN to run bpf programs as cgroup filter
allow bpfloader self:global_capability_class_set net_admin;
r_dir_file(bpfloader, cgroup_bpf)
# These permission is required for pin bpf program for netd.
# These permission is required for pin bpf program for netd.
allow bpfloader fs_bpf:dir create_dir_perms;
allow bpfloader fs_bpf:dir create_dir_perms;
allow bpfloader fs_bpf:file create_file_perms;
allow bpfloader fs_bpf:file create_file_perms;
...
@@ -15,9 +10,9 @@ allow bpfloader devpts:chr_file { read write };
...
@@ -15,9 +10,9 @@ allow bpfloader devpts:chr_file { read write };
allow bpfloader netd:fd use;
allow bpfloader netd:fd use;
#
Use pinned bpf map files from netd.
#
Allow bpfloader to create bpf maps and programs. The map_read and map_write permission is needed
allow bpfloader netd:bpf { map_read map_write };
# for retrieving a pinned map when bpfloader do a run time restart.
allow bpfloader self:bpf { prog_load prog_run };
allow bpfloader self:bpf { prog_load prog_run
map_read map_write map_create
};
dontaudit bpfloader self:global_capability_class_set sys_admin;
dontaudit bpfloader self:global_capability_class_set sys_admin;
...
@@ -29,7 +24,7 @@ neverallow { domain -bpfloader -netd -netutils_wrapper} *:bpf prog_run;
...
@@ -29,7 +24,7 @@ neverallow { domain -bpfloader -netd -netutils_wrapper} *:bpf prog_run;
neverallow { domain -netd -bpfloader } bpfloader_exec:file { execute execute_no_trans };
neverallow { domain -netd -bpfloader } bpfloader_exec:file { execute execute_no_trans };
neverallow bpfloader domain:{ tcp_socket udp_socket rawip_socket } *;
neverallow bpfloader domain:{ tcp_socket udp_socket rawip_socket } *;
# only system_server, netd and bpfloader can read/write the bpf maps
# only system_server, netd and bpfloader can read/write the bpf maps
neverallow { domain -system_server -netd -bpfloader}
netd
:bpf { map_read map_write };
neverallow { domain -system_server -netd -bpfloader}
*
:bpf { map_read map_write };
# No domain should be allowed to ptrace bpfloader
# No domain should be allowed to ptrace bpfloader
neverallow { domain userdebug_or_eng(`-llkd') } bpfloader:process ptrace;
neverallow { domain userdebug_or_eng(`-llkd') } bpfloader:process ptrace;
This diff is collapsed.
Click to expand it.
private/netd.te
+
3
−
2
View file @
a7397469
...
@@ -11,5 +11,6 @@ domain_auto_trans(netd, clatd_exec, clatd)
...
@@ -11,5 +11,6 @@ domain_auto_trans(netd, clatd_exec, clatd)
# Allow netd to start bpfloader_exec in its own domain
# Allow netd to start bpfloader_exec in its own domain
domain_auto_trans(netd, bpfloader_exec, bpfloader)
domain_auto_trans(netd, bpfloader_exec, bpfloader)
# give netd permission to setup iptables rule with xt_bpf
# give netd permission to setup iptables rule with xt_bpf, attach program to cgroup, and read/write
allow netd bpfloader:bpf prog_run;
# the map created by bpfloader
allow netd bpfloader:bpf { prog_run map_read map_write };
This diff is collapsed.
Click to expand it.
private/system_server.te
+
1
−
1
View file @
a7397469
...
@@ -846,7 +846,7 @@ with_asan(`
...
@@ -846,7 +846,7 @@ with_asan(`
# the map after snapshot is recorded
# the map after snapshot is recorded
allow system_server fs_bpf:dir search;
allow system_server fs_bpf:dir search;
allow system_server fs_bpf:file read;
allow system_server fs_bpf:file read;
allow system_server
netd
:bpf map_read;
allow system_server
bpfloader
:bpf map_read;
# ART Profiles.
# ART Profiles.
# Allow system_server to open profile snapshots for read.
# Allow system_server to open profile snapshots for read.
...
...
This diff is collapsed.
Click to expand it.
public/netd.te
+
2
−
3
View file @
a7397469
...
@@ -55,6 +55,8 @@ allow netd sysfs_net:file w_file_perms;
...
@@ -55,6 +55,8 @@ allow netd sysfs_net:file w_file_perms;
# TODO: added to match above sysfs rule. Remove me?
# TODO: added to match above sysfs rule. Remove me?
allow netd sysfs_usb:file write;
allow netd sysfs_usb:file write;
r_dir_file(netd, cgroup_bpf)
allow netd fs_bpf:dir create_dir_perms;
allow netd fs_bpf:dir create_dir_perms;
allow netd fs_bpf:file create_file_perms;
allow netd fs_bpf:file create_file_perms;
...
@@ -105,9 +107,6 @@ allow netd netdomain:fd use;
...
@@ -105,9 +107,6 @@ allow netd netdomain:fd use;
# give netd permission to read and write netlink xfrm
# give netd permission to read and write netlink xfrm
allow netd self:netlink_xfrm_socket { create_socket_perms_no_ioctl nlmsg_write nlmsg_read };
allow netd self:netlink_xfrm_socket { create_socket_perms_no_ioctl nlmsg_write nlmsg_read };
# give netd permission to use eBPF functionalities
allow netd self:bpf { map_create map_read map_write };
# Allow netd to register as hal server.
# Allow netd to register as hal server.
add_hwservice(netd, system_net_netd_hwservice)
add_hwservice(netd, system_net_netd_hwservice)
hwbinder_use(netd)
hwbinder_use(netd)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment