File: test.cil.html

package info (click to toggle)
kf6-syntax-highlighting 6.13.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 47,568 kB
  • sloc: xml: 197,750; cpp: 12,850; python: 3,023; sh: 955; perl: 546; ruby: 488; pascal: 393; javascript: 161; php: 150; jsp: 132; lisp: 131; haskell: 124; ada: 119; ansic: 107; makefile: 96; f90: 94; ml: 85; cobol: 81; yacc: 71; csh: 62; erlang: 54; sql: 51; java: 47; objc: 37; awk: 31; asm: 30; tcl: 29; fortran: 18; cs: 10
file content (168 lines) | stat: -rw-r--r-- 36,204 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<!DOCTYPE html>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>test.cil</title>
<meta name="generator" content="KF5::SyntaxHighlighting - Definition (SELinux CIL Policy) - Theme (Breeze Light)"/>
</head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
<span style="color:#898887">;; SELinux CIL Policy Example</span>

<span style="color:#898887">;; </span><span style="color:#81ca2d;background-color:#f7e6e6;font-weight:bold">NOTE</span><span style="color:#898887">: This file is not functional, but</span>
<span style="color:#898887">;; is designed to test syntax highlighting.</span>

<span style="color:#898887">; Brackets colors</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#ff8800;font-weight:bold">(</span><span style="color:#888800;font-weight:bold">(</span><span style="color:#009400;font-weight:bold">(</span><span style="color:#3689e6;font-weight:bold">(</span><span style="color:#a56de2;font-weight:bold">(</span><span style="color:#c6262e;font-weight:bold">(</span><span style="color:#ff8800;font-weight:bold">(</span><span style="color:#888800;font-weight:bold">(</span><span style="color:#009400;font-weight:bold">(</span><span style="color:#3689e6;font-weight:bold">(</span><span style="color:#a56de2;font-weight:bold">(</span><span style="color:#c6262e;font-weight:bold">(</span> <span style="color:#c6262e;font-weight:bold">)</span><span style="color:#a56de2;font-weight:bold">)</span><span style="color:#3689e6;font-weight:bold">)</span><span style="color:#009400;font-weight:bold">)</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span><span style="color:#a56de2;font-weight:bold">)</span><span style="color:#3689e6;font-weight:bold">)</span><span style="color:#009400;font-weight:bold">)</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span> <span style="color:#bf0303;text-decoration:underline">))</span>

<span style="color:#898887">; Statements</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#006e28;font-weight:bold">policycap</span> <span style="color:#006e28">open_perms</span><span style="color:#c6262e;font-weight:bold">)</span>  <span style="color:#898887">; Policy config. statement</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#006e28;font-weight:bold">mls</span> <span style="color:#0095ff;font-weight:bold">true</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#006e28;font-weight:bold">handleunknown</span> <span style="color:#bf0303;font-weight:bold">allow</span><span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">sid</span> kernel<span style="color:#c6262e;font-weight:bold">)</span>  <span style="color:#898887">; Declaration type statement</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">classpermissionset</span> char_w <span style="color:#ff8800;font-weight:bold">(</span>char <span style="color:#888800;font-weight:bold">(</span><span style="color:#e31616">write</span> <span style="color:#e31616">setattr</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>  <span style="color:#898887">; Other statements</span>

