• Home
Name Date Size #Lines LOC

..--

tools/03-May-2024-3,2112,372

Android.mkD03-May-202410.3 KiB329226

NOTICED03-May-20241 KiB2219

READMED03-May-20244.2 KiB8166

access_vectorsD03-May-20249.3 KiB929815

adbd.teD03-May-20242.9 KiB9270

app.teD03-May-202413.8 KiB370299

attributesD03-May-20241.7 KiB7652

binderservicedomain.teD03-May-2024904 2215

blkid.teD03-May-2024694 2116

blkid_untrusted.teD03-May-20241.1 KiB3730

bluetooth.teD03-May-20242.8 KiB7559

bootanim.teD03-May-2024485 2013

clatd.teD03-May-20241.3 KiB3226

debuggerd.teD03-May-20241.7 KiB4337

device.teD03-May-20242.9 KiB9684

dex2oat.teD03-May-2024541 1714

dhcp.teD03-May-20241 KiB2923

dnsmasq.teD03-May-2024917 2519

domain.teD03-May-202417 KiB477396

drmserver.teD03-May-20241.8 KiB5642

dumpstate.teD03-May-20243.8 KiB11487

file.teD03-May-20248 KiB206197

file_contextsD03-May-202413.6 KiB319301

fingerprintd.teD03-May-2024739 2417

fs_useD03-May-2024865 2420

fsck.teD03-May-20241.2 KiB4435

fsck_untrusted.teD03-May-20241.1 KiB3730

gatekeeperd.teD03-May-2024879 2821

genfs_contextsD03-May-20242 KiB4038

global_macrosD03-May-20242.5 KiB4739

gpsd.teD03-May-2024855 2923

hci_attach.teD03-May-2024313 107

healthd.teD03-May-20241.3 KiB4435

hostapd.teD03-May-20241.1 KiB2723

init.teD03-May-202410.3 KiB287219

initial_sid_contextsD03-May-2024973 2827

initial_sidsD03-May-2024416 3632

inputflinger.teD03-May-2024422 1611

install_recovery.teD03-May-2024944 2719

installd.teD03-May-20244.3 KiB9678

ioctl_macrosD03-May-2024892 2623

isolated_app.teD03-May-20241.2 KiB4233

kernel.teD03-May-20243 KiB7963

keys.confD03-May-2024851 2610

keystore.teD03-May-20241 KiB3325

lmkd.teD03-May-20241,022 3827

logd.teD03-May-20241.2 KiB4533

mac_permissions.xmlD03-May-20241.3 KiB359

mdnsd.teD03-May-2024137 75

mediaserver.teD03-May-20243.7 KiB10884

mlsD03-May-20244.3 KiB11388

mls_macrosD03-May-20241.2 KiB5546

mtp.teD03-May-2024288 1310

net.teD03-May-2024914 2621

netd.teD03-May-20242.8 KiB8666

neverallow_macrosD03-May-2024369 76

nfc.teD03-May-2024965 3225

perfprofd.teD03-May-20241.9 KiB5740

platform_app.teD03-May-20241.7 KiB4438

policy_capabilitiesD03-May-2024122 64

port_contextsD03-May-202477 42

ppp.teD03-May-2024493 1714

procrank.teD03-May-2024650 1815

property.teD03-May-20241.1 KiB3231

property_contextsD03-May-20243.1 KiB7867

racoon.teD03-May-2024874 3324

radio.teD03-May-20241.1 KiB3628

recovery.teD03-May-20244.3 KiB11993

rild.teD03-May-20241.6 KiB4739

rolesD03-May-202429 32

runas.teD03-May-20241.1 KiB3628

sdcardd.teD03-May-20241.3 KiB4030

seapp_contextsD03-May-20242.2 KiB5150

security_classesD03-May-20242.7 KiB150116

service.teD03-May-20248.2 KiB105103

service_contextsD03-May-20249.5 KiB132131

servicemanager.teD03-May-2024661 1814

sgdisk.teD03-May-2024745 2317

shared_relro.teD03-May-2024569 1410

shell.teD03-May-20243 KiB9072

slideshow.teD03-May-2024549 1512

su.teD03-May-20241.8 KiB5447

surfaceflinger.teD03-May-20242.3 KiB7355

system_app.teD03-May-20242.3 KiB7765

system_server.teD03-May-202417.2 KiB464366

te_macrosD03-May-202411 KiB358324

tee.teD03-May-2024434 1513

toolbox.teD03-May-20241 KiB2721

