# Input selectors: 
#	isSystemServer (boolean)
#	user (string)
#	seinfo (string)
#	name (string)
#	sebool (string)
# isSystemServer=true can only be used once.
# An unspecified isSystemServer defaults to false.
# An unspecified string selector will match any value.
# A user string selector that ends in * will perform a prefix match.
# All specified input selectors in an entry must match (i.e. logical AND).
# Matching is case-insensitive.
# Precedence rules:
# 	  (1) isSystemServer=true before isSystemServer=false.
#	  (2) Specified user= string before unspecified user= string.
#	  (3) Fixed user= string before user= prefix (i.e. ending in *).
#	  (4) Longer user= prefix before shorter user= prefix. 
#	  (5) Specified seinfo= string before unspecified seinfo= string.
#	  (6) Specified name= string before unspecified name= string.
#	  (7) Specified sebool= string before unspecified sebool= string.
#
# Outputs:
#	domain (string)
#	type (string)
#	levelFromUid (boolean)
#	level (string)
# Only entries that specify domain= will be used for app process labeling.
# Only entries that specify type= will be used for app directory labeling.
# levelfromUid is only supported for app UIDs presently.
# level may be used to specify a fixed level for any UID. 
#
isSystemServer=true domain=system
user=system domain=system_app type=system_data_file
user=nfc domain=nfc type=nfc_data_file
user=radio domain=radio type=radio_data_file
user=app_* domain=untrusted_app type=app_data_file levelFromUid=true
user=app_* seinfo=platform domain=platform_app type=platform_app_data_file
user=app_* seinfo=shared domain=shared_app type=platform_app_data_file
user=app_* seinfo=media domain=media_app type=platform_app_data_file
user=app_* seinfo=release domain=release_app type=platform_app_data_file
user=app_* seinfo=release name=com.android.browser domain=browser_app type=platform_app_data_file
user=isolated domain=isolated_app levelFromUid=true