<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">user</span> user<span style="color:#c6262e;font-weight:bold">)</span> <span style="color:#898887">; Declare identifier 'user' of user type</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">role</span> role<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">type</span> type<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#bf0303;font-weight:bold">allow</span> allow<span style="color:#c6262e;font-weight:bold">)</span> <span style="color:#c6262e;font-weight:bold">(</span><span style="color:#0095ff;font-weight:bold">true</span> <span style="color:#0095ff;font-weight:bold">true</span><span style="color:#c6262e;font-weight:bold">)</span> <span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">in</span> in<span style="color:#c6262e;font-weight:bold">)</span> <span style="color:#c6262e;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">xor</span> xor<span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#898887">; List of permissions</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">class</span> security <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#e31616">compute_av</span> <span style="color:#e31616">compute_create</span> <span style="color:#e31616">compute_member</span> <span style="color:#e31616">check_context</span> <span style="color:#e31616">load_policy</span> <span style="color:#e31616">compute_relabel</span> <span style="color:#e31616">compute_user</span> <span style="color:#e31616">setenforce</span> <span style="color:#e31616">setbool</span> <span style="color:#e31616">setsecparam</span> <span style="color:#e31616">setcheckreqprot</span> <span style="color:#e31616">read_policy</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#898887">; Highlighting permissions only if there is not a statement keyword</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">class</span> binder <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#e31616">impersonate</span> <span style="color:#e31616">call</span> <span style="color:#e31616">set_context_mgr</span> <span style="color:#e31616">transfer</span> <span style="color:#e31616">receive</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">class</span> binder <span style="color:#ff8800;font-weight:bold">(</span><span style="font-weight:bold">classcommon</span> impersonate call set_context_mgr transfer receive<span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#e31616">impersonate</span> <span style="color:#e31616">call</span> <span style="color:#e31616">set_context_mgr</span> <span style="color:#e31616">transfer</span> <span style="color:#e31616">receive</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">tunableif</span> impersonate call set_context_mgr transfer receive<span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#898887">; This is allowed by the CIL compiler</span>
<span style="color:#c6262e;font-weight:bold">(</span> <span style="color:#644a9b;font-weight:bold">typeattribute</span><span style="color:#898887">;comment</span>
	all_fs_type_except_usermodehelper_and_proc_security<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#898887">;comment</span>
	<span style="color:#644a9b;font-weight:bold">typeattribute</span> all_fs_type_except_usermodehelper_and_proc_security<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span>  <span style="color:#898887">;comment</span>
 <span style="color:#898887">;more comments</span>
	<span style="color:#644a9b;font-weight:bold">typeattribute</span> all_fs_type_except_usermodehelper_and_proc_security<span style="color:#c6262e;font-weight:bold">)</span>
	
<span style="color:#898887">; Paths</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#0095ff;font-weight:bold">true</span> <span style="color:#0095ff;font-weight:bold">true</span> /true <span style="color:#0095ff;font-weight:bold">true</span> /true/true/ <span style="color:#0095ff;font-weight:bold">true</span> <span style="color:#0095ff;font-weight:bold">true</span>/true <span style="color:#bf0303">"true"</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#898887">; Global namespace</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#0095ff;font-weight:bold">true</span> <span style="color:#0095ff;font-weight:bold">true</span> .true <span style="color:#0095ff;font-weight:bold">true</span> true.true <span style="color:#0095ff;font-weight:bold">true</span> .true.true true.true.true
	.<span style="color:#0095ff;font-weight:bold">true</span>. <span style="color:#0095ff;font-weight:bold">true</span>. <span style="color:#0095ff;font-weight:bold">true</span>.<span style="color:#0095ff;font-weight:bold">true</span>. <span style="color:#898887">; invalid</span>
<span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#898887">; Keywords in some rules</span>