tzdatacheck.teD03-May-2024253 96

ueventd.teD03-May-20241.8 KiB4236

uncrypt.teD03-May-2024975 3425

untrusted_app.teD03-May-20246.5 KiB161131

usersD03-May-202455 21

vdc.teD03-May-2024622 2417

vold.teD03-May-20246.4 KiB171134

watchdogd.teD03-May-2024185 54

wpa.teD03-May-20241.2 KiB4837

zygote.teD03-May-20243.3 KiB8072

README

1This directory contains the core Android SELinux policy configuration.
2It defines the domains and types for the AOSP services and apps common to
3all devices.  Device-specific policy should be placed under a
4separate device/<vendor>/<board>/sepolicy subdirectory and linked
5into the policy build as described below.
6
7Policy Generation:
8
9Additional, per device, policy files can be added into the
10policy build.
11
12They can be configured through the use of the BOARD_SEPOLICY_DIRS
13variable. This variable should be set in the BoardConfig.mk file in
14the device or vendor directories.
15
16BOARD_SEPOLICY_DIRS contains a list of directories to search
17for additional policy files. Order matters in this list.
18For example, if you have 2 instances of widget.te files in the
19BOARD_SEPOLICY_DIRS search path, then the first one found (at the
20first search dir containing the file) will be concatenated first.
21Reviewing out/target/product/<device>/etc/sepolicy_intermediates/policy.conf
22will help sort out ordering issues.
23
24Example BoardConfig.mk Usage:
25From the Tuna device BoardConfig.mk, device/samsung/tuna/BoardConfig.mk
26
27BOARD_SEPOLICY_DIRS += device/samsung/tuna/sepolicy
28
29SPECIFIC POLICY FILE INFORMATION
30
31mac_permissions.xml:
32  ABOUT:
33    The mac_permissions.xml file is used for controlling the mmac solutions
34    as well as mapping a public base16 signing key with an arbitrary seinfo
35    string. Details of the files contents can be found in a comment at the
36    top of that file. The seinfo string, previously mentioned, is the same string
37    that is referenced in seapp_contexts.
38
39    It is important to note the final processed version of this file
40    is stripped of comments and whitespace. This is to preserve space on the
41    system.img. If one wishes to view it in a more human friendly format,
42    the "tidy" or "xmllint" command will assist you.
43
44  TOOLING:
45    insertkeys.py
46      Is a helper script for mapping arbitrary tags in the signature stanzas of
47      mac_permissions.xml to public keys found in pem files. This script takes
48      a mac_permissions.xml file(s) and configuration file in order to operate.
49      Details of the configuration file (keys.conf) can be found in the subsection
50      keys.conf. This tool is also responsible for stripping the comments and
51      whitespace during processing.
52
53      keys.conf
54        The keys.conf file is used for controlling the mapping of "tags" found in
55        the mac_permissions.xml signature stanzas with actual public keys found in
56        pem files. The configuration file is processed via m4.
57
58        The script allows for mapping any string contained in TARGET_BUILD_VARIANT
59        with specific path to a pem file. Typically TARGET_BUILD_VARIANT is either
60        user, eng or userdebug. Additionally, one can specify "ALL" to map a path to
61        any string specified in TARGET_BUILD_VARIANT. All tags are matched verbatim
62        and all options are matched lowercase. The options are "tolowered" automatically
63        for the user, it is convention to specify tags and options in all uppercase
64        and tags start with @. The option arguments can also use environment variables
65        via the familiar $VARIABLE syntax. This is often useful for setting a location
66        to ones release keys.
67
68        Often times, one will need to integrate an application that was signed by a separate
69        organization and may need to extract the pem file for the insertkeys/keys.conf tools.
70        Extraction of the public key in the pem format is possible via openssl. First you need
71        to unzip the apk, once it is unzipped, cd into the META_INF directory and then execute
72        openssl pkcs7 -inform DER -in CERT.RSA -out CERT.pem -outform PEM  -print_certs
73        On some occasions CERT.RSA has a different name, and you will need to adjust for that.
74        After extracting the pem, you can rename it, and configure keys.conf and
75        mac_permissions.xml to pick up the change. You MUST open the generated pem file in a text
76        editor and strip out anything outside the opening and closing scissor lines. Failure to do
77        so WILL cause a compile time issue thrown by insertkeys.py
78
79        NOTE: The pem files are base64 encoded and PackageManagerService, mac_permissions.xml
80              and setool all use base16 encodings.
81