blob: 8b2b59c230c7e7dfcdb850a56de1ae4726c09534 [file] [log] [blame]
Nick Kralevich4be31902014-07-01 13:59:50 -07001# Input selectors:
Stephen Smalley2dd4e512012-01-04 12:33:27 -05002# isSystemServer (boolean)
Stephen Smalleyff4db912014-09-15 15:16:06 -04003# isOwner (boolean)
Stephen Smalley2dd4e512012-01-04 12:33:27 -05004# user (string)
5# seinfo (string)
6# name (string)
Stephen Smalley6139de52014-02-19 10:54:41 -05007# path (string)
Stephen Smalley2dd4e512012-01-04 12:33:27 -05008# isSystemServer=true can only be used once.
Stephen Smalleydd31ddf2012-07-27 17:08:21 -04009# An unspecified isSystemServer defaults to false.
Stephen Smalleyff4db912014-09-15 15:16:06 -040010# isOwner=true will only match for the owner/primary user.
11# isOwner=false will only match for secondary users.
12# If unspecified, the entry can match either case.
Stephen Smalley2dd4e512012-01-04 12:33:27 -050013# An unspecified string selector will match any value.
14# A user string selector that ends in * will perform a prefix match.
Stephen Smalley3ac1d262012-09-24 10:16:03 -040015# user=_app will match any regular app UID.
16# user=_isolated will match any isolated service UID.
Stephen Smalley2dd4e512012-01-04 12:33:27 -050017# All specified input selectors in an entry must match (i.e. logical AND).
18# Matching is case-insensitive.
Nick Kralevich4be31902014-07-01 13:59:50 -070019#
Stephen Smalley2dd4e512012-01-04 12:33:27 -050020# Precedence rules:
21# (1) isSystemServer=true before isSystemServer=false.
Stephen Smalleyff4db912014-09-15 15:16:06 -040022# (2) Specified isOwner= before unspecified isOwner= boolean.
23# (3) Specified user= string before unspecified user= string.
24# (4) Fixed user= string before user= prefix (i.e. ending in *).
25# (5) Longer user= prefix before shorter user= prefix.
26# (6) Specified seinfo= string before unspecified seinfo= string.
27# (7) Specified name= string before unspecified name= string.
28# (8) Specified path= string before unspecified path= string.
Stephen Smalley2dd4e512012-01-04 12:33:27 -050029#
30# Outputs:
31# domain (string)
32# type (string)
Stephen Smalley38084142012-11-28 10:46:18 -050033# levelFrom (string; one of none, all, app, or user)
Stephen Smalley2dd4e512012-01-04 12:33:27 -050034# level (string)
35# Only entries that specify domain= will be used for app process labeling.
36# Only entries that specify type= will be used for app directory labeling.
Stephen Smalley38084142012-11-28 10:46:18 -050037# levelFrom=user is only supported for _app or _isolated UIDs.
38# levelFrom=app or levelFrom=all is only supported for _app UIDs.
Nick Kralevich4be31902014-07-01 13:59:50 -070039# level may be used to specify a fixed level for any UID.
Stephen Smalley2dd4e512012-01-04 12:33:27 -050040#
Alex Klyubin1fdee112013-09-13 15:59:04 -070041isSystemServer=true domain=system_server
William Roberts92dfa312014-09-29 10:29:48 -070042user=system seinfo=platform domain=system_app type=system_app_data_file
43user=bluetooth seinfo=platform domain=bluetooth type=bluetooth_data_file
44user=nfc seinfo=platform domain=nfc type=nfc_data_file
45user=radio seinfo=platform domain=radio type=radio_data_file
Nick Kralevichb5ffbb72015-01-07 13:52:43 -080046user=shared_relro domain=shared_relro
William Roberts92dfa312014-09-29 10:29:48 -070047user=shell seinfo=platform domain=shell type=shell_data_file
Stephen Smalleya8337632014-09-11 14:07:28 -040048user=_isolated domain=isolated_app levelFrom=user
49user=_app seinfo=platform domain=platform_app type=app_data_file levelFrom=user
50user=_app domain=untrusted_app type=app_data_file levelFrom=user