<span style="color:#898887">; filecon</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">filecon</span> <span style="color:#bf0303">"/system/bin/run-as"</span> <span style="color:#0057ae">file</span> runas_exec_context<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">filecon</span> <span style="color:#bf0303">"/dev/socket/wpa_wlan</span><span style="color:#ff5500">[</span><span style="color:#ff5500">0-9</span><span style="color:#ff5500">]</span><span style="color:#bf0303">"</span> <span style="color:#0057ae">any</span> <span style="color:#ff5500">u</span>:<span style="color:#ff5500">object_r</span>:<span style="color:#b08000">wpa.socket</span>:<span style="color:#ff5500">s0</span>-<span style="color:#ff5500">s0</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">filecon</span> <span style="color:#bf0303">"/data/local/mine"</span> <span style="color:#0057ae">dir</span> <span style="color:#ff8800;font-weight:bold">()</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">classcommon</span> file any dir<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span>file any dir<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#898887">; portcon</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">portcon</span> <span style="color:#0057ae">sctp</span> <span style="color:#b08000">3333</span> <span style="color:#ff8800;font-weight:bold">(</span>unconfined.user <span style="font-style:italic">object_r</span> unconfined.object levelrange_1<span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">portcon</span> <span style="color:#0057ae">udp</span> <span style="color:#b08000">4444</span> <span style="color:#ff8800;font-weight:bold">(</span>unconfined.user <span style="font-style:italic">object_r</span> unconfined.object <span style="color:#888800;font-weight:bold">(</span><span style="color:#009400;font-weight:bold">(</span>s0<span style="color:#009400;font-weight:bold">)</span> level_2<span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">defaultrole</span> tcp udp<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span>tcp udp<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#898887">; fsuse</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">fsuse</span> <span style="color:#0057ae">xattr</span> <span style="font-style:italic">ext4</span> file.labeledfs_context<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">fsuse</span> <span style="color:#0057ae">task</span> <span style="font-style:italic">pipefs</span> file.pipefs_context<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">fsuse</span> <span style="color:#0057ae">trans</span> <span style="font-style:italic">tmpfs</span> file.tmpfs_context<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">typemember</span> xattr task trans<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span>xattr task trans<span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#bf0303;font-weight:bold">allow</span> unconfined.process <span style="color:#006e28">self</span> <span style="color:#ff8800;font-weight:bold">(</span>file <span style="color:#888800;font-weight:bold">(</span><span style="color:#e31616">read</span> <span style="color:#e31616">write</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#bf0303;font-weight:bold">allow</span> process httpd.object <span style="color:#ff8800;font-weight:bold">(</span>file <span style="color:#888800;font-weight:bold">(</span><span style="color:#e31616">read</span> <span style="color:#e31616">write</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">defaultrange</span> db_table <span style="font-style:italic">glblub</span><span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#898887">; Paths</span>
<span style="color:#bf0303">"/system/</span><span style="color:#ff5500">(</span><span style="color:#ff5500">foo</span><span style="color:#ca60ca">|</span><span style="color:#ff5500">bar</span><span style="color:#ff5500">)</span><span style="color:#bf0303">/</span><span style="color:#ff5500">[</span><span style="color:#ca60ca">^</span><span style="color:#ff5500">/</span><span style="color:#ff5500">]</span><span style="color:#3daee9">*</span><span style="color:#bf0303">/</span><span style="color:#ff5500">(</span><span style="color:#ff5500">hi</span><span style="color:#ff5500">){</span><span style="color:#ff5500">2</span><span style="color:#ca60ca">,</span><span style="color:#ff5500">6</span><span style="color:#ff5500">}(</span><span style="color:#3daee9">.*</span><span style="color:#ff5500">)</span><span style="color:#3daee9">?</span><span style="color:#bf0303">"</span>
<span style="color:#bf0303">"/pa</span><span style="color:#924c9d">\12</span><span style="color:#bf0303">th</span><span style="color:#3daee9">.*</span><span style="color:#bf0303">a</span><span style="color:#3daee9">+</span><span style="color:#bf0303">b</span><span style="color:#3daee9">?</span><span style="color:#bf0303">"</span>
/usr/hi<span style="color:#924c9d">\"</span>esc<span style="color:#924c9d">\032</span>esc<span style="color:#924c9d">\*</span>3es<span style="color:#ff5500">{</span><span style="color:#ff5500">2</span><span style="color:#ca60ca">,</span><span style="color:#ff5500">2</span><span style="color:#ff5500">}</span>ds
<span style="color:#bf0303">"/data/</span><span style="color:#ff5500">(</span><span style="color:#ff5500">ope</span><span style="color:#ff5500;text-decoration:underline">n</span><span style="color:#ff5500"> </span><span style="color:#bf0303">"</span>
<span style="color:#bf0303">"/data/</span><span style="color:#ff5500">[</span><span style="color:#ff5500">ope</span><span style="color:#ff5500;text-decoration:underline">n</span><span style="color:#ff5500"> </span><span style="color:#bf0303">"</span>


<span style="color:#898887">; Some rules</span>

<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">call</span> macro1<span style="color:#ff8800;font-weight:bold">(</span><span style="color:#bf0303">"__kmsg__"</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">macro</span> macro1 <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#888800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">string</span> ARG1<span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span>
    <span style="color:#ff8800;font-weight:bold">(</span><span style="font-weight:bold">typetransition</span> audit.process device.device chr_file ARG1 device.klog_device<span style="color:#ff8800;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#bf0303;font-weight:bold">allow</span> unconfined.process <span style="color:#006e28">self</span> <span style="color:#ff8800;font-weight:bold">(</span>file <span style="color:#888800;font-weight:bold">(</span><span style="color:#e31616">read</span> <span style="color:#e31616">write</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#bf0303;font-weight:bold">auditallow</span> release_app.process secmark_demo.browser_packet <span style="color:#ff8800;font-weight:bold">(</span>packet <span style="color:#888800;font-weight:bold">(</span><span style="color:#e31616">send</span> <span style="color:#e31616">recv</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#bf0303;font-weight:bold">allowx</span> type_1 type_2 <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">ioctl</span> tcp_socket <span style="color:#888800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">range</span> <span style="color:#b08000">0x2000</span> <span style="color:#b08000">0x20FF</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">permissionx</span> ioctl_nodebug <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">ioctl</span> udp_socket <span style="color:#888800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">not</span> <span style="color:#009400;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">range</span> <span style="color:#b08000">0x4000</span> <span style="color:#b08000">0x4010</span><span style="color:#009400;font-weight:bold">)</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#bf0303;font-weight:bold">allowx</span> type_3 type_4 ioctl_nodebug<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#bf0303;font-weight:bold">dontauditx</span> type_1 type_2 <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">ioctl</span> tcp_socket <span style="color:#888800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">range</span> <span style="color:#b08000">0x3000</span> <span style="color:#b08000">0x30FF</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">class</span> property_service <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#e31616;font-style:italic">set</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">block</span> av_rules
    <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">type</span> type_1<span style="color:#ff8800;font-weight:bold">)</span>
    <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">type</span> type_2<span style="color:#ff8800;font-weight:bold">)</span>
    <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">typeattribute</span> all_types<span style="color:#ff8800;font-weight:bold">)</span>
    <span style="color:#ff8800;font-weight:bold">(</span><span style="font-weight:bold">typeattributeset</span> all_types <span style="color:#888800;font-weight:bold">(</span><span style="color:#009400;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">all</span><span style="color:#009400;font-weight:bold">)</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span>

    <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#bf0303;font-weight:bold">neverallow</span> type_2 all_types <span style="color:#888800;font-weight:bold">(</span>property_service <span style="color:#009400;font-weight:bold">(</span><span style="color:#e31616;font-style:italic">set</span><span style="color:#009400;font-weight:bold">)</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">macro</span> binder_call <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#888800;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">type</span> ARG1<span style="color:#888800;font-weight:bold">)</span> <span style="color:#888800;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">type</span> ARG2<span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span>
    <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#bf0303;font-weight:bold">allow</span> ARG1 ARG2 <span style="color:#888800;font-weight:bold">(</span>binder <span style="color:#009400;font-weight:bold">(</span><span style="color:#e31616">transfer</span> <span style="color:#e31616">call</span><span style="color:#009400;font-weight:bold">)</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">ipaddr</span> netmask_1 <span style="color:#b08000">255.255.255.0</span><span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">class</span> dir<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">class</span> foo<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">class</span> bar<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">class</span> baz<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">classorder</span> <span style="color:#ff8800;font-weight:bold">(</span>dir foo<span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">classorder</span> <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">unordered</span> bar foo baz<span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">classpermission</span> zygote_2<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">classpermissionset</span> zygote_2 <span style="color:#ff8800;font-weight:bold">(</span>zygote
    <span style="color:#888800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">and</span>
        <span style="color:#009400;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">all</span><span style="color:#009400;font-weight:bold">)</span>
        <span style="color:#009400;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">not</span> <span style="color:#3689e6;font-weight:bold">(</span>specifyinvokewith specifyseinfo<span style="color:#3689e6;font-weight:bold">)</span><span style="color:#009400;font-weight:bold">)</span>
    <span style="color:#888800;font-weight:bold">)</span>
<span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">permissionx</span> ioctl_3 <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">ioctl</span> tcp_socket <span style="color:#888800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">and</span> <span style="color:#009400;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">range</span> <span style="color:#b08000">0x8000</span> <span style="color:#b08000">0x90FF</span><span style="color:#009400;font-weight:bold">)</span> <span style="color:#009400;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">not</span> <span style="color:#3689e6;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">range</span> <span style="color:#b08000">0x8100</span> <span style="color:#b08000">0x82FF</span><span style="color:#3689e6;font-weight:bold">)</span><span style="color:#009400;font-weight:bold">)</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">boolean</span> disableAudioCapture <span style="color:#0095ff;font-weight:bold">false</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">booleanif</span> <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">and</span> <span style="color:#888800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">not</span> disableAudio<span style="color:#888800;font-weight:bold">)</span> <span style="color:#888800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">not</span> disableAudioCapture<span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span>
    <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#0095ff;font-weight:bold">true</span>
        <span style="color:#888800;font-weight:bold">(</span><span style="color:#bf0303;font-weight:bold">allow</span> process mediaserver.audio_capture_device <span style="color:#009400;font-weight:bold">(</span>chr_file_set <span style="color:#3689e6;font-weight:bold">(</span>rw_file_perms<span style="color:#3689e6;font-weight:bold">)</span><span style="color:#009400;font-weight:bold">)</span><span style="color:#888800;font-weight:bold">)</span>
    <span style="color:#ff8800;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">tunable</span> range_trans_rule <span style="color:#0095ff;font-weight:bold">false</span><span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">block</span> init
    <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">class</span> process <span style="color:#888800;font-weight:bold">(</span>process<span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span>
    <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">type</span> process<span style="color:#ff8800;font-weight:bold">)</span>
    <span style="color:#ff8800;font-weight:bold">(</span><span style="font-weight:bold">tunableif</span> range_trans_rule
        <span style="color:#888800;font-weight:bold">(</span><span style="color:#0095ff;font-weight:bold">true</span>
            <span style="color:#009400;font-weight:bold">(</span><span style="font-weight:bold">rangetransition</span> process sshd.exec process low_high<span style="color:#009400;font-weight:bold">)</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">validatetrans</span> file <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">eq</span> <span style="font-style:italic">t1</span> unconfined.process<span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">block</span> ext_gateway
    <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">optional</span> move_file
        <span style="color:#888800;font-weight:bold">(</span><span style="font-weight:bold">typetransition</span> process msg_filter.move_file.in_queue file msg_filter.move_file.in_file<span style="color:#888800;font-weight:bold">)</span>
        <span style="color:#888800;font-weight:bold">(</span><span style="color:#bf0303;font-weight:bold">allow</span> process msg_filter.move_file.in_queue <span style="color:#009400;font-weight:bold">(</span>dir <span style="color:#3689e6;font-weight:bold">(</span><span style="color:#e31616">read</span> <span style="color:#e31616">getattr</span> <span style="color:#e31616">write</span> <span style="color:#e31616">search</span> <span style="color:#e31616">add_name</span><span style="color:#3689e6;font-weight:bold">)</span><span style="color:#009400;font-weight:bold">)</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">context</span> runas_exec_context <span style="color:#ff8800;font-weight:bold">(</span>u <span style="font-style:italic">object_r</span> exec low_low<span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">filecon</span> <span style="color:#bf0303">"/system/bin/run-as"</span> <span style="color:#0057ae">file</span> runas_exec_context<span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">in</span> file
    <span style="color:#ff8800;font-weight:bold">(</span><span style="font-weight:bold">genfscon</span> <span style="font-style:italic">rootfs</span> / rootfs_context<span style="color:#ff8800;font-weight:bold">)</span>
    <span style="color:#ff8800;font-weight:bold">(</span><span style="font-weight:bold">genfscon</span> <span style="font-style:italic">selinuxfs</span> / selinuxfs_context<span style="color:#ff8800;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">)</span>

<span style="color:#898887">; ioctl &amp; call: due to the way in which the highlighter treats the parenthesis blocks</span>
<span style="color:#898887">; (each level of different color), it is not possible to differentiate between statement and permission.</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#bf0303;font-weight:bold">allowx</span> x bin_t <span style="color:#ff8800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">ioctl</span> policy.file <span style="color:#888800;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">range</span> <span style="color:#b08000">0x1000</span> <span style="color:#b08000">0x11FF</span><span style="color:#888800;font-weight:bold">)</span><span style="color:#ff8800;font-weight:bold">)</span><span style="color:#c6262e;font-weight:bold">)</span> <span style="color:#898887">; ioctl kind</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#0057ae;font-weight:bold">ioctl</span> <span style="color:#e31616">read</span>
    <span style="color:#e31616;font-style:italic">find</span> <span style="color:#e31616">connectto</span><span style="color:#c6262e;font-weight:bold">)</span> <span style="color:#898887">; kind or permission?</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#e31616">ioctl</span> <span style="color:#e31616">read</span> <span style="color:#e31616;font-style:italic">find</span> <span style="color:#e31616">connectto</span><span style="color:#c6262e;font-weight:bold">)</span> <span style="color:#898887">; ioctl permission</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="color:#e31616">ioctl</span> <span style="color:#e31616">read</span>  <span style="color:#c6262e;font-weight:bold">)</span>
<span style="color:#c6262e;font-weight:bold">(</span><span style="font-weight:bold">call</span> <span style="color:#e31616">ioctl</span> <span style="color:#e31616">read</span> <span style="color:#e31616;font-style:italic">find</span> <span style="color:#e31616">connectto</span><span style="color:#c6262e;font-weight:bold">)</span> <span style="color:#898887">; statement or permission?</span>
<span style="color:#c6262e;font-weight:bold">(</span> <span style="color:#e31616">call</span>  <span style="color:#c6262e;font-weight:bold">)</span> <span style="color:#898887">; call permission</span>
</pre></body></html>