From 91d398d802b4fbd33c2b88da9f56ecee8bdc363c Mon Sep 17 00:00:00 2001 From: Dan Cashman Date: Tue, 26 Sep 2017 12:58:29 -0700 Subject: [PATCH] Sync internal master and AOSP sepolicy. Bug: 37916906 Test: Builds 'n' boots. Change-Id: Ia1d86264446ebecc1ca79f32f11354921bc77668 Merged-In: I208ec6a864127a059fb389417a9c6b259d7474cb --- Android.mk | 179 +- prebuilts/api/26.0/nonplat_sepolicy.cil | 6109 +++++++++++++++++ prebuilts/api/26.0/private/access_vectors | 710 ++ prebuilts/api/26.0/private/adbd.te | 141 + prebuilts/api/26.0/private/app.te | 524 ++ prebuilts/api/26.0/private/app_neverallows.te | 215 + prebuilts/api/26.0/private/asan_extract.te | 8 + prebuilts/api/26.0/private/atrace.te | 24 + prebuilts/api/26.0/private/attributes | 9 + prebuilts/api/26.0/private/audioserver.te | 66 + .../private/binder_in_vendor_violators.te | 1 + .../api/26.0/private/binderservicedomain.te | 22 + prebuilts/api/26.0/private/blkid.te | 22 + prebuilts/api/26.0/private/blkid_untrusted.te | 37 + prebuilts/api/26.0/private/bluetooth.te | 77 + prebuilts/api/26.0/private/bluetoothdomain.te | 2 + prebuilts/api/26.0/private/bootanim.te | 3 + prebuilts/api/26.0/private/bootstat.te | 3 + prebuilts/api/26.0/private/bufferhubd.te | 3 + prebuilts/api/26.0/private/cameraserver.te | 3 + prebuilts/api/26.0/private/charger.te | 1 + prebuilts/api/26.0/private/clatd.te | 2 + prebuilts/api/26.0/private/cppreopts.te | 6 + prebuilts/api/26.0/private/crash_dump.te | 1 + prebuilts/api/26.0/private/dex2oat.te | 2 + prebuilts/api/26.0/private/dexoptanalyzer.te | 26 + prebuilts/api/26.0/private/dhcp.te | 5 + prebuilts/api/26.0/private/dnsmasq.te | 1 + prebuilts/api/26.0/private/domain.te | 18 + .../api/26.0/private/domain_deprecated.te | 311 + prebuilts/api/26.0/private/drmserver.te | 7 + prebuilts/api/26.0/private/dumpstate.te | 26 + prebuilts/api/26.0/private/ephemeral_app.te | 68 + prebuilts/api/26.0/private/file.te | 7 + prebuilts/api/26.0/private/file_contexts | 539 ++ prebuilts/api/26.0/private/file_contexts_asan | 5 + prebuilts/api/26.0/private/fingerprintd.te | 4 + prebuilts/api/26.0/private/fs_use | 23 + prebuilts/api/26.0/private/fsck.te | 4 + prebuilts/api/26.0/private/fsck_untrusted.te | 2 + prebuilts/api/26.0/private/gatekeeperd.te | 3 + prebuilts/api/26.0/private/genfs_contexts | 61 + .../api/26.0/private/hal_allocator_default.te | 5 + prebuilts/api/26.0/private/halclientdomain.te | 13 + prebuilts/api/26.0/private/halserverdomain.te | 12 + prebuilts/api/26.0/private/healthd.te | 6 + prebuilts/api/26.0/private/hwservice_contexts | 52 + .../api/26.0/private/hwservicemanager.te | 6 + prebuilts/api/26.0/private/idmap.te | 1 + prebuilts/api/26.0/private/incident.te | 25 + prebuilts/api/26.0/private/incidentd.te | 110 + prebuilts/api/26.0/private/init.te | 25 + .../api/26.0/private/initial_sid_contexts | 27 + prebuilts/api/26.0/private/initial_sids | 35 + prebuilts/api/26.0/private/inputflinger.te | 3 + .../api/26.0/private/install_recovery.te | 3 + prebuilts/api/26.0/private/installd.te | 19 + prebuilts/api/26.0/private/isolated_app.te | 93 + prebuilts/api/26.0/private/kernel.te | 3 + prebuilts/api/26.0/private/keys.conf | 25 + prebuilts/api/26.0/private/keystore.te | 11 + prebuilts/api/26.0/private/lmkd.te | 3 + prebuilts/api/26.0/private/logd.te | 39 + prebuilts/api/26.0/private/logpersist.te | 24 + .../api/26.0/private/mac_permissions.xml | 59 + prebuilts/api/26.0/private/mdnsd.te | 12 + prebuilts/api/26.0/private/mediadrmserver.te | 8 + prebuilts/api/26.0/private/mediaextractor.te | 3 + prebuilts/api/26.0/private/mediametrics.te | 3 + prebuilts/api/26.0/private/mediaserver.te | 10 + prebuilts/api/26.0/private/mls | 100 + prebuilts/api/26.0/private/mls_decl | 10 + prebuilts/api/26.0/private/mls_macros | 54 + prebuilts/api/26.0/private/modprobe.te | 1 + prebuilts/api/26.0/private/mtp.te | 4 + prebuilts/api/26.0/private/net.te | 24 + prebuilts/api/26.0/private/netd.te | 10 + .../api/26.0/private/netutils_wrapper.te | 28 + prebuilts/api/26.0/private/nfc.te | 31 + .../api/26.0/private/otapreopt_chroot.te | 4 + prebuilts/api/26.0/private/otapreopt_slot.te | 5 + prebuilts/api/26.0/private/performanced.te | 3 + prebuilts/api/26.0/private/perfprofd.te | 5 + prebuilts/api/26.0/private/platform_app.te | 70 + .../api/26.0/private/policy_capabilities | 13 + prebuilts/api/26.0/private/port_contexts | 3 + prebuilts/api/26.0/private/postinstall.te | 3 + .../api/26.0/private/postinstall_dexopt.te | 5 + prebuilts/api/26.0/private/ppp.te | 4 + .../api/26.0/private/preopt2cachename.te | 1 + prebuilts/api/26.0/private/priv_app.te | 168 + prebuilts/api/26.0/private/profman.te | 1 + prebuilts/api/26.0/private/property_contexts | 116 + prebuilts/api/26.0/private/racoon.te | 3 + prebuilts/api/26.0/private/radio.te | 6 + prebuilts/api/26.0/private/recovery.te | 2 + .../api/26.0/private/recovery_persist.te | 7 + .../api/26.0/private/recovery_refresh.te | 7 + prebuilts/api/26.0/private/roles_decl | 1 + prebuilts/api/26.0/private/runas.te | 5 + prebuilts/api/26.0/private/sdcardd.te | 4 + prebuilts/api/26.0/private/seapp_contexts | 110 + prebuilts/api/26.0/private/security_classes | 144 + prebuilts/api/26.0/private/service_contexts | 172 + prebuilts/api/26.0/private/servicemanager.te | 5 + prebuilts/api/26.0/private/sgdisk.te | 1 + prebuilts/api/26.0/private/shared_relro.te | 6 + prebuilts/api/26.0/private/shell.te | 22 + prebuilts/api/26.0/private/slideshow.te | 1 + prebuilts/api/26.0/private/storaged.te | 51 + prebuilts/api/26.0/private/su.te | 20 + prebuilts/api/26.0/private/surfaceflinger.te | 110 + prebuilts/api/26.0/private/system_app.te | 92 + prebuilts/api/26.0/private/system_server.te | 740 ++ prebuilts/api/26.0/private/technical_debt.cil | 28 + prebuilts/api/26.0/private/tombstoned.te | 3 + prebuilts/api/26.0/private/toolbox.te | 3 + prebuilts/api/26.0/private/tzdatacheck.te | 3 + prebuilts/api/26.0/private/ueventd.te | 4 + prebuilts/api/26.0/private/uncrypt.te | 4 + prebuilts/api/26.0/private/untrusted_app.te | 29 + .../api/26.0/private/untrusted_app_25.te | 46 + .../api/26.0/private/untrusted_app_all.te | 106 + .../api/26.0/private/untrusted_v2_app.te | 43 + prebuilts/api/26.0/private/update_engine.te | 4 + .../api/26.0/private/update_engine_common.te | 5 + prebuilts/api/26.0/private/update_verifier.te | 3 + prebuilts/api/26.0/private/users | 1 + prebuilts/api/26.0/private/vdc.te | 3 + .../api/26.0/private/virtual_touchpad.te | 3 + prebuilts/api/26.0/private/vold.te | 20 + prebuilts/api/26.0/private/vr_hwc.te | 6 + prebuilts/api/26.0/private/watchdogd.te | 1 + prebuilts/api/26.0/private/webview_zygote.te | 116 + prebuilts/api/26.0/private/wificond.te | 4 + prebuilts/api/26.0/private/zygote.te | 134 + prebuilts/api/26.0/public/adbd.te | 3 + prebuilts/api/26.0/public/asan_extract.te | 36 + prebuilts/api/26.0/public/attributes | 291 + prebuilts/api/26.0/public/audioserver.te | 2 + prebuilts/api/26.0/public/blkid.te | 2 + prebuilts/api/26.0/public/blkid_untrusted.te | 2 + prebuilts/api/26.0/public/bluetooth.te | 2 + prebuilts/api/26.0/public/bootanim.te | 40 + prebuilts/api/26.0/public/bootstat.te | 15 + prebuilts/api/26.0/public/bufferhubd.te | 20 + prebuilts/api/26.0/public/cameraserver.te | 49 + prebuilts/api/26.0/public/charger.te | 41 + prebuilts/api/26.0/public/clatd.te | 33 + prebuilts/api/26.0/public/cppreopts.te | 22 + prebuilts/api/26.0/public/crash_dump.te | 60 + prebuilts/api/26.0/public/device.te | 103 + prebuilts/api/26.0/public/dex2oat.te | 66 + prebuilts/api/26.0/public/dhcp.te | 30 + .../api/26.0/public/display_service_server.te | 1 + prebuilts/api/26.0/public/dnsmasq.te | 25 + prebuilts/api/26.0/public/domain.te | 1028 +++ prebuilts/api/26.0/public/drmserver.te | 58 + prebuilts/api/26.0/public/dumpstate.te | 215 + prebuilts/api/26.0/public/ephemeral_app.te | 14 + prebuilts/api/26.0/public/file.te | 337 + prebuilts/api/26.0/public/fingerprintd.te | 28 + prebuilts/api/26.0/public/fsck.te | 55 + prebuilts/api/26.0/public/fsck_untrusted.te | 49 + prebuilts/api/26.0/public/gatekeeperd.te | 42 + prebuilts/api/26.0/public/global_macros | 48 + prebuilts/api/26.0/public/hal_allocator.te | 6 + prebuilts/api/26.0/public/hal_audio.te | 38 + prebuilts/api/26.0/public/hal_bluetooth.te | 30 + prebuilts/api/26.0/public/hal_bootctl.te | 6 + prebuilts/api/26.0/public/hal_camera.te | 36 + prebuilts/api/26.0/public/hal_configstore.te | 7 + prebuilts/api/26.0/public/hal_contexthub.te | 6 + prebuilts/api/26.0/public/hal_drm.te | 60 + prebuilts/api/26.0/public/hal_dumpstate.te | 11 + prebuilts/api/26.0/public/hal_fingerprint.te | 18 + prebuilts/api/26.0/public/hal_gatekeeper.te | 8 + prebuilts/api/26.0/public/hal_gnss.te | 6 + .../api/26.0/public/hal_graphics_allocator.te | 13 + .../api/26.0/public/hal_graphics_composer.te | 26 + prebuilts/api/26.0/public/hal_health.te | 11 + prebuilts/api/26.0/public/hal_ir.te | 6 + prebuilts/api/26.0/public/hal_keymaster.te | 8 + prebuilts/api/26.0/public/hal_light.te | 10 + prebuilts/api/26.0/public/hal_memtrack.te | 5 + prebuilts/api/26.0/public/hal_neverallows.te | 53 + prebuilts/api/26.0/public/hal_nfc.te | 16 + prebuilts/api/26.0/public/hal_oemlock.te | 5 + prebuilts/api/26.0/public/hal_power.te | 6 + prebuilts/api/26.0/public/hal_sensors.te | 15 + prebuilts/api/26.0/public/hal_telephony.te | 7 + .../api/26.0/public/hal_tetheroffload.te | 3 + prebuilts/api/26.0/public/hal_thermal.te | 6 + prebuilts/api/26.0/public/hal_tv_cec.te | 6 + prebuilts/api/26.0/public/hal_tv_input.te | 6 + prebuilts/api/26.0/public/hal_usb.te | 18 + prebuilts/api/26.0/public/hal_vibrator.te | 8 + prebuilts/api/26.0/public/hal_vr.te | 6 + prebuilts/api/26.0/public/hal_weaver.te | 5 + prebuilts/api/26.0/public/hal_wifi.te | 23 + prebuilts/api/26.0/public/hal_wifi_offload.te | 6 + .../api/26.0/public/hal_wifi_supplicant.te | 41 + prebuilts/api/26.0/public/healthd.te | 63 + prebuilts/api/26.0/public/hwservice.te | 45 + prebuilts/api/26.0/public/hwservicemanager.te | 22 + prebuilts/api/26.0/public/idmap.te | 17 + prebuilts/api/26.0/public/incident.te | 8 + prebuilts/api/26.0/public/incidentd.te | 3 + prebuilts/api/26.0/public/init.te | 429 ++ prebuilts/api/26.0/public/inputflinger.te | 16 + prebuilts/api/26.0/public/install_recovery.te | 27 + prebuilts/api/26.0/public/installd.te | 159 + prebuilts/api/26.0/public/ioctl_defines | 2694 ++++++++ prebuilts/api/26.0/public/ioctl_macros | 68 + prebuilts/api/26.0/public/isolated_app.te | 9 + prebuilts/api/26.0/public/kernel.te | 103 + prebuilts/api/26.0/public/keystore.te | 34 + prebuilts/api/26.0/public/lmkd.te | 38 + prebuilts/api/26.0/public/logd.te | 73 + prebuilts/api/26.0/public/logpersist.te | 26 + prebuilts/api/26.0/public/mdnsd.te | 2 + prebuilts/api/26.0/public/mediacodec.te | 67 + prebuilts/api/26.0/public/mediadrmserver.te | 33 + prebuilts/api/26.0/public/mediaextractor.te | 50 + prebuilts/api/26.0/public/mediametrics.te | 38 + prebuilts/api/26.0/public/mediaserver.te | 150 + prebuilts/api/26.0/public/modprobe.te | 11 + prebuilts/api/26.0/public/mtp.te | 11 + prebuilts/api/26.0/public/net.te | 4 + prebuilts/api/26.0/public/netd.te | 110 + prebuilts/api/26.0/public/netutils_wrapper.te | 4 + prebuilts/api/26.0/public/neverallow_macros | 15 + prebuilts/api/26.0/public/nfc.te | 2 + prebuilts/api/26.0/public/otapreopt_chroot.te | 20 + prebuilts/api/26.0/public/otapreopt_slot.te | 27 + prebuilts/api/26.0/public/performanced.te | 18 + prebuilts/api/26.0/public/perfprofd.te | 59 + prebuilts/api/26.0/public/platform_app.te | 5 + prebuilts/api/26.0/public/postinstall.te | 36 + .../api/26.0/public/postinstall_dexopt.te | 57 + prebuilts/api/26.0/public/ppp.te | 23 + prebuilts/api/26.0/public/preopt2cachename.te | 13 + prebuilts/api/26.0/public/priv_app.te | 5 + prebuilts/api/26.0/public/profman.te | 26 + prebuilts/api/26.0/public/property.te | 89 + prebuilts/api/26.0/public/racoon.te | 33 + prebuilts/api/26.0/public/radio.te | 39 + prebuilts/api/26.0/public/recovery.te | 143 + prebuilts/api/26.0/public/recovery_persist.te | 27 + prebuilts/api/26.0/public/recovery_refresh.te | 24 + prebuilts/api/26.0/public/rild.te | 49 + prebuilts/api/26.0/public/roles | 1 + prebuilts/api/26.0/public/runas.te | 37 + prebuilts/api/26.0/public/sdcardd.te | 43 + prebuilts/api/26.0/public/service.te | 147 + prebuilts/api/26.0/public/servicemanager.te | 25 + prebuilts/api/26.0/public/sgdisk.te | 22 + prebuilts/api/26.0/public/shared_relro.te | 9 + prebuilts/api/26.0/public/shell.te | 184 + prebuilts/api/26.0/public/slideshow.te | 14 + prebuilts/api/26.0/public/su.te | 53 + prebuilts/api/26.0/public/surfaceflinger.te | 2 + prebuilts/api/26.0/public/system_app.te | 7 + prebuilts/api/26.0/public/system_server.te | 5 + prebuilts/api/26.0/public/te_macros | 572 ++ prebuilts/api/26.0/public/tee.te | 7 + prebuilts/api/26.0/public/tombstoned.te | 17 + prebuilts/api/26.0/public/toolbox.te | 24 + prebuilts/api/26.0/public/tzdatacheck.te | 6 + prebuilts/api/26.0/public/ueventd.te | 56 + prebuilts/api/26.0/public/uncrypt.te | 38 + prebuilts/api/26.0/public/untrusted_app.te | 19 + prebuilts/api/26.0/public/untrusted_app_25.te | 20 + prebuilts/api/26.0/public/untrusted_v2_app.te | 5 + prebuilts/api/26.0/public/update_engine.te | 41 + .../api/26.0/public/update_engine_common.te | 42 + prebuilts/api/26.0/public/update_verifier.te | 19 + prebuilts/api/26.0/public/vdc.te | 27 + prebuilts/api/26.0/public/vendor_shell.te | 4 + prebuilts/api/26.0/public/vendor_toolbox.te | 16 + prebuilts/api/26.0/public/virtual_touchpad.te | 16 + prebuilts/api/26.0/public/vndservice.te | 1 + .../api/26.0/public/vndservicemanager.te | 2 + prebuilts/api/26.0/public/vold.te | 187 + prebuilts/api/26.0/public/vr_hwc.te | 31 + prebuilts/api/26.0/public/watchdogd.te | 4 + prebuilts/api/26.0/public/webview_zygote.te | 5 + prebuilts/api/26.0/public/wificond.te | 35 + prebuilts/api/26.0/public/zygote.te | 3 + private/app.te | 12 +- private/app_neverallows.te | 31 +- private/atrace.te | 7 +- private/compat/26.0/26.0.cil | 705 ++ private/compat/26.0/26.0.ignore.cil | 43 + private/e2fs.te | 14 - private/ephemeral_app.te | 1 - private/file.te | 3 + private/file_contexts | 11 +- private/file_contexts_asan | 4 + private/genfs_contexts | 11 +- private/hwservice_contexts | 6 + private/isolated_app.te | 15 + private/platform_app.te | 1 - private/priv_app.te | 7 +- private/property_contexts | 7 +- private/service_contexts | 6 +- private/shell.te | 1 - private/storaged.te | 7 + private/surfaceflinger.te | 1 - private/system_app.te | 10 +- private/system_server.te | 31 +- private/technical_debt.cil | 5 + private/thermalserviced.te | 4 + private/untrusted_app_all.te | 4 +- private/untrusted_v2_app.te | 1 - private/webview_zygote.te | 4 + public/asan_extract.te | 4 +- public/attributes | 169 +- public/bootanim.te | 1 + public/device.te | 2 +- public/domain.te | 24 +- public/dumpstate.te | 14 +- public/e2fs.te | 17 + public/file.te | 39 +- public/fsck.te | 5 +- public/fsck_untrusted.te | 2 +- public/gatekeeperd.te | 3 - public/hal_audio.te | 1 + public/hal_cas.te | 37 + public/hal_configstore.te | 57 + public/hal_lowpan.te | 21 + public/hal_neuralnetworks.te | 8 + public/hal_neverallows.te | 1 - public/hal_tetheroffload.te | 5 + public/hal_wifi_offload.te | 3 + public/hwservice.te | 7 + public/init.te | 8 +- public/kernel.te | 1 + public/mediacodec.te | 2 + public/mediadrmserver.te | 2 - public/mediaextractor.te | 4 +- public/mediametrics.te | 3 + public/netd.te | 5 + public/performanced.te | 5 + public/property.te | 2 +- public/recovery.te | 15 +- public/rild.te | 5 - public/sdcardd.te | 2 +- public/service.te | 5 +- public/servicemanager.te | 5 +- public/shell.te | 11 +- public/su.te | 43 + public/te_macros | 22 +- public/thermalserviced.te | 11 + public/ueventd.te | 16 +- public/vdc.te | 9 + public/vold.te | 33 +- tests/Android.bp | 21 + tests/include/sepol_wrap.h | 4 +- tests/mini_parser.py | 100 + tests/policy.py | 272 +- tests/searchpolicy.py | 73 + tests/sepol_wrap.cpp | 154 +- tests/sepolicy_tests.py | 85 + tests/treble_sepolicy_tests.py | 175 +- tools/sepolicy-analyze/Android.mk | 2 +- vendor/file.te | 2 +- vendor/file_contexts | 4 +- vendor/hal_cas_default.te | 6 + vendor/hal_lowpan_default.te | 5 + vendor/hal_tetheroffload_default.te | 5 + 371 files changed, 24804 insertions(+), 369 deletions(-) create mode 100644 prebuilts/api/26.0/nonplat_sepolicy.cil create mode 100644 prebuilts/api/26.0/private/access_vectors create mode 100644 prebuilts/api/26.0/private/adbd.te create mode 100644 prebuilts/api/26.0/private/app.te create mode 100644 prebuilts/api/26.0/private/app_neverallows.te create mode 100644 prebuilts/api/26.0/private/asan_extract.te create mode 100644 prebuilts/api/26.0/private/atrace.te create mode 100644 prebuilts/api/26.0/private/attributes create mode 100644 prebuilts/api/26.0/private/audioserver.te create mode 100644 prebuilts/api/26.0/private/binder_in_vendor_violators.te create mode 100644 prebuilts/api/26.0/private/binderservicedomain.te create mode 100644 prebuilts/api/26.0/private/blkid.te create mode 100644 prebuilts/api/26.0/private/blkid_untrusted.te create mode 100644 prebuilts/api/26.0/private/bluetooth.te create mode 100644 prebuilts/api/26.0/private/bluetoothdomain.te create mode 100644 prebuilts/api/26.0/private/bootanim.te create mode 100644 prebuilts/api/26.0/private/bootstat.te create mode 100644 prebuilts/api/26.0/private/bufferhubd.te create mode 100644 prebuilts/api/26.0/private/cameraserver.te create mode 100644 prebuilts/api/26.0/private/charger.te create mode 100644 prebuilts/api/26.0/private/clatd.te create mode 100644 prebuilts/api/26.0/private/cppreopts.te create mode 100644 prebuilts/api/26.0/private/crash_dump.te create mode 100644 prebuilts/api/26.0/private/dex2oat.te create mode 100644 prebuilts/api/26.0/private/dexoptanalyzer.te create mode 100644 prebuilts/api/26.0/private/dhcp.te create mode 100644 prebuilts/api/26.0/private/dnsmasq.te create mode 100644 prebuilts/api/26.0/private/domain.te create mode 100644 prebuilts/api/26.0/private/domain_deprecated.te create mode 100644 prebuilts/api/26.0/private/drmserver.te create mode 100644 prebuilts/api/26.0/private/dumpstate.te create mode 100644 prebuilts/api/26.0/private/ephemeral_app.te create mode 100644 prebuilts/api/26.0/private/file.te create mode 100644 prebuilts/api/26.0/private/file_contexts create mode 100644 prebuilts/api/26.0/private/file_contexts_asan create mode 100644 prebuilts/api/26.0/private/fingerprintd.te create mode 100644 prebuilts/api/26.0/private/fs_use create mode 100644 prebuilts/api/26.0/private/fsck.te create mode 100644 prebuilts/api/26.0/private/fsck_untrusted.te create mode 100644 prebuilts/api/26.0/private/gatekeeperd.te create mode 100644 prebuilts/api/26.0/private/genfs_contexts create mode 100644 prebuilts/api/26.0/private/hal_allocator_default.te create mode 100644 prebuilts/api/26.0/private/halclientdomain.te create mode 100644 prebuilts/api/26.0/private/halserverdomain.te create mode 100644 prebuilts/api/26.0/private/healthd.te create mode 100644 prebuilts/api/26.0/private/hwservice_contexts create mode 100644 prebuilts/api/26.0/private/hwservicemanager.te create mode 100644 prebuilts/api/26.0/private/idmap.te create mode 100644 prebuilts/api/26.0/private/incident.te create mode 100644 prebuilts/api/26.0/private/incidentd.te create mode 100644 prebuilts/api/26.0/private/init.te create mode 100644 prebuilts/api/26.0/private/initial_sid_contexts create mode 100644 prebuilts/api/26.0/private/initial_sids create mode 100644 prebuilts/api/26.0/private/inputflinger.te create mode 100644 prebuilts/api/26.0/private/install_recovery.te create mode 100644 prebuilts/api/26.0/private/installd.te create mode 100644 prebuilts/api/26.0/private/isolated_app.te create mode 100644 prebuilts/api/26.0/private/kernel.te create mode 100644 prebuilts/api/26.0/private/keys.conf create mode 100644 prebuilts/api/26.0/private/keystore.te create mode 100644 prebuilts/api/26.0/private/lmkd.te create mode 100644 prebuilts/api/26.0/private/logd.te create mode 100644 prebuilts/api/26.0/private/logpersist.te create mode 100644 prebuilts/api/26.0/private/mac_permissions.xml create mode 100644 prebuilts/api/26.0/private/mdnsd.te create mode 100644 prebuilts/api/26.0/private/mediadrmserver.te create mode 100644 prebuilts/api/26.0/private/mediaextractor.te create mode 100644 prebuilts/api/26.0/private/mediametrics.te create mode 100644 prebuilts/api/26.0/private/mediaserver.te create mode 100644 prebuilts/api/26.0/private/mls create mode 100644 prebuilts/api/26.0/private/mls_decl create mode 100644 prebuilts/api/26.0/private/mls_macros create mode 100644 prebuilts/api/26.0/private/modprobe.te create mode 100644 prebuilts/api/26.0/private/mtp.te create mode 100644 prebuilts/api/26.0/private/net.te create mode 100644 prebuilts/api/26.0/private/netd.te create mode 100644 prebuilts/api/26.0/private/netutils_wrapper.te create mode 100644 prebuilts/api/26.0/private/nfc.te create mode 100644 prebuilts/api/26.0/private/otapreopt_chroot.te create mode 100644 prebuilts/api/26.0/private/otapreopt_slot.te create mode 100644 prebuilts/api/26.0/private/performanced.te create mode 100644 prebuilts/api/26.0/private/perfprofd.te create mode 100644 prebuilts/api/26.0/private/platform_app.te create mode 100644 prebuilts/api/26.0/private/policy_capabilities create mode 100644 prebuilts/api/26.0/private/port_contexts create mode 100644 prebuilts/api/26.0/private/postinstall.te create mode 100644 prebuilts/api/26.0/private/postinstall_dexopt.te create mode 100644 prebuilts/api/26.0/private/ppp.te create mode 100644 prebuilts/api/26.0/private/preopt2cachename.te create mode 100644 prebuilts/api/26.0/private/priv_app.te create mode 100644 prebuilts/api/26.0/private/profman.te create mode 100644 prebuilts/api/26.0/private/property_contexts create mode 100644 prebuilts/api/26.0/private/racoon.te create mode 100644 prebuilts/api/26.0/private/radio.te create mode 100644 prebuilts/api/26.0/private/recovery.te create mode 100644 prebuilts/api/26.0/private/recovery_persist.te create mode 100644 prebuilts/api/26.0/private/recovery_refresh.te create mode 100644 prebuilts/api/26.0/private/roles_decl create mode 100644 prebuilts/api/26.0/private/runas.te create mode 100644 prebuilts/api/26.0/private/sdcardd.te create mode 100644 prebuilts/api/26.0/private/seapp_contexts create mode 100644 prebuilts/api/26.0/private/security_classes create mode 100644 prebuilts/api/26.0/private/service_contexts create mode 100644 prebuilts/api/26.0/private/servicemanager.te create mode 100644 prebuilts/api/26.0/private/sgdisk.te create mode 100644 prebuilts/api/26.0/private/shared_relro.te create mode 100644 prebuilts/api/26.0/private/shell.te create mode 100644 prebuilts/api/26.0/private/slideshow.te create mode 100644 prebuilts/api/26.0/private/storaged.te create mode 100644 prebuilts/api/26.0/private/su.te create mode 100644 prebuilts/api/26.0/private/surfaceflinger.te create mode 100644 prebuilts/api/26.0/private/system_app.te create mode 100644 prebuilts/api/26.0/private/system_server.te create mode 100644 prebuilts/api/26.0/private/technical_debt.cil create mode 100644 prebuilts/api/26.0/private/tombstoned.te create mode 100644 prebuilts/api/26.0/private/toolbox.te create mode 100644 prebuilts/api/26.0/private/tzdatacheck.te create mode 100644 prebuilts/api/26.0/private/ueventd.te create mode 100644 prebuilts/api/26.0/private/uncrypt.te create mode 100644 prebuilts/api/26.0/private/untrusted_app.te create mode 100644 prebuilts/api/26.0/private/untrusted_app_25.te create mode 100644 prebuilts/api/26.0/private/untrusted_app_all.te create mode 100644 prebuilts/api/26.0/private/untrusted_v2_app.te create mode 100644 prebuilts/api/26.0/private/update_engine.te create mode 100644 prebuilts/api/26.0/private/update_engine_common.te create mode 100644 prebuilts/api/26.0/private/update_verifier.te create mode 100644 prebuilts/api/26.0/private/users create mode 100644 prebuilts/api/26.0/private/vdc.te create mode 100644 prebuilts/api/26.0/private/virtual_touchpad.te create mode 100644 prebuilts/api/26.0/private/vold.te create mode 100644 prebuilts/api/26.0/private/vr_hwc.te create mode 100644 prebuilts/api/26.0/private/watchdogd.te create mode 100644 prebuilts/api/26.0/private/webview_zygote.te create mode 100644 prebuilts/api/26.0/private/wificond.te create mode 100644 prebuilts/api/26.0/private/zygote.te create mode 100644 prebuilts/api/26.0/public/adbd.te create mode 100644 prebuilts/api/26.0/public/asan_extract.te create mode 100644 prebuilts/api/26.0/public/attributes create mode 100644 prebuilts/api/26.0/public/audioserver.te create mode 100644 prebuilts/api/26.0/public/blkid.te create mode 100644 prebuilts/api/26.0/public/blkid_untrusted.te create mode 100644 prebuilts/api/26.0/public/bluetooth.te create mode 100644 prebuilts/api/26.0/public/bootanim.te create mode 100644 prebuilts/api/26.0/public/bootstat.te create mode 100644 prebuilts/api/26.0/public/bufferhubd.te create mode 100644 prebuilts/api/26.0/public/cameraserver.te create mode 100644 prebuilts/api/26.0/public/charger.te create mode 100644 prebuilts/api/26.0/public/clatd.te create mode 100644 prebuilts/api/26.0/public/cppreopts.te create mode 100644 prebuilts/api/26.0/public/crash_dump.te create mode 100644 prebuilts/api/26.0/public/device.te create mode 100644 prebuilts/api/26.0/public/dex2oat.te create mode 100644 prebuilts/api/26.0/public/dhcp.te create mode 100644 prebuilts/api/26.0/public/display_service_server.te create mode 100644 prebuilts/api/26.0/public/dnsmasq.te create mode 100644 prebuilts/api/26.0/public/domain.te create mode 100644 prebuilts/api/26.0/public/drmserver.te create mode 100644 prebuilts/api/26.0/public/dumpstate.te create mode 100644 prebuilts/api/26.0/public/ephemeral_app.te create mode 100644 prebuilts/api/26.0/public/file.te create mode 100644 prebuilts/api/26.0/public/fingerprintd.te create mode 100644 prebuilts/api/26.0/public/fsck.te create mode 100644 prebuilts/api/26.0/public/fsck_untrusted.te create mode 100644 prebuilts/api/26.0/public/gatekeeperd.te create mode 100644 prebuilts/api/26.0/public/global_macros create mode 100644 prebuilts/api/26.0/public/hal_allocator.te create mode 100644 prebuilts/api/26.0/public/hal_audio.te create mode 100644 prebuilts/api/26.0/public/hal_bluetooth.te create mode 100644 prebuilts/api/26.0/public/hal_bootctl.te create mode 100644 prebuilts/api/26.0/public/hal_camera.te create mode 100644 prebuilts/api/26.0/public/hal_configstore.te create mode 100644 prebuilts/api/26.0/public/hal_contexthub.te create mode 100644 prebuilts/api/26.0/public/hal_drm.te create mode 100644 prebuilts/api/26.0/public/hal_dumpstate.te create mode 100644 prebuilts/api/26.0/public/hal_fingerprint.te create mode 100644 prebuilts/api/26.0/public/hal_gatekeeper.te create mode 100644 prebuilts/api/26.0/public/hal_gnss.te create mode 100644 prebuilts/api/26.0/public/hal_graphics_allocator.te create mode 100644 prebuilts/api/26.0/public/hal_graphics_composer.te create mode 100644 prebuilts/api/26.0/public/hal_health.te create mode 100644 prebuilts/api/26.0/public/hal_ir.te create mode 100644 prebuilts/api/26.0/public/hal_keymaster.te create mode 100644 prebuilts/api/26.0/public/hal_light.te create mode 100644 prebuilts/api/26.0/public/hal_memtrack.te create mode 100644 prebuilts/api/26.0/public/hal_neverallows.te create mode 100644 prebuilts/api/26.0/public/hal_nfc.te create mode 100644 prebuilts/api/26.0/public/hal_oemlock.te create mode 100644 prebuilts/api/26.0/public/hal_power.te create mode 100644 prebuilts/api/26.0/public/hal_sensors.te create mode 100644 prebuilts/api/26.0/public/hal_telephony.te create mode 100644 prebuilts/api/26.0/public/hal_tetheroffload.te create mode 100644 prebuilts/api/26.0/public/hal_thermal.te create mode 100644 prebuilts/api/26.0/public/hal_tv_cec.te create mode 100644 prebuilts/api/26.0/public/hal_tv_input.te create mode 100644 prebuilts/api/26.0/public/hal_usb.te create mode 100644 prebuilts/api/26.0/public/hal_vibrator.te create mode 100644 prebuilts/api/26.0/public/hal_vr.te create mode 100644 prebuilts/api/26.0/public/hal_weaver.te create mode 100644 prebuilts/api/26.0/public/hal_wifi.te create mode 100644 prebuilts/api/26.0/public/hal_wifi_offload.te create mode 100644 prebuilts/api/26.0/public/hal_wifi_supplicant.te create mode 100644 prebuilts/api/26.0/public/healthd.te create mode 100644 prebuilts/api/26.0/public/hwservice.te create mode 100644 prebuilts/api/26.0/public/hwservicemanager.te create mode 100644 prebuilts/api/26.0/public/idmap.te create mode 100644 prebuilts/api/26.0/public/incident.te create mode 100644 prebuilts/api/26.0/public/incidentd.te create mode 100644 prebuilts/api/26.0/public/init.te create mode 100644 prebuilts/api/26.0/public/inputflinger.te create mode 100644 prebuilts/api/26.0/public/install_recovery.te create mode 100644 prebuilts/api/26.0/public/installd.te create mode 100644 prebuilts/api/26.0/public/ioctl_defines create mode 100644 prebuilts/api/26.0/public/ioctl_macros create mode 100644 prebuilts/api/26.0/public/isolated_app.te create mode 100644 prebuilts/api/26.0/public/kernel.te create mode 100644 prebuilts/api/26.0/public/keystore.te create mode 100644 prebuilts/api/26.0/public/lmkd.te create mode 100644 prebuilts/api/26.0/public/logd.te create mode 100644 prebuilts/api/26.0/public/logpersist.te create mode 100644 prebuilts/api/26.0/public/mdnsd.te create mode 100644 prebuilts/api/26.0/public/mediacodec.te create mode 100644 prebuilts/api/26.0/public/mediadrmserver.te create mode 100644 prebuilts/api/26.0/public/mediaextractor.te create mode 100644 prebuilts/api/26.0/public/mediametrics.te create mode 100644 prebuilts/api/26.0/public/mediaserver.te create mode 100644 prebuilts/api/26.0/public/modprobe.te create mode 100644 prebuilts/api/26.0/public/mtp.te create mode 100644 prebuilts/api/26.0/public/net.te create mode 100644 prebuilts/api/26.0/public/netd.te create mode 100644 prebuilts/api/26.0/public/netutils_wrapper.te create mode 100644 prebuilts/api/26.0/public/neverallow_macros create mode 100644 prebuilts/api/26.0/public/nfc.te create mode 100644 prebuilts/api/26.0/public/otapreopt_chroot.te create mode 100644 prebuilts/api/26.0/public/otapreopt_slot.te create mode 100644 prebuilts/api/26.0/public/performanced.te create mode 100644 prebuilts/api/26.0/public/perfprofd.te create mode 100644 prebuilts/api/26.0/public/platform_app.te create mode 100644 prebuilts/api/26.0/public/postinstall.te create mode 100644 prebuilts/api/26.0/public/postinstall_dexopt.te create mode 100644 prebuilts/api/26.0/public/ppp.te create mode 100644 prebuilts/api/26.0/public/preopt2cachename.te create mode 100644 prebuilts/api/26.0/public/priv_app.te create mode 100644 prebuilts/api/26.0/public/profman.te create mode 100644 prebuilts/api/26.0/public/property.te create mode 100644 prebuilts/api/26.0/public/racoon.te create mode 100644 prebuilts/api/26.0/public/radio.te create mode 100644 prebuilts/api/26.0/public/recovery.te create mode 100644 prebuilts/api/26.0/public/recovery_persist.te create mode 100644 prebuilts/api/26.0/public/recovery_refresh.te create mode 100644 prebuilts/api/26.0/public/rild.te create mode 100644 prebuilts/api/26.0/public/roles create mode 100644 prebuilts/api/26.0/public/runas.te create mode 100644 prebuilts/api/26.0/public/sdcardd.te create mode 100644 prebuilts/api/26.0/public/service.te create mode 100644 prebuilts/api/26.0/public/servicemanager.te create mode 100644 prebuilts/api/26.0/public/sgdisk.te create mode 100644 prebuilts/api/26.0/public/shared_relro.te create mode 100644 prebuilts/api/26.0/public/shell.te create mode 100644 prebuilts/api/26.0/public/slideshow.te create mode 100644 prebuilts/api/26.0/public/su.te create mode 100644 prebuilts/api/26.0/public/surfaceflinger.te create mode 100644 prebuilts/api/26.0/public/system_app.te create mode 100644 prebuilts/api/26.0/public/system_server.te create mode 100644 prebuilts/api/26.0/public/te_macros create mode 100644 prebuilts/api/26.0/public/tee.te create mode 100644 prebuilts/api/26.0/public/tombstoned.te create mode 100644 prebuilts/api/26.0/public/toolbox.te create mode 100644 prebuilts/api/26.0/public/tzdatacheck.te create mode 100644 prebuilts/api/26.0/public/ueventd.te create mode 100644 prebuilts/api/26.0/public/uncrypt.te create mode 100644 prebuilts/api/26.0/public/untrusted_app.te create mode 100644 prebuilts/api/26.0/public/untrusted_app_25.te create mode 100644 prebuilts/api/26.0/public/untrusted_v2_app.te create mode 100644 prebuilts/api/26.0/public/update_engine.te create mode 100644 prebuilts/api/26.0/public/update_engine_common.te create mode 100644 prebuilts/api/26.0/public/update_verifier.te create mode 100644 prebuilts/api/26.0/public/vdc.te create mode 100644 prebuilts/api/26.0/public/vendor_shell.te create mode 100644 prebuilts/api/26.0/public/vendor_toolbox.te create mode 100644 prebuilts/api/26.0/public/virtual_touchpad.te create mode 100644 prebuilts/api/26.0/public/vndservice.te create mode 100644 prebuilts/api/26.0/public/vndservicemanager.te create mode 100644 prebuilts/api/26.0/public/vold.te create mode 100644 prebuilts/api/26.0/public/vr_hwc.te create mode 100644 prebuilts/api/26.0/public/watchdogd.te create mode 100644 prebuilts/api/26.0/public/webview_zygote.te create mode 100644 prebuilts/api/26.0/public/wificond.te create mode 100644 prebuilts/api/26.0/public/zygote.te create mode 100644 private/compat/26.0/26.0.cil create mode 100644 private/compat/26.0/26.0.ignore.cil delete mode 100644 private/e2fs.te create mode 100644 private/thermalserviced.te create mode 100644 public/hal_cas.te create mode 100644 public/hal_lowpan.te create mode 100644 public/hal_neuralnetworks.te create mode 100644 public/thermalserviced.te create mode 100644 tests/mini_parser.py create mode 100644 tests/searchpolicy.py create mode 100644 tests/sepolicy_tests.py create mode 100644 vendor/hal_cas_default.te create mode 100644 vendor/hal_lowpan_default.te create mode 100644 vendor/hal_tetheroffload_default.te diff --git a/Android.mk b/Android.mk index b6c4ffee6..344542d39 100644 --- a/Android.mk +++ b/Android.mk @@ -195,7 +195,12 @@ LOCAL_REQUIRED_MODULES += \ plat_and_mapping_sepolicy.cil.sha256 \ secilc \ plat_sepolicy_vers.txt \ - treble_sepolicy_tests + +ifneq ($(with_asan),true) +LOCAL_REQUIRED_MODULES += \ + treble_sepolicy_tests \ + +endif # Include precompiled policy, unless told otherwise ifneq ($(PRODUCT_PRECOMPILED_SEPOLICY),false) @@ -218,12 +223,25 @@ LOCAL_REQUIRED_MODULES += \ plat_seapp_contexts \ plat_service_contexts \ plat_hwservice_contexts \ + searchpolicy \ vndservice_contexts \ ifneq ($(PRODUCT_FULL_TREBLE),true) LOCAL_REQUIRED_MODULES += nonplat_service_contexts endif +ifneq ($(TARGET_BUILD_VARIANT), user) +LOCAL_REQUIRED_MODULES += \ + selinux_denial_metadata \ + +endif + +ifneq ($(with_asan),true) +LOCAL_REQUIRED_MODULES += \ + sepolicy_tests \ + +endif + include $(BUILD_PHONY_PACKAGE) ################################## @@ -660,6 +678,24 @@ file_contexts.device.sorted.tmp := file_contexts.device.tmp := file_contexts.local.tmp := +################################## +ifneq ($(TARGET_BUILD_VARIANT), user) +include $(CLEAR_VARS) + +LOCAL_MODULE := selinux_denial_metadata +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/selinux + +include $(BUILD_SYSTEM)/base_rules.mk + +bug_files := $(call build_policy, bug_map, $(LOCAL_PATH) $(PLAT_PRIVATE_POLICY) $(PLAT_VENDOR_POLICY) $(BOARD_SEPOLICY_DIRS) $(PLAT_PUBLIC_POLICY)) + +$(LOCAL_BUILT_MODULE) : $(bug_files) + @mkdir -p $(dir $@) + cat $^ > $@ + +bug_files := +endif ################################## include $(CLEAR_VARS) @@ -797,7 +833,7 @@ $(LOCAL_BUILT_MODULE): PRIVATE_SC_FILES := $(nonplat_sc_files) $(LOCAL_BUILT_MODULE): PRIVATE_SC_NEVERALLOW_FILES := $(plat_sc_neverallow_files) $(LOCAL_BUILT_MODULE): $(built_sepolicy) $(nonplat_sc_files) $(HOST_OUT_EXECUTABLES)/checkseapp $(plat_sc_neverallow_files) @mkdir -p $(dir $@) - $(hide) grep -ie '^neverallow' $(PRIVATE_SC_NEVERALLOW_FILES) > $@.tmp + $(hide) grep -ihe '^neverallow' $(PRIVATE_SC_NEVERALLOW_FILES) > $@.tmp $(hide) $(HOST_OUT_EXECUTABLES)/checkseapp -p $(PRIVATE_SEPOLICY) -o $@ $(PRIVATE_SC_FILES) $@.tmp built_nonplat_sc := $(LOCAL_BUILT_MODULE) @@ -813,7 +849,7 @@ include $(BUILD_SYSTEM)/base_rules.mk $(LOCAL_BUILT_MODULE): $(plat_sc_neverallow_files) @mkdir -p $(dir $@) - - $(hide) grep -ie '^neverallow' $< > $@ + - $(hide) grep -ihe '^neverallow' $< > $@ plat_sc_neverallow_files := @@ -1135,26 +1171,157 @@ $(all_nonplat_mac_perms_files) nonplat_mac_perms_keys.tmp := all_nonplat_mac_perms_files := +################################# +include $(CLEAR_VARS) +LOCAL_MODULE := sepolicy_tests +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_TAGS := tests + +include $(BUILD_SYSTEM)/base_rules.mk + +sepolicy_tests := $(intermediates)/sepolicy_tests +$(sepolicy_tests): PRIVATE_PLAT_FC := $(built_plat_fc) +$(sepolicy_tests): PRIVATE_NONPLAT_FC := $(built_nonplat_fc) +$(sepolicy_tests): PRIVATE_SEPOLICY := $(built_sepolicy) +$(sepolicy_tests): $(HOST_OUT_EXECUTABLES)/sepolicy_tests \ +$(built_plat_fc) $(built_nonplat_fc) $(built_sepolicy) + @mkdir -p $(dir $@) + $(hide) python $(HOST_OUT_EXECUTABLES)/sepolicy_tests -l $(HOST_OUT)/lib64 -f $(PRIVATE_PLAT_FC) -f $(PRIVATE_NONPLAT_FC) -p $(PRIVATE_SEPOLICY) + $(hide) touch $@ + ################################## ifeq ($(PRODUCT_FULL_TREBLE),true) include $(CLEAR_VARS) # For Treble builds run tests verifying that processes are properly labeled and -# permissions granted do not violate the treble model. +# permissions granted do not violate the treble model. Also ensure that treble +# compatibility guarantees are upheld between SELinux version bumps. LOCAL_MODULE := treble_sepolicy_tests LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_TAGS := tests include $(BUILD_SYSTEM)/base_rules.mk +# 26.0_plat - the platform policy shipped as part of the 26.0 release. This is +# built to enable us to determine the diff between the current policy and the +# 26.0 policy, which will be used in tests to make sure that compatibility has +# been maintained by our mapping files. +26.0_PLAT_PUBLIC_POLICY := $(LOCAL_PATH)/prebuilts/api/26.0/public +26.0_PLAT_PRIVATE_POLICY := $(LOCAL_PATH)/prebuilts/api/26.0/private +26.0_plat_policy.conf := $(intermediates)/26.0_plat_policy.conf +$(26.0_plat_policy.conf): PRIVATE_MLS_SENS := $(MLS_SENS) +$(26.0_plat_policy.conf): PRIVATE_MLS_CATS := $(MLS_CATS) +$(26.0_plat_policy.conf): PRIVATE_TGT_ARCH := $(my_target_arch) +$(26.0_plat_policy.conf): PRIVATE_TGT_WITH_ASAN := $(with_asan) +$(26.0_plat_policy.conf): PRIVATE_ADDITIONAL_M4DEFS := $(LOCAL_ADDITIONAL_M4DEFS) +$(26.0_plat_policy.conf): PRIVATE_FULL_TREBLE := true +$(26.0_plat_policy.conf): $(call build_policy, $(sepolicy_build_files), \ +$(26.0_PLAT_PUBLIC_POLICY) $(26.0_PLAT_PRIVATE_POLICY)) + $(transform-policy-to-conf) + $(hide) sed '/dontaudit/d' $@ > $@.dontaudit + +built_26.0_plat_sepolicy := $(intermediates)/built_26.0_plat_sepolicy +$(built_26.0_plat_sepolicy): PRIVATE_ADDITIONAL_CIL_FILES := \ + $(call build_policy, technical_debt.cil , $(26.0_PLAT_PRIVATE_POLICY)) +$(built_26.0_plat_sepolicy): $(26.0_plat_policy.conf) $(HOST_OUT_EXECUTABLES)/checkpolicy \ + $(HOST_OUT_EXECUTABLES)/secilc \ + $(call build_policy, technical_debt.cil, $(26.0_PLAT_PRIVATE_POLICY)) + @mkdir -p $(dir $@) + $(hide) $(CHECKPOLICY_ASAN_OPTIONS) $(HOST_OUT_EXECUTABLES)/checkpolicy -M -C -c \ + $(POLICYVERS) -o $@ $< + $(hide) cat $(PRIVATE_ADDITIONAL_CIL_FILES) >> $@ + $(hide) $(HOST_OUT_EXECUTABLES)/secilc -M true -G -c $(POLICYVERS) $@ -o $@ -f /dev/null + +26.0_plat_policy.conf := + + +# 26.0_compat - the current plat_sepolicy.cil built with the compatibility file +# targeting the 26.0 SELinux release. This ensures that our policy will build +# when used on a device that has non-platform policy targetting the 26.0 release. +26.0_compat := $(intermediates)/26.0_compat +26.0_mapping.cil := $(LOCAL_PATH)/private/compat/26.0/26.0.cil +26.0_mapping.ignore.cil := $(LOCAL_PATH)/private/compat/26.0/26.0.ignore.cil +26.0_nonplat := $(LOCAL_PATH)/prebuilts/api/26.0/nonplat_sepolicy.cil +$(26.0_compat): PRIVATE_CIL_FILES := \ +$(built_plat_cil) $(26.0_mapping.cil) $(26.0_nonplat) +$(26.0_compat): $(HOST_OUT_EXECUTABLES)/secilc \ +$(built_plat_cil) $(26.0_mapping.cil) $(26.0_nonplat) + $(hide) $(HOST_OUT_EXECUTABLES)/secilc -M true -G -N -c $(POLICYVERS) \ + $(PRIVATE_CIL_FILES) -o $@ -f /dev/null + +# 26.0_mapping.combined.cil - a combination of the mapping file used when +# combining the current platform policy with nonplatform policy based on the +# 26.0 policy release and also a special ignored file that exists purely for +# these tests. +26.0_mapping.combined.cil := $(intermediates)/26.0_mapping.combined.cil +$(26.0_mapping.combined.cil): $(26.0_mapping.cil) $(26.0_mapping.ignore.cil) + mkdir -p $(dir $@) + cat $^ > $@ + +# plat_sepolicy - the current platform policy only, built into a policy binary. +# TODO - this currently excludes partner extensions, but support should be added +# to enable partners to add their own compatibility mapping +BASE_PLAT_PUBLIC_POLICY := $(filter-out $(BOARD_PLAT_PUBLIC_SEPOLICY_DIR), $(PLAT_PUBLIC_POLICY)) +BASE_PLAT_PRIVATE_POLICY := $(filter-out $(BOARD_PLAT_PRIVATE_SEPOLICY_DIR), $(PLAT_PRIVATE_POLICY)) +base_plat_policy.conf := $(intermediates)/base_plat_policy.conf +$(base_plat_policy.conf): PRIVATE_MLS_SENS := $(MLS_SENS) +$(base_plat_policy.conf): PRIVATE_MLS_CATS := $(MLS_CATS) +$(base_plat_policy.conf): PRIVATE_TGT_ARCH := $(my_target_arch) +$(base_plat_policy.conf): PRIVATE_TGT_WITH_ASAN := $(with_asan) +$(base_plat_policy.conf): PRIVATE_ADDITIONAL_M4DEFS := $(LOCAL_ADDITIONAL_M4DEFS) +$(base_plat_policy.conf): PRIVATE_FULL_TREBLE := true +$(base_plat_policy.conf): $(call build_policy, $(sepolicy_build_files), \ +$(BASE_PLAT_PUBLIC_POLICY) $(BASE_PLAT_PRIVATE_POLICY)) + $(transform-policy-to-conf) + $(hide) sed '/dontaudit/d' $@ > $@.dontaudit + +built_plat_sepolicy := $(intermediates)/built_plat_sepolicy +$(built_plat_sepolicy): PRIVATE_ADDITIONAL_CIL_FILES := \ + $(call build_policy, $(sepolicy_build_cil_workaround_files), $(BASE_PLAT_PRIVATE_POLICY)) +$(built_plat_sepolicy): $(base_plat_policy.conf) $(HOST_OUT_EXECUTABLES)/checkpolicy \ +$(HOST_OUT_EXECUTABLES)/secilc \ +$(call build_policy, $(sepolicy_build_cil_workaround_files), $(BASE_PLAT_PRIVATE_POLICY)) + @mkdir -p $(dir $@) + $(hide) $(CHECKPOLICY_ASAN_OPTIONS) $(HOST_OUT_EXECUTABLES)/checkpolicy -M -C -c \ + $(POLICYVERS) -o $@ $< + $(hide) cat $(PRIVATE_ADDITIONAL_CIL_FILES) >> $@ + $(hide) $(HOST_OUT_EXECUTABLES)/secilc -M true -G -c $(POLICYVERS) $@ -o $@ -f /dev/null + treble_sepolicy_tests := $(intermediates)/treble_sepolicy_tests $(treble_sepolicy_tests): PRIVATE_PLAT_FC := $(built_plat_fc) $(treble_sepolicy_tests): PRIVATE_NONPLAT_FC := $(built_nonplat_fc) $(treble_sepolicy_tests): PRIVATE_SEPOLICY := $(built_sepolicy) +$(treble_sepolicy_tests): PRIVATE_SEPOLICY_OLD := $(built_26.0_plat_sepolicy) +$(treble_sepolicy_tests): PRIVATE_COMBINED_MAPPING := $(26.0_mapping.combined.cil) +$(treble_sepolicy_tests): PRIVATE_PLAT_SEPOLICY := $(built_plat_sepolicy) +ifeq ($(PRODUCT_FULL_TREBLE_OVERRIDE),true) +$(treble_sepolicy_tests): PRIVATE_FAKE_TREBLE := --fake-treble +else +$(treble_sepolicy_tests): PRIVATE_FAKE_TREBLE := +endif $(treble_sepolicy_tests): $(HOST_OUT_EXECUTABLES)/treble_sepolicy_tests \ -$(built_plat_fc) $(built_nonplat_fc) $(built_sepolicy) +$(built_plat_fc) $(built_nonplat_fc) $(built_sepolicy) $(built_plat_sepolicy) \ +$(built_26.0_plat_sepolicy) $(26.0_compat) $(26.0_mapping.combined.cil) @mkdir -p $(dir $@) - $(hide) python $(HOST_OUT_EXECUTABLES)/treble_sepolicy_tests -l $(HOST_OUT)/lib64 -f $(PRIVATE_PLAT_FC) -f $(PRIVATE_NONPLAT_FC) -p $(PRIVATE_SEPOLICY) + $(hide) python $(HOST_OUT_EXECUTABLES)/treble_sepolicy_tests -l \ + $(HOST_OUT)/lib64 -f $(PRIVATE_PLAT_FC) -f $(PRIVATE_NONPLAT_FC) \ + -b $(PRIVATE_PLAT_SEPOLICY) -m $(PRIVATE_COMBINED_MAPPING) \ + -o $(PRIVATE_SEPOLICY_OLD) -p $(PRIVATE_SEPOLICY) \ + $(PRIVATE_FAKE_TREBLE) $(hide) touch $@ + +26.0_PLAT_PUBLIC_POLICY := +26.0_PLAT_PRIVATE_POLICY := +26.0_compat := +26.0_mapping.cil := +26.0_mapping.combined.cil := +26.0_mapping.ignore.cil := +26.0_nonplat := +BASE_PLAT_PUBLIC_POLICY := +BASE_PLAT_PRIVATE_POLICY := +base_plat_policy.conf := +built_26.0_plat_sepolicy := +plat_sepolicy := + endif # ($(PRODUCT_FULL_TREBLE),true) ################################# diff --git a/prebuilts/api/26.0/nonplat_sepolicy.cil b/prebuilts/api/26.0/nonplat_sepolicy.cil new file mode 100644 index 000000000..2ed4efa0f --- /dev/null +++ b/prebuilts/api/26.0/nonplat_sepolicy.cil @@ -0,0 +1,6109 @@ +(roletype r domain) +(typeattributeset dev_type (device_26_0 alarm_device_26_0 ashmem_device_26_0 audio_device_26_0 audio_timer_device_26_0 audio_seq_device_26_0 binder_device_26_0 hwbinder_device_26_0 vndbinder_device_26_0 block_device_26_0 camera_device_26_0 dm_device_26_0 keychord_device_26_0 loop_control_device_26_0 loop_device_26_0 pmsg_device_26_0 radio_device_26_0 ram_device_26_0 rtc_device_26_0 vold_device_26_0 console_device_26_0 cpuctl_device_26_0 fscklogs_26_0 full_device_26_0 gpu_device_26_0 graphics_device_26_0 hw_random_device_26_0 input_device_26_0 kmem_device_26_0 port_device_26_0 log_device_26_0 mtd_device_26_0 mtp_device_26_0 nfc_device_26_0 ptmx_device_26_0 kmsg_device_26_0 null_device_26_0 random_device_26_0 sensors_device_26_0 serial_device_26_0 socket_device_26_0 owntty_device_26_0 tty_device_26_0 video_device_26_0 vcs_device_26_0 zero_device_26_0 fuse_device_26_0 iio_device_26_0 ion_device_26_0 qtaguid_device_26_0 watchdog_device_26_0 uhid_device_26_0 uio_device_26_0 tun_device_26_0 usbaccessory_device_26_0 usb_device_26_0 properties_device_26_0 properties_serial_26_0 i2c_device_26_0 hci_attach_dev_26_0 rpmsg_device_26_0 root_block_device_26_0 frp_block_device_26_0 system_block_device_26_0 recovery_block_device_26_0 boot_block_device_26_0 userdata_block_device_26_0 cache_block_device_26_0 swap_block_device_26_0 metadata_block_device_26_0 misc_block_device_26_0 ppp_device_26_0 tee_device_26_0)) +(typeattributeset domain (adbd_26_0 audioserver_26_0 blkid_26_0 blkid_untrusted_26_0 bluetooth_26_0 bootanim_26_0 bootstat_26_0 bufferhubd_26_0 cameraserver_26_0 charger_26_0 clatd_26_0 cppreopts_26_0 crash_dump_26_0 dex2oat_26_0 dhcp_26_0 dnsmasq_26_0 drmserver_26_0 dumpstate_26_0 ephemeral_app_26_0 fingerprintd_26_0 fsck_26_0 fsck_untrusted_26_0 gatekeeperd_26_0 healthd_26_0 hwservicemanager_26_0 idmap_26_0 incident_26_0 incidentd_26_0 init_26_0 inputflinger_26_0 install_recovery_26_0 installd_26_0 isolated_app_26_0 kernel_26_0 keystore_26_0 lmkd_26_0 logd_26_0 logpersist_26_0 mdnsd_26_0 mediacodec_26_0 mediadrmserver_26_0 mediaextractor_26_0 mediametrics_26_0 mediaserver_26_0 modprobe_26_0 mtp_26_0 netd_26_0 netutils_wrapper_26_0 nfc_26_0 otapreopt_chroot_26_0 otapreopt_slot_26_0 performanced_26_0 perfprofd_26_0 platform_app_26_0 postinstall_26_0 postinstall_dexopt_26_0 ppp_26_0 preopt2cachename_26_0 priv_app_26_0 profman_26_0 racoon_26_0 radio_26_0 recovery_26_0 recovery_persist_26_0 recovery_refresh_26_0 rild_26_0 runas_26_0 sdcardd_26_0 servicemanager_26_0 sgdisk_26_0 shared_relro_26_0 shell_26_0 slideshow_26_0 su_26_0 surfaceflinger_26_0 system_app_26_0 system_server_26_0 tee_26_0 tombstoned_26_0 toolbox_26_0 tzdatacheck_26_0 ueventd_26_0 uncrypt_26_0 untrusted_app_26_0 untrusted_app_25_26_0 untrusted_v2_app_26_0 update_engine_26_0 update_verifier_26_0 vdc_26_0 virtual_touchpad_26_0 vndservicemanager_26_0 vold_26_0 vr_hwc_26_0 watchdogd_26_0 webview_zygote_26_0 wificond_26_0 zygote_26_0 hal_audio_default hal_bluetooth_default hal_bootctl_default hal_camera_default hal_configstore_default hal_contexthub_default hal_drm_default hal_dumpstate_default hal_fingerprint_default hal_gatekeeper_default hal_gnss_default hal_graphics_allocator_default hal_graphics_composer_default hal_health_default hal_ir_default hal_keymaster_default hal_light_default hal_memtrack_default hal_nfc_default hal_power_default hal_sensors_default hal_thermal_default hal_tv_cec_default hal_tv_input_default hal_usb_default hal_vibrator_default hal_vr_default hal_wifi_default hal_wifi_offload_default hal_wifi_supplicant_default hostapd vendor_modprobe)) +(typeattributeset fs_type (device_26_0 labeledfs_26_0 pipefs_26_0 sockfs_26_0 rootfs_26_0 proc_26_0 proc_security_26_0 proc_drop_caches_26_0 proc_overcommit_memory_26_0 usermodehelper_26_0 qtaguid_proc_26_0 proc_bluetooth_writable_26_0 proc_cpuinfo_26_0 proc_interrupts_26_0 proc_iomem_26_0 proc_meminfo_26_0 proc_misc_26_0 proc_modules_26_0 proc_net_26_0 proc_perf_26_0 proc_stat_26_0 proc_sysrq_26_0 proc_timer_26_0 proc_tty_drivers_26_0 proc_uid_cputime_showstat_26_0 proc_uid_cputime_removeuid_26_0 proc_uid_io_stats_26_0 proc_uid_procstat_set_26_0 proc_zoneinfo_26_0 selinuxfs_26_0 cgroup_26_0 sysfs_26_0 sysfs_uio_26_0 sysfs_batteryinfo_26_0 sysfs_bluetooth_writable_26_0 sysfs_leds_26_0 sysfs_hwrandom_26_0 sysfs_nfc_power_writable_26_0 sysfs_wake_lock_26_0 sysfs_mac_address_26_0 configfs_26_0 sysfs_devices_system_cpu_26_0 sysfs_lowmemorykiller_26_0 sysfs_wlan_fwpath_26_0 sysfs_vibrator_26_0 sysfs_thermal_26_0 sysfs_zram_26_0 sysfs_zram_uevent_26_0 inotify_26_0 devpts_26_0 tmpfs_26_0 shm_26_0 mqueue_26_0 fuse_26_0 sdcardfs_26_0 vfat_26_0 debugfs_26_0 debugfs_mmc_26_0 debugfs_trace_marker_26_0 debugfs_tracing_26_0 debugfs_tracing_instances_26_0 debugfs_wifi_tracing_26_0 tracing_shell_writable_26_0 tracing_shell_writable_debug_26_0 pstorefs_26_0 functionfs_26_0 oemfs_26_0 usbfs_26_0 binfmt_miscfs_26_0 app_fusefs_26_0)) +(typeattributeset contextmount_type (oemfs_26_0 app_fusefs_26_0)) +(typeattributeset file_type (bootanim_exec_26_0 bootstat_exec_26_0 bufferhubd_exec_26_0 cameraserver_exec_26_0 clatd_exec_26_0 cppreopts_exec_26_0 crash_dump_exec_26_0 dex2oat_exec_26_0 dhcp_exec_26_0 dnsmasq_exec_26_0 drmserver_exec_26_0 drmserver_socket_26_0 dumpstate_exec_26_0 sysfs_usb_26_0 unlabeled_26_0 system_file_26_0 vendor_hal_file_26_0 vendor_file_26_0 vendor_app_file_26_0 vendor_configs_file_26_0 same_process_hal_file_26_0 vndk_sp_file_26_0 vendor_framework_file_26_0 vendor_overlay_file_26_0 runtime_event_log_tags_file_26_0 logcat_exec_26_0 coredump_file_26_0 system_data_file_26_0 unencrypted_data_file_26_0 install_data_file_26_0 drm_data_file_26_0 adb_data_file_26_0 anr_data_file_26_0 tombstone_data_file_26_0 apk_data_file_26_0 apk_tmp_file_26_0 apk_private_data_file_26_0 apk_private_tmp_file_26_0 dalvikcache_data_file_26_0 ota_data_file_26_0 ota_package_file_26_0 user_profile_data_file_26_0 profman_dump_data_file_26_0 resourcecache_data_file_26_0 shell_data_file_26_0 property_data_file_26_0 bootchart_data_file_26_0 heapdump_data_file_26_0 nativetest_data_file_26_0 ringtone_file_26_0 preloads_data_file_26_0 preloads_media_file_26_0 dhcp_data_file_26_0 mnt_media_rw_file_26_0 mnt_user_file_26_0 mnt_expand_file_26_0 storage_file_26_0 mnt_media_rw_stub_file_26_0 storage_stub_file_26_0 postinstall_mnt_dir_26_0 postinstall_file_26_0 adb_keys_file_26_0 audio_data_file_26_0 audiohal_data_file_26_0 audioserver_data_file_26_0 bluetooth_data_file_26_0 bluetooth_logs_data_file_26_0 bootstat_data_file_26_0 boottrace_data_file_26_0 camera_data_file_26_0 gatekeeper_data_file_26_0 incident_data_file_26_0 keychain_data_file_26_0 keystore_data_file_26_0 media_data_file_26_0 media_rw_data_file_26_0 misc_user_data_file_26_0 net_data_file_26_0 nfc_data_file_26_0 radio_data_file_26_0 reboot_data_file_26_0 recovery_data_file_26_0 shared_relro_file_26_0 systemkeys_data_file_26_0 textclassifier_data_file_26_0 vpn_data_file_26_0 wifi_data_file_26_0 zoneinfo_data_file_26_0 vold_data_file_26_0 perfprofd_data_file_26_0 tee_data_file_26_0 update_engine_data_file_26_0 method_trace_data_file_26_0 app_data_file_26_0 system_app_data_file_26_0 cache_file_26_0 cache_backup_file_26_0 cache_private_backup_file_26_0 cache_recovery_file_26_0 efs_file_26_0 wallpaper_file_26_0 shortcut_manager_icons_26_0 icon_file_26_0 asec_apk_file_26_0 asec_public_file_26_0 asec_image_file_26_0 backup_data_file_26_0 bluetooth_efs_file_26_0 fingerprintd_data_file_26_0 app_fuse_file_26_0 adbd_socket_26_0 bluetooth_socket_26_0 dnsproxyd_socket_26_0 dumpstate_socket_26_0 fwmarkd_socket_26_0 lmkd_socket_26_0 logd_socket_26_0 logdr_socket_26_0 logdw_socket_26_0 mdns_socket_26_0 mdnsd_socket_26_0 misc_logd_file_26_0 mtpd_socket_26_0 netd_socket_26_0 property_socket_26_0 racoon_socket_26_0 rild_socket_26_0 rild_debug_socket_26_0 system_wpa_socket_26_0 system_ndebug_socket_26_0 tombstoned_crash_socket_26_0 tombstoned_intercept_socket_26_0 uncrypt_socket_26_0 vold_socket_26_0 webview_zygote_socket_26_0 wpa_socket_26_0 zygote_socket_26_0 gps_control_26_0 pdx_display_dir_26_0 pdx_performance_dir_26_0 pdx_bufferhub_dir_26_0 pdx_display_client_endpoint_socket_26_0 pdx_display_manager_endpoint_socket_26_0 pdx_display_screenshot_endpoint_socket_26_0 pdx_display_vsync_endpoint_socket_26_0 pdx_performance_client_endpoint_socket_26_0 pdx_bufferhub_client_endpoint_socket_26_0 file_contexts_file_26_0 mac_perms_file_26_0 property_contexts_file_26_0 seapp_contexts_file_26_0 sepolicy_file_26_0 service_contexts_file_26_0 hwservice_contexts_file_26_0 vndservice_contexts_file_26_0 fingerprintd_exec_26_0 fsck_exec_26_0 gatekeeperd_exec_26_0 healthd_exec_26_0 hwservicemanager_exec_26_0 idmap_exec_26_0 init_exec_26_0 inputflinger_exec_26_0 install_recovery_exec_26_0 installd_exec_26_0 keystore_exec_26_0 lmkd_exec_26_0 logd_exec_26_0 mediacodec_exec_26_0 mediadrmserver_exec_26_0 mediaextractor_exec_26_0 mediametrics_exec_26_0 mediaserver_exec_26_0 mtp_exec_26_0 netd_exec_26_0 netutils_wrapper_exec_26_0 otapreopt_chroot_exec_26_0 otapreopt_slot_exec_26_0 performanced_exec_26_0 perfprofd_exec_26_0 ppp_exec_26_0 preopt2cachename_exec_26_0 profman_exec_26_0 racoon_exec_26_0 recovery_persist_exec_26_0 recovery_refresh_exec_26_0 runas_exec_26_0 sdcardd_exec_26_0 servicemanager_exec_26_0 sgdisk_exec_26_0 shell_exec_26_0 su_exec_26_0 tombstoned_exec_26_0 toolbox_exec_26_0 tzdatacheck_exec_26_0 uncrypt_exec_26_0 update_engine_exec_26_0 update_verifier_exec_26_0 vdc_exec_26_0 vendor_shell_exec_26_0 vendor_toolbox_exec_26_0 virtual_touchpad_exec_26_0 vold_exec_26_0 vr_hwc_exec_26_0 webview_zygote_exec_26_0 wificond_exec_26_0 zygote_exec_26_0 hostapd_socket hal_audio_default_exec hal_audio_default_tmpfs hal_bluetooth_default_exec hal_bluetooth_default_tmpfs hal_bootctl_default_exec hal_bootctl_default_tmpfs hal_camera_default_exec hal_camera_default_tmpfs hal_configstore_default_exec hal_configstore_default_tmpfs hal_contexthub_default_exec hal_contexthub_default_tmpfs hal_drm_default_exec hal_drm_default_tmpfs hal_dumpstate_default_exec hal_dumpstate_default_tmpfs hal_fingerprint_default_exec hal_fingerprint_default_tmpfs hal_gatekeeper_default_exec hal_gatekeeper_default_tmpfs hal_gnss_default_exec hal_gnss_default_tmpfs hal_graphics_allocator_default_exec hal_graphics_allocator_default_tmpfs hal_graphics_composer_default_exec hal_graphics_composer_default_tmpfs hal_health_default_exec hal_health_default_tmpfs hal_ir_default_exec hal_ir_default_tmpfs hal_keymaster_default_exec hal_keymaster_default_tmpfs hal_light_default_exec hal_light_default_tmpfs hal_memtrack_default_exec hal_memtrack_default_tmpfs hal_nfc_default_exec hal_nfc_default_tmpfs mediacodec_tmpfs hal_power_default_exec hal_power_default_tmpfs hal_sensors_default_exec hal_sensors_default_tmpfs hal_thermal_default_exec hal_thermal_default_tmpfs hal_tv_cec_default_exec hal_tv_cec_default_tmpfs hal_tv_input_default_exec hal_tv_input_default_tmpfs hal_usb_default_exec hal_usb_default_tmpfs hal_vibrator_default_exec hal_vibrator_default_tmpfs hal_vr_default_exec hal_vr_default_tmpfs hal_wifi_default_exec hal_wifi_default_tmpfs hal_wifi_offload_default_exec hal_wifi_offload_default_tmpfs hal_wifi_supplicant_default_exec hal_wifi_supplicant_default_tmpfs hostapd_exec hostapd_tmpfs rild_exec rild_tmpfs tee_exec tee_tmpfs vndservicemanager_exec vndservicemanager_tmpfs)) +(typeattributeset exec_type (bootanim_exec_26_0 bootstat_exec_26_0 bufferhubd_exec_26_0 cameraserver_exec_26_0 clatd_exec_26_0 cppreopts_exec_26_0 crash_dump_exec_26_0 dex2oat_exec_26_0 dhcp_exec_26_0 dnsmasq_exec_26_0 drmserver_exec_26_0 dumpstate_exec_26_0 logcat_exec_26_0 fingerprintd_exec_26_0 fsck_exec_26_0 gatekeeperd_exec_26_0 healthd_exec_26_0 hwservicemanager_exec_26_0 idmap_exec_26_0 init_exec_26_0 inputflinger_exec_26_0 install_recovery_exec_26_0 installd_exec_26_0 keystore_exec_26_0 lmkd_exec_26_0 logd_exec_26_0 mediacodec_exec_26_0 mediadrmserver_exec_26_0 mediaextractor_exec_26_0 mediametrics_exec_26_0 mediaserver_exec_26_0 mtp_exec_26_0 netd_exec_26_0 netutils_wrapper_exec_26_0 otapreopt_chroot_exec_26_0 otapreopt_slot_exec_26_0 performanced_exec_26_0 perfprofd_exec_26_0 ppp_exec_26_0 preopt2cachename_exec_26_0 profman_exec_26_0 racoon_exec_26_0 recovery_persist_exec_26_0 recovery_refresh_exec_26_0 runas_exec_26_0 sdcardd_exec_26_0 servicemanager_exec_26_0 sgdisk_exec_26_0 shell_exec_26_0 su_exec_26_0 tombstoned_exec_26_0 toolbox_exec_26_0 tzdatacheck_exec_26_0 uncrypt_exec_26_0 update_engine_exec_26_0 update_verifier_exec_26_0 vdc_exec_26_0 vendor_shell_exec_26_0 vendor_toolbox_exec_26_0 virtual_touchpad_exec_26_0 vold_exec_26_0 vr_hwc_exec_26_0 webview_zygote_exec_26_0 wificond_exec_26_0 zygote_exec_26_0 hal_audio_default_exec hal_bluetooth_default_exec hal_bootctl_default_exec hal_camera_default_exec hal_configstore_default_exec hal_contexthub_default_exec hal_drm_default_exec hal_dumpstate_default_exec hal_fingerprint_default_exec hal_gatekeeper_default_exec hal_gnss_default_exec hal_graphics_allocator_default_exec hal_graphics_composer_default_exec hal_health_default_exec hal_ir_default_exec hal_keymaster_default_exec hal_light_default_exec hal_memtrack_default_exec hal_nfc_default_exec hal_power_default_exec hal_sensors_default_exec hal_thermal_default_exec hal_tv_cec_default_exec hal_tv_input_default_exec hal_usb_default_exec hal_vibrator_default_exec hal_vr_default_exec hal_wifi_default_exec hal_wifi_offload_default_exec hal_wifi_supplicant_default_exec hostapd_exec rild_exec tee_exec vndservicemanager_exec)) +(typeattributeset data_file_type (system_data_file_26_0 unencrypted_data_file_26_0 install_data_file_26_0 drm_data_file_26_0 adb_data_file_26_0 anr_data_file_26_0 tombstone_data_file_26_0 apk_data_file_26_0 apk_tmp_file_26_0 apk_private_data_file_26_0 apk_private_tmp_file_26_0 dalvikcache_data_file_26_0 ota_data_file_26_0 ota_package_file_26_0 user_profile_data_file_26_0 profman_dump_data_file_26_0 resourcecache_data_file_26_0 shell_data_file_26_0 property_data_file_26_0 bootchart_data_file_26_0 heapdump_data_file_26_0 nativetest_data_file_26_0 ringtone_file_26_0 preloads_data_file_26_0 preloads_media_file_26_0 dhcp_data_file_26_0 adb_keys_file_26_0 audio_data_file_26_0 audiohal_data_file_26_0 audioserver_data_file_26_0 bluetooth_data_file_26_0 bluetooth_logs_data_file_26_0 bootstat_data_file_26_0 boottrace_data_file_26_0 camera_data_file_26_0 gatekeeper_data_file_26_0 incident_data_file_26_0 keychain_data_file_26_0 keystore_data_file_26_0 media_data_file_26_0 media_rw_data_file_26_0 misc_user_data_file_26_0 net_data_file_26_0 nfc_data_file_26_0 radio_data_file_26_0 reboot_data_file_26_0 recovery_data_file_26_0 shared_relro_file_26_0 systemkeys_data_file_26_0 textclassifier_data_file_26_0 vpn_data_file_26_0 wifi_data_file_26_0 zoneinfo_data_file_26_0 vold_data_file_26_0 perfprofd_data_file_26_0 tee_data_file_26_0 update_engine_data_file_26_0 method_trace_data_file_26_0 app_data_file_26_0 system_app_data_file_26_0 wallpaper_file_26_0 shortcut_manager_icons_26_0 icon_file_26_0 asec_apk_file_26_0 asec_public_file_26_0 asec_image_file_26_0 backup_data_file_26_0 fingerprintd_data_file_26_0 app_fuse_file_26_0)) +(typeattributeset core_data_file_type (system_data_file_26_0 unencrypted_data_file_26_0 install_data_file_26_0 drm_data_file_26_0 adb_data_file_26_0 anr_data_file_26_0 tombstone_data_file_26_0 apk_data_file_26_0 apk_tmp_file_26_0 apk_private_data_file_26_0 apk_private_tmp_file_26_0 dalvikcache_data_file_26_0 ota_data_file_26_0 ota_package_file_26_0 user_profile_data_file_26_0 profman_dump_data_file_26_0 resourcecache_data_file_26_0 shell_data_file_26_0 property_data_file_26_0 bootchart_data_file_26_0 heapdump_data_file_26_0 nativetest_data_file_26_0 ringtone_file_26_0 preloads_data_file_26_0 preloads_media_file_26_0 dhcp_data_file_26_0 adb_keys_file_26_0 audio_data_file_26_0 audiohal_data_file_26_0 audioserver_data_file_26_0 bluetooth_data_file_26_0 bluetooth_logs_data_file_26_0 bootstat_data_file_26_0 boottrace_data_file_26_0 camera_data_file_26_0 gatekeeper_data_file_26_0 incident_data_file_26_0 keychain_data_file_26_0 keystore_data_file_26_0 media_data_file_26_0 media_rw_data_file_26_0 misc_user_data_file_26_0 net_data_file_26_0 nfc_data_file_26_0 radio_data_file_26_0 reboot_data_file_26_0 recovery_data_file_26_0 shared_relro_file_26_0 systemkeys_data_file_26_0 textclassifier_data_file_26_0 vpn_data_file_26_0 wifi_data_file_26_0 zoneinfo_data_file_26_0 vold_data_file_26_0 perfprofd_data_file_26_0 update_engine_data_file_26_0 method_trace_data_file_26_0 app_data_file_26_0 system_app_data_file_26_0 wallpaper_file_26_0 shortcut_manager_icons_26_0 icon_file_26_0 asec_apk_file_26_0 asec_public_file_26_0 asec_image_file_26_0 backup_data_file_26_0 fingerprintd_data_file_26_0 app_fuse_file_26_0)) +(typeattributeset vendor_file_type (vendor_hal_file_26_0 vendor_file_26_0 vendor_app_file_26_0 vendor_configs_file_26_0 same_process_hal_file_26_0 vndk_sp_file_26_0 vendor_framework_file_26_0 vendor_overlay_file_26_0 mediacodec_exec_26_0 vendor_shell_exec_26_0 vendor_toolbox_exec_26_0 hal_audio_default_exec hal_bluetooth_default_exec hal_bootctl_default_exec hal_camera_default_exec hal_configstore_default_exec hal_contexthub_default_exec hal_drm_default_exec hal_dumpstate_default_exec hal_fingerprint_default_exec hal_gatekeeper_default_exec hal_gnss_default_exec hal_graphics_allocator_default_exec hal_graphics_composer_default_exec hal_health_default_exec hal_ir_default_exec hal_keymaster_default_exec hal_light_default_exec hal_memtrack_default_exec hal_nfc_default_exec hal_power_default_exec hal_sensors_default_exec hal_thermal_default_exec hal_tv_cec_default_exec hal_tv_input_default_exec hal_usb_default_exec hal_vibrator_default_exec hal_vr_default_exec hal_wifi_default_exec hal_wifi_offload_default_exec hal_wifi_supplicant_default_exec hostapd_exec rild_exec tee_exec vndservicemanager_exec)) +(typeattributeset sysfs_type (usermodehelper_26_0 sysfs_26_0 sysfs_uio_26_0 sysfs_batteryinfo_26_0 sysfs_bluetooth_writable_26_0 sysfs_leds_26_0 sysfs_hwrandom_26_0 sysfs_nfc_power_writable_26_0 sysfs_wake_lock_26_0 sysfs_mac_address_26_0 sysfs_usb_26_0 sysfs_devices_system_cpu_26_0 sysfs_lowmemorykiller_26_0 sysfs_wlan_fwpath_26_0 sysfs_vibrator_26_0 sysfs_thermal_26_0 sysfs_zram_26_0 sysfs_zram_uevent_26_0)) +(typeattributeset debugfs_type (debugfs_mmc_26_0 debugfs_trace_marker_26_0 debugfs_tracing_26_0 debugfs_tracing_instances_26_0 debugfs_wifi_tracing_26_0 tracing_shell_writable_26_0 tracing_shell_writable_debug_26_0)) +(typeattributeset sdcard_type (fuse_26_0 sdcardfs_26_0 vfat_26_0)) +(typeattributeset node_type (node_26_0)) +(typeattributeset netif_type (netif_26_0)) +(typeattributeset port_type (port_26_0)) +(typeattributeset property_type (asan_reboot_prop_26_0 audio_prop_26_0 boottime_prop_26_0 bluetooth_prop_26_0 config_prop_26_0 cppreopt_prop_26_0 ctl_bootanim_prop_26_0 ctl_bugreport_prop_26_0 ctl_console_prop_26_0 ctl_default_prop_26_0 ctl_dumpstate_prop_26_0 ctl_fuse_prop_26_0 ctl_mdnsd_prop_26_0 ctl_rildaemon_prop_26_0 dalvik_prop_26_0 debuggerd_prop_26_0 debug_prop_26_0 default_prop_26_0 device_logging_prop_26_0 dhcp_prop_26_0 dumpstate_options_prop_26_0 dumpstate_prop_26_0 ffs_prop_26_0 fingerprint_prop_26_0 firstboot_prop_26_0 hwservicemanager_prop_26_0 logd_prop_26_0 logpersistd_logging_prop_26_0 log_prop_26_0 log_tag_prop_26_0 mmc_prop_26_0 net_dns_prop_26_0 net_radio_prop_26_0 nfc_prop_26_0 overlay_prop_26_0 pan_result_prop_26_0 persist_debug_prop_26_0 persistent_properties_ready_prop_26_0 powerctl_prop_26_0 radio_prop_26_0 restorecon_prop_26_0 safemode_prop_26_0 serialno_prop_26_0 shell_prop_26_0 system_prop_26_0 system_radio_prop_26_0 vold_prop_26_0 wifi_log_prop_26_0 wifi_prop_26_0)) +(typeattributeset core_property_type (audio_prop_26_0 config_prop_26_0 cppreopt_prop_26_0 dalvik_prop_26_0 debuggerd_prop_26_0 debug_prop_26_0 default_prop_26_0 dhcp_prop_26_0 dumpstate_prop_26_0 ffs_prop_26_0 fingerprint_prop_26_0 logd_prop_26_0 net_radio_prop_26_0 nfc_prop_26_0 pan_result_prop_26_0 persist_debug_prop_26_0 powerctl_prop_26_0 radio_prop_26_0 restorecon_prop_26_0 shell_prop_26_0 system_prop_26_0 system_radio_prop_26_0 vold_prop_26_0)) +(typeattributeset log_property_type (log_prop_26_0 log_tag_prop_26_0 wifi_log_prop_26_0)) +(typeattributeset system_server_service (accessibility_service_26_0 account_service_26_0 activity_service_26_0 alarm_service_26_0 appops_service_26_0 appwidget_service_26_0 assetatlas_service_26_0 audio_service_26_0 autofill_service_26_0 backup_service_26_0 batterystats_service_26_0 battery_service_26_0 bluetooth_manager_service_26_0 cameraproxy_service_26_0 clipboard_service_26_0 contexthub_service_26_0 IProxyService_service_26_0 commontime_management_service_26_0 companion_device_service_26_0 connectivity_service_26_0 connmetrics_service_26_0 consumer_ir_service_26_0 content_service_26_0 country_detector_service_26_0 coverage_service_26_0 cpuinfo_service_26_0 dbinfo_service_26_0 device_policy_service_26_0 deviceidle_service_26_0 device_identifiers_service_26_0 devicestoragemonitor_service_26_0 diskstats_service_26_0 display_service_26_0 font_service_26_0 netd_listener_service_26_0 DockObserver_service_26_0 dreams_service_26_0 dropbox_service_26_0 ethernet_service_26_0 fingerprint_service_26_0 gfxinfo_service_26_0 graphicsstats_service_26_0 hardware_service_26_0 hardware_properties_service_26_0 hdmi_control_service_26_0 input_method_service_26_0 input_service_26_0 imms_service_26_0 ipsec_service_26_0 jobscheduler_service_26_0 launcherapps_service_26_0 location_service_26_0 lock_settings_service_26_0 media_projection_service_26_0 media_router_service_26_0 media_session_service_26_0 meminfo_service_26_0 midi_service_26_0 mount_service_26_0 netpolicy_service_26_0 netstats_service_26_0 network_management_service_26_0 network_score_service_26_0 network_time_update_service_26_0 notification_service_26_0 oem_lock_service_26_0 otadexopt_service_26_0 overlay_service_26_0 package_service_26_0 permission_service_26_0 persistent_data_block_service_26_0 pinner_service_26_0 power_service_26_0 print_service_26_0 processinfo_service_26_0 procstats_service_26_0 recovery_service_26_0 registry_service_26_0 restrictions_service_26_0 rttmanager_service_26_0 samplingprofiler_service_26_0 scheduling_policy_service_26_0 search_service_26_0 sec_key_att_app_id_provider_service_26_0 sensorservice_service_26_0 serial_service_26_0 servicediscovery_service_26_0 settings_service_26_0 shortcut_service_26_0 statusbar_service_26_0 storagestats_service_26_0 task_service_26_0 textclassification_service_26_0 textservices_service_26_0 telecom_service_26_0 trust_service_26_0 tv_input_service_26_0 uimode_service_26_0 updatelock_service_26_0 usagestats_service_26_0 usb_service_26_0 user_service_26_0 vibrator_service_26_0 voiceinteraction_service_26_0 vr_manager_service_26_0 wallpaper_service_26_0 webviewupdate_service_26_0 wifip2p_service_26_0 wifiscanner_service_26_0 wifi_service_26_0 wifiaware_service_26_0 window_service_26_0)) +(typeattributeset app_api_service (batteryproperties_service_26_0 gatekeeper_service_26_0 accessibility_service_26_0 account_service_26_0 activity_service_26_0 alarm_service_26_0 appops_service_26_0 appwidget_service_26_0 assetatlas_service_26_0 audio_service_26_0 autofill_service_26_0 backup_service_26_0 batterystats_service_26_0 bluetooth_manager_service_26_0 clipboard_service_26_0 contexthub_service_26_0 IProxyService_service_26_0 companion_device_service_26_0 connectivity_service_26_0 connmetrics_service_26_0 consumer_ir_service_26_0 content_service_26_0 country_detector_service_26_0 device_policy_service_26_0 deviceidle_service_26_0 device_identifiers_service_26_0 display_service_26_0 font_service_26_0 dreams_service_26_0 dropbox_service_26_0 ethernet_service_26_0 fingerprint_service_26_0 graphicsstats_service_26_0 hardware_properties_service_26_0 input_method_service_26_0 input_service_26_0 imms_service_26_0 ipsec_service_26_0 jobscheduler_service_26_0 launcherapps_service_26_0 location_service_26_0 media_projection_service_26_0 media_router_service_26_0 media_session_service_26_0 midi_service_26_0 mount_service_26_0 netpolicy_service_26_0 netstats_service_26_0 network_management_service_26_0 notification_service_26_0 package_service_26_0 permission_service_26_0 power_service_26_0 print_service_26_0 procstats_service_26_0 registry_service_26_0 restrictions_service_26_0 rttmanager_service_26_0 search_service_26_0 sec_key_att_app_id_provider_service_26_0 sensorservice_service_26_0 servicediscovery_service_26_0 settings_service_26_0 shortcut_service_26_0 statusbar_service_26_0 storagestats_service_26_0 textclassification_service_26_0 textservices_service_26_0 telecom_service_26_0 trust_service_26_0 tv_input_service_26_0 uimode_service_26_0 usagestats_service_26_0 usb_service_26_0 user_service_26_0 vibrator_service_26_0 voiceinteraction_service_26_0 wallpaper_service_26_0 webviewupdate_service_26_0 wifip2p_service_26_0 wifi_service_26_0 wifiaware_service_26_0)) +(typeattributeset ephemeral_app_api_service (batteryproperties_service_26_0 accessibility_service_26_0 account_service_26_0 activity_service_26_0 alarm_service_26_0 appops_service_26_0 appwidget_service_26_0 assetatlas_service_26_0 audio_service_26_0 autofill_service_26_0 backup_service_26_0 batterystats_service_26_0 bluetooth_manager_service_26_0 clipboard_service_26_0 IProxyService_service_26_0 companion_device_service_26_0 connectivity_service_26_0 connmetrics_service_26_0 consumer_ir_service_26_0 content_service_26_0 country_detector_service_26_0 deviceidle_service_26_0 device_identifiers_service_26_0 display_service_26_0 font_service_26_0 dreams_service_26_0 dropbox_service_26_0 graphicsstats_service_26_0 hardware_properties_service_26_0 input_method_service_26_0 input_service_26_0 imms_service_26_0 ipsec_service_26_0 jobscheduler_service_26_0 launcherapps_service_26_0 location_service_26_0 media_projection_service_26_0 media_router_service_26_0 media_session_service_26_0 midi_service_26_0 mount_service_26_0 netpolicy_service_26_0 netstats_service_26_0 network_management_service_26_0 notification_service_26_0 package_service_26_0 permission_service_26_0 power_service_26_0 print_service_26_0 procstats_service_26_0 registry_service_26_0 restrictions_service_26_0 rttmanager_service_26_0 search_service_26_0 sensorservice_service_26_0 servicediscovery_service_26_0 settings_service_26_0 statusbar_service_26_0 storagestats_service_26_0 textclassification_service_26_0 textservices_service_26_0 telecom_service_26_0 tv_input_service_26_0 uimode_service_26_0 usagestats_service_26_0 user_service_26_0 vibrator_service_26_0 voiceinteraction_service_26_0 webviewupdate_service_26_0)) +(typeattributeset system_api_service (cpuinfo_service_26_0 dbinfo_service_26_0 diskstats_service_26_0 gfxinfo_service_26_0 hdmi_control_service_26_0 lock_settings_service_26_0 meminfo_service_26_0 network_score_service_26_0 oem_lock_service_26_0 persistent_data_block_service_26_0 serial_service_26_0 updatelock_service_26_0 wifiscanner_service_26_0 window_service_26_0)) +(typeattributeset service_manager_type (audioserver_service_26_0 batteryproperties_service_26_0 bluetooth_service_26_0 cameraserver_service_26_0 default_android_service_26_0 drmserver_service_26_0 dumpstate_service_26_0 fingerprintd_service_26_0 hal_fingerprint_service_26_0 gatekeeper_service_26_0 gpu_service_26_0 inputflinger_service_26_0 incident_service_26_0 installd_service_26_0 keystore_service_26_0 mediaserver_service_26_0 mediametrics_service_26_0 mediaextractor_service_26_0 mediacodec_service_26_0 mediadrmserver_service_26_0 mediacasserver_service_26_0 netd_service_26_0 nfc_service_26_0 radio_service_26_0 storaged_service_26_0 surfaceflinger_service_26_0 system_app_service_26_0 update_engine_service_26_0 virtual_touchpad_service_26_0 vr_hwc_service_26_0 accessibility_service_26_0 account_service_26_0 activity_service_26_0 alarm_service_26_0 appops_service_26_0 appwidget_service_26_0 assetatlas_service_26_0 audio_service_26_0 autofill_service_26_0 backup_service_26_0 batterystats_service_26_0 battery_service_26_0 bluetooth_manager_service_26_0 cameraproxy_service_26_0 clipboard_service_26_0 contexthub_service_26_0 IProxyService_service_26_0 commontime_management_service_26_0 companion_device_service_26_0 connectivity_service_26_0 connmetrics_service_26_0 consumer_ir_service_26_0 content_service_26_0 country_detector_service_26_0 coverage_service_26_0 cpuinfo_service_26_0 dbinfo_service_26_0 device_policy_service_26_0 deviceidle_service_26_0 device_identifiers_service_26_0 devicestoragemonitor_service_26_0 diskstats_service_26_0 display_service_26_0 font_service_26_0 netd_listener_service_26_0 DockObserver_service_26_0 dreams_service_26_0 dropbox_service_26_0 ethernet_service_26_0 fingerprint_service_26_0 gfxinfo_service_26_0 graphicsstats_service_26_0 hardware_service_26_0 hardware_properties_service_26_0 hdmi_control_service_26_0 input_method_service_26_0 input_service_26_0 imms_service_26_0 ipsec_service_26_0 jobscheduler_service_26_0 launcherapps_service_26_0 location_service_26_0 lock_settings_service_26_0 media_projection_service_26_0 media_router_service_26_0 media_session_service_26_0 meminfo_service_26_0 midi_service_26_0 mount_service_26_0 netpolicy_service_26_0 netstats_service_26_0 network_management_service_26_0 network_score_service_26_0 network_time_update_service_26_0 notification_service_26_0 oem_lock_service_26_0 otadexopt_service_26_0 overlay_service_26_0 package_service_26_0 permission_service_26_0 persistent_data_block_service_26_0 pinner_service_26_0 power_service_26_0 print_service_26_0 processinfo_service_26_0 procstats_service_26_0 recovery_service_26_0 registry_service_26_0 restrictions_service_26_0 rttmanager_service_26_0 samplingprofiler_service_26_0 scheduling_policy_service_26_0 search_service_26_0 sec_key_att_app_id_provider_service_26_0 sensorservice_service_26_0 serial_service_26_0 servicediscovery_service_26_0 settings_service_26_0 shortcut_service_26_0 statusbar_service_26_0 storagestats_service_26_0 task_service_26_0 textclassification_service_26_0 textservices_service_26_0 telecom_service_26_0 trust_service_26_0 tv_input_service_26_0 uimode_service_26_0 updatelock_service_26_0 usagestats_service_26_0 usb_service_26_0 user_service_26_0 vibrator_service_26_0 voiceinteraction_service_26_0 vr_manager_service_26_0 wallpaper_service_26_0 webviewupdate_service_26_0 wifip2p_service_26_0 wifiscanner_service_26_0 wifi_service_26_0 wificond_service_26_0 wifiaware_service_26_0 window_service_26_0)) +(typeattributeset hwservice_manager_type (default_android_hwservice_26_0 fwk_display_hwservice_26_0 fwk_scheduler_hwservice_26_0 fwk_sensor_hwservice_26_0 hal_audio_hwservice_26_0 hal_bluetooth_hwservice_26_0 hal_bootctl_hwservice_26_0 hal_camera_hwservice_26_0 hal_configstore_ISurfaceFlingerConfigs_26_0 hal_contexthub_hwservice_26_0 hal_drm_hwservice_26_0 hal_dumpstate_hwservice_26_0 hal_fingerprint_hwservice_26_0 hal_gatekeeper_hwservice_26_0 hal_gnss_hwservice_26_0 hal_graphics_allocator_hwservice_26_0 hal_graphics_composer_hwservice_26_0 hal_graphics_mapper_hwservice_26_0 hal_health_hwservice_26_0 hal_ir_hwservice_26_0 hal_keymaster_hwservice_26_0 hal_light_hwservice_26_0 hal_memtrack_hwservice_26_0 hal_nfc_hwservice_26_0 hal_oemlock_hwservice_26_0 hal_omx_hwservice_26_0 hal_power_hwservice_26_0 hal_renderscript_hwservice_26_0 hal_sensors_hwservice_26_0 hal_telephony_hwservice_26_0 hal_thermal_hwservice_26_0 hal_tv_cec_hwservice_26_0 hal_tv_input_hwservice_26_0 hal_usb_hwservice_26_0 hal_vibrator_hwservice_26_0 hal_vr_hwservice_26_0 hal_weaver_hwservice_26_0 hal_wifi_hwservice_26_0 hal_wifi_supplicant_hwservice_26_0 hidl_allocator_hwservice_26_0 hidl_base_hwservice_26_0 hidl_manager_hwservice_26_0 hidl_memory_hwservice_26_0 hidl_token_hwservice_26_0 system_wifi_keystore_hwservice_26_0)) +(typeattributeset same_process_hwservice (hal_graphics_mapper_hwservice_26_0 hal_renderscript_hwservice_26_0)) +(typeattributeset coredomain_hwservice (fwk_display_hwservice_26_0 fwk_scheduler_hwservice_26_0 fwk_sensor_hwservice_26_0 hidl_allocator_hwservice_26_0 hidl_manager_hwservice_26_0 hidl_memory_hwservice_26_0 hidl_token_hwservice_26_0 system_wifi_keystore_hwservice_26_0)) +(typeattributeset vndservice_manager_type (default_android_vndservice_26_0)) +(typeattributeset mlstrustedsubject (bufferhubd_26_0 cppreopts_26_0 drmserver_26_0 dumpstate_26_0 pdx_display_client_endpoint_socket_26_0 pdx_display_manager_endpoint_socket_26_0 pdx_display_screenshot_endpoint_socket_26_0 pdx_display_vsync_endpoint_socket_26_0 pdx_performance_client_endpoint_socket_26_0 pdx_bufferhub_client_endpoint_socket_26_0 hwservicemanager_26_0 init_26_0 installd_26_0 kernel_26_0 keystore_26_0 lmkd_26_0 logd_26_0 mediacodec_26_0 mediadrmserver_26_0 mediaextractor_26_0 mediaserver_26_0 netd_26_0 otapreopt_slot_26_0 performanced_26_0 perfprofd_26_0 racoon_26_0 radio_26_0 runas_26_0 servicemanager_26_0 shell_26_0 su_26_0 tombstoned_26_0 uncrypt_26_0 vold_26_0)) +(typeattributeset mlstrustedobject (alarm_device_26_0 ashmem_device_26_0 binder_device_26_0 hwbinder_device_26_0 pmsg_device_26_0 gpu_device_26_0 log_device_26_0 mtp_device_26_0 ptmx_device_26_0 null_device_26_0 random_device_26_0 owntty_device_26_0 zero_device_26_0 fuse_device_26_0 ion_device_26_0 tun_device_26_0 usbaccessory_device_26_0 usb_device_26_0 qtaguid_proc_26_0 selinuxfs_26_0 cgroup_26_0 sysfs_26_0 sysfs_bluetooth_writable_26_0 sysfs_nfc_power_writable_26_0 sysfs_usb_26_0 inotify_26_0 devpts_26_0 fuse_26_0 sdcardfs_26_0 vfat_26_0 debugfs_trace_marker_26_0 functionfs_26_0 anr_data_file_26_0 tombstone_data_file_26_0 apk_tmp_file_26_0 apk_private_tmp_file_26_0 ota_package_file_26_0 user_profile_data_file_26_0 shell_data_file_26_0 heapdump_data_file_26_0 ringtone_file_26_0 media_rw_data_file_26_0 radio_data_file_26_0 perfprofd_data_file_26_0 method_trace_data_file_26_0 system_app_data_file_26_0 cache_file_26_0 cache_backup_file_26_0 cache_recovery_file_26_0 wallpaper_file_26_0 shortcut_manager_icons_26_0 asec_apk_file_26_0 backup_data_file_26_0 app_fuse_file_26_0 dnsproxyd_socket_26_0 fwmarkd_socket_26_0 logd_socket_26_0 logdr_socket_26_0 logdw_socket_26_0 mdnsd_socket_26_0 property_socket_26_0 system_ndebug_socket_26_0 tombstoned_crash_socket_26_0 pdx_display_client_endpoint_socket_26_0 pdx_display_manager_endpoint_socket_26_0 pdx_display_screenshot_endpoint_socket_26_0 pdx_display_vsync_endpoint_socket_26_0 pdx_performance_client_endpoint_socket_26_0 pdx_bufferhub_client_endpoint_socket_26_0)) +(typeattributeset netdomain (clatd_26_0 dhcp_26_0 dnsmasq_26_0 drmserver_26_0 dumpstate_26_0 mediadrmserver_26_0 mediaserver_26_0 mtp_26_0 netd_26_0 ppp_26_0 racoon_26_0 radio_26_0 rild_26_0 shell_26_0 su_26_0 update_engine_26_0 hal_wifi_supplicant_default hostapd)) +(typeattributeset bluetoothdomain (radio_26_0)) +(typeattributeset binderservicedomain (cameraserver_26_0 drmserver_26_0 gatekeeperd_26_0 healthd_26_0 inputflinger_26_0 keystore_26_0 mediadrmserver_26_0 mediaextractor_26_0 mediametrics_26_0 mediaserver_26_0 radio_26_0 virtual_touchpad_26_0 vr_hwc_26_0)) +(typeattributeset update_engine_common (update_engine_26_0)) +(typeattributeset coredomain (perfprofd_26_0)) +(typeattributeset coredomain_socket (adbd_socket_26_0 bluetooth_socket_26_0 dnsproxyd_socket_26_0 dumpstate_socket_26_0 fwmarkd_socket_26_0 lmkd_socket_26_0 logd_socket_26_0 logdr_socket_26_0 logdw_socket_26_0 mdns_socket_26_0 mdnsd_socket_26_0 misc_logd_file_26_0 mtpd_socket_26_0 netd_socket_26_0 property_socket_26_0 racoon_socket_26_0 system_wpa_socket_26_0 system_ndebug_socket_26_0 tombstoned_crash_socket_26_0 tombstoned_intercept_socket_26_0 uncrypt_socket_26_0 vold_socket_26_0 webview_zygote_socket_26_0 zygote_socket_26_0 pdx_display_client_endpoint_socket_26_0 pdx_display_client_channel_socket_26_0 pdx_display_manager_endpoint_socket_26_0 pdx_display_manager_channel_socket_26_0 pdx_display_screenshot_endpoint_socket_26_0 pdx_display_screenshot_channel_socket_26_0 pdx_display_vsync_endpoint_socket_26_0 pdx_display_vsync_channel_socket_26_0 pdx_performance_client_endpoint_socket_26_0 pdx_performance_client_channel_socket_26_0 pdx_bufferhub_client_endpoint_socket_26_0 pdx_bufferhub_client_channel_socket_26_0)) +(typeattributeset pdx_endpoint_dir_type (pdx_display_dir_26_0 pdx_performance_dir_26_0 pdx_bufferhub_dir_26_0)) +(typeattributeset pdx_endpoint_socket_type (pdx_display_client_endpoint_socket_26_0 pdx_display_manager_endpoint_socket_26_0 pdx_display_screenshot_endpoint_socket_26_0 pdx_display_vsync_endpoint_socket_26_0 pdx_performance_client_endpoint_socket_26_0 pdx_bufferhub_client_endpoint_socket_26_0)) +(typeattributeset pdx_channel_socket_type (pdx_display_client_channel_socket_26_0 pdx_display_manager_channel_socket_26_0 pdx_display_screenshot_channel_socket_26_0 pdx_display_vsync_channel_socket_26_0 pdx_performance_client_channel_socket_26_0 pdx_bufferhub_client_channel_socket_26_0)) +(typeattributeset pdx_display_client_endpoint_dir_type (pdx_display_dir_26_0)) +(typeattributeset pdx_display_client_endpoint_socket_type (pdx_display_client_endpoint_socket_26_0)) +(typeattributeset pdx_display_client_channel_socket_type (pdx_display_client_channel_socket_26_0)) +(typeattributeset pdx_display_manager_endpoint_dir_type (pdx_display_dir_26_0)) +(typeattributeset pdx_display_manager_endpoint_socket_type (pdx_display_manager_endpoint_socket_26_0)) +(typeattributeset pdx_display_manager_channel_socket_type (pdx_display_manager_channel_socket_26_0)) +(typeattributeset pdx_display_screenshot_endpoint_dir_type (pdx_display_dir_26_0)) +(typeattributeset pdx_display_screenshot_endpoint_socket_type (pdx_display_screenshot_endpoint_socket_26_0)) +(typeattributeset pdx_display_screenshot_channel_socket_type (pdx_display_screenshot_channel_socket_26_0)) +(typeattributeset pdx_display_vsync_endpoint_dir_type (pdx_display_dir_26_0)) +(typeattributeset pdx_display_vsync_endpoint_socket_type (pdx_display_vsync_endpoint_socket_26_0)) +(typeattributeset pdx_display_vsync_channel_socket_type (pdx_display_vsync_channel_socket_26_0)) +(typeattributeset pdx_performance_client_endpoint_dir_type (pdx_performance_dir_26_0)) +(typeattributeset pdx_performance_client_endpoint_socket_type (pdx_performance_client_endpoint_socket_26_0)) +(typeattributeset pdx_performance_client_channel_socket_type (pdx_performance_client_channel_socket_26_0)) +(typeattributeset pdx_performance_client_server_type (performanced_26_0)) +(typeattributeset pdx_bufferhub_client_endpoint_dir_type (pdx_bufferhub_dir_26_0)) +(typeattributeset pdx_bufferhub_client_endpoint_socket_type (pdx_bufferhub_client_endpoint_socket_26_0)) +(typeattributeset pdx_bufferhub_client_channel_socket_type (pdx_bufferhub_client_channel_socket_26_0)) +(typeattributeset pdx_bufferhub_client_server_type (bufferhubd_26_0)) +(typeattributeset halserverdomain (rild_26_0 hal_audio_default hal_bluetooth_default hal_bootctl_default hal_camera_default hal_configstore_default hal_contexthub_default hal_drm_default hal_dumpstate_default hal_fingerprint_default hal_gatekeeper_default hal_gnss_default hal_graphics_allocator_default hal_graphics_composer_default hal_health_default hal_ir_default hal_keymaster_default hal_light_default hal_memtrack_default hal_nfc_default hal_power_default hal_sensors_default hal_thermal_default hal_tv_cec_default hal_tv_input_default hal_usb_default hal_vibrator_default hal_vr_default hal_wifi_default hal_wifi_offload_default hal_wifi_supplicant_default)) +(typeattributeset halclientdomain (bootanim_26_0 bufferhubd_26_0 cameraserver_26_0 dumpstate_26_0 gatekeeperd_26_0 healthd_26_0 mediacodec_26_0 mediadrmserver_26_0 mediaserver_26_0 radio_26_0 update_engine_26_0 update_verifier_26_0 vold_26_0 vr_hwc_26_0 hal_audio_default)) +(typeattributeset hal_allocator_client (mediacodec_26_0 mediaserver_26_0 hal_audio_default)) +(typeattributeset hal_audio (hal_audio_default)) +(typeattributeset hal_audio_server (hal_audio_default)) +(typeattributeset hal_bluetooth (hal_bluetooth_default)) +(typeattributeset hal_bluetooth_server (hal_bluetooth_default)) +(typeattributeset hal_bootctl (hal_bootctl_default)) +(typeattributeset hal_bootctl_client (update_engine_26_0 update_verifier_26_0)) +(typeattributeset hal_bootctl_server (hal_bootctl_default)) +(typeattributeset hal_camera (hal_camera_default)) +(typeattributeset hal_camera_client (cameraserver_26_0)) +(typeattributeset hal_camera_server (hal_camera_default)) +(typeattributeset hal_configstore (hal_configstore_default)) +(typeattributeset hal_configstore_server (hal_configstore_default)) +(typeattributeset hal_contexthub (hal_contexthub_default)) +(typeattributeset hal_contexthub_server (hal_contexthub_default)) +(typeattributeset hal_drm (hal_drm_default)) +(typeattributeset hal_drm_client (mediadrmserver_26_0)) +(typeattributeset hal_drm_server (hal_drm_default)) +(typeattributeset hal_dumpstate (hal_dumpstate_default)) +(typeattributeset hal_dumpstate_client (dumpstate_26_0)) +(typeattributeset hal_dumpstate_server (hal_dumpstate_default)) +(typeattributeset hal_fingerprint (hal_fingerprint_default)) +(typeattributeset hal_fingerprint_server (hal_fingerprint_default)) +(typeattributeset hal_gatekeeper (hal_gatekeeper_default)) +(typeattributeset hal_gatekeeper_client (gatekeeperd_26_0)) +(typeattributeset hal_gatekeeper_server (hal_gatekeeper_default)) +(typeattributeset hal_gnss (hal_gnss_default)) +(typeattributeset hal_gnss_server (hal_gnss_default)) +(typeattributeset hal_graphics_allocator (hal_graphics_allocator_default)) +(typeattributeset hal_graphics_allocator_client (bootanim_26_0 bufferhubd_26_0 cameraserver_26_0 dumpstate_26_0 mediacodec_26_0 vr_hwc_26_0)) +(typeattributeset hal_graphics_allocator_server (hal_graphics_allocator_default)) +(typeattributeset hal_graphics_composer (hal_graphics_composer_default)) +(typeattributeset hal_graphics_composer_client (bootanim_26_0)) +(typeattributeset hal_graphics_composer_server (hal_graphics_composer_default)) +(typeattributeset hal_health (hal_health_default)) +(typeattributeset hal_health_client (healthd_26_0)) +(typeattributeset hal_health_server (hal_health_default)) +(typeattributeset hal_ir (hal_ir_default)) +(typeattributeset hal_ir_server (hal_ir_default)) +(typeattributeset hal_keymaster (hal_keymaster_default)) +(typeattributeset hal_keymaster_client (vold_26_0)) +(typeattributeset hal_keymaster_server (hal_keymaster_default)) +(typeattributeset hal_light (hal_light_default)) +(typeattributeset hal_light_server (hal_light_default)) +(typeattributeset hal_memtrack (hal_memtrack_default)) +(typeattributeset hal_memtrack_server (hal_memtrack_default)) +(typeattributeset hal_nfc (hal_nfc_default)) +(typeattributeset hal_nfc_server (hal_nfc_default)) +(typeattributeset hal_power (hal_power_default)) +(typeattributeset hal_power_server (hal_power_default)) +(typeattributeset hal_sensors (hal_sensors_default)) +(typeattributeset hal_sensors_server (hal_sensors_default)) +(typeattributeset hal_telephony (rild_26_0)) +(typeattributeset hal_telephony_client (radio_26_0)) +(typeattributeset hal_telephony_server (rild_26_0)) +(typeattributeset hal_thermal (hal_thermal_default)) +(typeattributeset hal_thermal_server (hal_thermal_default)) +(typeattributeset hal_tv_cec (hal_tv_cec_default)) +(typeattributeset hal_tv_cec_server (hal_tv_cec_default)) +(typeattributeset hal_tv_input (hal_tv_input_default)) +(typeattributeset hal_tv_input_server (hal_tv_input_default)) +(typeattributeset hal_usb (hal_usb_default)) +(typeattributeset hal_usb_server (hal_usb_default)) +(typeattributeset hal_vibrator (hal_vibrator_default)) +(typeattributeset hal_vibrator_client (dumpstate_26_0)) +(typeattributeset hal_vibrator_server (hal_vibrator_default)) +(typeattributeset hal_vr (hal_vr_default)) +(typeattributeset hal_vr_server (hal_vr_default)) +(typeattributeset hal_wifi (hal_wifi_default)) +(typeattributeset hal_wifi_server (hal_wifi_default)) +(typeattributeset hal_wifi_offload (hal_wifi_offload_default)) +(typeattributeset hal_wifi_offload_server (hal_wifi_offload_default)) +(typeattributeset hal_wifi_supplicant (hal_wifi_supplicant_default)) +(typeattributeset hal_wifi_supplicant_server (hal_wifi_supplicant_default)) +(typeattribute adbd_26_0) +(roletype object_r adbd_26_0) +(typeattribute audioserver_26_0) +(roletype object_r audioserver_26_0) +(typeattribute blkid_26_0) +(roletype object_r blkid_26_0) +(typeattribute blkid_untrusted_26_0) +(roletype object_r blkid_untrusted_26_0) +(typeattribute bluetooth_26_0) +(roletype object_r bluetooth_26_0) +(typeattribute bootanim_26_0) +(roletype object_r bootanim_26_0) +(typeattribute bootanim_exec_26_0) +(roletype object_r bootanim_exec_26_0) +(typeattribute bootstat_26_0) +(roletype object_r bootstat_26_0) +(typeattribute bootstat_exec_26_0) +(roletype object_r bootstat_exec_26_0) +(typeattribute bufferhubd_26_0) +(roletype object_r bufferhubd_26_0) +(typeattribute bufferhubd_exec_26_0) +(roletype object_r bufferhubd_exec_26_0) +(typeattribute cameraserver_26_0) +(roletype object_r cameraserver_26_0) +(typeattribute cameraserver_exec_26_0) +(roletype object_r cameraserver_exec_26_0) +(typeattribute charger_26_0) +(roletype object_r charger_26_0) +(typeattribute clatd_26_0) +(roletype object_r clatd_26_0) +(typeattribute clatd_exec_26_0) +(roletype object_r clatd_exec_26_0) +(typeattribute cppreopts_26_0) +(roletype object_r cppreopts_26_0) +(typeattribute cppreopts_exec_26_0) +(roletype object_r cppreopts_exec_26_0) +(typeattribute crash_dump_26_0) +(roletype object_r crash_dump_26_0) +(typeattribute crash_dump_exec_26_0) +(roletype object_r crash_dump_exec_26_0) +(typeattribute device_26_0) +(roletype object_r device_26_0) +(typeattribute alarm_device_26_0) +(roletype object_r alarm_device_26_0) +(typeattribute ashmem_device_26_0) +(roletype object_r ashmem_device_26_0) +(typeattribute audio_device_26_0) +(roletype object_r audio_device_26_0) +(typeattribute audio_timer_device_26_0) +(roletype object_r audio_timer_device_26_0) +(typeattribute audio_seq_device_26_0) +(roletype object_r audio_seq_device_26_0) +(typeattribute binder_device_26_0) +(roletype object_r binder_device_26_0) +(typeattribute hwbinder_device_26_0) +(roletype object_r hwbinder_device_26_0) +(typeattribute vndbinder_device_26_0) +(roletype object_r vndbinder_device_26_0) +(typeattribute block_device_26_0) +(roletype object_r block_device_26_0) +(typeattribute camera_device_26_0) +(roletype object_r camera_device_26_0) +(typeattribute dm_device_26_0) +(roletype object_r dm_device_26_0) +(typeattribute keychord_device_26_0) +(roletype object_r keychord_device_26_0) +(typeattribute loop_control_device_26_0) +(roletype object_r loop_control_device_26_0) +(typeattribute loop_device_26_0) +(roletype object_r loop_device_26_0) +(typeattribute pmsg_device_26_0) +(roletype object_r pmsg_device_26_0) +(typeattribute radio_device_26_0) +(roletype object_r radio_device_26_0) +(typeattribute ram_device_26_0) +(roletype object_r ram_device_26_0) +(typeattribute rtc_device_26_0) +(roletype object_r rtc_device_26_0) +(typeattribute vold_device_26_0) +(roletype object_r vold_device_26_0) +(typeattribute console_device_26_0) +(roletype object_r console_device_26_0) +(typeattribute cpuctl_device_26_0) +(roletype object_r cpuctl_device_26_0) +(typeattribute fscklogs_26_0) +(roletype object_r fscklogs_26_0) +(typeattribute full_device_26_0) +(roletype object_r full_device_26_0) +(typeattribute gpu_device_26_0) +(roletype object_r gpu_device_26_0) +(typeattribute graphics_device_26_0) +(roletype object_r graphics_device_26_0) +(typeattribute hw_random_device_26_0) +(roletype object_r hw_random_device_26_0) +(typeattribute input_device_26_0) +(roletype object_r input_device_26_0) +(typeattribute kmem_device_26_0) +(roletype object_r kmem_device_26_0) +(typeattribute port_device_26_0) +(roletype object_r port_device_26_0) +(typeattribute log_device_26_0) +(roletype object_r log_device_26_0) +(typeattribute mtd_device_26_0) +(roletype object_r mtd_device_26_0) +(typeattribute mtp_device_26_0) +(roletype object_r mtp_device_26_0) +(typeattribute nfc_device_26_0) +(roletype object_r nfc_device_26_0) +(typeattribute ptmx_device_26_0) +(roletype object_r ptmx_device_26_0) +(typeattribute kmsg_device_26_0) +(roletype object_r kmsg_device_26_0) +(typeattribute null_device_26_0) +(roletype object_r null_device_26_0) +(typeattribute random_device_26_0) +(roletype object_r random_device_26_0) +(typeattribute sensors_device_26_0) +(roletype object_r sensors_device_26_0) +(typeattribute serial_device_26_0) +(roletype object_r serial_device_26_0) +(typeattribute socket_device_26_0) +(roletype object_r socket_device_26_0) +(typeattribute owntty_device_26_0) +(roletype object_r owntty_device_26_0) +(typeattribute tty_device_26_0) +(roletype object_r tty_device_26_0) +(typeattribute video_device_26_0) +(roletype object_r video_device_26_0) +(typeattribute vcs_device_26_0) +(roletype object_r vcs_device_26_0) +(typeattribute zero_device_26_0) +(roletype object_r zero_device_26_0) +(typeattribute fuse_device_26_0) +(roletype object_r fuse_device_26_0) +(typeattribute iio_device_26_0) +(roletype object_r iio_device_26_0) +(typeattribute ion_device_26_0) +(roletype object_r ion_device_26_0) +(typeattribute qtaguid_device_26_0) +(roletype object_r qtaguid_device_26_0) +(typeattribute watchdog_device_26_0) +(roletype object_r watchdog_device_26_0) +(typeattribute uhid_device_26_0) +(roletype object_r uhid_device_26_0) +(typeattribute uio_device_26_0) +(roletype object_r uio_device_26_0) +(typeattribute tun_device_26_0) +(roletype object_r tun_device_26_0) +(typeattribute usbaccessory_device_26_0) +(roletype object_r usbaccessory_device_26_0) +(typeattribute usb_device_26_0) +(roletype object_r usb_device_26_0) +(typeattribute properties_device_26_0) +(roletype object_r properties_device_26_0) +(typeattribute properties_serial_26_0) +(roletype object_r properties_serial_26_0) +(typeattribute i2c_device_26_0) +(roletype object_r i2c_device_26_0) +(typeattribute hci_attach_dev_26_0) +(roletype object_r hci_attach_dev_26_0) +(typeattribute rpmsg_device_26_0) +(roletype object_r rpmsg_device_26_0) +(typeattribute root_block_device_26_0) +(roletype object_r root_block_device_26_0) +(typeattribute frp_block_device_26_0) +(roletype object_r frp_block_device_26_0) +(typeattribute system_block_device_26_0) +(roletype object_r system_block_device_26_0) +(typeattribute recovery_block_device_26_0) +(roletype object_r recovery_block_device_26_0) +(typeattribute boot_block_device_26_0) +(roletype object_r boot_block_device_26_0) +(typeattribute userdata_block_device_26_0) +(roletype object_r userdata_block_device_26_0) +(typeattribute cache_block_device_26_0) +(roletype object_r cache_block_device_26_0) +(typeattribute swap_block_device_26_0) +(roletype object_r swap_block_device_26_0) +(typeattribute metadata_block_device_26_0) +(roletype object_r metadata_block_device_26_0) +(typeattribute misc_block_device_26_0) +(roletype object_r misc_block_device_26_0) +(typeattribute dex2oat_26_0) +(roletype object_r dex2oat_26_0) +(typeattribute dex2oat_exec_26_0) +(roletype object_r dex2oat_exec_26_0) +(typeattribute dhcp_26_0) +(roletype object_r dhcp_26_0) +(typeattribute dhcp_exec_26_0) +(roletype object_r dhcp_exec_26_0) +(typeattribute dnsmasq_26_0) +(roletype object_r dnsmasq_26_0) +(typeattribute dnsmasq_exec_26_0) +(roletype object_r dnsmasq_exec_26_0) +(typeattribute drmserver_26_0) +(roletype object_r drmserver_26_0) +(typeattribute drmserver_exec_26_0) +(roletype object_r drmserver_exec_26_0) +(typeattribute drmserver_socket_26_0) +(roletype object_r drmserver_socket_26_0) +(typeattribute dumpstate_26_0) +(roletype object_r dumpstate_26_0) +(typeattribute dumpstate_exec_26_0) +(roletype object_r dumpstate_exec_26_0) +(typeattribute ephemeral_app_26_0) +(roletype object_r ephemeral_app_26_0) +(typeattribute labeledfs_26_0) +(roletype object_r labeledfs_26_0) +(typeattribute pipefs_26_0) +(roletype object_r pipefs_26_0) +(typeattribute sockfs_26_0) +(roletype object_r sockfs_26_0) +(typeattribute rootfs_26_0) +(roletype object_r rootfs_26_0) +(typeattribute proc_26_0) +(roletype object_r proc_26_0) +(typeattribute proc_security_26_0) +(roletype object_r proc_security_26_0) +(typeattribute proc_drop_caches_26_0) +(roletype object_r proc_drop_caches_26_0) +(typeattribute proc_overcommit_memory_26_0) +(roletype object_r proc_overcommit_memory_26_0) +(typeattribute usermodehelper_26_0) +(roletype object_r usermodehelper_26_0) +(typeattribute qtaguid_proc_26_0) +(roletype object_r qtaguid_proc_26_0) +(typeattribute proc_bluetooth_writable_26_0) +(roletype object_r proc_bluetooth_writable_26_0) +(typeattribute proc_cpuinfo_26_0) +(roletype object_r proc_cpuinfo_26_0) +(typeattribute proc_interrupts_26_0) +(roletype object_r proc_interrupts_26_0) +(typeattribute proc_iomem_26_0) +(roletype object_r proc_iomem_26_0) +(typeattribute proc_meminfo_26_0) +(roletype object_r proc_meminfo_26_0) +(typeattribute proc_misc_26_0) +(roletype object_r proc_misc_26_0) +(typeattribute proc_modules_26_0) +(roletype object_r proc_modules_26_0) +(typeattribute proc_net_26_0) +(roletype object_r proc_net_26_0) +(typeattribute proc_perf_26_0) +(roletype object_r proc_perf_26_0) +(typeattribute proc_stat_26_0) +(roletype object_r proc_stat_26_0) +(typeattribute proc_sysrq_26_0) +(roletype object_r proc_sysrq_26_0) +(typeattribute proc_timer_26_0) +(roletype object_r proc_timer_26_0) +(typeattribute proc_tty_drivers_26_0) +(roletype object_r proc_tty_drivers_26_0) +(typeattribute proc_uid_cputime_showstat_26_0) +(roletype object_r proc_uid_cputime_showstat_26_0) +(typeattribute proc_uid_cputime_removeuid_26_0) +(roletype object_r proc_uid_cputime_removeuid_26_0) +(typeattribute proc_uid_io_stats_26_0) +(roletype object_r proc_uid_io_stats_26_0) +(typeattribute proc_uid_procstat_set_26_0) +(roletype object_r proc_uid_procstat_set_26_0) +(typeattribute proc_zoneinfo_26_0) +(roletype object_r proc_zoneinfo_26_0) +(typeattribute selinuxfs_26_0) +(roletype object_r selinuxfs_26_0) +(typeattribute cgroup_26_0) +(roletype object_r cgroup_26_0) +(typeattribute sysfs_26_0) +(roletype object_r sysfs_26_0) +(typeattribute sysfs_uio_26_0) +(roletype object_r sysfs_uio_26_0) +(typeattribute sysfs_batteryinfo_26_0) +(roletype object_r sysfs_batteryinfo_26_0) +(typeattribute sysfs_bluetooth_writable_26_0) +(roletype object_r sysfs_bluetooth_writable_26_0) +(typeattribute sysfs_leds_26_0) +(roletype object_r sysfs_leds_26_0) +(typeattribute sysfs_hwrandom_26_0) +(roletype object_r sysfs_hwrandom_26_0) +(typeattribute sysfs_nfc_power_writable_26_0) +(roletype object_r sysfs_nfc_power_writable_26_0) +(typeattribute sysfs_wake_lock_26_0) +(roletype object_r sysfs_wake_lock_26_0) +(typeattribute sysfs_mac_address_26_0) +(roletype object_r sysfs_mac_address_26_0) +(typeattribute sysfs_usb_26_0) +(roletype object_r sysfs_usb_26_0) +(typeattribute configfs_26_0) +(roletype object_r configfs_26_0) +(typeattribute sysfs_devices_system_cpu_26_0) +(roletype object_r sysfs_devices_system_cpu_26_0) +(typeattribute sysfs_lowmemorykiller_26_0) +(roletype object_r sysfs_lowmemorykiller_26_0) +(typeattribute sysfs_wlan_fwpath_26_0) +(roletype object_r sysfs_wlan_fwpath_26_0) +(typeattribute sysfs_vibrator_26_0) +(roletype object_r sysfs_vibrator_26_0) +(typeattribute sysfs_thermal_26_0) +(roletype object_r sysfs_thermal_26_0) +(typeattribute sysfs_zram_26_0) +(roletype object_r sysfs_zram_26_0) +(typeattribute sysfs_zram_uevent_26_0) +(roletype object_r sysfs_zram_uevent_26_0) +(typeattribute inotify_26_0) +(roletype object_r inotify_26_0) +(typeattribute devpts_26_0) +(roletype object_r devpts_26_0) +(typeattribute tmpfs_26_0) +(roletype object_r tmpfs_26_0) +(typeattribute shm_26_0) +(roletype object_r shm_26_0) +(typeattribute mqueue_26_0) +(roletype object_r mqueue_26_0) +(typeattribute fuse_26_0) +(roletype object_r fuse_26_0) +(typeattribute sdcardfs_26_0) +(roletype object_r sdcardfs_26_0) +(typeattribute vfat_26_0) +(roletype object_r vfat_26_0) +(typeattribute debugfs_26_0) +(roletype object_r debugfs_26_0) +(typeattribute debugfs_mmc_26_0) +(roletype object_r debugfs_mmc_26_0) +(typeattribute debugfs_trace_marker_26_0) +(roletype object_r debugfs_trace_marker_26_0) +(typeattribute debugfs_tracing_26_0) +(roletype object_r debugfs_tracing_26_0) +(typeattribute debugfs_tracing_instances_26_0) +(roletype object_r debugfs_tracing_instances_26_0) +(typeattribute debugfs_wifi_tracing_26_0) +(roletype object_r debugfs_wifi_tracing_26_0) +(typeattribute tracing_shell_writable_26_0) +(roletype object_r tracing_shell_writable_26_0) +(typeattribute tracing_shell_writable_debug_26_0) +(roletype object_r tracing_shell_writable_debug_26_0) +(typeattribute pstorefs_26_0) +(roletype object_r pstorefs_26_0) +(typeattribute functionfs_26_0) +(roletype object_r functionfs_26_0) +(typeattribute oemfs_26_0) +(roletype object_r oemfs_26_0) +(typeattribute usbfs_26_0) +(roletype object_r usbfs_26_0) +(typeattribute binfmt_miscfs_26_0) +(roletype object_r binfmt_miscfs_26_0) +(typeattribute app_fusefs_26_0) +(roletype object_r app_fusefs_26_0) +(typeattribute unlabeled_26_0) +(roletype object_r unlabeled_26_0) +(typeattribute system_file_26_0) +(roletype object_r system_file_26_0) +(typeattribute vendor_hal_file_26_0) +(roletype object_r vendor_hal_file_26_0) +(typeattribute vendor_file_26_0) +(roletype object_r vendor_file_26_0) +(typeattribute vendor_app_file_26_0) +(roletype object_r vendor_app_file_26_0) +(typeattribute vendor_configs_file_26_0) +(roletype object_r vendor_configs_file_26_0) +(typeattribute same_process_hal_file_26_0) +(roletype object_r same_process_hal_file_26_0) +(typeattribute vndk_sp_file_26_0) +(roletype object_r vndk_sp_file_26_0) +(typeattribute vendor_framework_file_26_0) +(roletype object_r vendor_framework_file_26_0) +(typeattribute vendor_overlay_file_26_0) +(roletype object_r vendor_overlay_file_26_0) +(typeattribute runtime_event_log_tags_file_26_0) +(roletype object_r runtime_event_log_tags_file_26_0) +(typeattribute logcat_exec_26_0) +(roletype object_r logcat_exec_26_0) +(typeattribute coredump_file_26_0) +(roletype object_r coredump_file_26_0) +(typeattribute system_data_file_26_0) +(roletype object_r system_data_file_26_0) +(typeattribute unencrypted_data_file_26_0) +(roletype object_r unencrypted_data_file_26_0) +(typeattribute install_data_file_26_0) +(roletype object_r install_data_file_26_0) +(typeattribute drm_data_file_26_0) +(roletype object_r drm_data_file_26_0) +(typeattribute adb_data_file_26_0) +(roletype object_r adb_data_file_26_0) +(typeattribute anr_data_file_26_0) +(roletype object_r anr_data_file_26_0) +(typeattribute tombstone_data_file_26_0) +(roletype object_r tombstone_data_file_26_0) +(typeattribute apk_data_file_26_0) +(roletype object_r apk_data_file_26_0) +(typeattribute apk_tmp_file_26_0) +(roletype object_r apk_tmp_file_26_0) +(typeattribute apk_private_data_file_26_0) +(roletype object_r apk_private_data_file_26_0) +(typeattribute apk_private_tmp_file_26_0) +(roletype object_r apk_private_tmp_file_26_0) +(typeattribute dalvikcache_data_file_26_0) +(roletype object_r dalvikcache_data_file_26_0) +(typeattribute ota_data_file_26_0) +(roletype object_r ota_data_file_26_0) +(typeattribute ota_package_file_26_0) +(roletype object_r ota_package_file_26_0) +(typeattribute user_profile_data_file_26_0) +(roletype object_r user_profile_data_file_26_0) +(typeattribute profman_dump_data_file_26_0) +(roletype object_r profman_dump_data_file_26_0) +(typeattribute resourcecache_data_file_26_0) +(roletype object_r resourcecache_data_file_26_0) +(typeattribute shell_data_file_26_0) +(roletype object_r shell_data_file_26_0) +(typeattribute property_data_file_26_0) +(roletype object_r property_data_file_26_0) +(typeattribute bootchart_data_file_26_0) +(roletype object_r bootchart_data_file_26_0) +(typeattribute heapdump_data_file_26_0) +(roletype object_r heapdump_data_file_26_0) +(typeattribute nativetest_data_file_26_0) +(roletype object_r nativetest_data_file_26_0) +(typeattribute ringtone_file_26_0) +(roletype object_r ringtone_file_26_0) +(typeattribute preloads_data_file_26_0) +(roletype object_r preloads_data_file_26_0) +(typeattribute preloads_media_file_26_0) +(roletype object_r preloads_media_file_26_0) +(typeattribute dhcp_data_file_26_0) +(roletype object_r dhcp_data_file_26_0) +(typeattribute mnt_media_rw_file_26_0) +(roletype object_r mnt_media_rw_file_26_0) +(typeattribute mnt_user_file_26_0) +(roletype object_r mnt_user_file_26_0) +(typeattribute mnt_expand_file_26_0) +(roletype object_r mnt_expand_file_26_0) +(typeattribute storage_file_26_0) +(roletype object_r storage_file_26_0) +(typeattribute mnt_media_rw_stub_file_26_0) +(roletype object_r mnt_media_rw_stub_file_26_0) +(typeattribute storage_stub_file_26_0) +(roletype object_r storage_stub_file_26_0) +(typeattribute postinstall_mnt_dir_26_0) +(roletype object_r postinstall_mnt_dir_26_0) +(typeattribute postinstall_file_26_0) +(roletype object_r postinstall_file_26_0) +(typeattribute adb_keys_file_26_0) +(roletype object_r adb_keys_file_26_0) +(typeattribute audio_data_file_26_0) +(roletype object_r audio_data_file_26_0) +(typeattribute audiohal_data_file_26_0) +(roletype object_r audiohal_data_file_26_0) +(typeattribute audioserver_data_file_26_0) +(roletype object_r audioserver_data_file_26_0) +(typeattribute bluetooth_data_file_26_0) +(roletype object_r bluetooth_data_file_26_0) +(typeattribute bluetooth_logs_data_file_26_0) +(roletype object_r bluetooth_logs_data_file_26_0) +(typeattribute bootstat_data_file_26_0) +(roletype object_r bootstat_data_file_26_0) +(typeattribute boottrace_data_file_26_0) +(roletype object_r boottrace_data_file_26_0) +(typeattribute camera_data_file_26_0) +(roletype object_r camera_data_file_26_0) +(typeattribute gatekeeper_data_file_26_0) +(roletype object_r gatekeeper_data_file_26_0) +(typeattribute incident_data_file_26_0) +(roletype object_r incident_data_file_26_0) +(typeattribute keychain_data_file_26_0) +(roletype object_r keychain_data_file_26_0) +(typeattribute keystore_data_file_26_0) +(roletype object_r keystore_data_file_26_0) +(typeattribute media_data_file_26_0) +(roletype object_r media_data_file_26_0) +(typeattribute media_rw_data_file_26_0) +(roletype object_r media_rw_data_file_26_0) +(typeattribute misc_user_data_file_26_0) +(roletype object_r misc_user_data_file_26_0) +(typeattribute net_data_file_26_0) +(roletype object_r net_data_file_26_0) +(typeattribute nfc_data_file_26_0) +(roletype object_r nfc_data_file_26_0) +(typeattribute radio_data_file_26_0) +(roletype object_r radio_data_file_26_0) +(typeattribute reboot_data_file_26_0) +(roletype object_r reboot_data_file_26_0) +(typeattribute recovery_data_file_26_0) +(roletype object_r recovery_data_file_26_0) +(typeattribute shared_relro_file_26_0) +(roletype object_r shared_relro_file_26_0) +(typeattribute systemkeys_data_file_26_0) +(roletype object_r systemkeys_data_file_26_0) +(typeattribute textclassifier_data_file_26_0) +(roletype object_r textclassifier_data_file_26_0) +(typeattribute vpn_data_file_26_0) +(roletype object_r vpn_data_file_26_0) +(typeattribute wifi_data_file_26_0) +(roletype object_r wifi_data_file_26_0) +(typeattribute zoneinfo_data_file_26_0) +(roletype object_r zoneinfo_data_file_26_0) +(typeattribute vold_data_file_26_0) +(roletype object_r vold_data_file_26_0) +(typeattribute perfprofd_data_file_26_0) +(roletype object_r perfprofd_data_file_26_0) +(typeattribute tee_data_file_26_0) +(roletype object_r tee_data_file_26_0) +(typeattribute update_engine_data_file_26_0) +(roletype object_r update_engine_data_file_26_0) +(typeattribute method_trace_data_file_26_0) +(roletype object_r method_trace_data_file_26_0) +(typeattribute app_data_file_26_0) +(roletype object_r app_data_file_26_0) +(typeattribute system_app_data_file_26_0) +(roletype object_r system_app_data_file_26_0) +(typeattribute cache_file_26_0) +(roletype object_r cache_file_26_0) +(typeattribute cache_backup_file_26_0) +(roletype object_r cache_backup_file_26_0) +(typeattribute cache_private_backup_file_26_0) +(roletype object_r cache_private_backup_file_26_0) +(typeattribute cache_recovery_file_26_0) +(roletype object_r cache_recovery_file_26_0) +(typeattribute efs_file_26_0) +(roletype object_r efs_file_26_0) +(typeattribute wallpaper_file_26_0) +(roletype object_r wallpaper_file_26_0) +(typeattribute shortcut_manager_icons_26_0) +(roletype object_r shortcut_manager_icons_26_0) +(typeattribute icon_file_26_0) +(roletype object_r icon_file_26_0) +(typeattribute asec_apk_file_26_0) +(roletype object_r asec_apk_file_26_0) +(typeattribute asec_public_file_26_0) +(roletype object_r asec_public_file_26_0) +(typeattribute asec_image_file_26_0) +(roletype object_r asec_image_file_26_0) +(typeattribute backup_data_file_26_0) +(roletype object_r backup_data_file_26_0) +(typeattribute bluetooth_efs_file_26_0) +(roletype object_r bluetooth_efs_file_26_0) +(typeattribute fingerprintd_data_file_26_0) +(roletype object_r fingerprintd_data_file_26_0) +(typeattribute app_fuse_file_26_0) +(roletype object_r app_fuse_file_26_0) +(typeattribute adbd_socket_26_0) +(roletype object_r adbd_socket_26_0) +(typeattribute bluetooth_socket_26_0) +(roletype object_r bluetooth_socket_26_0) +(typeattribute dnsproxyd_socket_26_0) +(roletype object_r dnsproxyd_socket_26_0) +(typeattribute dumpstate_socket_26_0) +(roletype object_r dumpstate_socket_26_0) +(typeattribute fwmarkd_socket_26_0) +(roletype object_r fwmarkd_socket_26_0) +(typeattribute lmkd_socket_26_0) +(roletype object_r lmkd_socket_26_0) +(typeattribute logd_socket_26_0) +(roletype object_r logd_socket_26_0) +(typeattribute logdr_socket_26_0) +(roletype object_r logdr_socket_26_0) +(typeattribute logdw_socket_26_0) +(roletype object_r logdw_socket_26_0) +(typeattribute mdns_socket_26_0) +(roletype object_r mdns_socket_26_0) +(typeattribute mdnsd_socket_26_0) +(roletype object_r mdnsd_socket_26_0) +(typeattribute misc_logd_file_26_0) +(roletype object_r misc_logd_file_26_0) +(typeattribute mtpd_socket_26_0) +(roletype object_r mtpd_socket_26_0) +(typeattribute netd_socket_26_0) +(roletype object_r netd_socket_26_0) +(typeattribute property_socket_26_0) +(roletype object_r property_socket_26_0) +(typeattribute racoon_socket_26_0) +(roletype object_r racoon_socket_26_0) +(typeattribute rild_socket_26_0) +(roletype object_r rild_socket_26_0) +(typeattribute rild_debug_socket_26_0) +(roletype object_r rild_debug_socket_26_0) +(typeattribute system_wpa_socket_26_0) +(roletype object_r system_wpa_socket_26_0) +(typeattribute system_ndebug_socket_26_0) +(roletype object_r system_ndebug_socket_26_0) +(typeattribute tombstoned_crash_socket_26_0) +(roletype object_r tombstoned_crash_socket_26_0) +(typeattribute tombstoned_intercept_socket_26_0) +(roletype object_r tombstoned_intercept_socket_26_0) +(typeattribute uncrypt_socket_26_0) +(roletype object_r uncrypt_socket_26_0) +(typeattribute vold_socket_26_0) +(roletype object_r vold_socket_26_0) +(typeattribute webview_zygote_socket_26_0) +(roletype object_r webview_zygote_socket_26_0) +(typeattribute wpa_socket_26_0) +(roletype object_r wpa_socket_26_0) +(typeattribute zygote_socket_26_0) +(roletype object_r zygote_socket_26_0) +(typeattribute gps_control_26_0) +(roletype object_r gps_control_26_0) +(typeattribute pdx_display_dir_26_0) +(roletype object_r pdx_display_dir_26_0) +(typeattribute pdx_performance_dir_26_0) +(roletype object_r pdx_performance_dir_26_0) +(typeattribute pdx_bufferhub_dir_26_0) +(roletype object_r pdx_bufferhub_dir_26_0) +(typeattribute pdx_display_client_endpoint_socket_26_0) +(roletype object_r pdx_display_client_endpoint_socket_26_0) +(typeattribute pdx_display_client_channel_socket_26_0) +(roletype object_r pdx_display_client_channel_socket_26_0) +(typeattribute pdx_display_manager_endpoint_socket_26_0) +(roletype object_r pdx_display_manager_endpoint_socket_26_0) +(typeattribute pdx_display_manager_channel_socket_26_0) +(roletype object_r pdx_display_manager_channel_socket_26_0) +(typeattribute pdx_display_screenshot_endpoint_socket_26_0) +(roletype object_r pdx_display_screenshot_endpoint_socket_26_0) +(typeattribute pdx_display_screenshot_channel_socket_26_0) +(roletype object_r pdx_display_screenshot_channel_socket_26_0) +(typeattribute pdx_display_vsync_endpoint_socket_26_0) +(roletype object_r pdx_display_vsync_endpoint_socket_26_0) +(typeattribute pdx_display_vsync_channel_socket_26_0) +(roletype object_r pdx_display_vsync_channel_socket_26_0) +(typeattribute pdx_performance_client_endpoint_socket_26_0) +(roletype object_r pdx_performance_client_endpoint_socket_26_0) +(typeattribute pdx_performance_client_channel_socket_26_0) +(roletype object_r pdx_performance_client_channel_socket_26_0) +(typeattribute pdx_bufferhub_client_endpoint_socket_26_0) +(roletype object_r pdx_bufferhub_client_endpoint_socket_26_0) +(typeattribute pdx_bufferhub_client_channel_socket_26_0) +(roletype object_r pdx_bufferhub_client_channel_socket_26_0) +(typeattribute file_contexts_file_26_0) +(roletype object_r file_contexts_file_26_0) +(typeattribute mac_perms_file_26_0) +(roletype object_r mac_perms_file_26_0) +(typeattribute property_contexts_file_26_0) +(roletype object_r property_contexts_file_26_0) +(typeattribute seapp_contexts_file_26_0) +(roletype object_r seapp_contexts_file_26_0) +(typeattribute sepolicy_file_26_0) +(roletype object_r sepolicy_file_26_0) +(typeattribute service_contexts_file_26_0) +(roletype object_r service_contexts_file_26_0) +(typeattribute hwservice_contexts_file_26_0) +(roletype object_r hwservice_contexts_file_26_0) +(typeattribute vndservice_contexts_file_26_0) +(roletype object_r vndservice_contexts_file_26_0) +(typeattribute fingerprintd_26_0) +(roletype object_r fingerprintd_26_0) +(typeattribute fingerprintd_exec_26_0) +(roletype object_r fingerprintd_exec_26_0) +(typeattribute fsck_26_0) +(roletype object_r fsck_26_0) +(typeattribute fsck_exec_26_0) +(roletype object_r fsck_exec_26_0) +(typeattribute fsck_untrusted_26_0) +(roletype object_r fsck_untrusted_26_0) +(typeattribute gatekeeperd_26_0) +(roletype object_r gatekeeperd_26_0) +(typeattribute gatekeeperd_exec_26_0) +(roletype object_r gatekeeperd_exec_26_0) +(typeattribute healthd_26_0) +(roletype object_r healthd_26_0) +(typeattribute healthd_exec_26_0) +(roletype object_r healthd_exec_26_0) +(typeattribute default_android_hwservice_26_0) +(roletype object_r default_android_hwservice_26_0) +(typeattribute fwk_display_hwservice_26_0) +(roletype object_r fwk_display_hwservice_26_0) +(typeattribute fwk_scheduler_hwservice_26_0) +(roletype object_r fwk_scheduler_hwservice_26_0) +(typeattribute fwk_sensor_hwservice_26_0) +(roletype object_r fwk_sensor_hwservice_26_0) +(typeattribute hal_audio_hwservice_26_0) +(roletype object_r hal_audio_hwservice_26_0) +(typeattribute hal_bluetooth_hwservice_26_0) +(roletype object_r hal_bluetooth_hwservice_26_0) +(typeattribute hal_bootctl_hwservice_26_0) +(roletype object_r hal_bootctl_hwservice_26_0) +(typeattribute hal_camera_hwservice_26_0) +(roletype object_r hal_camera_hwservice_26_0) +(typeattribute hal_configstore_ISurfaceFlingerConfigs_26_0) +(roletype object_r hal_configstore_ISurfaceFlingerConfigs_26_0) +(typeattribute hal_contexthub_hwservice_26_0) +(roletype object_r hal_contexthub_hwservice_26_0) +(typeattribute hal_drm_hwservice_26_0) +(roletype object_r hal_drm_hwservice_26_0) +(typeattribute hal_dumpstate_hwservice_26_0) +(roletype object_r hal_dumpstate_hwservice_26_0) +(typeattribute hal_fingerprint_hwservice_26_0) +(roletype object_r hal_fingerprint_hwservice_26_0) +(typeattribute hal_gatekeeper_hwservice_26_0) +(roletype object_r hal_gatekeeper_hwservice_26_0) +(typeattribute hal_gnss_hwservice_26_0) +(roletype object_r hal_gnss_hwservice_26_0) +(typeattribute hal_graphics_allocator_hwservice_26_0) +(roletype object_r hal_graphics_allocator_hwservice_26_0) +(typeattribute hal_graphics_composer_hwservice_26_0) +(roletype object_r hal_graphics_composer_hwservice_26_0) +(typeattribute hal_graphics_mapper_hwservice_26_0) +(roletype object_r hal_graphics_mapper_hwservice_26_0) +(typeattribute hal_health_hwservice_26_0) +(roletype object_r hal_health_hwservice_26_0) +(typeattribute hal_ir_hwservice_26_0) +(roletype object_r hal_ir_hwservice_26_0) +(typeattribute hal_keymaster_hwservice_26_0) +(roletype object_r hal_keymaster_hwservice_26_0) +(typeattribute hal_light_hwservice_26_0) +(roletype object_r hal_light_hwservice_26_0) +(typeattribute hal_memtrack_hwservice_26_0) +(roletype object_r hal_memtrack_hwservice_26_0) +(typeattribute hal_nfc_hwservice_26_0) +(roletype object_r hal_nfc_hwservice_26_0) +(typeattribute hal_oemlock_hwservice_26_0) +(roletype object_r hal_oemlock_hwservice_26_0) +(typeattribute hal_omx_hwservice_26_0) +(roletype object_r hal_omx_hwservice_26_0) +(typeattribute hal_power_hwservice_26_0) +(roletype object_r hal_power_hwservice_26_0) +(typeattribute hal_renderscript_hwservice_26_0) +(roletype object_r hal_renderscript_hwservice_26_0) +(typeattribute hal_sensors_hwservice_26_0) +(roletype object_r hal_sensors_hwservice_26_0) +(typeattribute hal_telephony_hwservice_26_0) +(roletype object_r hal_telephony_hwservice_26_0) +(typeattribute hal_thermal_hwservice_26_0) +(roletype object_r hal_thermal_hwservice_26_0) +(typeattribute hal_tv_cec_hwservice_26_0) +(roletype object_r hal_tv_cec_hwservice_26_0) +(typeattribute hal_tv_input_hwservice_26_0) +(roletype object_r hal_tv_input_hwservice_26_0) +(typeattribute hal_usb_hwservice_26_0) +(roletype object_r hal_usb_hwservice_26_0) +(typeattribute hal_vibrator_hwservice_26_0) +(roletype object_r hal_vibrator_hwservice_26_0) +(typeattribute hal_vr_hwservice_26_0) +(roletype object_r hal_vr_hwservice_26_0) +(typeattribute hal_weaver_hwservice_26_0) +(roletype object_r hal_weaver_hwservice_26_0) +(typeattribute hal_wifi_hwservice_26_0) +(roletype object_r hal_wifi_hwservice_26_0) +(typeattribute hal_wifi_supplicant_hwservice_26_0) +(roletype object_r hal_wifi_supplicant_hwservice_26_0) +(typeattribute hidl_allocator_hwservice_26_0) +(roletype object_r hidl_allocator_hwservice_26_0) +(typeattribute hidl_base_hwservice_26_0) +(roletype object_r hidl_base_hwservice_26_0) +(typeattribute hidl_manager_hwservice_26_0) +(roletype object_r hidl_manager_hwservice_26_0) +(typeattribute hidl_memory_hwservice_26_0) +(roletype object_r hidl_memory_hwservice_26_0) +(typeattribute hidl_token_hwservice_26_0) +(roletype object_r hidl_token_hwservice_26_0) +(typeattribute system_wifi_keystore_hwservice_26_0) +(roletype object_r system_wifi_keystore_hwservice_26_0) +(typeattribute hwservicemanager_26_0) +(roletype object_r hwservicemanager_26_0) +(typeattribute hwservicemanager_exec_26_0) +(roletype object_r hwservicemanager_exec_26_0) +(typeattribute idmap_26_0) +(roletype object_r idmap_26_0) +(typeattribute idmap_exec_26_0) +(roletype object_r idmap_exec_26_0) +(typeattribute incident_26_0) +(roletype object_r incident_26_0) +(typeattribute incidentd_26_0) +(roletype object_r incidentd_26_0) +(typeattribute init_26_0) +(roletype object_r init_26_0) +(typeattribute init_exec_26_0) +(roletype object_r init_exec_26_0) +(typeattribute inputflinger_26_0) +(roletype object_r inputflinger_26_0) +(typeattribute inputflinger_exec_26_0) +(roletype object_r inputflinger_exec_26_0) +(typeattribute install_recovery_26_0) +(roletype object_r install_recovery_26_0) +(typeattribute install_recovery_exec_26_0) +(roletype object_r install_recovery_exec_26_0) +(typeattribute installd_26_0) +(roletype object_r installd_26_0) +(typeattribute installd_exec_26_0) +(roletype object_r installd_exec_26_0) +(typeattribute isolated_app_26_0) +(roletype object_r isolated_app_26_0) +(typeattribute kernel_26_0) +(roletype object_r kernel_26_0) +(typeattribute keystore_26_0) +(roletype object_r keystore_26_0) +(typeattribute keystore_exec_26_0) +(roletype object_r keystore_exec_26_0) +(typeattribute lmkd_26_0) +(roletype object_r lmkd_26_0) +(typeattribute lmkd_exec_26_0) +(roletype object_r lmkd_exec_26_0) +(typeattribute logd_26_0) +(roletype object_r logd_26_0) +(typeattribute logd_exec_26_0) +(roletype object_r logd_exec_26_0) +(typeattribute logpersist_26_0) +(roletype object_r logpersist_26_0) +(typeattribute mdnsd_26_0) +(roletype object_r mdnsd_26_0) +(typeattribute mediacodec_26_0) +(roletype object_r mediacodec_26_0) +(typeattribute mediacodec_exec_26_0) +(roletype object_r mediacodec_exec_26_0) +(typeattribute mediadrmserver_26_0) +(roletype object_r mediadrmserver_26_0) +(typeattribute mediadrmserver_exec_26_0) +(roletype object_r mediadrmserver_exec_26_0) +(typeattribute mediaextractor_26_0) +(roletype object_r mediaextractor_26_0) +(typeattribute mediaextractor_exec_26_0) +(roletype object_r mediaextractor_exec_26_0) +(typeattribute mediametrics_26_0) +(roletype object_r mediametrics_26_0) +(typeattribute mediametrics_exec_26_0) +(roletype object_r mediametrics_exec_26_0) +(typeattribute mediaserver_26_0) +(roletype object_r mediaserver_26_0) +(typeattribute mediaserver_exec_26_0) +(roletype object_r mediaserver_exec_26_0) +(typeattribute modprobe_26_0) +(roletype object_r modprobe_26_0) +(typeattribute mtp_26_0) +(roletype object_r mtp_26_0) +(typeattribute mtp_exec_26_0) +(roletype object_r mtp_exec_26_0) +(typeattribute node_26_0) +(roletype object_r node_26_0) +(typeattribute netif_26_0) +(roletype object_r netif_26_0) +(typeattribute port_26_0) +(roletype object_r port_26_0) +(typeattribute netd_26_0) +(roletype object_r netd_26_0) +(typeattribute netd_exec_26_0) +(roletype object_r netd_exec_26_0) +(typeattribute netutils_wrapper_26_0) +(roletype object_r netutils_wrapper_26_0) +(typeattribute netutils_wrapper_exec_26_0) +(roletype object_r netutils_wrapper_exec_26_0) +(typeattribute nfc_26_0) +(roletype object_r nfc_26_0) +(typeattribute otapreopt_chroot_26_0) +(roletype object_r otapreopt_chroot_26_0) +(typeattribute otapreopt_chroot_exec_26_0) +(roletype object_r otapreopt_chroot_exec_26_0) +(typeattribute otapreopt_slot_26_0) +(roletype object_r otapreopt_slot_26_0) +(typeattribute otapreopt_slot_exec_26_0) +(roletype object_r otapreopt_slot_exec_26_0) +(typeattribute performanced_26_0) +(roletype object_r performanced_26_0) +(typeattribute performanced_exec_26_0) +(roletype object_r performanced_exec_26_0) +(typeattribute perfprofd_26_0) +(roletype object_r perfprofd_26_0) +(typeattribute perfprofd_exec_26_0) +(roletype object_r perfprofd_exec_26_0) +(typeattribute platform_app_26_0) +(roletype object_r platform_app_26_0) +(typeattribute postinstall_26_0) +(roletype object_r postinstall_26_0) +(typeattribute postinstall_dexopt_26_0) +(roletype object_r postinstall_dexopt_26_0) +(typeattribute ppp_26_0) +(roletype object_r ppp_26_0) +(typeattribute ppp_device_26_0) +(roletype object_r ppp_device_26_0) +(typeattribute ppp_exec_26_0) +(roletype object_r ppp_exec_26_0) +(typeattribute preopt2cachename_26_0) +(roletype object_r preopt2cachename_26_0) +(typeattribute preopt2cachename_exec_26_0) +(roletype object_r preopt2cachename_exec_26_0) +(typeattribute priv_app_26_0) +(roletype object_r priv_app_26_0) +(typeattribute profman_26_0) +(roletype object_r profman_26_0) +(typeattribute profman_exec_26_0) +(roletype object_r profman_exec_26_0) +(typeattribute asan_reboot_prop_26_0) +(roletype object_r asan_reboot_prop_26_0) +(typeattribute audio_prop_26_0) +(roletype object_r audio_prop_26_0) +(typeattribute boottime_prop_26_0) +(roletype object_r boottime_prop_26_0) +(typeattribute bluetooth_prop_26_0) +(roletype object_r bluetooth_prop_26_0) +(typeattribute config_prop_26_0) +(roletype object_r config_prop_26_0) +(typeattribute cppreopt_prop_26_0) +(roletype object_r cppreopt_prop_26_0) +(typeattribute ctl_bootanim_prop_26_0) +(roletype object_r ctl_bootanim_prop_26_0) +(typeattribute ctl_bugreport_prop_26_0) +(roletype object_r ctl_bugreport_prop_26_0) +(typeattribute ctl_console_prop_26_0) +(roletype object_r ctl_console_prop_26_0) +(typeattribute ctl_default_prop_26_0) +(roletype object_r ctl_default_prop_26_0) +(typeattribute ctl_dumpstate_prop_26_0) +(roletype object_r ctl_dumpstate_prop_26_0) +(typeattribute ctl_fuse_prop_26_0) +(roletype object_r ctl_fuse_prop_26_0) +(typeattribute ctl_mdnsd_prop_26_0) +(roletype object_r ctl_mdnsd_prop_26_0) +(typeattribute ctl_rildaemon_prop_26_0) +(roletype object_r ctl_rildaemon_prop_26_0) +(typeattribute dalvik_prop_26_0) +(roletype object_r dalvik_prop_26_0) +(typeattribute debuggerd_prop_26_0) +(roletype object_r debuggerd_prop_26_0) +(typeattribute debug_prop_26_0) +(roletype object_r debug_prop_26_0) +(typeattribute default_prop_26_0) +(roletype object_r default_prop_26_0) +(typeattribute device_logging_prop_26_0) +(roletype object_r device_logging_prop_26_0) +(typeattribute dhcp_prop_26_0) +(roletype object_r dhcp_prop_26_0) +(typeattribute dumpstate_options_prop_26_0) +(roletype object_r dumpstate_options_prop_26_0) +(typeattribute dumpstate_prop_26_0) +(roletype object_r dumpstate_prop_26_0) +(typeattribute ffs_prop_26_0) +(roletype object_r ffs_prop_26_0) +(typeattribute fingerprint_prop_26_0) +(roletype object_r fingerprint_prop_26_0) +(typeattribute firstboot_prop_26_0) +(roletype object_r firstboot_prop_26_0) +(typeattribute hwservicemanager_prop_26_0) +(roletype object_r hwservicemanager_prop_26_0) +(typeattribute logd_prop_26_0) +(roletype object_r logd_prop_26_0) +(typeattribute logpersistd_logging_prop_26_0) +(roletype object_r logpersistd_logging_prop_26_0) +(typeattribute log_prop_26_0) +(roletype object_r log_prop_26_0) +(typeattribute log_tag_prop_26_0) +(roletype object_r log_tag_prop_26_0) +(typeattribute mmc_prop_26_0) +(roletype object_r mmc_prop_26_0) +(typeattribute net_dns_prop_26_0) +(roletype object_r net_dns_prop_26_0) +(typeattribute net_radio_prop_26_0) +(roletype object_r net_radio_prop_26_0) +(typeattribute nfc_prop_26_0) +(roletype object_r nfc_prop_26_0) +(typeattribute overlay_prop_26_0) +(roletype object_r overlay_prop_26_0) +(typeattribute pan_result_prop_26_0) +(roletype object_r pan_result_prop_26_0) +(typeattribute persist_debug_prop_26_0) +(roletype object_r persist_debug_prop_26_0) +(typeattribute persistent_properties_ready_prop_26_0) +(roletype object_r persistent_properties_ready_prop_26_0) +(typeattribute powerctl_prop_26_0) +(roletype object_r powerctl_prop_26_0) +(typeattribute radio_prop_26_0) +(roletype object_r radio_prop_26_0) +(typeattribute restorecon_prop_26_0) +(roletype object_r restorecon_prop_26_0) +(typeattribute safemode_prop_26_0) +(roletype object_r safemode_prop_26_0) +(typeattribute serialno_prop_26_0) +(roletype object_r serialno_prop_26_0) +(typeattribute shell_prop_26_0) +(roletype object_r shell_prop_26_0) +(typeattribute system_prop_26_0) +(roletype object_r system_prop_26_0) +(typeattribute system_radio_prop_26_0) +(roletype object_r system_radio_prop_26_0) +(typeattribute vold_prop_26_0) +(roletype object_r vold_prop_26_0) +(typeattribute wifi_log_prop_26_0) +(roletype object_r wifi_log_prop_26_0) +(typeattribute wifi_prop_26_0) +(roletype object_r wifi_prop_26_0) +(typeattribute racoon_26_0) +(roletype object_r racoon_26_0) +(typeattribute racoon_exec_26_0) +(roletype object_r racoon_exec_26_0) +(typeattribute radio_26_0) +(roletype object_r radio_26_0) +(typeattribute recovery_26_0) +(roletype object_r recovery_26_0) +(typeattribute recovery_persist_26_0) +(roletype object_r recovery_persist_26_0) +(typeattribute recovery_persist_exec_26_0) +(roletype object_r recovery_persist_exec_26_0) +(typeattribute recovery_refresh_26_0) +(roletype object_r recovery_refresh_26_0) +(typeattribute recovery_refresh_exec_26_0) +(roletype object_r recovery_refresh_exec_26_0) +(typeattribute rild_26_0) +(roletype object_r rild_26_0) +(typeattribute runas_26_0) +(roletype object_r runas_26_0) +(typeattribute runas_exec_26_0) +(roletype object_r runas_exec_26_0) +(typeattribute sdcardd_26_0) +(roletype object_r sdcardd_26_0) +(typeattribute sdcardd_exec_26_0) +(roletype object_r sdcardd_exec_26_0) +(typeattribute audioserver_service_26_0) +(roletype object_r audioserver_service_26_0) +(typeattribute batteryproperties_service_26_0) +(roletype object_r batteryproperties_service_26_0) +(typeattribute bluetooth_service_26_0) +(roletype object_r bluetooth_service_26_0) +(typeattribute cameraserver_service_26_0) +(roletype object_r cameraserver_service_26_0) +(typeattribute default_android_service_26_0) +(roletype object_r default_android_service_26_0) +(typeattribute drmserver_service_26_0) +(roletype object_r drmserver_service_26_0) +(typeattribute dumpstate_service_26_0) +(roletype object_r dumpstate_service_26_0) +(typeattribute fingerprintd_service_26_0) +(roletype object_r fingerprintd_service_26_0) +(typeattribute hal_fingerprint_service_26_0) +(roletype object_r hal_fingerprint_service_26_0) +(typeattribute gatekeeper_service_26_0) +(roletype object_r gatekeeper_service_26_0) +(typeattribute gpu_service_26_0) +(roletype object_r gpu_service_26_0) +(typeattribute inputflinger_service_26_0) +(roletype object_r inputflinger_service_26_0) +(typeattribute incident_service_26_0) +(roletype object_r incident_service_26_0) +(typeattribute installd_service_26_0) +(roletype object_r installd_service_26_0) +(typeattribute keystore_service_26_0) +(roletype object_r keystore_service_26_0) +(typeattribute mediaserver_service_26_0) +(roletype object_r mediaserver_service_26_0) +(typeattribute mediametrics_service_26_0) +(roletype object_r mediametrics_service_26_0) +(typeattribute mediaextractor_service_26_0) +(roletype object_r mediaextractor_service_26_0) +(typeattribute mediacodec_service_26_0) +(roletype object_r mediacodec_service_26_0) +(typeattribute mediadrmserver_service_26_0) +(roletype object_r mediadrmserver_service_26_0) +(typeattribute mediacasserver_service_26_0) +(roletype object_r mediacasserver_service_26_0) +(typeattribute netd_service_26_0) +(roletype object_r netd_service_26_0) +(typeattribute nfc_service_26_0) +(roletype object_r nfc_service_26_0) +(typeattribute radio_service_26_0) +(roletype object_r radio_service_26_0) +(typeattribute storaged_service_26_0) +(roletype object_r storaged_service_26_0) +(typeattribute surfaceflinger_service_26_0) +(roletype object_r surfaceflinger_service_26_0) +(typeattribute system_app_service_26_0) +(roletype object_r system_app_service_26_0) +(typeattribute update_engine_service_26_0) +(roletype object_r update_engine_service_26_0) +(typeattribute virtual_touchpad_service_26_0) +(roletype object_r virtual_touchpad_service_26_0) +(typeattribute vr_hwc_service_26_0) +(roletype object_r vr_hwc_service_26_0) +(typeattribute accessibility_service_26_0) +(roletype object_r accessibility_service_26_0) +(typeattribute account_service_26_0) +(roletype object_r account_service_26_0) +(typeattribute activity_service_26_0) +(roletype object_r activity_service_26_0) +(typeattribute alarm_service_26_0) +(roletype object_r alarm_service_26_0) +(typeattribute appops_service_26_0) +(roletype object_r appops_service_26_0) +(typeattribute appwidget_service_26_0) +(roletype object_r appwidget_service_26_0) +(typeattribute assetatlas_service_26_0) +(roletype object_r assetatlas_service_26_0) +(typeattribute audio_service_26_0) +(roletype object_r audio_service_26_0) +(typeattribute autofill_service_26_0) +(roletype object_r autofill_service_26_0) +(typeattribute backup_service_26_0) +(roletype object_r backup_service_26_0) +(typeattribute batterystats_service_26_0) +(roletype object_r batterystats_service_26_0) +(typeattribute battery_service_26_0) +(roletype object_r battery_service_26_0) +(typeattribute bluetooth_manager_service_26_0) +(roletype object_r bluetooth_manager_service_26_0) +(typeattribute cameraproxy_service_26_0) +(roletype object_r cameraproxy_service_26_0) +(typeattribute clipboard_service_26_0) +(roletype object_r clipboard_service_26_0) +(typeattribute contexthub_service_26_0) +(roletype object_r contexthub_service_26_0) +(typeattribute IProxyService_service_26_0) +(roletype object_r IProxyService_service_26_0) +(typeattribute commontime_management_service_26_0) +(roletype object_r commontime_management_service_26_0) +(typeattribute companion_device_service_26_0) +(roletype object_r companion_device_service_26_0) +(typeattribute connectivity_service_26_0) +(roletype object_r connectivity_service_26_0) +(typeattribute connmetrics_service_26_0) +(roletype object_r connmetrics_service_26_0) +(typeattribute consumer_ir_service_26_0) +(roletype object_r consumer_ir_service_26_0) +(typeattribute content_service_26_0) +(roletype object_r content_service_26_0) +(typeattribute country_detector_service_26_0) +(roletype object_r country_detector_service_26_0) +(typeattribute coverage_service_26_0) +(roletype object_r coverage_service_26_0) +(typeattribute cpuinfo_service_26_0) +(roletype object_r cpuinfo_service_26_0) +(typeattribute dbinfo_service_26_0) +(roletype object_r dbinfo_service_26_0) +(typeattribute device_policy_service_26_0) +(roletype object_r device_policy_service_26_0) +(typeattribute deviceidle_service_26_0) +(roletype object_r deviceidle_service_26_0) +(typeattribute device_identifiers_service_26_0) +(roletype object_r device_identifiers_service_26_0) +(typeattribute devicestoragemonitor_service_26_0) +(roletype object_r devicestoragemonitor_service_26_0) +(typeattribute diskstats_service_26_0) +(roletype object_r diskstats_service_26_0) +(typeattribute display_service_26_0) +(roletype object_r display_service_26_0) +(typeattribute font_service_26_0) +(roletype object_r font_service_26_0) +(typeattribute netd_listener_service_26_0) +(roletype object_r netd_listener_service_26_0) +(typeattribute DockObserver_service_26_0) +(roletype object_r DockObserver_service_26_0) +(typeattribute dreams_service_26_0) +(roletype object_r dreams_service_26_0) +(typeattribute dropbox_service_26_0) +(roletype object_r dropbox_service_26_0) +(typeattribute ethernet_service_26_0) +(roletype object_r ethernet_service_26_0) +(typeattribute fingerprint_service_26_0) +(roletype object_r fingerprint_service_26_0) +(typeattribute gfxinfo_service_26_0) +(roletype object_r gfxinfo_service_26_0) +(typeattribute graphicsstats_service_26_0) +(roletype object_r graphicsstats_service_26_0) +(typeattribute hardware_service_26_0) +(roletype object_r hardware_service_26_0) +(typeattribute hardware_properties_service_26_0) +(roletype object_r hardware_properties_service_26_0) +(typeattribute hdmi_control_service_26_0) +(roletype object_r hdmi_control_service_26_0) +(typeattribute input_method_service_26_0) +(roletype object_r input_method_service_26_0) +(typeattribute input_service_26_0) +(roletype object_r input_service_26_0) +(typeattribute imms_service_26_0) +(roletype object_r imms_service_26_0) +(typeattribute ipsec_service_26_0) +(roletype object_r ipsec_service_26_0) +(typeattribute jobscheduler_service_26_0) +(roletype object_r jobscheduler_service_26_0) +(typeattribute launcherapps_service_26_0) +(roletype object_r launcherapps_service_26_0) +(typeattribute location_service_26_0) +(roletype object_r location_service_26_0) +(typeattribute lock_settings_service_26_0) +(roletype object_r lock_settings_service_26_0) +(typeattribute media_projection_service_26_0) +(roletype object_r media_projection_service_26_0) +(typeattribute media_router_service_26_0) +(roletype object_r media_router_service_26_0) +(typeattribute media_session_service_26_0) +(roletype object_r media_session_service_26_0) +(typeattribute meminfo_service_26_0) +(roletype object_r meminfo_service_26_0) +(typeattribute midi_service_26_0) +(roletype object_r midi_service_26_0) +(typeattribute mount_service_26_0) +(roletype object_r mount_service_26_0) +(typeattribute netpolicy_service_26_0) +(roletype object_r netpolicy_service_26_0) +(typeattribute netstats_service_26_0) +(roletype object_r netstats_service_26_0) +(typeattribute network_management_service_26_0) +(roletype object_r network_management_service_26_0) +(typeattribute network_score_service_26_0) +(roletype object_r network_score_service_26_0) +(typeattribute network_time_update_service_26_0) +(roletype object_r network_time_update_service_26_0) +(typeattribute notification_service_26_0) +(roletype object_r notification_service_26_0) +(typeattribute oem_lock_service_26_0) +(roletype object_r oem_lock_service_26_0) +(typeattribute otadexopt_service_26_0) +(roletype object_r otadexopt_service_26_0) +(typeattribute overlay_service_26_0) +(roletype object_r overlay_service_26_0) +(typeattribute package_service_26_0) +(roletype object_r package_service_26_0) +(typeattribute permission_service_26_0) +(roletype object_r permission_service_26_0) +(typeattribute persistent_data_block_service_26_0) +(roletype object_r persistent_data_block_service_26_0) +(typeattribute pinner_service_26_0) +(roletype object_r pinner_service_26_0) +(typeattribute power_service_26_0) +(roletype object_r power_service_26_0) +(typeattribute print_service_26_0) +(roletype object_r print_service_26_0) +(typeattribute processinfo_service_26_0) +(roletype object_r processinfo_service_26_0) +(typeattribute procstats_service_26_0) +(roletype object_r procstats_service_26_0) +(typeattribute recovery_service_26_0) +(roletype object_r recovery_service_26_0) +(typeattribute registry_service_26_0) +(roletype object_r registry_service_26_0) +(typeattribute restrictions_service_26_0) +(roletype object_r restrictions_service_26_0) +(typeattribute rttmanager_service_26_0) +(roletype object_r rttmanager_service_26_0) +(typeattribute samplingprofiler_service_26_0) +(roletype object_r samplingprofiler_service_26_0) +(typeattribute scheduling_policy_service_26_0) +(roletype object_r scheduling_policy_service_26_0) +(typeattribute search_service_26_0) +(roletype object_r search_service_26_0) +(typeattribute sec_key_att_app_id_provider_service_26_0) +(roletype object_r sec_key_att_app_id_provider_service_26_0) +(typeattribute sensorservice_service_26_0) +(roletype object_r sensorservice_service_26_0) +(typeattribute serial_service_26_0) +(roletype object_r serial_service_26_0) +(typeattribute servicediscovery_service_26_0) +(roletype object_r servicediscovery_service_26_0) +(typeattribute settings_service_26_0) +(roletype object_r settings_service_26_0) +(typeattribute shortcut_service_26_0) +(roletype object_r shortcut_service_26_0) +(typeattribute statusbar_service_26_0) +(roletype object_r statusbar_service_26_0) +(typeattribute storagestats_service_26_0) +(roletype object_r storagestats_service_26_0) +(typeattribute task_service_26_0) +(roletype object_r task_service_26_0) +(typeattribute textclassification_service_26_0) +(roletype object_r textclassification_service_26_0) +(typeattribute textservices_service_26_0) +(roletype object_r textservices_service_26_0) +(typeattribute telecom_service_26_0) +(roletype object_r telecom_service_26_0) +(typeattribute trust_service_26_0) +(roletype object_r trust_service_26_0) +(typeattribute tv_input_service_26_0) +(roletype object_r tv_input_service_26_0) +(typeattribute uimode_service_26_0) +(roletype object_r uimode_service_26_0) +(typeattribute updatelock_service_26_0) +(roletype object_r updatelock_service_26_0) +(typeattribute usagestats_service_26_0) +(roletype object_r usagestats_service_26_0) +(typeattribute usb_service_26_0) +(roletype object_r usb_service_26_0) +(typeattribute user_service_26_0) +(roletype object_r user_service_26_0) +(typeattribute vibrator_service_26_0) +(roletype object_r vibrator_service_26_0) +(typeattribute voiceinteraction_service_26_0) +(roletype object_r voiceinteraction_service_26_0) +(typeattribute vr_manager_service_26_0) +(roletype object_r vr_manager_service_26_0) +(typeattribute wallpaper_service_26_0) +(roletype object_r wallpaper_service_26_0) +(typeattribute webviewupdate_service_26_0) +(roletype object_r webviewupdate_service_26_0) +(typeattribute wifip2p_service_26_0) +(roletype object_r wifip2p_service_26_0) +(typeattribute wifiscanner_service_26_0) +(roletype object_r wifiscanner_service_26_0) +(typeattribute wifi_service_26_0) +(roletype object_r wifi_service_26_0) +(typeattribute wificond_service_26_0) +(roletype object_r wificond_service_26_0) +(typeattribute wifiaware_service_26_0) +(roletype object_r wifiaware_service_26_0) +(typeattribute window_service_26_0) +(roletype object_r window_service_26_0) +(typeattribute servicemanager_26_0) +(roletype object_r servicemanager_26_0) +(typeattribute servicemanager_exec_26_0) +(roletype object_r servicemanager_exec_26_0) +(typeattribute sgdisk_26_0) +(roletype object_r sgdisk_26_0) +(typeattribute sgdisk_exec_26_0) +(roletype object_r sgdisk_exec_26_0) +(typeattribute shared_relro_26_0) +(roletype object_r shared_relro_26_0) +(typeattribute shell_26_0) +(roletype object_r shell_26_0) +(typeattribute shell_exec_26_0) +(roletype object_r shell_exec_26_0) +(typeattribute slideshow_26_0) +(roletype object_r slideshow_26_0) +(typeattribute su_26_0) +(roletype object_r su_26_0) +(typeattribute su_exec_26_0) +(roletype object_r su_exec_26_0) +(typeattribute surfaceflinger_26_0) +(roletype object_r surfaceflinger_26_0) +(typeattribute system_app_26_0) +(roletype object_r system_app_26_0) +(typeattribute system_server_26_0) +(roletype object_r system_server_26_0) +(typeattribute tee_26_0) +(roletype object_r tee_26_0) +(typeattribute tee_device_26_0) +(roletype object_r tee_device_26_0) +(typeattribute tombstoned_26_0) +(roletype object_r tombstoned_26_0) +(typeattribute tombstoned_exec_26_0) +(roletype object_r tombstoned_exec_26_0) +(typeattribute toolbox_26_0) +(roletype object_r toolbox_26_0) +(typeattribute toolbox_exec_26_0) +(roletype object_r toolbox_exec_26_0) +(typeattribute tzdatacheck_26_0) +(roletype object_r tzdatacheck_26_0) +(typeattribute tzdatacheck_exec_26_0) +(roletype object_r tzdatacheck_exec_26_0) +(typeattribute ueventd_26_0) +(roletype object_r ueventd_26_0) +(typeattribute uncrypt_26_0) +(roletype object_r uncrypt_26_0) +(typeattribute uncrypt_exec_26_0) +(roletype object_r uncrypt_exec_26_0) +(typeattribute untrusted_app_26_0) +(roletype object_r untrusted_app_26_0) +(typeattribute untrusted_app_25_26_0) +(roletype object_r untrusted_app_25_26_0) +(typeattribute untrusted_v2_app_26_0) +(roletype object_r untrusted_v2_app_26_0) +(typeattribute update_engine_26_0) +(roletype object_r update_engine_26_0) +(typeattribute update_engine_exec_26_0) +(roletype object_r update_engine_exec_26_0) +(typeattribute update_verifier_26_0) +(roletype object_r update_verifier_26_0) +(typeattribute update_verifier_exec_26_0) +(roletype object_r update_verifier_exec_26_0) +(typeattribute vdc_26_0) +(roletype object_r vdc_26_0) +(typeattribute vdc_exec_26_0) +(roletype object_r vdc_exec_26_0) +(typeattribute vendor_shell_exec_26_0) +(roletype object_r vendor_shell_exec_26_0) +(typeattribute vendor_toolbox_exec_26_0) +(roletype object_r vendor_toolbox_exec_26_0) +(typeattribute virtual_touchpad_26_0) +(roletype object_r virtual_touchpad_26_0) +(typeattribute virtual_touchpad_exec_26_0) +(roletype object_r virtual_touchpad_exec_26_0) +(typeattribute default_android_vndservice_26_0) +(roletype object_r default_android_vndservice_26_0) +(typeattribute vndservicemanager_26_0) +(roletype object_r vndservicemanager_26_0) +(typeattribute vold_26_0) +(roletype object_r vold_26_0) +(typeattribute vold_exec_26_0) +(roletype object_r vold_exec_26_0) +(typeattribute vr_hwc_26_0) +(roletype object_r vr_hwc_26_0) +(typeattribute vr_hwc_exec_26_0) +(roletype object_r vr_hwc_exec_26_0) +(typeattribute watchdogd_26_0) +(roletype object_r watchdogd_26_0) +(typeattribute webview_zygote_26_0) +(roletype object_r webview_zygote_26_0) +(typeattribute webview_zygote_exec_26_0) +(roletype object_r webview_zygote_exec_26_0) +(typeattribute wificond_26_0) +(roletype object_r wificond_26_0) +(typeattribute wificond_exec_26_0) +(roletype object_r wificond_exec_26_0) +(typeattribute zygote_26_0) +(roletype object_r zygote_26_0) +(typeattribute zygote_exec_26_0) +(roletype object_r zygote_exec_26_0) +(type hostapd_socket) +(roletype object_r hostapd_socket) +(type hal_audio_default) +(roletype object_r hal_audio_default) +(type hal_audio_default_exec) +(roletype object_r hal_audio_default_exec) +(type hal_audio_default_tmpfs) +(roletype object_r hal_audio_default_tmpfs) +(type hal_bluetooth_default) +(roletype object_r hal_bluetooth_default) +(type hal_bluetooth_default_exec) +(roletype object_r hal_bluetooth_default_exec) +(type hal_bluetooth_default_tmpfs) +(roletype object_r hal_bluetooth_default_tmpfs) +(type hal_bootctl_default) +(roletype object_r hal_bootctl_default) +(type hal_bootctl_default_exec) +(roletype object_r hal_bootctl_default_exec) +(type hal_bootctl_default_tmpfs) +(roletype object_r hal_bootctl_default_tmpfs) +(type hal_camera_default) +(roletype object_r hal_camera_default) +(type hal_camera_default_exec) +(roletype object_r hal_camera_default_exec) +(type hal_camera_default_tmpfs) +(roletype object_r hal_camera_default_tmpfs) +(type hal_configstore_default) +(roletype object_r hal_configstore_default) +(type hal_configstore_default_exec) +(roletype object_r hal_configstore_default_exec) +(type hal_configstore_default_tmpfs) +(roletype object_r hal_configstore_default_tmpfs) +(type hal_contexthub_default) +(roletype object_r hal_contexthub_default) +(type hal_contexthub_default_exec) +(roletype object_r hal_contexthub_default_exec) +(type hal_contexthub_default_tmpfs) +(roletype object_r hal_contexthub_default_tmpfs) +(type hal_drm_default) +(roletype object_r hal_drm_default) +(type hal_drm_default_exec) +(roletype object_r hal_drm_default_exec) +(type hal_drm_default_tmpfs) +(roletype object_r hal_drm_default_tmpfs) +(type hal_dumpstate_default) +(roletype object_r hal_dumpstate_default) +(type hal_dumpstate_default_exec) +(roletype object_r hal_dumpstate_default_exec) +(type hal_dumpstate_default_tmpfs) +(roletype object_r hal_dumpstate_default_tmpfs) +(type hal_fingerprint_default) +(roletype object_r hal_fingerprint_default) +(type hal_fingerprint_default_exec) +(roletype object_r hal_fingerprint_default_exec) +(type hal_fingerprint_default_tmpfs) +(roletype object_r hal_fingerprint_default_tmpfs) +(type hal_gatekeeper_default) +(roletype object_r hal_gatekeeper_default) +(type hal_gatekeeper_default_exec) +(roletype object_r hal_gatekeeper_default_exec) +(type hal_gatekeeper_default_tmpfs) +(roletype object_r hal_gatekeeper_default_tmpfs) +(type hal_gnss_default) +(roletype object_r hal_gnss_default) +(type hal_gnss_default_exec) +(roletype object_r hal_gnss_default_exec) +(type hal_gnss_default_tmpfs) +(roletype object_r hal_gnss_default_tmpfs) +(type hal_graphics_allocator_default) +(roletype object_r hal_graphics_allocator_default) +(type hal_graphics_allocator_default_exec) +(roletype object_r hal_graphics_allocator_default_exec) +(type hal_graphics_allocator_default_tmpfs) +(roletype object_r hal_graphics_allocator_default_tmpfs) +(type hal_graphics_composer_default) +(roletype object_r hal_graphics_composer_default) +(type hal_graphics_composer_default_exec) +(roletype object_r hal_graphics_composer_default_exec) +(type hal_graphics_composer_default_tmpfs) +(roletype object_r hal_graphics_composer_default_tmpfs) +(type hal_health_default) +(roletype object_r hal_health_default) +(type hal_health_default_exec) +(roletype object_r hal_health_default_exec) +(type hal_health_default_tmpfs) +(roletype object_r hal_health_default_tmpfs) +(type hal_ir_default) +(roletype object_r hal_ir_default) +(type hal_ir_default_exec) +(roletype object_r hal_ir_default_exec) +(type hal_ir_default_tmpfs) +(roletype object_r hal_ir_default_tmpfs) +(type hal_keymaster_default) +(roletype object_r hal_keymaster_default) +(type hal_keymaster_default_exec) +(roletype object_r hal_keymaster_default_exec) +(type hal_keymaster_default_tmpfs) +(roletype object_r hal_keymaster_default_tmpfs) +(type hal_light_default) +(roletype object_r hal_light_default) +(type hal_light_default_exec) +(roletype object_r hal_light_default_exec) +(type hal_light_default_tmpfs) +(roletype object_r hal_light_default_tmpfs) +(type hal_memtrack_default) +(roletype object_r hal_memtrack_default) +(type hal_memtrack_default_exec) +(roletype object_r hal_memtrack_default_exec) +(type hal_memtrack_default_tmpfs) +(roletype object_r hal_memtrack_default_tmpfs) +(type hal_nfc_default) +(roletype object_r hal_nfc_default) +(type hal_nfc_default_exec) +(roletype object_r hal_nfc_default_exec) +(type hal_nfc_default_tmpfs) +(roletype object_r hal_nfc_default_tmpfs) +(type mediacodec_tmpfs) +(roletype object_r mediacodec_tmpfs) +(type hal_power_default) +(roletype object_r hal_power_default) +(type hal_power_default_exec) +(roletype object_r hal_power_default_exec) +(type hal_power_default_tmpfs) +(roletype object_r hal_power_default_tmpfs) +(type hal_sensors_default) +(roletype object_r hal_sensors_default) +(type hal_sensors_default_exec) +(roletype object_r hal_sensors_default_exec) +(type hal_sensors_default_tmpfs) +(roletype object_r hal_sensors_default_tmpfs) +(type hal_thermal_default) +(roletype object_r hal_thermal_default) +(type hal_thermal_default_exec) +(roletype object_r hal_thermal_default_exec) +(type hal_thermal_default_tmpfs) +(roletype object_r hal_thermal_default_tmpfs) +(type hal_tv_cec_default) +(roletype object_r hal_tv_cec_default) +(type hal_tv_cec_default_exec) +(roletype object_r hal_tv_cec_default_exec) +(type hal_tv_cec_default_tmpfs) +(roletype object_r hal_tv_cec_default_tmpfs) +(type hal_tv_input_default) +(roletype object_r hal_tv_input_default) +(type hal_tv_input_default_exec) +(roletype object_r hal_tv_input_default_exec) +(type hal_tv_input_default_tmpfs) +(roletype object_r hal_tv_input_default_tmpfs) +(type hal_usb_default) +(roletype object_r hal_usb_default) +(type hal_usb_default_exec) +(roletype object_r hal_usb_default_exec) +(type hal_usb_default_tmpfs) +(roletype object_r hal_usb_default_tmpfs) +(type hal_vibrator_default) +(roletype object_r hal_vibrator_default) +(type hal_vibrator_default_exec) +(roletype object_r hal_vibrator_default_exec) +(type hal_vibrator_default_tmpfs) +(roletype object_r hal_vibrator_default_tmpfs) +(type hal_vr_default) +(roletype object_r hal_vr_default) +(type hal_vr_default_exec) +(roletype object_r hal_vr_default_exec) +(type hal_vr_default_tmpfs) +(roletype object_r hal_vr_default_tmpfs) +(type hal_wifi_default) +(roletype object_r hal_wifi_default) +(type hal_wifi_default_exec) +(roletype object_r hal_wifi_default_exec) +(type hal_wifi_default_tmpfs) +(roletype object_r hal_wifi_default_tmpfs) +(type hal_wifi_offload_default) +(roletype object_r hal_wifi_offload_default) +(type hal_wifi_offload_default_exec) +(roletype object_r hal_wifi_offload_default_exec) +(type hal_wifi_offload_default_tmpfs) +(roletype object_r hal_wifi_offload_default_tmpfs) +(type hal_wifi_supplicant_default) +(roletype object_r hal_wifi_supplicant_default) +(type hal_wifi_supplicant_default_exec) +(roletype object_r hal_wifi_supplicant_default_exec) +(type hal_wifi_supplicant_default_tmpfs) +(roletype object_r hal_wifi_supplicant_default_tmpfs) +(type hostapd) +(roletype object_r hostapd) +(type hostapd_exec) +(roletype object_r hostapd_exec) +(type hostapd_tmpfs) +(roletype object_r hostapd_tmpfs) +(type rild_exec) +(roletype object_r rild_exec) +(type rild_tmpfs) +(roletype object_r rild_tmpfs) +(type tee_exec) +(roletype object_r tee_exec) +(type tee_tmpfs) +(roletype object_r tee_tmpfs) +(type vendor_modprobe) +(roletype object_r vendor_modprobe) +(type vndservicemanager_exec) +(roletype object_r vndservicemanager_exec) +(type vndservicemanager_tmpfs) +(roletype object_r vndservicemanager_tmpfs) +(allow bootanim_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 bootanim_26_0 (dir (search))) +(allow servicemanager_26_0 bootanim_26_0 (file (read open))) +(allow servicemanager_26_0 bootanim_26_0 (process (getattr))) +(allow bootanim_26_0 surfaceflinger_26_0 (binder (call transfer))) +(allow surfaceflinger_26_0 bootanim_26_0 (binder (transfer))) +(allow bootanim_26_0 surfaceflinger_26_0 (fd (use))) +(allow bootanim_26_0 audioserver_26_0 (binder (call transfer))) +(allow audioserver_26_0 bootanim_26_0 (binder (transfer))) +(allow bootanim_26_0 audioserver_26_0 (fd (use))) +(allow bootanim_26_0 hwservicemanager_26_0 (binder (call transfer))) +(allow hwservicemanager_26_0 bootanim_26_0 (binder (call transfer))) +(allow hwservicemanager_26_0 bootanim_26_0 (dir (search))) +(allow hwservicemanager_26_0 bootanim_26_0 (file (read open))) +(allow hwservicemanager_26_0 bootanim_26_0 (process (getattr))) +(allow bootanim_26_0 gpu_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow bootanim_26_0 oemfs_26_0 (dir (search))) +(allow bootanim_26_0 oemfs_26_0 (file (ioctl read getattr lock open))) +(allow bootanim_26_0 audio_device_26_0 (dir (ioctl read getattr lock search open))) +(allow bootanim_26_0 audio_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow bootanim_26_0 audioserver_service_26_0 (service_manager (find))) +(allow bootanim_26_0 surfaceflinger_service_26_0 (service_manager (find))) +(allow bootanim_26_0 ion_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow bootanim_26_0 hal_graphics_allocator (fd (use))) +(allow bootanim_26_0 hal_graphics_composer (fd (use))) +(allow bootanim_26_0 proc_26_0 (dir (ioctl read getattr lock search open))) +(allow bootanim_26_0 proc_26_0 (file (ioctl read getattr lock open))) +(allow bootanim_26_0 proc_26_0 (lnk_file (ioctl read getattr lock open))) +(allow bootanim_26_0 proc_meminfo_26_0 (file (ioctl read getattr lock open))) +(allow bootanim_26_0 sysfs_26_0 (dir (ioctl read getattr lock search open))) +(allow bootanim_26_0 sysfs_26_0 (file (ioctl read getattr lock open))) +(allow bootanim_26_0 sysfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow bootanim_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow bootanim_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow bootanim_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow bootanim_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow bootstat_26_0 runtime_event_log_tags_file_26_0 (file (ioctl read getattr lock open))) +(allow bootstat_26_0 bootstat_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow bootstat_26_0 bootstat_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow bootstat_26_0 proc_26_0 (dir (ioctl read getattr lock search open))) +(allow bootstat_26_0 proc_26_0 (file (ioctl read getattr lock open))) +(allow bootstat_26_0 proc_26_0 (lnk_file (ioctl read getattr lock open))) +(allow bootstat_26_0 boottime_prop_26_0 (file (ioctl read getattr lock open))) +(allow init_26_0 pdx_bufferhub_client_endpoint_socket_type (unix_stream_socket (create bind))) +(allow bufferhubd_26_0 pdx_bufferhub_client_endpoint_socket_type (unix_stream_socket (read write getattr setattr lock append listen accept getopt setopt shutdown))) +(allow bufferhubd_26_0 self (process (setsockcreate))) +(allow bufferhubd_26_0 pdx_bufferhub_client_channel_socket_type (unix_stream_socket (ioctl read write create getattr setattr lock append bind connect listen accept getopt setopt shutdown))) +(neverallow base_typeattr_1_26_0 pdx_bufferhub_client_endpoint_socket_type (unix_stream_socket (listen accept))) +(allow bufferhubd_26_0 pdx_performance_client_endpoint_dir_type (dir (ioctl read getattr lock search open))) +(allow bufferhubd_26_0 pdx_performance_client_endpoint_socket_type (sock_file (ioctl read write getattr lock append open))) +(allow bufferhubd_26_0 pdx_performance_client_endpoint_socket_type (unix_stream_socket (read write shutdown connectto))) +(allow bufferhubd_26_0 pdx_performance_client_channel_socket_type (unix_stream_socket (read write getattr setattr lock append getopt setopt shutdown))) +(allow bufferhubd_26_0 pdx_performance_client_server_type (fd (use))) +(allow pdx_performance_client_server_type bufferhubd_26_0 (fd (use))) +(allow bufferhubd_26_0 gpu_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow bufferhubd_26_0 ion_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow bufferhubd_26_0 mediacodec_26_0 (fd (use))) +(allow cameraserver_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 cameraserver_26_0 (dir (search))) +(allow servicemanager_26_0 cameraserver_26_0 (file (read open))) +(allow servicemanager_26_0 cameraserver_26_0 (process (getattr))) +(allow cameraserver_26_0 binderservicedomain (binder (call transfer))) +(allow binderservicedomain cameraserver_26_0 (binder (transfer))) +(allow cameraserver_26_0 binderservicedomain (fd (use))) +(allow cameraserver_26_0 appdomain (binder (call transfer))) +(allow appdomain cameraserver_26_0 (binder (transfer))) +(allow cameraserver_26_0 appdomain (fd (use))) +(allow cameraserver_26_0 ion_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow cameraserver_26_0 hal_graphics_composer (fd (use))) +(allow cameraserver_26_0 cameraserver_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_2_26_0 cameraserver_service_26_0 (service_manager (add))) +(neverallow cameraserver_26_0 unlabeled_26_0 (service_manager (add))) +(allow cameraserver_26_0 appops_service_26_0 (service_manager (find))) +(allow cameraserver_26_0 audioserver_service_26_0 (service_manager (find))) +(allow cameraserver_26_0 batterystats_service_26_0 (service_manager (find))) +(allow cameraserver_26_0 cameraproxy_service_26_0 (service_manager (find))) +(allow cameraserver_26_0 mediaserver_service_26_0 (service_manager (find))) +(allow cameraserver_26_0 processinfo_service_26_0 (service_manager (find))) +(allow cameraserver_26_0 scheduling_policy_service_26_0 (service_manager (find))) +(allow cameraserver_26_0 surfaceflinger_service_26_0 (service_manager (find))) +(allow cameraserver_26_0 hidl_token_hwservice_26_0 (hwservice_manager (find))) +(neverallow cameraserver_26_0 fs_type (file (execute_no_trans))) +(neverallow cameraserver_26_0 file_type (file (execute_no_trans))) +(neverallow cameraserver_26_0 domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect))) +(neverallow cameraserver_26_0 domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(neverallow cameraserver_26_0 domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(allow charger_26_0 kmsg_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow charger_26_0 sysfs_type (dir (ioctl read getattr lock search open))) +(allow charger_26_0 sysfs_type (file (ioctl read getattr lock open))) +(allow charger_26_0 sysfs_type (lnk_file (ioctl read getattr lock open))) +(allow charger_26_0 rootfs_26_0 (dir (ioctl read getattr lock search open))) +(allow charger_26_0 rootfs_26_0 (file (ioctl read getattr lock open))) +(allow charger_26_0 rootfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow charger_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow charger_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow charger_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow charger_26_0 self (capability (sys_tty_config))) +(allow charger_26_0 self (capability (sys_boot))) +(allow charger_26_0 sysfs_wake_lock_26_0 (file (ioctl read write getattr lock append open))) +(allow charger_26_0 self (capability2 (block_suspend))) +(allow charger_26_0 self (netlink_kobject_uevent_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow charger_26_0 sysfs_26_0 (file (write))) +(allow charger_26_0 sysfs_batteryinfo_26_0 (file (ioctl read getattr lock open))) +(allow charger_26_0 pstorefs_26_0 (dir (ioctl read getattr lock search open))) +(allow charger_26_0 pstorefs_26_0 (file (ioctl read getattr lock open))) +(allow charger_26_0 graphics_device_26_0 (dir (ioctl read getattr lock search open))) +(allow charger_26_0 graphics_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow charger_26_0 input_device_26_0 (dir (ioctl read getattr lock search open))) +(allow charger_26_0 input_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow charger_26_0 tty_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow charger_26_0 proc_sysrq_26_0 (file (ioctl read write getattr lock append open))) +(allow charger_26_0 property_socket_26_0 (sock_file (write))) +(allow charger_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow charger_26_0 system_prop_26_0 (property_service (set))) +(allow charger_26_0 system_prop_26_0 (file (ioctl read getattr lock open))) +(allow clatd_26_0 proc_net_26_0 (dir (ioctl read getattr lock search open))) +(allow clatd_26_0 proc_net_26_0 (file (ioctl read getattr lock open))) +(allow clatd_26_0 proc_net_26_0 (lnk_file (ioctl read getattr lock open))) +(allow clatd_26_0 netd_26_0 (fd (use))) +(allow clatd_26_0 netd_26_0 (fifo_file (read write))) +(allow clatd_26_0 netd_26_0 (netlink_kobject_uevent_socket (read write))) +(allow clatd_26_0 netd_26_0 (netlink_nflog_socket (read write))) +(allow clatd_26_0 netd_26_0 (netlink_route_socket (read write))) +(allow clatd_26_0 netd_26_0 (udp_socket (read write))) +(allow clatd_26_0 netd_26_0 (unix_stream_socket (read write))) +(allow clatd_26_0 netd_26_0 (unix_dgram_socket (read write))) +(allow clatd_26_0 self (capability (setgid setuid net_admin net_raw))) +(allow clatd_26_0 self (capability (ipc_lock))) +(allow clatd_26_0 self (netlink_route_socket (nlmsg_write))) +(allow clatd_26_0 self (rawip_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow clatd_26_0 self (packet_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow clatd_26_0 self (tun_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow clatd_26_0 tun_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow cppreopts_26_0 dalvikcache_data_file_26_0 (dir (write add_name remove_name search))) +(allow cppreopts_26_0 dalvikcache_data_file_26_0 (file (read write create getattr rename open))) +(allow cppreopts_26_0 shell_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow cppreopts_26_0 system_file_26_0 (dir (read open))) +(allow cppreopts_26_0 toolbox_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow crash_dump_26_0 base_typeattr_3_26_0 (process (sigchld sigkill sigstop signal ptrace))) +(dontaudit crash_dump_26_0 self (capability (sys_ptrace))) +(allow crash_dump_26_0 logd_26_0 (process (sigchld sigkill sigstop signal ptrace))) +(allow crash_dump_26_0 domain (fd (use))) +(allow crash_dump_26_0 domain (fifo_file (write append))) +(allow crash_dump_26_0 domain (dir (ioctl read getattr lock search open))) +(allow crash_dump_26_0 domain (file (ioctl read getattr lock open))) +(allow crash_dump_26_0 domain (lnk_file (ioctl read getattr lock open))) +(allow crash_dump_26_0 exec_type (file (ioctl read getattr lock open))) +(allow crash_dump_26_0 dalvikcache_data_file_26_0 (dir (getattr search))) +(allow crash_dump_26_0 dalvikcache_data_file_26_0 (file (ioctl read getattr lock open))) +(allow crash_dump_26_0 apk_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow crash_dump_26_0 apk_data_file_26_0 (file (ioctl read getattr lock open))) +(allow crash_dump_26_0 apk_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow crash_dump_26_0 vendor_file_26_0 (dir (ioctl read getattr lock search open))) +(allow crash_dump_26_0 same_process_hal_file_26_0 (dir (ioctl read getattr lock search open))) +(allow crash_dump_26_0 vendor_file_26_0 (file (ioctl read getattr lock open))) +(allow crash_dump_26_0 vendor_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow crash_dump_26_0 same_process_hal_file_26_0 (file (ioctl read getattr lock open))) +(allow crash_dump_26_0 same_process_hal_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow crash_dump_26_0 tombstoned_crash_socket_26_0 (sock_file (write))) +(allow crash_dump_26_0 tombstoned_26_0 (unix_stream_socket (connectto))) +(allow crash_dump_26_0 system_ndebug_socket_26_0 (sock_file (write))) +(allow crash_dump_26_0 system_server_26_0 (unix_stream_socket (connectto))) +(allow crash_dump_26_0 anr_data_file_26_0 (file (getattr append))) +(allow crash_dump_26_0 tombstone_data_file_26_0 (file (getattr append))) +(allow crash_dump_26_0 logcat_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow crash_dump_26_0 logdr_socket_26_0 (sock_file (write))) +(allow crash_dump_26_0 logd_26_0 (unix_stream_socket (connectto))) +(neverallow domain crash_dump_exec_26_0 (file (execute_no_trans))) +(allow dex2oat_26_0 apk_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow dex2oat_26_0 apk_data_file_26_0 (file (ioctl read getattr lock open))) +(allow dex2oat_26_0 apk_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow dex2oat_26_0 vendor_app_file_26_0 (dir (ioctl read getattr lock search open))) +(allow dex2oat_26_0 vendor_app_file_26_0 (file (ioctl read getattr lock open))) +(allow dex2oat_26_0 vendor_app_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow dex2oat_26_0 vendor_framework_file_26_0 (dir (getattr search))) +(allow dex2oat_26_0 vendor_framework_file_26_0 (file (read getattr open))) +(allow dex2oat_26_0 tmpfs_26_0 (file (read getattr))) +(allow dex2oat_26_0 dalvikcache_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow dex2oat_26_0 dalvikcache_data_file_26_0 (file (ioctl read getattr lock open))) +(allow dex2oat_26_0 dalvikcache_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow dex2oat_26_0 dalvikcache_data_file_26_0 (file (write))) +(allow dex2oat_26_0 dalvikcache_data_file_26_0 (lnk_file (read))) +(allow dex2oat_26_0 installd_26_0 (fd (use))) +(allow dex2oat_26_0 system_file_26_0 (file (lock))) +(allow dex2oat_26_0 asec_apk_file_26_0 (file (read))) +(allow dex2oat_26_0 unlabeled_26_0 (file (read))) +(allow dex2oat_26_0 oemfs_26_0 (file (read))) +(allow dex2oat_26_0 apk_tmp_file_26_0 (dir (search))) +(allow dex2oat_26_0 apk_tmp_file_26_0 (file (ioctl read getattr lock open))) +(allow dex2oat_26_0 user_profile_data_file_26_0 (file (read getattr lock))) +(allow dex2oat_26_0 app_data_file_26_0 (file (read write getattr lock))) +(allow dex2oat_26_0 postinstall_dexopt_26_0 (fd (use))) +(allow dex2oat_26_0 postinstall_file_26_0 (dir (getattr search))) +(allow dex2oat_26_0 postinstall_file_26_0 (filesystem (getattr))) +(allow dex2oat_26_0 postinstall_file_26_0 (lnk_file (read))) +(allow dex2oat_26_0 ota_data_file_26_0 (dir (ioctl read write getattr lock add_name search open))) +(allow dex2oat_26_0 ota_data_file_26_0 (file (ioctl read getattr lock open))) +(allow dex2oat_26_0 ota_data_file_26_0 (lnk_file (read create))) +(allow dex2oat_26_0 ota_data_file_26_0 (file (write create setattr lock append open))) +(neverallow dex2oat_26_0 app_data_file_26_0 (file (open))) +(neverallow dex2oat_26_0 app_data_file_26_0 (lnk_file (open))) +(neverallow dex2oat_26_0 app_data_file_26_0 (sock_file (open))) +(neverallow dex2oat_26_0 app_data_file_26_0 (fifo_file (open))) +(allow dhcp_26_0 cgroup_26_0 (dir (write create add_name))) +(allow dhcp_26_0 self (capability (setgid setuid net_bind_service net_admin net_raw))) +(allow dhcp_26_0 self (packet_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow dhcp_26_0 self (netlink_route_socket (nlmsg_write))) +(allow dhcp_26_0 shell_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow dhcp_26_0 system_file_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow dhcp_26_0 toolbox_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow dhcp_26_0 proc_net_26_0 (file (write))) +(allow dhcp_26_0 property_socket_26_0 (sock_file (write))) +(allow dhcp_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow dhcp_26_0 dhcp_prop_26_0 (property_service (set))) +(allow dhcp_26_0 dhcp_prop_26_0 (file (ioctl read getattr lock open))) +(allow dhcp_26_0 property_socket_26_0 (sock_file (write))) +(allow dhcp_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow dhcp_26_0 pan_result_prop_26_0 (property_service (set))) +(allow dhcp_26_0 pan_result_prop_26_0 (file (ioctl read getattr lock open))) +(allow dhcp_26_0 dhcp_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow dhcp_26_0 dhcp_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow dhcp_26_0 netd_26_0 (fd (use))) +(allow dhcp_26_0 netd_26_0 (fifo_file (ioctl read write getattr lock append open))) +(allow dhcp_26_0 netd_26_0 (udp_socket (read write))) +(allow dhcp_26_0 netd_26_0 (unix_stream_socket (read write))) +(allow dhcp_26_0 netd_26_0 (unix_dgram_socket (read write))) +(allow dhcp_26_0 netd_26_0 (netlink_route_socket (read write))) +(allow dhcp_26_0 netd_26_0 (netlink_nflog_socket (read write))) +(allow dhcp_26_0 netd_26_0 (netlink_kobject_uevent_socket (read write))) +(allow display_service_server fwk_display_hwservice_26_0 (hwservice_manager (add find))) +(allow display_service_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_4_26_0 fwk_display_hwservice_26_0 (hwservice_manager (add))) +(neverallow display_service_server unlabeled_26_0 (hwservice_manager (add))) +(allowx dnsmasq_26_0 self (ioctl udp_socket (0x6900 0x6902))) +(allowx dnsmasq_26_0 self (ioctl udp_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(allowx dnsmasq_26_0 self (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(allow dnsmasq_26_0 self (capability (dac_override))) +(allow dnsmasq_26_0 self (capability (setgid setuid net_bind_service net_admin net_raw))) +(allow dnsmasq_26_0 dhcp_data_file_26_0 (dir (write lock add_name remove_name search open))) +(allow dnsmasq_26_0 dhcp_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow dnsmasq_26_0 netd_26_0 (fd (use))) +(allow dnsmasq_26_0 netd_26_0 (fifo_file (read write))) +(allow dnsmasq_26_0 netd_26_0 (netlink_kobject_uevent_socket (read write))) +(allow dnsmasq_26_0 netd_26_0 (netlink_nflog_socket (read write))) +(allow dnsmasq_26_0 netd_26_0 (netlink_route_socket (read write))) +(allow dnsmasq_26_0 netd_26_0 (unix_stream_socket (read write))) +(allow dnsmasq_26_0 netd_26_0 (unix_dgram_socket (read write))) +(allow dnsmasq_26_0 netd_26_0 (udp_socket (read write))) +(allow domain init_26_0 (process (sigchld))) +(allow domain self (process (fork sigchld sigkill sigstop signull signal getsched setsched getsession getpgid setpgid getcap setcap getattr setrlimit))) +(allow domain self (fd (use))) +(allow domain proc_26_0 (dir (ioctl read getattr lock search open))) +(allow domain proc_net_26_0 (dir (search))) +(allow domain self (dir (ioctl read getattr lock search open))) +(allow domain self (file (ioctl read getattr lock open))) +(allow domain self (lnk_file (ioctl read getattr lock open))) +(allow domain self (file (ioctl read write getattr lock append open))) +(allow domain self (fifo_file (ioctl read write getattr lock append open))) +(allow domain self (unix_dgram_socket (ioctl read write create getattr setattr lock append bind connect getopt setopt shutdown sendto))) +(allow domain self (unix_stream_socket (ioctl read write create getattr setattr lock append bind connect listen accept getopt setopt shutdown connectto))) +(allow domain init_26_0 (fd (use))) +(allow domain su_26_0 (unix_stream_socket (connectto))) +(allow domain su_26_0 (fd (use))) +(allow domain su_26_0 (unix_stream_socket (read write getattr getopt shutdown))) +(allow base_typeattr_5_26_0 su_26_0 (binder (call transfer))) +(allow base_typeattr_5_26_0 su_26_0 (fd (use))) +(allow domain su_26_0 (fifo_file (write getattr))) +(allow domain su_26_0 (process (sigchld))) +(allow domain coredump_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow domain coredump_file_26_0 (dir (ioctl read write getattr lock add_name search open))) +(allow domain rootfs_26_0 (dir (search))) +(allow domain rootfs_26_0 (lnk_file (read getattr))) +(allow domain device_26_0 (dir (search))) +(allow domain dev_type (lnk_file (ioctl read getattr lock open))) +(allow domain devpts_26_0 (dir (search))) +(allow domain socket_device_26_0 (dir (ioctl read getattr lock search open))) +(allow domain owntty_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow domain null_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow domain zero_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow domain ashmem_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow base_typeattr_6_26_0 binder_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow base_typeattr_7_26_0 hwbinder_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow domain ptmx_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow domain alarm_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow domain random_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow domain properties_device_26_0 (dir (getattr search))) +(allow domain properties_serial_26_0 (file (ioctl read getattr lock open))) +(allow domain core_property_type (file (ioctl read getattr lock open))) +(allow domain log_property_type (file (ioctl read getattr lock open))) +(dontaudit domain property_type (file (audit_access))) +(allow domain property_contexts_file_26_0 (file (ioctl read getattr lock open))) +(allow domain init_26_0 (key (search))) +(allow domain vold_26_0 (key (search))) +(allow domain logdw_socket_26_0 (sock_file (write))) +(allow domain logd_26_0 (unix_dgram_socket (sendto))) +(allow domain pmsg_device_26_0 (chr_file (write lock append open))) +(allow domain system_file_26_0 (dir (getattr search))) +(allow domain system_file_26_0 (file (read getattr execute open))) +(allow domain system_file_26_0 (lnk_file (read getattr))) +(allow domain vendor_hal_file_26_0 (dir (ioctl read getattr lock search open))) +(allow domain same_process_hal_file_26_0 (dir (ioctl read getattr lock search open))) +(allow domain same_process_hal_file_26_0 (file (read getattr execute open))) +(allow domain vndk_sp_file_26_0 (dir (ioctl read getattr lock search open))) +(allow domain vndk_sp_file_26_0 (file (read getattr execute open))) +(allow domain vendor_configs_file_26_0 (dir (ioctl read getattr lock search open))) +(allow domain vendor_configs_file_26_0 (file (read getattr open))) +(allow domain vendor_file_26_0 (lnk_file (read getattr open))) +(allow domain vendor_file_26_0 (dir (getattr search))) +(allow base_typeattr_8_26_0 vendor_file_type (dir (ioctl read getattr lock search open))) +(allow base_typeattr_8_26_0 vendor_file_type (file (read getattr execute open))) +(allow base_typeattr_8_26_0 vendor_file_type (lnk_file (read getattr))) +(allow domain sysfs_26_0 (lnk_file (read))) +(allow domain zoneinfo_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow domain zoneinfo_data_file_26_0 (file (ioctl read getattr lock open))) +(allow domain zoneinfo_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow domain sysfs_devices_system_cpu_26_0 (dir (ioctl read getattr lock search open))) +(allow domain sysfs_devices_system_cpu_26_0 (file (ioctl read getattr lock open))) +(allow domain sysfs_devices_system_cpu_26_0 (lnk_file (ioctl read getattr lock open))) +(allow domain sysfs_usb_26_0 (dir (ioctl read getattr lock search open))) +(allow domain sysfs_usb_26_0 (file (ioctl read getattr lock open))) +(allow domain sysfs_usb_26_0 (lnk_file (ioctl read getattr lock open))) +(allow appdomain system_data_file_26_0 (dir (getattr))) +(allow coredomain system_data_file_26_0 (dir (getattr))) +(allow domain system_data_file_26_0 (dir (search))) +(allow domain proc_26_0 (lnk_file (read getattr))) +(allow domain proc_cpuinfo_26_0 (file (ioctl read getattr lock open))) +(allow domain proc_overcommit_memory_26_0 (file (ioctl read getattr lock open))) +(allow domain proc_perf_26_0 (file (ioctl read getattr lock open))) +(allow domain selinuxfs_26_0 (dir (search))) +(allow domain selinuxfs_26_0 (file (getattr))) +(allow domain sysfs_26_0 (dir (search))) +(allow domain selinuxfs_26_0 (filesystem (getattr))) +(allow domain cgroup_26_0 (dir (write search))) +(allow domain cgroup_26_0 (file (write lock append open))) +(allow domain debugfs_26_0 (dir (search))) +(allow domain debugfs_tracing_26_0 (dir (search))) +(allow domain debugfs_trace_marker_26_0 (file (write lock append open))) +(allow domain fs_type (filesystem (getattr))) +(allow domain fs_type (dir (getattr))) +(allowx domain domain (ioctl tcp_socket (((range 0x5401 0x5403)) 0x540b ((range 0x540e 0x5411)) ((range 0x5413 0x5414)) 0x5451))) +(allowx domain domain (ioctl udp_socket (((range 0x5401 0x5403)) 0x540b ((range 0x540e 0x5411)) ((range 0x5413 0x5414)) 0x5451))) +(allowx domain domain (ioctl rawip_socket (((range 0x5401 0x5403)) 0x540b ((range 0x540e 0x5411)) ((range 0x5413 0x5414)) 0x5451))) +(allowx domain domain (ioctl tcp_socket (((range 0x8906 0x8907)) 0x8910 ((range 0x8912 0x8913)) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942))) +(allowx domain domain (ioctl udp_socket (((range 0x8906 0x8907)) 0x8910 ((range 0x8912 0x8913)) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942))) +(allowx domain domain (ioctl rawip_socket (((range 0x8906 0x8907)) 0x8910 ((range 0x8912 0x8913)) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942))) +(allowx domain domain (ioctl tcp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f ((range 0x8b11 0x8b13)) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d))) +(allowx domain domain (ioctl udp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f ((range 0x8b11 0x8b13)) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d))) +(allowx domain domain (ioctl rawip_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f ((range 0x8b11 0x8b13)) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d))) +(allowx domain domain (ioctl unix_stream_socket (0x5401 0x5411 ((range 0x5413 0x5414)) 0x541b 0x5451))) +(allowx domain domain (ioctl unix_dgram_socket (0x5401 0x5411 ((range 0x5413 0x5414)) 0x541b 0x5451))) +(allowx domain devpts_26_0 (ioctl chr_file (((range 0x5401 0x5403)) 0x540b ((range 0x540e 0x5411)) ((range 0x5413 0x5414)) 0x5451))) +(allow base_typeattr_9_26_0 hwservice_manager_type (hwservice_manager (add find))) +(allow base_typeattr_9_26_0 vndservice_manager_type (service_manager (add find))) +(neverallowx domain domain (ioctl socket (0x0))) +(neverallowx domain domain (ioctl tcp_socket (0x0))) +(neverallowx domain domain (ioctl udp_socket (0x0))) +(neverallowx domain domain (ioctl rawip_socket (0x0))) +(neverallowx domain domain (ioctl netlink_socket (0x0))) +(neverallowx domain domain (ioctl packet_socket (0x0))) +(neverallowx domain domain (ioctl key_socket (0x0))) +(neverallowx domain domain (ioctl unix_stream_socket (0x0))) +(neverallowx domain domain (ioctl unix_dgram_socket (0x0))) +(neverallowx domain domain (ioctl netlink_route_socket (0x0))) +(neverallowx domain domain (ioctl netlink_tcpdiag_socket (0x0))) +(neverallowx domain domain (ioctl netlink_nflog_socket (0x0))) +(neverallowx domain domain (ioctl netlink_xfrm_socket (0x0))) +(neverallowx domain domain (ioctl netlink_selinux_socket (0x0))) +(neverallowx domain domain (ioctl netlink_audit_socket (0x0))) +(neverallowx domain domain (ioctl netlink_dnrt_socket (0x0))) +(neverallowx domain domain (ioctl netlink_kobject_uevent_socket (0x0))) +(neverallowx domain domain (ioctl appletalk_socket (0x0))) +(neverallowx domain domain (ioctl tun_socket (0x0))) +(neverallowx domain domain (ioctl netlink_iscsi_socket (0x0))) +(neverallowx domain domain (ioctl netlink_fib_lookup_socket (0x0))) +(neverallowx domain domain (ioctl netlink_connector_socket (0x0))) +(neverallowx domain domain (ioctl netlink_netfilter_socket (0x0))) +(neverallowx domain domain (ioctl netlink_generic_socket (0x0))) +(neverallowx domain domain (ioctl netlink_scsitransport_socket (0x0))) +(neverallowx domain domain (ioctl netlink_rdma_socket (0x0))) +(neverallowx domain domain (ioctl netlink_crypto_socket (0x0))) +(neverallowx domain domain (ioctl sctp_socket (0x0))) +(neverallowx domain domain (ioctl icmp_socket (0x0))) +(neverallowx domain domain (ioctl ax25_socket (0x0))) +(neverallowx domain domain (ioctl ipx_socket (0x0))) +(neverallowx domain domain (ioctl netrom_socket (0x0))) +(neverallowx domain domain (ioctl atmpvc_socket (0x0))) +(neverallowx domain domain (ioctl x25_socket (0x0))) +(neverallowx domain domain (ioctl rose_socket (0x0))) +(neverallowx domain domain (ioctl decnet_socket (0x0))) +(neverallowx domain domain (ioctl atmsvc_socket (0x0))) +(neverallowx domain domain (ioctl rds_socket (0x0))) +(neverallowx domain domain (ioctl irda_socket (0x0))) +(neverallowx domain domain (ioctl pppox_socket (0x0))) +(neverallowx domain domain (ioctl llc_socket (0x0))) +(neverallowx domain domain (ioctl can_socket (0x0))) +(neverallowx domain domain (ioctl tipc_socket (0x0))) +(neverallowx domain domain (ioctl bluetooth_socket (0x0))) +(neverallowx domain domain (ioctl iucv_socket (0x0))) +(neverallowx domain domain (ioctl rxrpc_socket (0x0))) +(neverallowx domain domain (ioctl isdn_socket (0x0))) +(neverallowx domain domain (ioctl phonet_socket (0x0))) +(neverallowx domain domain (ioctl ieee802154_socket (0x0))) +(neverallowx domain domain (ioctl caif_socket (0x0))) +(neverallowx domain domain (ioctl alg_socket (0x0))) +(neverallowx domain domain (ioctl nfc_socket (0x0))) +(neverallowx domain domain (ioctl vsock_socket (0x0))) +(neverallowx domain domain (ioctl kcm_socket (0x0))) +(neverallowx domain domain (ioctl qipcrtr_socket (0x0))) +(neverallowx base_typeattr_10_26_0 devpts_26_0 (ioctl chr_file (0x5412))) +(neverallow base_typeattr_11_26_0 unlabeled_26_0 (file (create))) +(neverallow base_typeattr_11_26_0 unlabeled_26_0 (dir (create))) +(neverallow base_typeattr_11_26_0 unlabeled_26_0 (lnk_file (create))) +(neverallow base_typeattr_11_26_0 unlabeled_26_0 (chr_file (create))) +(neverallow base_typeattr_11_26_0 unlabeled_26_0 (blk_file (create))) +(neverallow base_typeattr_11_26_0 unlabeled_26_0 (sock_file (create))) +(neverallow base_typeattr_11_26_0 unlabeled_26_0 (fifo_file (create))) +(neverallow base_typeattr_12_26_0 self (capability (mknod))) +(neverallow base_typeattr_13_26_0 self (capability (sys_rawio))) +(neverallow base_typeattr_10_26_0 self (memprotect (mmap_zero))) +(neverallow base_typeattr_10_26_0 self (capability2 (mac_override))) +(neverallow base_typeattr_14_26_0 self (capability2 (mac_admin))) +(neverallow base_typeattr_10_26_0 kernel_26_0 (security (load_policy))) +(neverallow base_typeattr_10_26_0 kernel_26_0 (security (setenforce))) +(neverallow base_typeattr_15_26_0 kernel_26_0 (security (setcheckreqprot))) +(neverallow base_typeattr_10_26_0 kernel_26_0 (security (setbool))) +(neverallow base_typeattr_5_26_0 kernel_26_0 (security (setsecparam))) +(neverallow base_typeattr_16_26_0 hw_random_device_26_0 (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(neverallow base_typeattr_10_26_0 base_typeattr_17_26_0 (file (entrypoint))) +(neverallow base_typeattr_18_26_0 kmem_device_26_0 (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(neverallow base_typeattr_10_26_0 kmem_device_26_0 (chr_file (ioctl read write lock relabelfrom append link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(neverallow base_typeattr_18_26_0 port_device_26_0 (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(neverallow base_typeattr_10_26_0 port_device_26_0 (chr_file (ioctl read write lock relabelfrom append link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(neverallow base_typeattr_5_26_0 usermodehelper_26_0 (file (write append))) +(neverallow base_typeattr_5_26_0 proc_security_26_0 (file (read write append open))) +(neverallow base_typeattr_10_26_0 init_26_0 (process (ptrace))) +(neverallow base_typeattr_10_26_0 init_26_0 (binder (impersonate call set_context_mgr transfer))) +(neverallow base_typeattr_19_26_0 block_device_26_0 (blk_file (read write open))) +(neverallow base_typeattr_10_26_0 base_typeattr_10_26_0 (chr_file (rename))) +(neverallow base_typeattr_10_26_0 base_typeattr_10_26_0 (blk_file (rename))) +(neverallow domain device_26_0 (chr_file (read write open))) +(neverallow base_typeattr_20_26_0 base_typeattr_21_26_0 (filesystem (mount remount relabelfrom relabelto))) +(neverallow base_typeattr_22_26_0 base_typeattr_23_26_0 (file (execute))) +(neverallow base_typeattr_24_26_0 base_typeattr_25_26_0 (file (execute))) +(neverallow domain cache_file_26_0 (file (execute))) +(neverallow domain cache_backup_file_26_0 (file (execute))) +(neverallow domain cache_private_backup_file_26_0 (file (execute))) +(neverallow domain cache_recovery_file_26_0 (file (execute))) +(neverallow base_typeattr_26_26_0 base_typeattr_27_26_0 (file (execute execute_no_trans))) +(neverallow base_typeattr_28_26_0 nativetest_data_file_26_0 (file (execute execute_no_trans))) +(neverallow base_typeattr_5_26_0 property_data_file_26_0 (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir))) +(neverallow base_typeattr_5_26_0 property_data_file_26_0 (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans))) +(neverallow base_typeattr_5_26_0 property_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans))) +(neverallow base_typeattr_5_26_0 properties_device_26_0 (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans))) +(neverallow base_typeattr_5_26_0 properties_serial_26_0 (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans))) +(neverallow base_typeattr_14_26_0 exec_type (file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 exec_type (dir (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 exec_type (lnk_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 exec_type (chr_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 exec_type (blk_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 exec_type (sock_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 exec_type (fifo_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 vendor_file_type (file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 vendor_file_type (dir (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 vendor_file_type (lnk_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 vendor_file_type (chr_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 vendor_file_type (blk_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 vendor_file_type (sock_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 vendor_file_type (fifo_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 system_file_26_0 (file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 system_file_26_0 (dir (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 system_file_26_0 (lnk_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 system_file_26_0 (chr_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 system_file_26_0 (blk_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 system_file_26_0 (sock_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_14_26_0 system_file_26_0 (fifo_file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_29_26_0 exec_type (file (relabelto))) +(neverallow base_typeattr_29_26_0 exec_type (dir (relabelto))) +(neverallow base_typeattr_29_26_0 exec_type (lnk_file (relabelto))) +(neverallow base_typeattr_29_26_0 exec_type (chr_file (relabelto))) +(neverallow base_typeattr_29_26_0 exec_type (blk_file (relabelto))) +(neverallow base_typeattr_29_26_0 exec_type (sock_file (relabelto))) +(neverallow base_typeattr_29_26_0 exec_type (fifo_file (relabelto))) +(neverallow base_typeattr_29_26_0 vendor_file_type (file (relabelto))) +(neverallow base_typeattr_29_26_0 vendor_file_type (dir (relabelto))) +(neverallow base_typeattr_29_26_0 vendor_file_type (lnk_file (relabelto))) +(neverallow base_typeattr_29_26_0 vendor_file_type (chr_file (relabelto))) +(neverallow base_typeattr_29_26_0 vendor_file_type (blk_file (relabelto))) +(neverallow base_typeattr_29_26_0 vendor_file_type (sock_file (relabelto))) +(neverallow base_typeattr_29_26_0 vendor_file_type (fifo_file (relabelto))) +(neverallow base_typeattr_29_26_0 system_file_26_0 (file (relabelto))) +(neverallow base_typeattr_29_26_0 system_file_26_0 (dir (relabelto))) +(neverallow base_typeattr_29_26_0 system_file_26_0 (lnk_file (relabelto))) +(neverallow base_typeattr_29_26_0 system_file_26_0 (chr_file (relabelto))) +(neverallow base_typeattr_29_26_0 system_file_26_0 (blk_file (relabelto))) +(neverallow base_typeattr_29_26_0 system_file_26_0 (sock_file (relabelto))) +(neverallow base_typeattr_29_26_0 system_file_26_0 (fifo_file (relabelto))) +(neverallow base_typeattr_10_26_0 exec_type (file (mounton))) +(neverallow base_typeattr_10_26_0 exec_type (dir (mounton))) +(neverallow base_typeattr_10_26_0 exec_type (lnk_file (mounton))) +(neverallow base_typeattr_10_26_0 exec_type (chr_file (mounton))) +(neverallow base_typeattr_10_26_0 exec_type (blk_file (mounton))) +(neverallow base_typeattr_10_26_0 exec_type (sock_file (mounton))) +(neverallow base_typeattr_10_26_0 exec_type (fifo_file (mounton))) +(neverallow base_typeattr_5_26_0 vendor_file_type (file (mounton))) +(neverallow base_typeattr_5_26_0 vendor_file_type (dir (mounton))) +(neverallow base_typeattr_5_26_0 vendor_file_type (lnk_file (mounton))) +(neverallow base_typeattr_5_26_0 vendor_file_type (chr_file (mounton))) +(neverallow base_typeattr_5_26_0 vendor_file_type (blk_file (mounton))) +(neverallow base_typeattr_5_26_0 vendor_file_type (sock_file (mounton))) +(neverallow base_typeattr_5_26_0 vendor_file_type (fifo_file (mounton))) +(neverallow base_typeattr_5_26_0 system_file_26_0 (file (mounton))) +(neverallow base_typeattr_5_26_0 system_file_26_0 (dir (mounton))) +(neverallow base_typeattr_5_26_0 system_file_26_0 (lnk_file (mounton))) +(neverallow base_typeattr_5_26_0 system_file_26_0 (chr_file (mounton))) +(neverallow base_typeattr_5_26_0 system_file_26_0 (blk_file (mounton))) +(neverallow base_typeattr_5_26_0 system_file_26_0 (sock_file (mounton))) +(neverallow base_typeattr_5_26_0 system_file_26_0 (fifo_file (mounton))) +(neverallow base_typeattr_10_26_0 rootfs_26_0 (file (write create setattr relabelto append unlink link rename))) +(neverallow base_typeattr_10_26_0 base_typeattr_30_26_0 (filesystem (relabelto))) +(neverallow base_typeattr_14_26_0 contextmount_type (file (write create setattr relabelfrom relabelto append unlink link rename))) +(neverallow base_typeattr_14_26_0 contextmount_type (dir (write create setattr relabelfrom relabelto append unlink link rename))) +(neverallow base_typeattr_14_26_0 contextmount_type (lnk_file (write create setattr relabelfrom relabelto append unlink link rename))) +(neverallow base_typeattr_14_26_0 contextmount_type (chr_file (write create setattr relabelfrom relabelto append unlink link rename))) +(neverallow base_typeattr_14_26_0 contextmount_type (blk_file (write create setattr relabelfrom relabelto append unlink link rename))) +(neverallow base_typeattr_14_26_0 contextmount_type (sock_file (write create setattr relabelfrom relabelto append unlink link rename))) +(neverallow base_typeattr_14_26_0 contextmount_type (fifo_file (write create setattr relabelfrom relabelto append unlink link rename))) +(neverallow base_typeattr_10_26_0 default_android_service_26_0 (service_manager (add))) +(neverallow base_typeattr_10_26_0 default_android_vndservice_26_0 (service_manager (add find))) +(neverallow base_typeattr_10_26_0 default_android_hwservice_26_0 (hwservice_manager (add find))) +(neverallow base_typeattr_10_26_0 hidl_base_hwservice_26_0 (hwservice_manager (find))) +(neverallow base_typeattr_5_26_0 default_prop_26_0 (property_service (set))) +(neverallow base_typeattr_5_26_0 mmc_prop_26_0 (property_service (set))) +(neverallow base_typeattr_31_26_0 serialno_prop_26_0 (file (ioctl read getattr lock open))) +(neverallow base_typeattr_32_26_0 firstboot_prop_26_0 (file (ioctl read getattr lock open))) +(neverallow base_typeattr_33_26_0 frp_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow base_typeattr_34_26_0 metadata_block_device_26_0 (blk_file (ioctl read write lock append link rename open))) +(neverallow base_typeattr_35_26_0 system_block_device_26_0 (blk_file (write))) +(neverallow base_typeattr_36_26_0 recovery_block_device_26_0 (blk_file (write))) +(neverallow base_typeattr_37_26_0 misc_block_device_26_0 (blk_file (ioctl read write lock relabelfrom append link rename open))) +(neverallow hal_bootctl unlabeled_26_0 (service_manager (list))) +(neverallow base_typeattr_38_26_0 base_typeattr_10_26_0 (binder (set_context_mgr))) +(neverallow servicemanager_26_0 hwbinder_device_26_0 (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow servicemanager_26_0 vndbinder_device_26_0 (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow hwservicemanager_26_0 binder_device_26_0 (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow hwservicemanager_26_0 vndbinder_device_26_0 (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow vndservicemanager_26_0 binder_device_26_0 (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow vndservicemanager_26_0 hwbinder_device_26_0 (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow base_typeattr_39_26_0 binder_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(neverallow base_typeattr_39_26_0 service_manager_type (service_manager (find))) +(neverallow base_typeattr_40_26_0 base_typeattr_41_26_0 (service_manager (find))) +(neverallow base_typeattr_39_26_0 servicemanager_26_0 (binder (call transfer))) +(neverallow binder_in_vendor_violators unlabeled_26_0 (service_manager (list))) +(neverallow base_typeattr_42_26_0 vndbinder_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(neverallow ueventd_26_0 vndbinder_device_26_0 (chr_file (ioctl read write append))) +(neverallow base_typeattr_43_26_0 vndservice_manager_type (service_manager (add find list))) +(neverallow base_typeattr_43_26_0 vndservicemanager_26_0 (binder (impersonate call set_context_mgr transfer))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (tcp_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (udp_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (rawip_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (packet_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (key_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (unix_stream_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (unix_dgram_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_route_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_tcpdiag_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_nflog_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_xfrm_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_selinux_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_audit_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_dnrt_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_kobject_uevent_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (appletalk_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (tun_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_iscsi_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_fib_lookup_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_connector_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_netfilter_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_generic_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_scsitransport_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_rdma_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netlink_crypto_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (sctp_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (icmp_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (ax25_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (ipx_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (netrom_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (atmpvc_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (x25_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (rose_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (decnet_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (atmsvc_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (rds_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (irda_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (pppox_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (llc_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (can_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (tipc_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (bluetooth_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (iucv_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (rxrpc_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (isdn_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (phonet_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (ieee802154_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (caif_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (alg_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (nfc_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (vsock_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (kcm_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (qipcrtr_socket (connect sendto))) +(neverallow base_typeattr_44_26_0 base_typeattr_45_26_0 (unix_stream_socket (connectto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (tcp_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (udp_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (rawip_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (packet_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (key_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (unix_stream_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (unix_dgram_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_route_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_tcpdiag_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_nflog_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_xfrm_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_selinux_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_audit_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_dnrt_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_kobject_uevent_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (appletalk_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (tun_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_iscsi_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_fib_lookup_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_connector_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_netfilter_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_generic_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_scsitransport_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_rdma_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netlink_crypto_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (sctp_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (icmp_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (ax25_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (ipx_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (netrom_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (atmpvc_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (x25_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (rose_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (decnet_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (atmsvc_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (rds_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (irda_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (pppox_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (llc_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (can_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (tipc_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (bluetooth_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (iucv_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (rxrpc_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (isdn_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (phonet_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (ieee802154_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (caif_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (alg_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (nfc_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (vsock_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (kcm_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (qipcrtr_socket (connect sendto))) +(neverallow base_typeattr_46_26_0 base_typeattr_47_26_0 (unix_stream_socket (connectto))) +(neverallow socket_between_core_and_vendor_violators unlabeled_26_0 (service_manager (list))) +(neverallow base_typeattr_48_26_0 netd_26_0 (socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (tcp_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (udp_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (rawip_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (packet_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (key_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (unix_stream_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (unix_dgram_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_route_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_tcpdiag_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_nflog_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_xfrm_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_selinux_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_audit_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_dnrt_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_kobject_uevent_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (appletalk_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (tun_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_iscsi_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_fib_lookup_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_connector_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_netfilter_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_generic_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_scsitransport_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_rdma_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netlink_crypto_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (sctp_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (icmp_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (ax25_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (ipx_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (netrom_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (atmpvc_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (x25_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (rose_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (decnet_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (atmsvc_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (rds_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (irda_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (pppox_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (llc_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (can_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (tipc_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (bluetooth_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (iucv_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (rxrpc_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (isdn_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (phonet_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (ieee802154_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (caif_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (alg_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (nfc_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (vsock_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (kcm_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (qipcrtr_socket (connect sendto))) +(neverallow base_typeattr_48_26_0 netd_26_0 (unix_stream_socket (connectto))) +(neverallow base_typeattr_46_26_0 core_data_file_type (sock_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_46_26_0 coredomain_socket (sock_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_46_26_0 unlabeled_26_0 (sock_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_40_26_0 base_typeattr_49_26_0 (sock_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow pdx_endpoint_socket_type unlabeled_26_0 (service_manager (list))) +(neverallow pdx_channel_socket_type unlabeled_26_0 (service_manager (list))) +(neverallow base_typeattr_50_26_0 base_typeattr_51_26_0 (sock_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_52_26_0 vendor_app_file_26_0 (dir (read getattr search open))) +(neverallow base_typeattr_52_26_0 vendor_app_file_26_0 (file (ioctl read getattr lock open))) +(neverallow base_typeattr_52_26_0 vendor_app_file_26_0 (lnk_file (ioctl read getattr lock open))) +(neverallow base_typeattr_53_26_0 vendor_overlay_file_26_0 (dir (read getattr search open))) +(neverallow base_typeattr_53_26_0 vendor_overlay_file_26_0 (file (ioctl read getattr lock open))) +(neverallow base_typeattr_53_26_0 vendor_overlay_file_26_0 (lnk_file (ioctl read getattr lock open))) +(neverallow base_typeattr_54_26_0 vendor_shell_exec_26_0 (file (execute execute_no_trans))) +(neverallow base_typeattr_55_26_0 base_typeattr_56_26_0 (file (execute execute_no_trans entrypoint))) +(neverallow vendor_executes_system_violators unlabeled_26_0 (service_manager (list))) +(neverallow base_typeattr_57_26_0 dalvikcache_data_file_26_0 (file (write create setattr relabelfrom append unlink link rename))) +(neverallow base_typeattr_57_26_0 dalvikcache_data_file_26_0 (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir))) +(neverallow base_typeattr_58_26_0 zygote_26_0 (unix_stream_socket (connectto))) +(neverallow base_typeattr_59_26_0 zygote_socket_26_0 (sock_file (write))) +(neverallow base_typeattr_60_26_0 webview_zygote_26_0 (unix_stream_socket (connectto))) +(neverallow base_typeattr_59_26_0 webview_zygote_socket_26_0 (sock_file (write))) +(neverallow base_typeattr_61_26_0 tombstoned_26_0 (unix_stream_socket (connectto))) +(neverallow base_typeattr_62_26_0 tombstoned_crash_socket_26_0 (sock_file (write))) +(neverallow base_typeattr_63_26_0 tombstoned_intercept_socket_26_0 (sock_file (write))) +(neverallow base_typeattr_10_26_0 base_typeattr_10_26_0 (sem (create destroy getattr setattr read write associate unix_read unix_write))) +(neverallow base_typeattr_10_26_0 base_typeattr_10_26_0 (msg (send receive))) +(neverallow base_typeattr_10_26_0 base_typeattr_10_26_0 (msgq (create destroy getattr setattr read write associate unix_read unix_write enqueue))) +(neverallow base_typeattr_10_26_0 base_typeattr_10_26_0 (shm (create destroy getattr setattr read write associate unix_read unix_write lock))) +(neverallow base_typeattr_10_26_0 dev_type (lnk_file (mounton))) +(neverallow base_typeattr_10_26_0 dev_type (sock_file (mounton))) +(neverallow base_typeattr_10_26_0 dev_type (fifo_file (mounton))) +(neverallow base_typeattr_10_26_0 fs_type (lnk_file (mounton))) +(neverallow base_typeattr_10_26_0 fs_type (sock_file (mounton))) +(neverallow base_typeattr_10_26_0 fs_type (fifo_file (mounton))) +(neverallow base_typeattr_10_26_0 file_type (lnk_file (mounton))) +(neverallow base_typeattr_10_26_0 file_type (sock_file (mounton))) +(neverallow base_typeattr_10_26_0 file_type (fifo_file (mounton))) +(neverallow base_typeattr_64_26_0 su_exec_26_0 (file (execute execute_no_trans))) +(neverallow base_typeattr_10_26_0 base_typeattr_65_26_0 (file (execmod))) +(neverallow base_typeattr_10_26_0 self (process (execstack execheap))) +(neverallow base_typeattr_66_26_0 file_type (file (execmod))) +(neverallow base_typeattr_5_26_0 proc_26_0 (file (mounton))) +(neverallow base_typeattr_5_26_0 proc_26_0 (dir (mounton))) +(neverallow base_typeattr_67_26_0 domain (process (transition dyntransition))) +(neverallow base_typeattr_68_26_0 system_data_file_26_0 (file (write create setattr relabelfrom append unlink link rename))) +(neverallow installd_26_0 system_data_file_26_0 (file (write create setattr relabelto append link rename execute quotaon mounton execute_no_trans entrypoint execmod audit_access))) +(neverallow base_typeattr_69_26_0 system_app_data_file_26_0 (file (create unlink open))) +(neverallow base_typeattr_69_26_0 system_app_data_file_26_0 (dir (create unlink open))) +(neverallow base_typeattr_69_26_0 system_app_data_file_26_0 (lnk_file (create unlink open))) +(neverallow base_typeattr_69_26_0 system_app_data_file_26_0 (chr_file (create unlink open))) +(neverallow base_typeattr_69_26_0 system_app_data_file_26_0 (blk_file (create unlink open))) +(neverallow base_typeattr_69_26_0 system_app_data_file_26_0 (sock_file (create unlink open))) +(neverallow base_typeattr_69_26_0 system_app_data_file_26_0 (fifo_file (create unlink open))) +(neverallow untrusted_app_all system_app_data_file_26_0 (file (create unlink open))) +(neverallow untrusted_app_all system_app_data_file_26_0 (dir (create unlink open))) +(neverallow untrusted_app_all system_app_data_file_26_0 (lnk_file (create unlink open))) +(neverallow untrusted_app_all system_app_data_file_26_0 (chr_file (create unlink open))) +(neverallow untrusted_app_all system_app_data_file_26_0 (blk_file (create unlink open))) +(neverallow untrusted_app_all system_app_data_file_26_0 (sock_file (create unlink open))) +(neverallow untrusted_app_all system_app_data_file_26_0 (fifo_file (create unlink open))) +(neverallow ephemeral_app_26_0 system_app_data_file_26_0 (file (create unlink open))) +(neverallow ephemeral_app_26_0 system_app_data_file_26_0 (dir (create unlink open))) +(neverallow ephemeral_app_26_0 system_app_data_file_26_0 (lnk_file (create unlink open))) +(neverallow ephemeral_app_26_0 system_app_data_file_26_0 (chr_file (create unlink open))) +(neverallow ephemeral_app_26_0 system_app_data_file_26_0 (blk_file (create unlink open))) +(neverallow ephemeral_app_26_0 system_app_data_file_26_0 (sock_file (create unlink open))) +(neverallow ephemeral_app_26_0 system_app_data_file_26_0 (fifo_file (create unlink open))) +(neverallow isolated_app_26_0 system_app_data_file_26_0 (file (create unlink open))) +(neverallow isolated_app_26_0 system_app_data_file_26_0 (dir (create unlink open))) +(neverallow isolated_app_26_0 system_app_data_file_26_0 (lnk_file (create unlink open))) +(neverallow isolated_app_26_0 system_app_data_file_26_0 (chr_file (create unlink open))) +(neverallow isolated_app_26_0 system_app_data_file_26_0 (blk_file (create unlink open))) +(neverallow isolated_app_26_0 system_app_data_file_26_0 (sock_file (create unlink open))) +(neverallow isolated_app_26_0 system_app_data_file_26_0 (fifo_file (create unlink open))) +(neverallow priv_app_26_0 system_app_data_file_26_0 (file (create unlink open))) +(neverallow priv_app_26_0 system_app_data_file_26_0 (dir (create unlink open))) +(neverallow priv_app_26_0 system_app_data_file_26_0 (lnk_file (create unlink open))) +(neverallow priv_app_26_0 system_app_data_file_26_0 (chr_file (create unlink open))) +(neverallow priv_app_26_0 system_app_data_file_26_0 (blk_file (create unlink open))) +(neverallow priv_app_26_0 system_app_data_file_26_0 (sock_file (create unlink open))) +(neverallow priv_app_26_0 system_app_data_file_26_0 (fifo_file (create unlink open))) +(neverallow base_typeattr_70_26_0 app_data_file_26_0 (file (create unlink))) +(neverallow base_typeattr_70_26_0 app_data_file_26_0 (dir (create unlink))) +(neverallow base_typeattr_70_26_0 app_data_file_26_0 (lnk_file (create unlink))) +(neverallow base_typeattr_70_26_0 app_data_file_26_0 (chr_file (create unlink))) +(neverallow base_typeattr_70_26_0 app_data_file_26_0 (blk_file (create unlink))) +(neverallow base_typeattr_70_26_0 app_data_file_26_0 (sock_file (create unlink))) +(neverallow base_typeattr_70_26_0 app_data_file_26_0 (fifo_file (create unlink))) +(neverallow base_typeattr_71_26_0 shell_26_0 (process (transition dyntransition))) +(neverallow base_typeattr_72_26_0 base_typeattr_73_26_0 (process (transition dyntransition))) +(neverallow base_typeattr_74_26_0 app_data_file_26_0 (lnk_file (read))) +(neverallow base_typeattr_75_26_0 shell_data_file_26_0 (lnk_file (read))) +(neverallow base_typeattr_76_26_0 shell_data_file_26_0 (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir))) +(neverallow base_typeattr_77_26_0 shell_data_file_26_0 (dir (search open))) +(neverallow base_typeattr_78_26_0 shell_data_file_26_0 (file (open))) +(neverallow base_typeattr_10_26_0 base_typeattr_79_26_0 (service_manager (list))) +(neverallow base_typeattr_10_26_0 base_typeattr_80_26_0 (hwservice_manager (list))) +(neverallow base_typeattr_10_26_0 domain (file (execute execute_no_trans entrypoint))) +(neverallow base_typeattr_81_26_0 debugfs_26_0 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow base_typeattr_82_26_0 profman_exec_26_0 (file (execute execute_no_trans))) +(neverallow base_typeattr_10_26_0 base_typeattr_83_26_0 (system (module_load))) +(neverallow base_typeattr_14_26_0 self (capability (setfcap))) +(neverallow domain crash_dump_26_0 (process (noatsecure))) +(neverallow base_typeattr_84_26_0 coredomain_hwservice (hwservice_manager (add))) +(neverallow base_typeattr_10_26_0 same_process_hwservice (hwservice_manager (add))) +(allow drmserver_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 drmserver_26_0 (dir (search))) +(allow servicemanager_26_0 drmserver_26_0 (file (read open))) +(allow servicemanager_26_0 drmserver_26_0 (process (getattr))) +(allow drmserver_26_0 system_server_26_0 (binder (call transfer))) +(allow system_server_26_0 drmserver_26_0 (binder (transfer))) +(allow drmserver_26_0 system_server_26_0 (fd (use))) +(allow drmserver_26_0 appdomain (binder (call transfer))) +(allow appdomain drmserver_26_0 (binder (transfer))) +(allow drmserver_26_0 appdomain (fd (use))) +(allow drmserver_26_0 system_server_26_0 (fd (use))) +(allow drmserver_26_0 mediaserver_26_0 (binder (call transfer))) +(allow mediaserver_26_0 drmserver_26_0 (binder (transfer))) +(allow drmserver_26_0 mediaserver_26_0 (fd (use))) +(allow drmserver_26_0 sdcard_type (dir (search))) +(allow drmserver_26_0 drm_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow drmserver_26_0 drm_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow drmserver_26_0 tee_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow drmserver_26_0 app_data_file_26_0 (file (read write getattr))) +(allow drmserver_26_0 sdcard_type (file (read write getattr))) +(allow drmserver_26_0 efs_file_26_0 (dir (ioctl read getattr lock search open))) +(allow drmserver_26_0 efs_file_26_0 (file (ioctl read getattr lock open))) +(allow drmserver_26_0 efs_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow drmserver_26_0 apk_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow drmserver_26_0 drmserver_socket_26_0 (sock_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow drmserver_26_0 apk_data_file_26_0 (sock_file (unlink))) +(allow drmserver_26_0 media_rw_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow drmserver_26_0 media_rw_data_file_26_0 (file (ioctl read getattr lock open))) +(allow drmserver_26_0 media_rw_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow drmserver_26_0 apk_data_file_26_0 (file (read getattr))) +(allow drmserver_26_0 asec_apk_file_26_0 (file (read getattr))) +(allow drmserver_26_0 ringtone_file_26_0 (file (read getattr))) +(allow drmserver_26_0 radio_data_file_26_0 (file (read getattr))) +(allow drmserver_26_0 oemfs_26_0 (dir (search))) +(allow drmserver_26_0 oemfs_26_0 (file (ioctl read getattr lock open))) +(allow drmserver_26_0 drmserver_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_85_26_0 drmserver_service_26_0 (service_manager (add))) +(neverallow drmserver_26_0 unlabeled_26_0 (service_manager (add))) +(allow drmserver_26_0 permission_service_26_0 (service_manager (find))) +(allow drmserver_26_0 selinuxfs_26_0 (dir (ioctl read getattr lock search open))) +(allow drmserver_26_0 selinuxfs_26_0 (file (ioctl read getattr lock open))) +(allow drmserver_26_0 selinuxfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow drmserver_26_0 selinuxfs_26_0 (file (write lock append open))) +(allow drmserver_26_0 kernel_26_0 (security (compute_av))) +(allow drmserver_26_0 self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(allow drmserver_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow drmserver_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow drmserver_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow drmserver_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow drmserver_26_0 system_file_26_0 (file (ioctl read getattr lock open))) +(allow drmserver_26_0 system_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow dumpstate_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 dumpstate_26_0 (dir (search))) +(allow servicemanager_26_0 dumpstate_26_0 (file (read open))) +(allow servicemanager_26_0 dumpstate_26_0 (process (getattr))) +(allow dumpstate_26_0 sysfs_wake_lock_26_0 (file (ioctl read write getattr lock append open))) +(allow dumpstate_26_0 self (capability2 (block_suspend))) +(allow dumpstate_26_0 self (capability (setgid setuid sys_resource))) +(allow dumpstate_26_0 domain (dir (ioctl read getattr lock search open))) +(allow dumpstate_26_0 domain (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 domain (lnk_file (ioctl read getattr lock open))) +(allow dumpstate_26_0 self (capability (kill net_admin net_raw))) +(allow dumpstate_26_0 system_file_26_0 (file (execute_no_trans))) +(allow dumpstate_26_0 toolbox_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow dumpstate_26_0 self (capability (chown dac_override fowner fsetid))) +(allow dumpstate_26_0 anr_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow dumpstate_26_0 anr_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow dumpstate_26_0 system_data_file_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 self (capability2 (syslog))) +(allow dumpstate_26_0 kernel_26_0 (system (syslog_read))) +(allow dumpstate_26_0 pstorefs_26_0 (dir (ioctl read getattr lock search open))) +(allow dumpstate_26_0 pstorefs_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 domain (process (getattr))) +(allow dumpstate_26_0 appdomain (process (signal))) +(allow dumpstate_26_0 system_server_26_0 (process (signal))) +(allow dumpstate_26_0 hal_audio_server (process (signal))) +(allow dumpstate_26_0 hal_bluetooth_server (process (signal))) +(allow dumpstate_26_0 hal_camera_server (process (signal))) +(allow dumpstate_26_0 hal_graphics_composer_server (process (signal))) +(allow dumpstate_26_0 hal_vr_server (process (signal))) +(allow dumpstate_26_0 audioserver_26_0 (process (signal))) +(allow dumpstate_26_0 cameraserver_26_0 (process (signal))) +(allow dumpstate_26_0 drmserver_26_0 (process (signal))) +(allow dumpstate_26_0 inputflinger_26_0 (process (signal))) +(allow dumpstate_26_0 mediacodec_26_0 (process (signal))) +(allow dumpstate_26_0 mediadrmserver_26_0 (process (signal))) +(allow dumpstate_26_0 mediaextractor_26_0 (process (signal))) +(allow dumpstate_26_0 mediaserver_26_0 (process (signal))) +(allow dumpstate_26_0 sdcardd_26_0 (process (signal))) +(allow dumpstate_26_0 surfaceflinger_26_0 (process (signal))) +(allow dumpstate_26_0 tombstoned_intercept_socket_26_0 (sock_file (write))) +(allow dumpstate_26_0 tombstoned_26_0 (unix_stream_socket (connectto))) +(allow dumpstate_26_0 sysfs_usb_26_0 (file (write lock append open))) +(allow dumpstate_26_0 qtaguid_proc_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 debugfs_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 block_device_26_0 (dir (getattr search))) +(allow dumpstate_26_0 storage_file_26_0 (dir (getattr search))) +(allow dumpstate_26_0 fuse_device_26_0 (chr_file (getattr))) +(allow dumpstate_26_0 dm_device_26_0 (blk_file (getattr))) +(allow dumpstate_26_0 cache_block_device_26_0 (blk_file (getattr))) +(allow dumpstate_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow dumpstate_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow dumpstate_26_0 binderservicedomain (binder (call transfer))) +(allow binderservicedomain dumpstate_26_0 (binder (transfer))) +(allow dumpstate_26_0 binderservicedomain (fd (use))) +(allow dumpstate_26_0 appdomain (binder (call transfer))) +(allow dumpstate_26_0 netd_26_0 (binder (call transfer))) +(allow dumpstate_26_0 wificond_26_0 (binder (call transfer))) +(allow appdomain dumpstate_26_0 (binder (transfer))) +(allow netd_26_0 dumpstate_26_0 (binder (transfer))) +(allow wificond_26_0 dumpstate_26_0 (binder (transfer))) +(allow dumpstate_26_0 appdomain (fd (use))) +(allow dumpstate_26_0 netd_26_0 (fd (use))) +(allow dumpstate_26_0 wificond_26_0 (fd (use))) +(allow dumpstate_26_0 sysfs_vibrator_26_0 (file (ioctl read write getattr lock append open))) +(allow dumpstate_26_0 self (capability (sys_ptrace))) +(allow dumpstate_26_0 shell_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow dumpstate_26_0 shell_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow dumpstate_26_0 shell_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow dumpstate_26_0 zygote_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow dumpstate_26_0 ashmem_device_26_0 (chr_file (execute))) +(allow dumpstate_26_0 self (process (execmem))) +(allow dumpstate_26_0 dalvikcache_data_file_26_0 (dir (getattr search))) +(allow dumpstate_26_0 dalvikcache_data_file_26_0 (file (ioctl read getattr lock execute open))) +(allow dumpstate_26_0 dalvikcache_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow dumpstate_26_0 bluetooth_data_file_26_0 (dir (search))) +(allow dumpstate_26_0 bluetooth_logs_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow dumpstate_26_0 bluetooth_logs_data_file_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 gpu_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow dumpstate_26_0 logcat_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow dumpstate_26_0 logdr_socket_26_0 (sock_file (write))) +(allow dumpstate_26_0 logd_26_0 (unix_stream_socket (connectto))) +(allow dumpstate_26_0 logd_socket_26_0 (sock_file (write))) +(allow dumpstate_26_0 logd_26_0 (unix_stream_socket (connectto))) +(allow dumpstate_26_0 runtime_event_log_tags_file_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 proc_net_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 net_data_file_26_0 (dir (search))) +(allow dumpstate_26_0 net_data_file_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 self (netlink_tcpdiag_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown nlmsg_read))) +(allow dumpstate_26_0 tombstone_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow dumpstate_26_0 tombstone_data_file_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 cache_recovery_file_26_0 (dir (ioctl read getattr lock search open))) +(allow dumpstate_26_0 cache_recovery_file_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 recovery_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow dumpstate_26_0 recovery_data_file_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 user_profile_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow dumpstate_26_0 user_profile_data_file_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 misc_logd_file_26_0 (dir (ioctl read getattr lock search open))) +(allow dumpstate_26_0 misc_logd_file_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 base_typeattr_86_26_0 (service_manager (find))) +(allow dumpstate_26_0 servicemanager_26_0 (service_manager (list))) +(allow dumpstate_26_0 hwservicemanager_26_0 (hwservice_manager (list))) +(allow dumpstate_26_0 devpts_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow dumpstate_26_0 property_socket_26_0 (sock_file (write))) +(allow dumpstate_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow dumpstate_26_0 dumpstate_prop_26_0 (property_service (set))) +(allow dumpstate_26_0 dumpstate_prop_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 property_socket_26_0 (sock_file (write))) +(allow dumpstate_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow dumpstate_26_0 dumpstate_options_prop_26_0 (property_service (set))) +(allow dumpstate_26_0 dumpstate_options_prop_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 serialno_prop_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 device_logging_prop_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 media_rw_data_file_26_0 (dir (getattr))) +(allow dumpstate_26_0 proc_interrupts_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 proc_zoneinfo_26_0 (file (ioctl read getattr lock open))) +(allow dumpstate_26_0 dumpstate_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_87_26_0 dumpstate_service_26_0 (service_manager (add))) +(neverallow dumpstate_26_0 unlabeled_26_0 (service_manager (add))) +(neverallow dumpstate_26_0 base_typeattr_10_26_0 (process (ptrace))) +(neverallow base_typeattr_88_26_0 dumpstate_service_26_0 (service_manager (find))) +(neverallow dumpstate_26_0 sysfs_26_0 (file (write create setattr relabelfrom append unlink link rename))) +(allow fs_type self (filesystem (associate))) +(allow sysfs_type sysfs_26_0 (filesystem (associate))) +(allow debugfs_type debugfs_26_0 (filesystem (associate))) +(allow debugfs_type debugfs_tracing_26_0 (filesystem (associate))) +(allow file_type labeledfs_26_0 (filesystem (associate))) +(allow file_type tmpfs_26_0 (filesystem (associate))) +(allow file_type rootfs_26_0 (filesystem (associate))) +(allow dev_type tmpfs_26_0 (filesystem (associate))) +(allow app_fuse_file_26_0 app_fusefs_26_0 (filesystem (associate))) +(allow postinstall_file_26_0 self (filesystem (associate))) +(neverallow fs_type file_type (filesystem (associate))) +(allow fingerprintd_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 fingerprintd_26_0 (dir (search))) +(allow servicemanager_26_0 fingerprintd_26_0 (file (read open))) +(allow servicemanager_26_0 fingerprintd_26_0 (process (getattr))) +(allow fingerprintd_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow fingerprintd_26_0 fingerprintd_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_89_26_0 fingerprintd_service_26_0 (service_manager (add))) +(neverallow fingerprintd_26_0 unlabeled_26_0 (service_manager (add))) +(allow fingerprintd_26_0 fingerprintd_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow fingerprintd_26_0 fingerprintd_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow keystore_26_0 fingerprintd_26_0 (dir (search))) +(allow keystore_26_0 fingerprintd_26_0 (file (read open))) +(allow keystore_26_0 fingerprintd_26_0 (process (getattr))) +(allow fingerprintd_26_0 keystore_service_26_0 (service_manager (find))) +(allow fingerprintd_26_0 keystore_26_0 (binder (call transfer))) +(allow keystore_26_0 fingerprintd_26_0 (binder (transfer))) +(allow fingerprintd_26_0 keystore_26_0 (fd (use))) +(allow fingerprintd_26_0 keystore_26_0 (keystore_key (add_auth))) +(allow fingerprintd_26_0 system_server_26_0 (binder (call transfer))) +(allow system_server_26_0 fingerprintd_26_0 (binder (transfer))) +(allow fingerprintd_26_0 system_server_26_0 (fd (use))) +(allow fingerprintd_26_0 permission_service_26_0 (service_manager (find))) +(allow fingerprintd_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow fingerprintd_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow fingerprintd_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow fingerprintd_26_0 sysfs_type (dir (ioctl read getattr lock search open))) +(allow fingerprintd_26_0 sysfs_type (file (ioctl read getattr lock open))) +(allow fingerprintd_26_0 sysfs_type (lnk_file (ioctl read getattr lock open))) +(allow fingerprintd_26_0 ion_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow fsck_26_0 tmpfs_26_0 (chr_file (ioctl read write))) +(allow fsck_26_0 devpts_26_0 (chr_file (ioctl read write getattr))) +(allow fsck_26_0 vold_26_0 (fd (use))) +(allow fsck_26_0 vold_26_0 (fifo_file (read write getattr))) +(allow fsck_26_0 block_device_26_0 (dir (search))) +(allow fsck_26_0 userdata_block_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow fsck_26_0 cache_block_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow fsck_26_0 dm_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow fsck_26_0 dev_type (blk_file (getattr))) +(allow fsck_26_0 proc_26_0 (dir (ioctl read getattr lock search open))) +(allow fsck_26_0 proc_26_0 (file (ioctl read getattr lock open))) +(allow fsck_26_0 proc_26_0 (lnk_file (ioctl read getattr lock open))) +(allow fsck_26_0 rootfs_26_0 (dir (ioctl read getattr lock search open))) +(neverallow fsck_26_0 vold_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_26_0 root_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_26_0 frp_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_26_0 system_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_26_0 recovery_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_26_0 boot_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_26_0 swap_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_26_0 metadata_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow base_typeattr_90_26_0 fsck_26_0 (process (transition))) +(neverallow base_typeattr_10_26_0 fsck_26_0 (process (dyntransition))) +(neverallow fsck_26_0 base_typeattr_91_26_0 (file (entrypoint))) +(allow fsck_untrusted_26_0 devpts_26_0 (chr_file (ioctl read write getattr))) +(allow fsck_untrusted_26_0 vold_26_0 (fd (use))) +(allow fsck_untrusted_26_0 vold_26_0 (fifo_file (read write getattr))) +(allow fsck_untrusted_26_0 block_device_26_0 (dir (search))) +(allow fsck_untrusted_26_0 vold_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow fsck_untrusted_26_0 proc_26_0 (dir (ioctl read getattr lock search open))) +(allow fsck_untrusted_26_0 proc_26_0 (file (ioctl read getattr lock open))) +(allow fsck_untrusted_26_0 proc_26_0 (lnk_file (ioctl read getattr lock open))) +(allow fsck_untrusted_26_0 dev_type (blk_file (getattr))) +(neverallow fsck_untrusted_26_0 dm_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_untrusted_26_0 root_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_untrusted_26_0 frp_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_untrusted_26_0 system_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_untrusted_26_0 recovery_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_untrusted_26_0 boot_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_untrusted_26_0 userdata_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_untrusted_26_0 cache_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_untrusted_26_0 swap_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow fsck_untrusted_26_0 metadata_block_device_26_0 (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(neverallow base_typeattr_92_26_0 fsck_untrusted_26_0 (process (transition))) +(neverallow base_typeattr_10_26_0 fsck_untrusted_26_0 (process (dyntransition))) +(neverallow fsck_untrusted_26_0 base_typeattr_91_26_0 (file (entrypoint))) +(allow gatekeeperd_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 gatekeeperd_26_0 (dir (search))) +(allow servicemanager_26_0 gatekeeperd_26_0 (file (read open))) +(allow servicemanager_26_0 gatekeeperd_26_0 (process (getattr))) +(allow gatekeeperd_26_0 tee_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow gatekeeperd_26_0 ion_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow gatekeeperd_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow gatekeeperd_26_0 gatekeeper_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_93_26_0 gatekeeper_service_26_0 (service_manager (add))) +(neverallow gatekeeperd_26_0 unlabeled_26_0 (service_manager (add))) +(allow keystore_26_0 gatekeeperd_26_0 (dir (search))) +(allow keystore_26_0 gatekeeperd_26_0 (file (read open))) +(allow keystore_26_0 gatekeeperd_26_0 (process (getattr))) +(allow gatekeeperd_26_0 keystore_service_26_0 (service_manager (find))) +(allow gatekeeperd_26_0 keystore_26_0 (binder (call transfer))) +(allow keystore_26_0 gatekeeperd_26_0 (binder (transfer))) +(allow gatekeeperd_26_0 keystore_26_0 (fd (use))) +(allow gatekeeperd_26_0 keystore_26_0 (keystore_key (add_auth))) +(allow gatekeeperd_26_0 system_server_26_0 (binder (call))) +(allow gatekeeperd_26_0 permission_service_26_0 (service_manager (find))) +(allow gatekeeperd_26_0 user_service_26_0 (service_manager (find))) +(allow gatekeeperd_26_0 gatekeeper_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow gatekeeperd_26_0 gatekeeper_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow gatekeeperd_26_0 hardware_properties_service_26_0 (service_manager (find))) +(allow gatekeeperd_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow gatekeeperd_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow gatekeeperd_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hal_allocator_client hal_allocator_server (binder (call transfer))) +(allow hal_allocator_server hal_allocator_client (binder (transfer))) +(allow hal_allocator_client hal_allocator_server (fd (use))) +(allow hal_allocator_server hidl_allocator_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_allocator_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_94_26_0 hidl_allocator_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_allocator_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_allocator_client hidl_allocator_hwservice_26_0 (hwservice_manager (find))) +(allow hal_allocator_client hidl_memory_hwservice_26_0 (hwservice_manager (find))) +(allow hal_audio_client hal_audio_server (binder (call transfer))) +(allow hal_audio_server hal_audio_client (binder (transfer))) +(allow hal_audio_client hal_audio_server (fd (use))) +(allow hal_audio_server hal_audio_client (binder (call transfer))) +(allow hal_audio_client hal_audio_server (binder (transfer))) +(allow hal_audio_server hal_audio_client (fd (use))) +(allow hal_audio_server hal_audio_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_audio_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_95_26_0 hal_audio_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_audio_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_audio_client hal_audio_hwservice_26_0 (hwservice_manager (find))) +(allow hal_audio ion_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow hal_audio audiohal_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow hal_audio audiohal_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow hal_audio proc_26_0 (dir (ioctl read getattr lock search open))) +(allow hal_audio proc_26_0 (file (ioctl read getattr lock open))) +(allow hal_audio proc_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hal_audio audio_device_26_0 (dir (ioctl read getattr lock search open))) +(allow hal_audio audio_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow hal_audio shell_26_0 (fd (use))) +(allow hal_audio shell_26_0 (fifo_file (write))) +(allow hal_audio dumpstate_26_0 (fd (use))) +(allow hal_audio dumpstate_26_0 (fifo_file (write))) +(neverallow hal_audio fs_type (file (execute_no_trans))) +(neverallow hal_audio file_type (file (execute_no_trans))) +(neverallow hal_audio domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect))) +(neverallow hal_audio domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(neverallow hal_audio domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(neverallow base_typeattr_96_26_0 audio_device_26_0 (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(allow hal_bluetooth_client hal_bluetooth_server (binder (call transfer))) +(allow hal_bluetooth_server hal_bluetooth_client (binder (transfer))) +(allow hal_bluetooth_client hal_bluetooth_server (fd (use))) +(allow hal_bluetooth_server hal_bluetooth_client (binder (call transfer))) +(allow hal_bluetooth_client hal_bluetooth_server (binder (transfer))) +(allow hal_bluetooth_server hal_bluetooth_client (fd (use))) +(allow hal_bluetooth_server hal_bluetooth_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_bluetooth_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_97_26_0 hal_bluetooth_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_bluetooth_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_bluetooth_client hal_bluetooth_hwservice_26_0 (hwservice_manager (find))) +(allow hal_bluetooth sysfs_wake_lock_26_0 (file (ioctl read write getattr lock append open))) +(allow hal_bluetooth self (capability2 (block_suspend))) +(allow hal_bluetooth self (capability (net_admin))) +(allow hal_bluetooth bluetooth_efs_file_26_0 (dir (ioctl read getattr lock search open))) +(allow hal_bluetooth bluetooth_efs_file_26_0 (file (ioctl read getattr lock open))) +(allow hal_bluetooth bluetooth_efs_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hal_bluetooth uhid_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow hal_bluetooth hci_attach_dev_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow hal_bluetooth sysfs_type (dir (ioctl read getattr lock search open))) +(allow hal_bluetooth sysfs_type (file (ioctl read getattr lock open))) +(allow hal_bluetooth sysfs_type (lnk_file (ioctl read getattr lock open))) +(allow hal_bluetooth sysfs_bluetooth_writable_26_0 (file (ioctl read write getattr lock append open))) +(allow hal_bluetooth self (capability2 (wake_alarm))) +(allow hal_bluetooth property_socket_26_0 (sock_file (write))) +(allow hal_bluetooth init_26_0 (unix_stream_socket (connectto))) +(allow hal_bluetooth bluetooth_prop_26_0 (property_service (set))) +(allow hal_bluetooth bluetooth_prop_26_0 (file (ioctl read getattr lock open))) +(allow hal_bluetooth proc_bluetooth_writable_26_0 (file (ioctl read write getattr lock append open))) +(allow hal_bluetooth self (capability (sys_nice))) +(allow hal_bootctl_client hal_bootctl_server (binder (call transfer))) +(allow hal_bootctl_server hal_bootctl_client (binder (transfer))) +(allow hal_bootctl_client hal_bootctl_server (fd (use))) +(allow hal_bootctl_server hal_bootctl_client (binder (call transfer))) +(allow hal_bootctl_client hal_bootctl_server (binder (transfer))) +(allow hal_bootctl_server hal_bootctl_client (fd (use))) +(allow hal_bootctl_server hal_bootctl_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_bootctl_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_98_26_0 hal_bootctl_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_bootctl_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_bootctl_client hal_bootctl_hwservice_26_0 (hwservice_manager (find))) +(allow hal_camera_client hal_camera_server (binder (call transfer))) +(allow hal_camera_server hal_camera_client (binder (transfer))) +(allow hal_camera_client hal_camera_server (fd (use))) +(allow hal_camera_server hal_camera_client (binder (call transfer))) +(allow hal_camera_client hal_camera_server (binder (transfer))) +(allow hal_camera_server hal_camera_client (fd (use))) +(allow hal_camera_server hal_camera_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_camera_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_99_26_0 hal_camera_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_camera_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_camera_client hal_camera_hwservice_26_0 (hwservice_manager (find))) +(allow hal_camera camera_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow hal_camera camera_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow hal_camera video_device_26_0 (dir (ioctl read getattr lock search open))) +(allow hal_camera video_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow hal_camera camera_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow hal_camera ion_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow hal_camera_client hal_graphics_allocator (fd (use))) +(allow hal_camera_server hal_graphics_allocator (fd (use))) +(allow hal_camera base_typeattr_100_26_0 (fd (use))) +(allow hal_camera surfaceflinger_26_0 (fd (use))) +(allow hal_camera hal_allocator_server (fd (use))) +(neverallow hal_camera fs_type (file (execute_no_trans))) +(neverallow hal_camera file_type (file (execute_no_trans))) +(neverallow hal_camera domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect))) +(neverallow hal_camera domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(neverallow hal_camera domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(neverallow base_typeattr_101_26_0 camera_device_26_0 (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(allow hal_configstore_client hal_configstore_server (binder (call transfer))) +(allow hal_configstore_server hal_configstore_client (binder (transfer))) +(allow hal_configstore_client hal_configstore_server (fd (use))) +(allow hal_configstore_server hal_configstore_ISurfaceFlingerConfigs_26_0 (hwservice_manager (add find))) +(allow hal_configstore_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_102_26_0 hal_configstore_ISurfaceFlingerConfigs_26_0 (hwservice_manager (add))) +(neverallow hal_configstore_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_contexthub_client hal_contexthub_server (binder (call transfer))) +(allow hal_contexthub_server hal_contexthub_client (binder (transfer))) +(allow hal_contexthub_client hal_contexthub_server (fd (use))) +(allow hal_contexthub_server hal_contexthub_client (binder (call transfer))) +(allow hal_contexthub_client hal_contexthub_server (binder (transfer))) +(allow hal_contexthub_server hal_contexthub_client (fd (use))) +(allow hal_contexthub_server hal_contexthub_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_contexthub_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_103_26_0 hal_contexthub_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_contexthub_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_contexthub_client hal_contexthub_hwservice_26_0 (hwservice_manager (find))) +(allow hal_drm_client hal_drm_server (binder (call transfer))) +(allow hal_drm_server hal_drm_client (binder (transfer))) +(allow hal_drm_client hal_drm_server (fd (use))) +(allow hal_drm_server hal_drm_client (binder (call transfer))) +(allow hal_drm_client hal_drm_server (binder (transfer))) +(allow hal_drm_server hal_drm_client (fd (use))) +(allow hal_drm_server hal_drm_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_drm_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_104_26_0 hal_drm_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_drm_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_drm_client hal_drm_hwservice_26_0 (hwservice_manager (find))) +(allow hal_drm hidl_memory_hwservice_26_0 (hwservice_manager (find))) +(allow hal_drm self (process (execmem))) +(allow hal_drm serialno_prop_26_0 (file (ioctl read getattr lock open))) +(allow hal_drm system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow hal_drm system_file_26_0 (file (ioctl read getattr lock open))) +(allow hal_drm system_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hal_drm system_data_file_26_0 (dir (getattr search))) +(allow hal_drm system_data_file_26_0 (file (read getattr))) +(allow hal_drm system_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hal_drm cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow hal_drm cgroup_26_0 (file (ioctl read getattr lock open))) +(allow hal_drm cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hal_drm cgroup_26_0 (dir (write search))) +(allow hal_drm cgroup_26_0 (file (write lock append open))) +(allow hal_drm ion_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow hal_drm hal_graphics_allocator (fd (use))) +(allow hal_drm mediaserver_26_0 (fd (use))) +(allow hal_drm media_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow hal_drm media_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow hal_drm media_data_file_26_0 (file (read getattr))) +(allow hal_drm sysfs_26_0 (file (ioctl read getattr lock open))) +(allow hal_drm tee_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allowx hal_drm self (ioctl tcp_socket (((range 0x5401 0x5403)) 0x540b ((range 0x540e 0x5411)) ((range 0x5413 0x5414)) 0x5451))) +(allowx hal_drm self (ioctl udp_socket (((range 0x5401 0x5403)) 0x540b ((range 0x540e 0x5411)) ((range 0x5413 0x5414)) 0x5451))) +(allowx hal_drm self (ioctl rawip_socket (((range 0x5401 0x5403)) 0x540b ((range 0x540e 0x5411)) ((range 0x5413 0x5414)) 0x5451))) +(allowx hal_drm self (ioctl tcp_socket (((range 0x8906 0x8907)) 0x8910 ((range 0x8912 0x8913)) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942))) +(allowx hal_drm self (ioctl udp_socket (((range 0x8906 0x8907)) 0x8910 ((range 0x8912 0x8913)) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942))) +(allowx hal_drm self (ioctl rawip_socket (((range 0x8906 0x8907)) 0x8910 ((range 0x8912 0x8913)) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942))) +(allowx hal_drm self (ioctl tcp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f ((range 0x8b11 0x8b13)) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d))) +(allowx hal_drm self (ioctl udp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f ((range 0x8b11 0x8b13)) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d))) +(allowx hal_drm self (ioctl rawip_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f ((range 0x8b11 0x8b13)) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d))) +(neverallow hal_drm fs_type (file (execute_no_trans))) +(neverallow hal_drm file_type (file (execute_no_trans))) +(neverallowx hal_drm domain (ioctl tcp_socket (0x6900 0x6902))) +(neverallowx hal_drm domain (ioctl udp_socket (0x6900 0x6902))) +(neverallowx hal_drm domain (ioctl rawip_socket (0x6900 0x6902))) +(neverallowx hal_drm domain (ioctl tcp_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(neverallowx hal_drm domain (ioctl udp_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(neverallowx hal_drm domain (ioctl rawip_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(neverallowx hal_drm domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(neverallowx hal_drm domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(neverallowx hal_drm domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(allow hal_dumpstate_client hal_dumpstate_server (binder (call transfer))) +(allow hal_dumpstate_server hal_dumpstate_client (binder (transfer))) +(allow hal_dumpstate_client hal_dumpstate_server (fd (use))) +(allow hal_dumpstate_server hal_dumpstate_client (binder (call transfer))) +(allow hal_dumpstate_client hal_dumpstate_server (binder (transfer))) +(allow hal_dumpstate_server hal_dumpstate_client (fd (use))) +(allow hal_dumpstate_server hal_dumpstate_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_dumpstate_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_105_26_0 hal_dumpstate_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_dumpstate_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_dumpstate_client hal_dumpstate_hwservice_26_0 (hwservice_manager (find))) +(allow hal_dumpstate shell_data_file_26_0 (file (write))) +(allow hal_dumpstate proc_interrupts_26_0 (file (ioctl read getattr lock open))) +(allow hal_fingerprint_client hal_fingerprint_server (binder (call transfer))) +(allow hal_fingerprint_server hal_fingerprint_client (binder (transfer))) +(allow hal_fingerprint_client hal_fingerprint_server (fd (use))) +(allow hal_fingerprint_server hal_fingerprint_client (binder (call transfer))) +(allow hal_fingerprint_client hal_fingerprint_server (binder (transfer))) +(allow hal_fingerprint_server hal_fingerprint_client (fd (use))) +(allow hal_fingerprint_server hal_fingerprint_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_fingerprint_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_106_26_0 hal_fingerprint_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_fingerprint_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_fingerprint_client hal_fingerprint_hwservice_26_0 (hwservice_manager (find))) +(allow hal_fingerprint fingerprintd_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow hal_fingerprint fingerprintd_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow hal_fingerprint ion_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow hal_fingerprint cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow hal_fingerprint cgroup_26_0 (file (ioctl read getattr lock open))) +(allow hal_fingerprint cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hal_fingerprint sysfs_26_0 (dir (ioctl read getattr lock search open))) +(allow hal_fingerprint sysfs_26_0 (file (ioctl read getattr lock open))) +(allow hal_fingerprint sysfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hal_gatekeeper_client hal_gatekeeper_server (binder (call transfer))) +(allow hal_gatekeeper_server hal_gatekeeper_client (binder (transfer))) +(allow hal_gatekeeper_client hal_gatekeeper_server (fd (use))) +(allow hal_gatekeeper_server hal_gatekeeper_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_gatekeeper_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_107_26_0 hal_gatekeeper_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_gatekeeper_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_gatekeeper_client hal_gatekeeper_hwservice_26_0 (hwservice_manager (find))) +(allow hal_gatekeeper tee_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow hal_gatekeeper ion_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow hal_gnss_client hal_gnss_server (binder (call transfer))) +(allow hal_gnss_server hal_gnss_client (binder (transfer))) +(allow hal_gnss_client hal_gnss_server (fd (use))) +(allow hal_gnss_server hal_gnss_client (binder (call transfer))) +(allow hal_gnss_client hal_gnss_server (binder (transfer))) +(allow hal_gnss_server hal_gnss_client (fd (use))) +(allow hal_gnss_server hal_gnss_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_gnss_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_108_26_0 hal_gnss_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_gnss_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_gnss_client hal_gnss_hwservice_26_0 (hwservice_manager (find))) +(allow hal_graphics_allocator_client hal_graphics_allocator_server (binder (call transfer))) +(allow hal_graphics_allocator_server hal_graphics_allocator_client (binder (transfer))) +(allow hal_graphics_allocator_client hal_graphics_allocator_server (fd (use))) +(allow hal_graphics_allocator_server hal_graphics_allocator_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_graphics_allocator_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_109_26_0 hal_graphics_allocator_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_graphics_allocator_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_graphics_allocator_client hal_graphics_allocator_hwservice_26_0 (hwservice_manager (find))) +(allow hal_graphics_allocator_client hal_graphics_mapper_hwservice_26_0 (hwservice_manager (find))) +(allow hal_graphics_allocator gpu_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow hal_graphics_allocator ion_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow hal_graphics_allocator self (capability (sys_nice))) +(allow hal_graphics_composer_client hal_graphics_composer_server (binder (call transfer))) +(allow hal_graphics_composer_server hal_graphics_composer_client (binder (transfer))) +(allow hal_graphics_composer_client hal_graphics_composer_server (fd (use))) +(allow hal_graphics_composer_server hal_graphics_composer_client (binder (call transfer))) +(allow hal_graphics_composer_client hal_graphics_composer_server (binder (transfer))) +(allow hal_graphics_composer_server hal_graphics_composer_client (fd (use))) +(allow hal_graphics_composer_server hal_graphics_composer_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_graphics_composer_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_110_26_0 hal_graphics_composer_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_graphics_composer_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_graphics_composer_client hal_graphics_composer_hwservice_26_0 (hwservice_manager (find))) +(allow hal_graphics_composer_server hal_graphics_mapper_hwservice_26_0 (hwservice_manager (find))) +(allow hal_graphics_composer gpu_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow hal_graphics_composer ion_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow hal_graphics_composer hal_graphics_allocator (fd (use))) +(allow hal_graphics_composer graphics_device_26_0 (dir (search))) +(allow hal_graphics_composer graphics_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow hal_graphics_composer system_server_26_0 (fd (use))) +(allow hal_graphics_composer bootanim_26_0 (fd (use))) +(allow hal_graphics_composer appdomain (fd (use))) +(allow hal_graphics_composer self (capability (sys_nice))) +(allow hal_health_client hal_health_server (binder (call transfer))) +(allow hal_health_server hal_health_client (binder (transfer))) +(allow hal_health_client hal_health_server (fd (use))) +(allow hal_health_server hal_health_client (binder (call transfer))) +(allow hal_health_client hal_health_server (binder (transfer))) +(allow hal_health_server hal_health_client (fd (use))) +(allow hal_health_server hal_health_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_health_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_111_26_0 hal_health_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_health_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_health_client hal_health_hwservice_26_0 (hwservice_manager (find))) +(allow hal_health system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow hal_health system_file_26_0 (file (ioctl read getattr lock open))) +(allow hal_health system_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hal_ir_client hal_ir_server (binder (call transfer))) +(allow hal_ir_server hal_ir_client (binder (transfer))) +(allow hal_ir_client hal_ir_server (fd (use))) +(allow hal_ir_server hal_ir_client (binder (call transfer))) +(allow hal_ir_client hal_ir_server (binder (transfer))) +(allow hal_ir_server hal_ir_client (fd (use))) +(allow hal_ir_server hal_ir_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_ir_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_112_26_0 hal_ir_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_ir_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_ir_client hal_ir_hwservice_26_0 (hwservice_manager (find))) +(allow hal_keymaster_client hal_keymaster_server (binder (call transfer))) +(allow hal_keymaster_server hal_keymaster_client (binder (transfer))) +(allow hal_keymaster_client hal_keymaster_server (fd (use))) +(allow hal_keymaster_server hal_keymaster_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_keymaster_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_113_26_0 hal_keymaster_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_keymaster_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_keymaster_client hal_keymaster_hwservice_26_0 (hwservice_manager (find))) +(allow hal_keymaster tee_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow hal_keymaster ion_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow hal_light_client hal_light_server (binder (call transfer))) +(allow hal_light_server hal_light_client (binder (transfer))) +(allow hal_light_client hal_light_server (fd (use))) +(allow hal_light_server hal_light_client (binder (call transfer))) +(allow hal_light_client hal_light_server (binder (transfer))) +(allow hal_light_server hal_light_client (fd (use))) +(allow hal_light_server hal_light_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_light_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_114_26_0 hal_light_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_light_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_light_client hal_light_hwservice_26_0 (hwservice_manager (find))) +(allow hal_light sysfs_leds_26_0 (lnk_file (read))) +(allow hal_light sysfs_leds_26_0 (file (ioctl read write getattr lock append open))) +(allow hal_light sysfs_leds_26_0 (dir (ioctl read getattr lock search open))) +(allow hal_memtrack_client hal_memtrack_server (binder (call transfer))) +(allow hal_memtrack_server hal_memtrack_client (binder (transfer))) +(allow hal_memtrack_client hal_memtrack_server (fd (use))) +(allow hal_memtrack_server hal_memtrack_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_memtrack_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_115_26_0 hal_memtrack_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_memtrack_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_memtrack_client hal_memtrack_hwservice_26_0 (hwservice_manager (find))) +(neverallow base_typeattr_116_26_0 self (capability (net_admin net_raw))) +(neverallow base_typeattr_117_26_0 domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect))) +(neverallow base_typeattr_117_26_0 domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(neverallow base_typeattr_117_26_0 domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(neverallow hal_tetheroffload_server unlabeled_26_0 (service_manager (list))) +(neverallow base_typeattr_118_26_0 fs_type (file (execute_no_trans))) +(neverallow base_typeattr_118_26_0 file_type (file (execute_no_trans))) +(neverallow base_typeattr_5_26_0 halserverdomain (process (transition))) +(neverallow base_typeattr_10_26_0 halserverdomain (process (dyntransition))) +(allow hal_nfc_client hal_nfc_server (binder (call transfer))) +(allow hal_nfc_server hal_nfc_client (binder (transfer))) +(allow hal_nfc_client hal_nfc_server (fd (use))) +(allow hal_nfc_server hal_nfc_client (binder (call transfer))) +(allow hal_nfc_client hal_nfc_server (binder (transfer))) +(allow hal_nfc_server hal_nfc_client (fd (use))) +(allow hal_nfc_server hal_nfc_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_nfc_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_119_26_0 hal_nfc_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_nfc_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_nfc_client hal_nfc_hwservice_26_0 (hwservice_manager (find))) +(allow hal_nfc property_socket_26_0 (sock_file (write))) +(allow hal_nfc init_26_0 (unix_stream_socket (connectto))) +(allow hal_nfc nfc_prop_26_0 (property_service (set))) +(allow hal_nfc nfc_prop_26_0 (file (ioctl read getattr lock open))) +(allow hal_nfc nfc_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow hal_nfc nfc_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow hal_nfc nfc_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow hal_nfc nfc_data_file_26_0 (lnk_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow hal_nfc nfc_data_file_26_0 (fifo_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow hal_oemlock_client hal_oemlock_server (binder (call transfer))) +(allow hal_oemlock_server hal_oemlock_client (binder (transfer))) +(allow hal_oemlock_client hal_oemlock_server (fd (use))) +(allow hal_oemlock_server hal_oemlock_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_oemlock_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_120_26_0 hal_oemlock_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_oemlock_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_oemlock_client hal_oemlock_hwservice_26_0 (hwservice_manager (find))) +(allow hal_power_client hal_power_server (binder (call transfer))) +(allow hal_power_server hal_power_client (binder (transfer))) +(allow hal_power_client hal_power_server (fd (use))) +(allow hal_power_server hal_power_client (binder (call transfer))) +(allow hal_power_client hal_power_server (binder (transfer))) +(allow hal_power_server hal_power_client (fd (use))) +(allow hal_power_server hal_power_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_power_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_121_26_0 hal_power_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_power_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_power_client hal_power_hwservice_26_0 (hwservice_manager (find))) +(allow hal_sensors_client hal_sensors_server (binder (call transfer))) +(allow hal_sensors_server hal_sensors_client (binder (transfer))) +(allow hal_sensors_client hal_sensors_server (fd (use))) +(allow hal_sensors_server hal_sensors_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_sensors_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_122_26_0 hal_sensors_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_sensors_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_sensors_client hal_sensors_hwservice_26_0 (hwservice_manager (find))) +(allow hal_sensors base_typeattr_100_26_0 (fd (use))) +(allow hal_sensors hal_allocator (fd (use))) +(allow hal_sensors self (capability (sys_nice))) +(allow hal_telephony_client hal_telephony_server (binder (call transfer))) +(allow hal_telephony_server hal_telephony_client (binder (transfer))) +(allow hal_telephony_client hal_telephony_server (fd (use))) +(allow hal_telephony_server hal_telephony_client (binder (call transfer))) +(allow hal_telephony_client hal_telephony_server (binder (transfer))) +(allow hal_telephony_server hal_telephony_client (fd (use))) +(allow hal_telephony_server hal_telephony_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_telephony_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_123_26_0 hal_telephony_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_telephony_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_telephony_client hal_telephony_hwservice_26_0 (hwservice_manager (find))) +(allow hal_tetheroffload_client hal_tetheroffload_server (binder (call transfer))) +(allow hal_tetheroffload_server hal_tetheroffload_client (binder (transfer))) +(allow hal_tetheroffload_client hal_tetheroffload_server (fd (use))) +(allow hal_tetheroffload_server hal_tetheroffload_client (binder (call transfer))) +(allow hal_tetheroffload_client hal_tetheroffload_server (binder (transfer))) +(allow hal_tetheroffload_server hal_tetheroffload_client (fd (use))) +(allow hal_thermal_client hal_thermal_server (binder (call transfer))) +(allow hal_thermal_server hal_thermal_client (binder (transfer))) +(allow hal_thermal_client hal_thermal_server (fd (use))) +(allow hal_thermal_server hal_thermal_client (binder (call transfer))) +(allow hal_thermal_client hal_thermal_server (binder (transfer))) +(allow hal_thermal_server hal_thermal_client (fd (use))) +(allow hal_thermal_server hal_thermal_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_thermal_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_124_26_0 hal_thermal_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_thermal_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_thermal_client hal_thermal_hwservice_26_0 (hwservice_manager (find))) +(allow hal_tv_cec_client hal_tv_cec_server (binder (call transfer))) +(allow hal_tv_cec_server hal_tv_cec_client (binder (transfer))) +(allow hal_tv_cec_client hal_tv_cec_server (fd (use))) +(allow hal_tv_cec_server hal_tv_cec_client (binder (call transfer))) +(allow hal_tv_cec_client hal_tv_cec_server (binder (transfer))) +(allow hal_tv_cec_server hal_tv_cec_client (fd (use))) +(allow hal_tv_cec_server hal_tv_cec_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_tv_cec_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_125_26_0 hal_tv_cec_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_tv_cec_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_tv_cec_client hal_tv_cec_hwservice_26_0 (hwservice_manager (find))) +(allow hal_tv_input_client hal_tv_input_server (binder (call transfer))) +(allow hal_tv_input_server hal_tv_input_client (binder (transfer))) +(allow hal_tv_input_client hal_tv_input_server (fd (use))) +(allow hal_tv_input_server hal_tv_input_client (binder (call transfer))) +(allow hal_tv_input_client hal_tv_input_server (binder (transfer))) +(allow hal_tv_input_server hal_tv_input_client (fd (use))) +(allow hal_tv_input_server hal_tv_input_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_tv_input_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_126_26_0 hal_tv_input_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_tv_input_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_tv_input_client hal_tv_input_hwservice_26_0 (hwservice_manager (find))) +(allow hal_usb_client hal_usb_server (binder (call transfer))) +(allow hal_usb_server hal_usb_client (binder (transfer))) +(allow hal_usb_client hal_usb_server (fd (use))) +(allow hal_usb_server hal_usb_client (binder (call transfer))) +(allow hal_usb_client hal_usb_server (binder (transfer))) +(allow hal_usb_server hal_usb_client (fd (use))) +(allow hal_usb_server hal_usb_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_usb_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_127_26_0 hal_usb_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_usb_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_usb_client hal_usb_hwservice_26_0 (hwservice_manager (find))) +(allow hal_usb self (netlink_kobject_uevent_socket (create))) +(allow hal_usb self (netlink_kobject_uevent_socket (setopt))) +(allow hal_usb self (netlink_kobject_uevent_socket (bind))) +(allow hal_usb self (netlink_kobject_uevent_socket (read))) +(allow hal_usb sysfs_26_0 (dir (open))) +(allow hal_usb sysfs_26_0 (dir (read))) +(allow hal_usb sysfs_26_0 (file (read))) +(allow hal_usb sysfs_26_0 (file (open))) +(allow hal_usb sysfs_26_0 (file (write))) +(allow hal_usb sysfs_26_0 (file (getattr))) +(allow hal_vibrator_client hal_vibrator_server (binder (call transfer))) +(allow hal_vibrator_server hal_vibrator_client (binder (transfer))) +(allow hal_vibrator_client hal_vibrator_server (fd (use))) +(allow hal_vibrator_server hal_vibrator_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_vibrator_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_128_26_0 hal_vibrator_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_vibrator_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_vibrator_client hal_vibrator_hwservice_26_0 (hwservice_manager (find))) +(allow hal_vibrator sysfs_vibrator_26_0 (file (ioctl read write getattr lock append open))) +(allow hal_vr_client hal_vr_server (binder (call transfer))) +(allow hal_vr_server hal_vr_client (binder (transfer))) +(allow hal_vr_client hal_vr_server (fd (use))) +(allow hal_vr_server hal_vr_client (binder (call transfer))) +(allow hal_vr_client hal_vr_server (binder (transfer))) +(allow hal_vr_server hal_vr_client (fd (use))) +(allow hal_vr_server hal_vr_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_vr_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_129_26_0 hal_vr_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_vr_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_vr_client hal_vr_hwservice_26_0 (hwservice_manager (find))) +(allow hal_weaver_client hal_weaver_server (binder (call transfer))) +(allow hal_weaver_server hal_weaver_client (binder (transfer))) +(allow hal_weaver_client hal_weaver_server (fd (use))) +(allow hal_weaver_server hal_weaver_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_weaver_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_130_26_0 hal_weaver_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_weaver_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_weaver_client hal_weaver_hwservice_26_0 (hwservice_manager (find))) +(allow hal_wifi_client hal_wifi_server (binder (call transfer))) +(allow hal_wifi_server hal_wifi_client (binder (transfer))) +(allow hal_wifi_client hal_wifi_server (fd (use))) +(allow hal_wifi_server hal_wifi_client (binder (call transfer))) +(allow hal_wifi_client hal_wifi_server (binder (transfer))) +(allow hal_wifi_server hal_wifi_client (fd (use))) +(allow hal_wifi_server hal_wifi_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_wifi_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_131_26_0 hal_wifi_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_wifi_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_wifi_client hal_wifi_hwservice_26_0 (hwservice_manager (find))) +(allow hal_wifi proc_net_26_0 (dir (ioctl read getattr lock search open))) +(allow hal_wifi proc_net_26_0 (file (ioctl read getattr lock open))) +(allow hal_wifi proc_net_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hal_wifi sysfs_type (dir (ioctl read getattr lock search open))) +(allow hal_wifi sysfs_type (file (ioctl read getattr lock open))) +(allow hal_wifi sysfs_type (lnk_file (ioctl read getattr lock open))) +(allow hal_wifi property_socket_26_0 (sock_file (write))) +(allow hal_wifi init_26_0 (unix_stream_socket (connectto))) +(allow hal_wifi wifi_prop_26_0 (property_service (set))) +(allow hal_wifi wifi_prop_26_0 (file (ioctl read getattr lock open))) +(allow hal_wifi self (udp_socket (ioctl read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allowx hal_wifi self (ioctl udp_socket (0x8914))) +(allow hal_wifi self (capability (net_admin net_raw))) +(allow hal_wifi self (netlink_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow hal_wifi self (netlink_generic_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow hal_wifi sysfs_wlan_fwpath_26_0 (file (write lock append open))) +(allow hal_wifi_offload_client hal_wifi_offload_server (binder (call transfer))) +(allow hal_wifi_offload_server hal_wifi_offload_client (binder (transfer))) +(allow hal_wifi_offload_client hal_wifi_offload_server (fd (use))) +(allow hal_wifi_offload_server hal_wifi_offload_client (binder (call transfer))) +(allow hal_wifi_offload_client hal_wifi_offload_server (binder (transfer))) +(allow hal_wifi_offload_server hal_wifi_offload_client (fd (use))) +(allow hal_wifi_offload proc_net_26_0 (dir (ioctl read getattr lock search open))) +(allow hal_wifi_offload proc_net_26_0 (file (ioctl read getattr lock open))) +(allow hal_wifi_offload proc_net_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hal_wifi_offload sysfs_type (dir (ioctl read getattr lock search open))) +(allow hal_wifi_offload sysfs_type (file (ioctl read getattr lock open))) +(allow hal_wifi_offload sysfs_type (lnk_file (ioctl read getattr lock open))) +(allow hal_wifi_supplicant_client hal_wifi_supplicant_server (binder (call transfer))) +(allow hal_wifi_supplicant_server hal_wifi_supplicant_client (binder (transfer))) +(allow hal_wifi_supplicant_client hal_wifi_supplicant_server (fd (use))) +(allow hal_wifi_supplicant_server hal_wifi_supplicant_client (binder (call transfer))) +(allow hal_wifi_supplicant_client hal_wifi_supplicant_server (binder (transfer))) +(allow hal_wifi_supplicant_server hal_wifi_supplicant_client (fd (use))) +(allow hal_wifi_supplicant_server hal_wifi_supplicant_hwservice_26_0 (hwservice_manager (add find))) +(allow hal_wifi_supplicant_server hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_132_26_0 hal_wifi_supplicant_hwservice_26_0 (hwservice_manager (add))) +(neverallow hal_wifi_supplicant_server unlabeled_26_0 (hwservice_manager (add))) +(allow hal_wifi_supplicant_client hal_wifi_supplicant_hwservice_26_0 (hwservice_manager (find))) +(allowx hal_wifi_supplicant self (ioctl udp_socket (0x6900 0x6902))) +(allowx hal_wifi_supplicant self (ioctl udp_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(allowx hal_wifi_supplicant self (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(allow hal_wifi_supplicant sysfs_type (dir (ioctl read getattr lock search open))) +(allow hal_wifi_supplicant sysfs_type (file (ioctl read getattr lock open))) +(allow hal_wifi_supplicant sysfs_type (lnk_file (ioctl read getattr lock open))) +(allow hal_wifi_supplicant proc_net_26_0 (dir (ioctl read getattr lock search open))) +(allow hal_wifi_supplicant proc_net_26_0 (file (ioctl read getattr lock open))) +(allow hal_wifi_supplicant proc_net_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hal_wifi_supplicant kernel_26_0 (system (module_request))) +(allow hal_wifi_supplicant self (capability (setgid setuid net_admin net_raw))) +(allow hal_wifi_supplicant cgroup_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow hal_wifi_supplicant self (netlink_route_socket (nlmsg_write))) +(allow hal_wifi_supplicant self (netlink_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow hal_wifi_supplicant self (netlink_generic_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow hal_wifi_supplicant self (packet_socket (ioctl read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allowx hal_wifi_supplicant self (ioctl packet_socket (((range 0x5401 0x5403)) 0x540b ((range 0x540e 0x5411)) ((range 0x5413 0x5414)) 0x5451))) +(allowx hal_wifi_supplicant self (ioctl packet_socket (0x6900 0x6902))) +(allowx hal_wifi_supplicant self (ioctl packet_socket (((range 0x8906 0x8907)) ((range 0x890b 0x890d)) ((range 0x8910 0x8927)) 0x8929 ((range 0x8930 0x8939)) ((range 0x8940 0x8943)) ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(allowx hal_wifi_supplicant self (ioctl packet_socket (((range 0x8b00 0x8b02)) ((range 0x8b04 0x8b1d)) ((range 0x8b20 0x8b2d)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(allow hal_wifi_supplicant wifi_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow hal_wifi_supplicant wifi_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow hal_wifi_supplicant wpa_socket_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow hal_wifi_supplicant wpa_socket_26_0 (sock_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow hal_wifi_supplicant wpa_socket_26_0 (sock_file (write))) +(allow hal_wifi_supplicant su_26_0 (unix_dgram_socket (sendto))) +(neverallow hal_wifi_supplicant_server sdcard_type (dir (ioctl read write create setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton add_name remove_name reparent search rmdir open audit_access execmod))) +(neverallow hal_wifi_supplicant_server sdcard_type (file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(allow healthd_26_0 kmsg_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow healthd_26_0 sysfs_type (dir (ioctl read getattr lock search open))) +(allow healthd_26_0 sysfs_type (file (ioctl read getattr lock open))) +(allow healthd_26_0 sysfs_type (lnk_file (ioctl read getattr lock open))) +(allow healthd_26_0 rootfs_26_0 (dir (ioctl read getattr lock search open))) +(allow healthd_26_0 rootfs_26_0 (file (ioctl read getattr lock open))) +(allow healthd_26_0 rootfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow healthd_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow healthd_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow healthd_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow healthd_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow healthd_26_0 system_file_26_0 (file (ioctl read getattr lock open))) +(allow healthd_26_0 system_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow healthd_26_0 self (capability (sys_tty_config))) +(allow healthd_26_0 self (capability (sys_boot))) +(allow healthd_26_0 self (netlink_kobject_uevent_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow healthd_26_0 sysfs_wake_lock_26_0 (file (ioctl read write getattr lock append open))) +(allow healthd_26_0 self (capability2 (block_suspend))) +(allow healthd_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 healthd_26_0 (dir (search))) +(allow servicemanager_26_0 healthd_26_0 (file (read open))) +(allow servicemanager_26_0 healthd_26_0 (process (getattr))) +(allow healthd_26_0 system_server_26_0 (binder (call transfer))) +(allow system_server_26_0 healthd_26_0 (binder (transfer))) +(allow healthd_26_0 system_server_26_0 (fd (use))) +(allow healthd_26_0 sysfs_26_0 (file (write))) +(allow healthd_26_0 sysfs_usb_26_0 (file (write))) +(allow healthd_26_0 sysfs_batteryinfo_26_0 (file (ioctl read getattr lock open))) +(allow healthd_26_0 sysfs_type (dir (ioctl read getattr lock search open))) +(allow healthd_26_0 sysfs_type (file (ioctl read getattr lock open))) +(allow healthd_26_0 sysfs_type (lnk_file (ioctl read getattr lock open))) +(allow healthd_26_0 pstorefs_26_0 (dir (ioctl read getattr lock search open))) +(allow healthd_26_0 pstorefs_26_0 (file (ioctl read getattr lock open))) +(allow healthd_26_0 graphics_device_26_0 (dir (ioctl read getattr lock search open))) +(allow healthd_26_0 graphics_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow healthd_26_0 input_device_26_0 (dir (ioctl read getattr lock search open))) +(allow healthd_26_0 input_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow healthd_26_0 tty_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow healthd_26_0 ashmem_device_26_0 (chr_file (execute))) +(allow healthd_26_0 self (process (execmem))) +(allow healthd_26_0 proc_sysrq_26_0 (file (ioctl read write getattr lock append open))) +(allow healthd_26_0 batteryproperties_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_133_26_0 batteryproperties_service_26_0 (service_manager (add))) +(neverallow healthd_26_0 unlabeled_26_0 (service_manager (add))) +(allow healthd_26_0 property_socket_26_0 (sock_file (write))) +(allow healthd_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow healthd_26_0 system_prop_26_0 (property_service (set))) +(allow healthd_26_0 system_prop_26_0 (file (ioctl read getattr lock open))) +(allow hwservicemanager_26_0 self (binder (set_context_mgr))) +(allow hwservicemanager_26_0 property_socket_26_0 (sock_file (write))) +(allow hwservicemanager_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow hwservicemanager_26_0 hwservicemanager_prop_26_0 (property_service (set))) +(allow hwservicemanager_26_0 hwservicemanager_prop_26_0 (file (ioctl read getattr lock open))) +(allow hwservicemanager_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow hwservicemanager_26_0 hwservice_contexts_file_26_0 (file (ioctl read getattr lock open))) +(allow hwservicemanager_26_0 selinuxfs_26_0 (dir (ioctl read getattr lock search open))) +(allow hwservicemanager_26_0 selinuxfs_26_0 (file (ioctl read getattr lock open))) +(allow hwservicemanager_26_0 selinuxfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hwservicemanager_26_0 selinuxfs_26_0 (file (write lock append open))) +(allow hwservicemanager_26_0 kernel_26_0 (security (compute_av))) +(allow hwservicemanager_26_0 self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(allow idmap_26_0 installd_26_0 (fd (use))) +(allow idmap_26_0 resourcecache_data_file_26_0 (file (read write getattr))) +(allow idmap_26_0 apk_data_file_26_0 (file (ioctl read getattr lock open))) +(allow idmap_26_0 apk_data_file_26_0 (dir (search))) +(allow idmap_26_0 vendor_app_file_26_0 (dir (ioctl read getattr lock search open))) +(allow idmap_26_0 vendor_app_file_26_0 (file (ioctl read getattr lock open))) +(allow idmap_26_0 vendor_app_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow idmap_26_0 vendor_overlay_file_26_0 (dir (ioctl read getattr lock search open))) +(allow idmap_26_0 vendor_overlay_file_26_0 (file (ioctl read getattr lock open))) +(allow idmap_26_0 vendor_overlay_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow init_26_0 tmpfs_26_0 (chr_file (ioctl read write create getattr setattr lock append unlink open))) +(allow init_26_0 tmpfs_26_0 (chr_file (relabelfrom))) +(allow init_26_0 kmsg_device_26_0 (chr_file (write relabelto))) +(allow init_26_0 properties_device_26_0 (dir (relabelto))) +(allow init_26_0 properties_serial_26_0 (file (write relabelto))) +(allow init_26_0 property_type (file (ioctl read write create getattr setattr lock relabelto append unlink rename open))) +(allow init_26_0 device_26_0 (file (relabelfrom))) +(allow init_26_0 runtime_event_log_tags_file_26_0 (file (write setattr relabelto open))) +(allow init_26_0 device_26_0 (dir (relabelto))) +(allow init_26_0 socket_device_26_0 (dir (relabelto))) +(allow init_26_0 random_device_26_0 (chr_file (relabelto))) +(allow init_26_0 tmpfs_26_0 (chr_file (relabelfrom))) +(allow init_26_0 tmpfs_26_0 (blk_file (relabelfrom))) +(allow init_26_0 tmpfs_26_0 (blk_file (getattr))) +(allow init_26_0 block_device_26_0 (dir (relabelto))) +(allow init_26_0 block_device_26_0 (lnk_file (relabelto))) +(allow init_26_0 block_device_26_0 (blk_file (relabelto))) +(allow init_26_0 dm_device_26_0 (chr_file (relabelto))) +(allow init_26_0 dm_device_26_0 (blk_file (relabelto))) +(allow init_26_0 kernel_26_0 (fd (use))) +(allow init_26_0 tmpfs_26_0 (lnk_file (read getattr relabelfrom))) +(allow init_26_0 system_block_device_26_0 (lnk_file (relabelto))) +(allow init_26_0 system_block_device_26_0 (blk_file (relabelto))) +(allow init_26_0 self (capability (sys_resource))) +(allow init_26_0 tmpfs_26_0 (file (unlink))) +(allow init_26_0 devpts_26_0 (chr_file (read write open))) +(allow init_26_0 fscklogs_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow init_26_0 tmpfs_26_0 (chr_file (write))) +(allow init_26_0 console_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow init_26_0 tty_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow init_26_0 self (capability (sys_admin))) +(allow init_26_0 rootfs_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow init_26_0 rootfs_26_0 (dir (mounton))) +(allow init_26_0 cgroup_26_0 (dir (mounton))) +(allow init_26_0 system_file_26_0 (dir (mounton))) +(allow init_26_0 vendor_file_26_0 (dir (mounton))) +(allow init_26_0 system_data_file_26_0 (dir (mounton))) +(allow init_26_0 storage_file_26_0 (dir (mounton))) +(allow init_26_0 postinstall_mnt_dir_26_0 (dir (mounton))) +(allow init_26_0 cache_file_26_0 (dir (mounton))) +(allow init_26_0 device_26_0 (dir (mounton))) +(allow init_26_0 rootfs_26_0 (lnk_file (create unlink))) +(allow init_26_0 sysfs_26_0 (dir (mounton))) +(allow init_26_0 tmpfs_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow init_26_0 tmpfs_26_0 (dir (mounton))) +(allow init_26_0 cgroup_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow init_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow init_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow init_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow init_26_0 cpuctl_device_26_0 (dir (create mounton))) +(allow init_26_0 configfs_26_0 (dir (mounton))) +(allow init_26_0 configfs_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow init_26_0 tmpfs_26_0 (dir (relabelfrom))) +(allow init_26_0 self (capability (dac_override))) +(allow init_26_0 self (capability (sys_time))) +(allow init_26_0 self (capability (sys_rawio mknod))) +(allow init_26_0 dev_type (blk_file (ioctl read getattr lock open))) +(allow init_26_0 fs_type (filesystem (mount remount unmount getattr relabelfrom associate quotamod quotaget))) +(allow init_26_0 unlabeled_26_0 (filesystem (mount remount unmount getattr relabelfrom associate quotamod quotaget))) +(allow init_26_0 contextmount_type (filesystem (relabelto))) +(allow init_26_0 contextmount_type (dir (ioctl read getattr lock search open))) +(allow init_26_0 contextmount_type (file (ioctl read getattr lock open))) +(allow init_26_0 contextmount_type (lnk_file (ioctl read getattr lock open))) +(allow init_26_0 contextmount_type (sock_file (ioctl read getattr lock open))) +(allow init_26_0 contextmount_type (fifo_file (ioctl read getattr lock open))) +(allow init_26_0 rootfs_26_0 (file (relabelfrom))) +(allow init_26_0 rootfs_26_0 (dir (relabelfrom))) +(allow init_26_0 self (capability (chown fowner fsetid))) +(allow init_26_0 base_typeattr_134_26_0 (dir (ioctl read create getattr setattr search open))) +(allow init_26_0 base_typeattr_135_26_0 (dir (write relabelfrom add_name remove_name rmdir))) +(allow init_26_0 base_typeattr_136_26_0 (file (read write create getattr setattr relabelfrom unlink open))) +(allow init_26_0 base_typeattr_135_26_0 (sock_file (read create getattr setattr relabelfrom unlink open))) +(allow init_26_0 base_typeattr_135_26_0 (fifo_file (read create getattr setattr relabelfrom unlink open))) +(allow init_26_0 base_typeattr_135_26_0 (lnk_file (create getattr setattr relabelfrom unlink))) +(allow init_26_0 cache_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow init_26_0 base_typeattr_137_26_0 (file (relabelto))) +(allow init_26_0 base_typeattr_137_26_0 (dir (relabelto))) +(allow init_26_0 base_typeattr_137_26_0 (lnk_file (relabelto))) +(allow init_26_0 base_typeattr_137_26_0 (chr_file (relabelto))) +(allow init_26_0 base_typeattr_137_26_0 (blk_file (relabelto))) +(allow init_26_0 base_typeattr_137_26_0 (sock_file (relabelto))) +(allow init_26_0 base_typeattr_137_26_0 (fifo_file (relabelto))) +(allow init_26_0 sysfs_26_0 (file (getattr relabelfrom))) +(allow init_26_0 sysfs_26_0 (dir (getattr relabelfrom))) +(allow init_26_0 sysfs_26_0 (lnk_file (getattr relabelfrom))) +(allow init_26_0 debugfs_26_0 (file (getattr relabelfrom))) +(allow init_26_0 debugfs_26_0 (dir (getattr relabelfrom))) +(allow init_26_0 debugfs_26_0 (lnk_file (getattr relabelfrom))) +(allow init_26_0 debugfs_tracing_26_0 (file (getattr relabelfrom))) +(allow init_26_0 debugfs_tracing_26_0 (dir (getattr relabelfrom))) +(allow init_26_0 debugfs_tracing_26_0 (lnk_file (getattr relabelfrom))) +(allow init_26_0 sysfs_type (file (getattr relabelto))) +(allow init_26_0 sysfs_type (dir (getattr relabelto))) +(allow init_26_0 sysfs_type (lnk_file (getattr relabelto))) +(allow init_26_0 debugfs_type (file (getattr relabelto))) +(allow init_26_0 debugfs_type (dir (getattr relabelto))) +(allow init_26_0 debugfs_type (lnk_file (getattr relabelto))) +(allow init_26_0 dev_type (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow init_26_0 dev_type (lnk_file (create))) +(allow init_26_0 tracing_shell_writable_26_0 (file (write lock append open))) +(allow init_26_0 debugfs_tracing_instances_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow init_26_0 debugfs_tracing_instances_26_0 (file (write lock append open))) +(allow init_26_0 debugfs_wifi_tracing_26_0 (file (write lock append open))) +(allow init_26_0 base_typeattr_138_26_0 (file (read setattr open))) +(allow init_26_0 base_typeattr_138_26_0 (dir (read setattr search open))) +(allow init_26_0 base_typeattr_139_26_0 (chr_file (read open))) +(auditallow init_26_0 base_typeattr_140_26_0 (chr_file (read open))) +(allow init_26_0 base_typeattr_141_26_0 (chr_file (setattr))) +(allow init_26_0 unlabeled_26_0 (dir (ioctl read write create getattr setattr lock relabelfrom rename add_name remove_name reparent search rmdir open))) +(allow init_26_0 unlabeled_26_0 (file (ioctl read write create getattr setattr lock relabelfrom append unlink rename open))) +(allow init_26_0 unlabeled_26_0 (lnk_file (ioctl read write create getattr setattr lock relabelfrom append unlink rename open))) +(allow init_26_0 unlabeled_26_0 (sock_file (ioctl read write create getattr setattr lock relabelfrom append unlink rename open))) +(allow init_26_0 unlabeled_26_0 (fifo_file (ioctl read write create getattr setattr lock relabelfrom append unlink rename open))) +(allow init_26_0 kernel_26_0 (system (syslog_mod))) +(allow init_26_0 self (capability2 (syslog))) +(allow init_26_0 usermodehelper_26_0 (file (ioctl read write getattr lock append open))) +(allow init_26_0 proc_security_26_0 (file (ioctl read write getattr lock append open))) +(allow init_26_0 proc_26_0 (dir (ioctl read getattr lock search open))) +(allow init_26_0 proc_26_0 (file (ioctl read getattr lock open))) +(allow init_26_0 proc_26_0 (lnk_file (ioctl read getattr lock open))) +(allow init_26_0 proc_26_0 (file (write lock append open))) +(allow init_26_0 proc_net_26_0 (dir (ioctl read getattr lock search open))) +(allow init_26_0 proc_net_26_0 (file (ioctl read getattr lock open))) +(allow init_26_0 proc_net_26_0 (lnk_file (ioctl read getattr lock open))) +(allow init_26_0 proc_net_26_0 (file (write lock append open))) +(allow init_26_0 self (capability (net_admin))) +(allow init_26_0 proc_sysrq_26_0 (file (write lock append open))) +(allow init_26_0 proc_stat_26_0 (file (ioctl read getattr lock open))) +(allow init_26_0 self (capability (sys_boot))) +(allow init_26_0 sysfs_type (dir (ioctl read getattr lock search open))) +(allow init_26_0 sysfs_type (lnk_file (read))) +(allow init_26_0 sysfs_type (file (ioctl read write getattr lock append open))) +(allow init_26_0 misc_logd_file_26_0 (dir (read write create getattr setattr add_name search open))) +(allow init_26_0 misc_logd_file_26_0 (file (write create getattr setattr open))) +(allow init_26_0 self (capability (kill))) +(allow init_26_0 domain (process (sigkill signal))) +(allow init_26_0 keystore_data_file_26_0 (dir (read create getattr setattr search open))) +(allow init_26_0 keystore_data_file_26_0 (file (getattr))) +(allow init_26_0 vold_data_file_26_0 (dir (read create getattr setattr search open))) +(allow init_26_0 vold_data_file_26_0 (file (getattr))) +(allow init_26_0 shell_data_file_26_0 (dir (read create getattr setattr search open))) +(allow init_26_0 shell_data_file_26_0 (file (getattr))) +(allow init_26_0 self (capability (setgid setuid setpcap))) +(allow init_26_0 domain (dir (ioctl read getattr lock search open))) +(allow init_26_0 domain (file (ioctl read getattr lock open))) +(allow init_26_0 domain (lnk_file (ioctl read getattr lock open))) +(allow init_26_0 self (process (setexec setfscreate setsockcreate))) +(allow init_26_0 file_contexts_file_26_0 (file (ioctl read getattr lock open))) +(allow init_26_0 sepolicy_file_26_0 (file (ioctl read getattr lock open))) +(allow init_26_0 selinuxfs_26_0 (dir (ioctl read getattr lock search open))) +(allow init_26_0 selinuxfs_26_0 (file (ioctl read getattr lock open))) +(allow init_26_0 selinuxfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow init_26_0 selinuxfs_26_0 (file (write lock append open))) +(allow init_26_0 kernel_26_0 (security (compute_av))) +(allow init_26_0 self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(allow init_26_0 kernel_26_0 (security (compute_create))) +(allow init_26_0 domain (unix_stream_socket (create bind))) +(allow init_26_0 domain (unix_dgram_socket (create bind))) +(allow init_26_0 property_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow init_26_0 property_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow init_26_0 property_type (property_service (set))) +(allow init_26_0 self (netlink_audit_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown nlmsg_relay))) +(allow init_26_0 self (capability (audit_write))) +(allow init_26_0 self (udp_socket (ioctl create))) +(allowx init_26_0 self (ioctl udp_socket (0x8914))) +(allow init_26_0 self (capability (net_raw))) +(allow init_26_0 kernel_26_0 (process (setsched))) +(allow init_26_0 swap_block_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow init_26_0 hw_random_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow init_26_0 device_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow init_26_0 self (capability (sys_tty_config))) +(allow init_26_0 keychord_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow init_26_0 dm_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow init_26_0 dm_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow init_26_0 metadata_block_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow init_26_0 pstorefs_26_0 (dir (search))) +(allow init_26_0 pstorefs_26_0 (file (ioctl read getattr lock open))) +(allow init_26_0 kernel_26_0 (system (syslog_read))) +(allow init_26_0 init_26_0 (key (write search setattr))) +(allow init_26_0 unencrypted_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow init_26_0 proc_overcommit_memory_26_0 (file (write))) +(allow init_26_0 vold_socket_26_0 (sock_file (write))) +(allow init_26_0 vold_26_0 (unix_stream_socket (connectto))) +(allow init_26_0 misc_block_device_26_0 (blk_file (write lock append open))) +(allow init_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow init_26_0 system_file_26_0 (file (ioctl read getattr lock open))) +(allow init_26_0 system_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow init_26_0 vendor_file_type (dir (ioctl read getattr lock search open))) +(allow init_26_0 vendor_file_type (file (ioctl read getattr lock open))) +(allow init_26_0 vendor_file_type (lnk_file (ioctl read getattr lock open))) +(allow init_26_0 proc_meminfo_26_0 (file (ioctl read getattr lock open))) +(allow init_26_0 system_data_file_26_0 (file (read getattr))) +(allow init_26_0 system_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow init_26_0 vendor_shell_exec_26_0 (file (execute))) +(neverallow domain init_26_0 (process (dyntransition))) +(neverallow base_typeattr_15_26_0 init_26_0 (process (transition))) +(neverallow init_26_0 base_typeattr_142_26_0 (file (entrypoint))) +(neverallow init_26_0 shell_data_file_26_0 (lnk_file (read))) +(neverallow init_26_0 app_data_file_26_0 (lnk_file (read))) +(neverallow init_26_0 fs_type (file (execute_no_trans))) +(neverallow init_26_0 file_type (file (execute_no_trans))) +(neverallow init_26_0 service_manager_type (service_manager (add find))) +(neverallow init_26_0 servicemanager_26_0 (service_manager (list))) +(neverallow init_26_0 shell_data_file_26_0 (dir (write add_name remove_name))) +(allow inputflinger_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 inputflinger_26_0 (dir (search))) +(allow servicemanager_26_0 inputflinger_26_0 (file (read open))) +(allow servicemanager_26_0 inputflinger_26_0 (process (getattr))) +(allow inputflinger_26_0 system_server_26_0 (binder (call transfer))) +(allow system_server_26_0 inputflinger_26_0 (binder (transfer))) +(allow inputflinger_26_0 system_server_26_0 (fd (use))) +(allow inputflinger_26_0 sysfs_wake_lock_26_0 (file (ioctl read write getattr lock append open))) +(allow inputflinger_26_0 self (capability2 (block_suspend))) +(allow inputflinger_26_0 inputflinger_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_143_26_0 inputflinger_service_26_0 (service_manager (add))) +(neverallow inputflinger_26_0 unlabeled_26_0 (service_manager (add))) +(allow inputflinger_26_0 input_device_26_0 (dir (ioctl read getattr lock search open))) +(allow inputflinger_26_0 input_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow inputflinger_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow inputflinger_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow inputflinger_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow install_recovery_26_0 self (capability (dac_override))) +(allow install_recovery_26_0 shell_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow install_recovery_26_0 system_file_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow install_recovery_26_0 toolbox_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow install_recovery_26_0 block_device_26_0 (dir (search))) +(allow install_recovery_26_0 boot_block_device_26_0 (blk_file (ioctl read getattr lock open))) +(allow install_recovery_26_0 recovery_block_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow install_recovery_26_0 cache_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow install_recovery_26_0 cache_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow install_recovery_26_0 proc_drop_caches_26_0 (file (write lock append open))) +(allow installd_26_0 self (capability (chown dac_override fowner fsetid setgid setuid sys_admin))) +(allow installd_26_0 dalvikcache_data_file_26_0 (dir (relabelto))) +(allow installd_26_0 dalvikcache_data_file_26_0 (file (relabelto link))) +(allow installd_26_0 apk_data_file_26_0 (dir (ioctl read write create getattr setattr lock relabelfrom rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 apk_data_file_26_0 (file (ioctl read write create getattr setattr lock relabelfrom append unlink link rename open))) +(allow installd_26_0 apk_data_file_26_0 (lnk_file (ioctl read create getattr lock unlink open))) +(allow installd_26_0 asec_apk_file_26_0 (file (ioctl read getattr lock open))) +(allow installd_26_0 apk_tmp_file_26_0 (file (ioctl read getattr lock unlink open))) +(allow installd_26_0 apk_tmp_file_26_0 (dir (ioctl read write create getattr setattr lock relabelfrom rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 oemfs_26_0 (dir (ioctl read getattr lock search open))) +(allow installd_26_0 oemfs_26_0 (file (ioctl read getattr lock open))) +(allow installd_26_0 cgroup_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 cgroup_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow installd_26_0 cgroup_26_0 (lnk_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow installd_26_0 mnt_expand_file_26_0 (dir (getattr search))) +(allow installd_26_0 selinuxfs_26_0 (dir (ioctl read getattr lock search open))) +(allow installd_26_0 selinuxfs_26_0 (file (ioctl read getattr lock open))) +(allow installd_26_0 selinuxfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow installd_26_0 selinuxfs_26_0 (file (write lock append open))) +(allow installd_26_0 kernel_26_0 (security (check_context))) +(allow installd_26_0 rootfs_26_0 (dir (ioctl read getattr lock search open))) +(allow installd_26_0 rootfs_26_0 (file (ioctl read getattr lock open))) +(allow installd_26_0 rootfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow installd_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow installd_26_0 system_file_26_0 (file (ioctl read getattr lock open))) +(allow installd_26_0 system_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow installd_26_0 vendor_app_file_26_0 (dir (ioctl read getattr lock search open))) +(allow installd_26_0 vendor_app_file_26_0 (file (ioctl read getattr lock open))) +(allow installd_26_0 vendor_app_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow installd_26_0 vendor_overlay_file_26_0 (dir (ioctl read getattr lock search open))) +(allow installd_26_0 vendor_overlay_file_26_0 (file (ioctl read getattr lock open))) +(allow installd_26_0 vendor_overlay_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow installd_26_0 file_contexts_file_26_0 (file (ioctl read getattr lock open))) +(allow installd_26_0 seapp_contexts_file_26_0 (file (ioctl read getattr lock open))) +(allow installd_26_0 asec_image_file_26_0 (dir (search))) +(allow installd_26_0 asec_image_file_26_0 (file (getattr))) +(allow installd_26_0 system_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 system_data_file_26_0 (lnk_file (create setattr unlink))) +(allow installd_26_0 media_rw_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 media_rw_data_file_26_0 (file (getattr unlink))) +(allow installd_26_0 system_data_file_26_0 (dir (relabelfrom))) +(allow installd_26_0 media_rw_data_file_26_0 (dir (relabelto))) +(allow installd_26_0 tmpfs_26_0 (dir (ioctl read getattr lock search open))) +(allow installd_26_0 storage_file_26_0 (dir (search))) +(allow installd_26_0 sdcardfs_26_0 (dir (read write getattr remove_name search rmdir open))) +(allow installd_26_0 sdcardfs_26_0 (file (getattr unlink))) +(allow installd_26_0 misc_user_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 misc_user_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow installd_26_0 keychain_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 keychain_data_file_26_0 (file (ioctl read getattr lock unlink open))) +(allow installd_26_0 install_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow installd_26_0 dalvikcache_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 dalvikcache_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow installd_26_0 dalvikcache_data_file_26_0 (lnk_file (getattr))) +(allow installd_26_0 resourcecache_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow installd_26_0 resourcecache_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow installd_26_0 unlabeled_26_0 (dir (ioctl read write getattr lock relabelfrom add_name remove_name search rmdir open))) +(allow installd_26_0 unlabeled_26_0 (file (getattr setattr relabelfrom unlink rename))) +(allow installd_26_0 unlabeled_26_0 (lnk_file (getattr setattr relabelfrom unlink rename))) +(allow installd_26_0 unlabeled_26_0 (sock_file (getattr setattr relabelfrom unlink rename))) +(allow installd_26_0 unlabeled_26_0 (fifo_file (getattr setattr relabelfrom unlink rename))) +(allow installd_26_0 unlabeled_26_0 (file (ioctl read getattr lock open))) +(allow installd_26_0 system_data_file_26_0 (file (getattr relabelfrom unlink))) +(allow installd_26_0 system_data_file_26_0 (lnk_file (getattr relabelfrom unlink))) +(allow installd_26_0 system_data_file_26_0 (sock_file (getattr relabelfrom unlink))) +(allow installd_26_0 system_data_file_26_0 (fifo_file (getattr relabelfrom unlink))) +(allow installd_26_0 shell_data_file_26_0 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 bluetooth_data_file_26_0 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 nfc_data_file_26_0 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 radio_data_file_26_0 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 app_data_file_26_0 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 system_app_data_file_26_0 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 shell_data_file_26_0 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 shell_data_file_26_0 (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 shell_data_file_26_0 (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 shell_data_file_26_0 (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 bluetooth_data_file_26_0 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 bluetooth_data_file_26_0 (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 bluetooth_data_file_26_0 (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 bluetooth_data_file_26_0 (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 nfc_data_file_26_0 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 nfc_data_file_26_0 (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 nfc_data_file_26_0 (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 nfc_data_file_26_0 (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 radio_data_file_26_0 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 radio_data_file_26_0 (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 radio_data_file_26_0 (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 radio_data_file_26_0 (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 app_data_file_26_0 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 app_data_file_26_0 (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 app_data_file_26_0 (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 app_data_file_26_0 (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 system_app_data_file_26_0 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 system_app_data_file_26_0 (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 system_app_data_file_26_0 (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 system_app_data_file_26_0 (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink rename open))) +(allow installd_26_0 user_profile_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow installd_26_0 user_profile_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow installd_26_0 user_profile_data_file_26_0 (dir (rmdir))) +(allow installd_26_0 user_profile_data_file_26_0 (file (unlink))) +(allow installd_26_0 profman_dump_data_file_26_0 (dir (write add_name search))) +(allow installd_26_0 profman_dump_data_file_26_0 (file (write create setattr open))) +(allow installd_26_0 devpts_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow installd_26_0 toolbox_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow installd_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 installd_26_0 (dir (search))) +(allow servicemanager_26_0 installd_26_0 (file (read open))) +(allow servicemanager_26_0 installd_26_0 (process (getattr))) +(allow installd_26_0 installd_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_144_26_0 installd_service_26_0 (service_manager (add))) +(neverallow installd_26_0 unlabeled_26_0 (service_manager (add))) +(allow installd_26_0 dumpstate_26_0 (fifo_file (write getattr))) +(allow installd_26_0 system_server_26_0 (binder (call transfer))) +(allow system_server_26_0 installd_26_0 (binder (transfer))) +(allow installd_26_0 system_server_26_0 (fd (use))) +(allow installd_26_0 permission_service_26_0 (service_manager (find))) +(allow installd_26_0 block_device_26_0 (dir (search))) +(allow installd_26_0 labeledfs_26_0 (filesystem (quotamod quotaget))) +(allow installd_26_0 preloads_data_file_26_0 (file (ioctl read getattr lock unlink open))) +(allow installd_26_0 preloads_data_file_26_0 (dir (ioctl read write getattr lock remove_name search rmdir open))) +(allow installd_26_0 preloads_media_file_26_0 (file (ioctl read getattr lock unlink open))) +(allow installd_26_0 preloads_media_file_26_0 (dir (ioctl read write getattr lock remove_name search rmdir open))) +(neverallow base_typeattr_145_26_0 installd_service_26_0 (service_manager (find))) +(neverallow base_typeattr_63_26_0 installd_26_0 (binder (call))) +(neverallow installd_26_0 base_typeattr_146_26_0 (binder (call))) +(allow kernel_26_0 self (capability (sys_nice))) +(allow kernel_26_0 rootfs_26_0 (dir (ioctl read getattr lock search open))) +(allow kernel_26_0 rootfs_26_0 (file (ioctl read getattr lock open))) +(allow kernel_26_0 rootfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow kernel_26_0 proc_26_0 (dir (ioctl read getattr lock search open))) +(allow kernel_26_0 proc_26_0 (file (ioctl read getattr lock open))) +(allow kernel_26_0 proc_26_0 (lnk_file (ioctl read getattr lock open))) +(allow kernel_26_0 selinuxfs_26_0 (dir (ioctl read getattr lock search open))) +(allow kernel_26_0 selinuxfs_26_0 (file (ioctl read getattr lock open))) +(allow kernel_26_0 file_contexts_file_26_0 (file (ioctl read getattr lock open))) +(allow kernel_26_0 rootfs_26_0 (file (relabelfrom))) +(allow kernel_26_0 init_exec_26_0 (file (relabelto))) +(allow kernel_26_0 init_26_0 (process (share))) +(allow kernel_26_0 unlabeled_26_0 (dir (search))) +(allow kernel_26_0 usbfs_26_0 (filesystem (mount))) +(allow kernel_26_0 usbfs_26_0 (dir (search))) +(dontaudit kernel_26_0 self (security (setenforce))) +(allow kernel_26_0 self (capability (sys_resource))) +(allow kernel_26_0 self (capability (sys_boot))) +(allow kernel_26_0 proc_sysrq_26_0 (file (write lock append open))) +(allow kernel_26_0 tmpfs_26_0 (chr_file (write))) +(allow kernel_26_0 selinuxfs_26_0 (file (write))) +(allow kernel_26_0 self (security (setcheckreqprot))) +(allow kernel_26_0 priv_app_26_0 (fd (use))) +(allow kernel_26_0 sdcard_type (file (read write))) +(allow kernel_26_0 vold_26_0 (fd (use))) +(allow kernel_26_0 app_data_file_26_0 (file (read))) +(allow kernel_26_0 asec_image_file_26_0 (file (read))) +(allow kernel_26_0 update_engine_data_file_26_0 (file (read))) +(allow kernel_26_0 nativetest_data_file_26_0 (file (read))) +(allow kernel_26_0 media_rw_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow kernel_26_0 media_rw_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow kernel_26_0 vold_data_file_26_0 (file (read))) +(neverallow base_typeattr_10_26_0 kernel_26_0 (process (transition dyntransition))) +(neverallow kernel_26_0 base_typeattr_10_26_0 (file (execute_no_trans entrypoint))) +(neverallow kernel_26_0 self (capability (dac_override dac_read_search))) +(allow keystore_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 keystore_26_0 (dir (search))) +(allow servicemanager_26_0 keystore_26_0 (file (read open))) +(allow servicemanager_26_0 keystore_26_0 (process (getattr))) +(allow keystore_26_0 system_server_26_0 (binder (call transfer))) +(allow system_server_26_0 keystore_26_0 (binder (transfer))) +(allow keystore_26_0 system_server_26_0 (fd (use))) +(allow keystore_26_0 keystore_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow keystore_26_0 keystore_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow keystore_26_0 keystore_data_file_26_0 (lnk_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow keystore_26_0 keystore_data_file_26_0 (sock_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow keystore_26_0 keystore_data_file_26_0 (fifo_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow keystore_26_0 keystore_exec_26_0 (file (getattr))) +(allow keystore_26_0 keystore_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_147_26_0 keystore_service_26_0 (service_manager (add))) +(neverallow keystore_26_0 unlabeled_26_0 (service_manager (add))) +(allow keystore_26_0 sec_key_att_app_id_provider_service_26_0 (service_manager (find))) +(allow keystore_26_0 selinuxfs_26_0 (dir (ioctl read getattr lock search open))) +(allow keystore_26_0 selinuxfs_26_0 (file (ioctl read getattr lock open))) +(allow keystore_26_0 selinuxfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow keystore_26_0 selinuxfs_26_0 (file (write lock append open))) +(allow keystore_26_0 kernel_26_0 (security (compute_av))) +(allow keystore_26_0 self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(allow keystore_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow keystore_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow keystore_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(neverallow base_typeattr_147_26_0 keystore_data_file_26_0 (dir (write lock relabelfrom append unlink link rename execute quotaon mounton add_name remove_name reparent rmdir audit_access execmod))) +(neverallow base_typeattr_147_26_0 keystore_data_file_26_0 (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(neverallow base_typeattr_147_26_0 keystore_data_file_26_0 (lnk_file (ioctl read write create setattr lock relabelfrom append unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_147_26_0 keystore_data_file_26_0 (sock_file (ioctl read write create setattr lock relabelfrom append unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_147_26_0 keystore_data_file_26_0 (fifo_file (ioctl read write create setattr lock relabelfrom append unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_148_26_0 keystore_data_file_26_0 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton add_name remove_name reparent search rmdir open audit_access execmod))) +(neverallow base_typeattr_148_26_0 keystore_data_file_26_0 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(neverallow base_typeattr_148_26_0 keystore_data_file_26_0 (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_148_26_0 keystore_data_file_26_0 (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_148_26_0 keystore_data_file_26_0 (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_10_26_0 keystore_26_0 (process (ptrace))) +(allow lmkd_26_0 self (capability (dac_override kill sys_resource))) +(allow lmkd_26_0 self (capability (ipc_lock))) +(allow lmkd_26_0 appdomain (dir (ioctl read getattr lock search open))) +(allow lmkd_26_0 appdomain (file (ioctl read getattr lock open))) +(allow lmkd_26_0 appdomain (lnk_file (ioctl read getattr lock open))) +(allow lmkd_26_0 appdomain (file (write))) +(allow lmkd_26_0 system_server_26_0 (dir (ioctl read getattr lock search open))) +(allow lmkd_26_0 system_server_26_0 (file (ioctl read getattr lock open))) +(allow lmkd_26_0 system_server_26_0 (lnk_file (ioctl read getattr lock open))) +(allow lmkd_26_0 system_server_26_0 (file (write))) +(allow lmkd_26_0 sysfs_type (dir (ioctl read getattr lock search open))) +(allow lmkd_26_0 sysfs_type (file (ioctl read getattr lock open))) +(allow lmkd_26_0 sysfs_type (lnk_file (ioctl read getattr lock open))) +(allow lmkd_26_0 sysfs_lowmemorykiller_26_0 (file (write lock append open))) +(allow lmkd_26_0 appdomain (process (sigkill))) +(allow lmkd_26_0 cgroup_26_0 (dir (remove_name rmdir))) +(allow lmkd_26_0 self (capability (sys_nice))) +(allow lmkd_26_0 proc_zoneinfo_26_0 (file (ioctl read getattr lock open))) +(neverallow base_typeattr_10_26_0 lmkd_26_0 (process (noatsecure))) +(allow logd_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow logd_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow logd_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow logd_26_0 proc_26_0 (dir (ioctl read getattr lock search open))) +(allow logd_26_0 proc_26_0 (file (ioctl read getattr lock open))) +(allow logd_26_0 proc_26_0 (lnk_file (ioctl read getattr lock open))) +(allow logd_26_0 proc_meminfo_26_0 (dir (ioctl read getattr lock search open))) +(allow logd_26_0 proc_meminfo_26_0 (file (ioctl read getattr lock open))) +(allow logd_26_0 proc_meminfo_26_0 (lnk_file (ioctl read getattr lock open))) +(allow logd_26_0 proc_net_26_0 (dir (ioctl read getattr lock search open))) +(allow logd_26_0 proc_net_26_0 (file (ioctl read getattr lock open))) +(allow logd_26_0 proc_net_26_0 (lnk_file (ioctl read getattr lock open))) +(allow logd_26_0 self (capability (setgid setuid setpcap sys_nice audit_control))) +(allow logd_26_0 self (capability2 (syslog))) +(allow logd_26_0 self (netlink_audit_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown nlmsg_write))) +(allow logd_26_0 kernel_26_0 (system (syslog_read))) +(allow logd_26_0 kmsg_device_26_0 (chr_file (write lock append open))) +(allow logd_26_0 system_data_file_26_0 (file (ioctl read getattr lock open))) +(allow logd_26_0 system_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow logd_26_0 pstorefs_26_0 (dir (search))) +(allow logd_26_0 pstorefs_26_0 (file (ioctl read getattr lock open))) +(allow logd_26_0 misc_logd_file_26_0 (dir (ioctl read getattr lock search open))) +(allow logd_26_0 misc_logd_file_26_0 (file (ioctl read write getattr lock append open))) +(allow logd_26_0 runtime_event_log_tags_file_26_0 (file (ioctl read write getattr lock append open))) +(allow logd_26_0 device_logging_prop_26_0 (file (ioctl read getattr lock open))) +(allow logd_26_0 domain (dir (ioctl read getattr lock search open))) +(allow logd_26_0 domain (file (ioctl read getattr lock open))) +(allow logd_26_0 domain (lnk_file (ioctl read getattr lock open))) +(allow logd_26_0 kernel_26_0 (system (syslog_mod))) +(allow logd_26_0 logd_socket_26_0 (sock_file (write))) +(allow logd_26_0 logd_26_0 (unix_stream_socket (connectto))) +(allow logd_26_0 runtime_event_log_tags_file_26_0 (file (ioctl read getattr lock open))) +(allow runtime_event_log_tags_file_26_0 tmpfs_26_0 (filesystem (associate))) +(dontaudit domain runtime_event_log_tags_file_26_0 (file (read open))) +(neverallow logd_26_0 dev_type (blk_file (read write))) +(neverallow logd_26_0 domain (process (ptrace))) +(neverallow base_typeattr_149_26_0 logd_26_0 (process (ptrace))) +(neverallow logd_26_0 system_file_26_0 (file (write))) +(neverallow logd_26_0 system_file_26_0 (dir (write))) +(neverallow logd_26_0 system_file_26_0 (lnk_file (write))) +(neverallow logd_26_0 system_file_26_0 (chr_file (write))) +(neverallow logd_26_0 system_file_26_0 (blk_file (write))) +(neverallow logd_26_0 system_file_26_0 (sock_file (write))) +(neverallow logd_26_0 system_file_26_0 (fifo_file (write))) +(neverallow logd_26_0 system_data_file_26_0 (file (write))) +(neverallow logd_26_0 system_data_file_26_0 (dir (write))) +(neverallow logd_26_0 system_data_file_26_0 (lnk_file (write))) +(neverallow logd_26_0 system_data_file_26_0 (chr_file (write))) +(neverallow logd_26_0 system_data_file_26_0 (blk_file (write))) +(neverallow logd_26_0 system_data_file_26_0 (sock_file (write))) +(neverallow logd_26_0 system_data_file_26_0 (fifo_file (write))) +(neverallow logd_26_0 app_data_file_26_0 (file (write))) +(neverallow logd_26_0 app_data_file_26_0 (dir (write))) +(neverallow logd_26_0 app_data_file_26_0 (lnk_file (write))) +(neverallow logd_26_0 app_data_file_26_0 (chr_file (write))) +(neverallow logd_26_0 app_data_file_26_0 (blk_file (write))) +(neverallow logd_26_0 app_data_file_26_0 (sock_file (write))) +(neverallow logd_26_0 app_data_file_26_0 (fifo_file (write))) +(neverallow base_typeattr_5_26_0 logd_26_0 (process (transition))) +(neverallow base_typeattr_10_26_0 logd_26_0 (process (dyntransition))) +(neverallow base_typeattr_150_26_0 runtime_event_log_tags_file_26_0 (file (write create setattr relabelfrom append unlink link rename))) +(neverallow logpersist_26_0 dev_type (blk_file (read write))) +(neverallow logpersist_26_0 domain (process (ptrace))) +(neverallow logpersist_26_0 system_data_file_26_0 (file (write))) +(neverallow logpersist_26_0 system_data_file_26_0 (dir (write))) +(neverallow logpersist_26_0 system_data_file_26_0 (lnk_file (write))) +(neverallow logpersist_26_0 system_data_file_26_0 (chr_file (write))) +(neverallow logpersist_26_0 system_data_file_26_0 (blk_file (write))) +(neverallow logpersist_26_0 system_data_file_26_0 (sock_file (write))) +(neverallow logpersist_26_0 system_data_file_26_0 (fifo_file (write))) +(neverallow logpersist_26_0 app_data_file_26_0 (file (write))) +(neverallow logpersist_26_0 app_data_file_26_0 (dir (write))) +(neverallow logpersist_26_0 app_data_file_26_0 (lnk_file (write))) +(neverallow logpersist_26_0 app_data_file_26_0 (chr_file (write))) +(neverallow logpersist_26_0 app_data_file_26_0 (blk_file (write))) +(neverallow logpersist_26_0 app_data_file_26_0 (sock_file (write))) +(neverallow logpersist_26_0 app_data_file_26_0 (fifo_file (write))) +(neverallow base_typeattr_10_26_0 logpersist_26_0 (process (dyntransition))) +(allow mediacodec_26_0 hwservicemanager_prop_26_0 (file (ioctl read getattr lock open))) +(allow mediacodec_26_0 vndbinder_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow mediacodec_26_0 vndservicemanager_26_0 (binder (call transfer))) +(allow vndservicemanager_26_0 mediacodec_26_0 (dir (search))) +(allow vndservicemanager_26_0 mediacodec_26_0 (file (read open))) +(allow vndservicemanager_26_0 mediacodec_26_0 (process (getattr))) +(allow mediacodec_26_0 binderservicedomain (binder (call transfer))) +(allow binderservicedomain mediacodec_26_0 (binder (transfer))) +(allow mediacodec_26_0 binderservicedomain (fd (use))) +(allow mediacodec_26_0 appdomain (binder (call transfer))) +(allow appdomain mediacodec_26_0 (binder (transfer))) +(allow mediacodec_26_0 appdomain (fd (use))) +(allow mediacodec_26_0 hal_graphics_composer (fd (use))) +(allow mediacodec_26_0 gpu_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow mediacodec_26_0 video_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow mediacodec_26_0 video_device_26_0 (dir (search))) +(allow mediacodec_26_0 ion_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow mediacodec_26_0 hal_camera (fd (use))) +(allow mediacodec_26_0 su_26_0 (fifo_file (append))) +(allow mediacodec_26_0 anr_data_file_26_0 (file (append))) +(allow mediacodec_26_0 dumpstate_26_0 (fd (use))) +(allow mediacodec_26_0 dumpstate_26_0 (fifo_file (write append))) +(allow mediacodec_26_0 tombstoned_26_0 (unix_stream_socket (connectto))) +(allow mediacodec_26_0 tombstoned_26_0 (fd (use))) +(allow mediacodec_26_0 tombstoned_crash_socket_26_0 (sock_file (write))) +(allow mediacodec_26_0 tombstone_data_file_26_0 (file (append))) +(allow mediacodec_26_0 hal_omx_hwservice_26_0 (hwservice_manager (add find))) +(allow mediacodec_26_0 hidl_base_hwservice_26_0 (hwservice_manager (add))) +(neverallow base_typeattr_151_26_0 hal_omx_hwservice_26_0 (hwservice_manager (add))) +(neverallow mediacodec_26_0 unlabeled_26_0 (hwservice_manager (add))) +(allow mediacodec_26_0 bufferhubd_26_0 (fd (use))) +(neverallow mediacodec_26_0 fs_type (file (execute_no_trans))) +(neverallow mediacodec_26_0 file_type (file (execute_no_trans))) +(neverallow mediacodec_26_0 domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect))) +(neverallow mediacodec_26_0 domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(neverallow mediacodec_26_0 domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(allow mediadrmserver_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 mediadrmserver_26_0 (dir (search))) +(allow servicemanager_26_0 mediadrmserver_26_0 (file (read open))) +(allow servicemanager_26_0 mediadrmserver_26_0 (process (getattr))) +(allow mediadrmserver_26_0 binderservicedomain (binder (call transfer))) +(allow binderservicedomain mediadrmserver_26_0 (binder (transfer))) +(allow mediadrmserver_26_0 binderservicedomain (fd (use))) +(allow mediadrmserver_26_0 appdomain (binder (call transfer))) +(allow appdomain mediadrmserver_26_0 (binder (transfer))) +(allow mediadrmserver_26_0 appdomain (fd (use))) +(allow mediadrmserver_26_0 mediadrmserver_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_152_26_0 mediadrmserver_service_26_0 (service_manager (add))) +(neverallow mediadrmserver_26_0 unlabeled_26_0 (service_manager (add))) +(allow mediadrmserver_26_0 mediaserver_service_26_0 (service_manager (find))) +(allow mediadrmserver_26_0 mediametrics_service_26_0 (service_manager (find))) +(allow mediadrmserver_26_0 processinfo_service_26_0 (service_manager (find))) +(allow mediadrmserver_26_0 surfaceflinger_service_26_0 (service_manager (find))) +(allow mediadrmserver_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow mediadrmserver_26_0 mediacasserver_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_152_26_0 mediacasserver_service_26_0 (service_manager (add))) +(neverallow mediadrmserver_26_0 unlabeled_26_0 (service_manager (add))) +(allow mediadrmserver_26_0 mediacodec_26_0 (binder (call transfer))) +(allow mediacodec_26_0 mediadrmserver_26_0 (binder (transfer))) +(allow mediadrmserver_26_0 mediacodec_26_0 (fd (use))) +(neverallow mediadrmserver_26_0 fs_type (file (execute_no_trans))) +(neverallow mediadrmserver_26_0 file_type (file (execute_no_trans))) +(neverallowx mediadrmserver_26_0 domain (ioctl tcp_socket (0x6900 0x6902))) +(neverallowx mediadrmserver_26_0 domain (ioctl udp_socket (0x6900 0x6902))) +(neverallowx mediadrmserver_26_0 domain (ioctl rawip_socket (0x6900 0x6902))) +(neverallowx mediadrmserver_26_0 domain (ioctl tcp_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(neverallowx mediadrmserver_26_0 domain (ioctl udp_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(neverallowx mediadrmserver_26_0 domain (ioctl rawip_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(neverallowx mediadrmserver_26_0 domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(neverallowx mediadrmserver_26_0 domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(neverallowx mediadrmserver_26_0 domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(allow mediaextractor_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 mediaextractor_26_0 (dir (search))) +(allow servicemanager_26_0 mediaextractor_26_0 (file (read open))) +(allow servicemanager_26_0 mediaextractor_26_0 (process (getattr))) +(allow mediaextractor_26_0 binderservicedomain (binder (call transfer))) +(allow binderservicedomain mediaextractor_26_0 (binder (transfer))) +(allow mediaextractor_26_0 binderservicedomain (fd (use))) +(allow mediaextractor_26_0 appdomain (binder (call transfer))) +(allow appdomain mediaextractor_26_0 (binder (transfer))) +(allow mediaextractor_26_0 appdomain (fd (use))) +(allow mediaextractor_26_0 mediaextractor_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_153_26_0 mediaextractor_service_26_0 (service_manager (add))) +(neverallow mediaextractor_26_0 unlabeled_26_0 (service_manager (add))) +(allow mediaextractor_26_0 mediametrics_service_26_0 (service_manager (find))) +(allow mediaextractor_26_0 mediacasserver_service_26_0 (service_manager (find))) +(allow mediaextractor_26_0 system_server_26_0 (fd (use))) +(allow mediaextractor_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow mediaextractor_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow mediaextractor_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow mediaextractor_26_0 proc_meminfo_26_0 (file (ioctl read getattr lock open))) +(allow mediaextractor_26_0 su_26_0 (fifo_file (append))) +(allow mediaextractor_26_0 anr_data_file_26_0 (file (append))) +(allow mediaextractor_26_0 dumpstate_26_0 (fd (use))) +(allow mediaextractor_26_0 dumpstate_26_0 (fifo_file (write append))) +(allow mediaextractor_26_0 tombstoned_26_0 (unix_stream_socket (connectto))) +(allow mediaextractor_26_0 tombstoned_26_0 (fd (use))) +(allow mediaextractor_26_0 tombstoned_crash_socket_26_0 (sock_file (write))) +(allow mediaextractor_26_0 tombstone_data_file_26_0 (file (append))) +(allow mediaextractor_26_0 media_rw_data_file_26_0 (file (read getattr))) +(allow mediaextractor_26_0 app_data_file_26_0 (file (read getattr))) +(allow mediaextractor_26_0 apk_data_file_26_0 (file (read getattr))) +(allow mediaextractor_26_0 asec_apk_file_26_0 (file (read getattr))) +(allow mediaextractor_26_0 ringtone_file_26_0 (file (read getattr))) +(neverallow mediaextractor_26_0 fs_type (file (execute_no_trans))) +(neverallow mediaextractor_26_0 file_type (file (execute_no_trans))) +(neverallow mediaextractor_26_0 domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect))) +(neverallow mediaextractor_26_0 domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(neverallow mediaextractor_26_0 domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(allow mediametrics_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 mediametrics_26_0 (dir (search))) +(allow servicemanager_26_0 mediametrics_26_0 (file (read open))) +(allow servicemanager_26_0 mediametrics_26_0 (process (getattr))) +(allow mediametrics_26_0 binderservicedomain (binder (call transfer))) +(allow binderservicedomain mediametrics_26_0 (binder (transfer))) +(allow mediametrics_26_0 binderservicedomain (fd (use))) +(allow mediametrics_26_0 mediametrics_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_154_26_0 mediametrics_service_26_0 (service_manager (add))) +(neverallow mediametrics_26_0 unlabeled_26_0 (service_manager (add))) +(allow mediametrics_26_0 system_server_26_0 (fd (use))) +(allow mediametrics_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow mediametrics_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow mediametrics_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow mediametrics_26_0 proc_meminfo_26_0 (file (ioctl read getattr lock open))) +(allow mediametrics_26_0 app_data_file_26_0 (file (write))) +(neverallow mediametrics_26_0 fs_type (file (execute_no_trans))) +(neverallow mediametrics_26_0 file_type (file (execute_no_trans))) +(neverallow mediametrics_26_0 domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect))) +(neverallow mediametrics_26_0 domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(neverallow mediametrics_26_0 domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(allow mediaserver_26_0 sdcard_type (dir (ioctl read getattr lock search open))) +(allow mediaserver_26_0 sdcard_type (file (ioctl read getattr lock open))) +(allow mediaserver_26_0 sdcard_type (lnk_file (ioctl read getattr lock open))) +(allow mediaserver_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow mediaserver_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow mediaserver_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow mediaserver_26_0 proc_26_0 (lnk_file (getattr))) +(allow mediaserver_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow mediaserver_26_0 self (process (ptrace))) +(allow mediaserver_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 mediaserver_26_0 (dir (search))) +(allow servicemanager_26_0 mediaserver_26_0 (file (read open))) +(allow servicemanager_26_0 mediaserver_26_0 (process (getattr))) +(allow mediaserver_26_0 binderservicedomain (binder (call transfer))) +(allow binderservicedomain mediaserver_26_0 (binder (transfer))) +(allow mediaserver_26_0 binderservicedomain (fd (use))) +(allow mediaserver_26_0 appdomain (binder (call transfer))) +(allow appdomain mediaserver_26_0 (binder (transfer))) +(allow mediaserver_26_0 appdomain (fd (use))) +(allow mediaserver_26_0 media_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow mediaserver_26_0 media_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow mediaserver_26_0 app_data_file_26_0 (dir (search))) +(allow mediaserver_26_0 app_data_file_26_0 (file (ioctl read write getattr lock append open))) +(allow mediaserver_26_0 sdcard_type (file (write))) +(allow mediaserver_26_0 gpu_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow mediaserver_26_0 video_device_26_0 (dir (ioctl read getattr lock search open))) +(allow mediaserver_26_0 video_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow mediaserver_26_0 property_socket_26_0 (sock_file (write))) +(allow mediaserver_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow mediaserver_26_0 audio_prop_26_0 (property_service (set))) +(allow mediaserver_26_0 audio_prop_26_0 (file (ioctl read getattr lock open))) +(allow mediaserver_26_0 sysfs_26_0 (file (ioctl read getattr lock open))) +(allow mediaserver_26_0 apk_data_file_26_0 (file (read getattr))) +(allow mediaserver_26_0 asec_apk_file_26_0 (file (read getattr))) +(allow mediaserver_26_0 ringtone_file_26_0 (file (read getattr))) +(allow mediaserver_26_0 radio_data_file_26_0 (file (read getattr))) +(allow mediaserver_26_0 appdomain (fifo_file (read write getattr))) +(allow mediaserver_26_0 rpmsg_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow mediaserver_26_0 system_server_26_0 (fifo_file (ioctl read getattr lock open))) +(allow mediaserver_26_0 media_rw_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow mediaserver_26_0 media_rw_data_file_26_0 (file (ioctl read getattr lock open))) +(allow mediaserver_26_0 media_rw_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow mediaserver_26_0 app_fuse_file_26_0 (file (read getattr))) +(allow mediaserver_26_0 qtaguid_proc_26_0 (file (ioctl read write getattr lock append open))) +(allow mediaserver_26_0 qtaguid_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow mediaserver_26_0 drmserver_socket_26_0 (sock_file (write))) +(allow mediaserver_26_0 drmserver_26_0 (unix_stream_socket (connectto))) +(allow mediaserver_26_0 bluetooth_socket_26_0 (sock_file (write))) +(allow mediaserver_26_0 bluetooth_26_0 (unix_stream_socket (connectto))) +(allow mediaserver_26_0 mediaserver_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_155_26_0 mediaserver_service_26_0 (service_manager (add))) +(neverallow mediaserver_26_0 unlabeled_26_0 (service_manager (add))) +(allow mediaserver_26_0 activity_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 appops_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 audioserver_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 cameraserver_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 batterystats_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 drmserver_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 mediaextractor_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 mediacodec_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 mediametrics_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 media_session_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 permission_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 power_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 processinfo_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 scheduling_policy_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 surfaceflinger_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 mediadrmserver_service_26_0 (service_manager (find))) +(allow mediaserver_26_0 hidl_token_hwservice_26_0 (hwservice_manager (find))) +(allow mediaserver_26_0 oemfs_26_0 (dir (search))) +(allow mediaserver_26_0 oemfs_26_0 (file (ioctl read getattr lock open))) +(allow drmserver_26_0 mediaserver_26_0 (dir (search))) +(allow drmserver_26_0 mediaserver_26_0 (file (read open))) +(allow drmserver_26_0 mediaserver_26_0 (process (getattr))) +(allow mediaserver_26_0 drmserver_26_0 (drmservice (consumeRights setPlaybackStatus openDecryptSession closeDecryptSession initializeDecryptUnit decrypt finalizeDecryptUnit pread))) +(allowx mediaserver_26_0 self (ioctl tcp_socket (((range 0x5401 0x5403)) 0x540b ((range 0x540e 0x5411)) ((range 0x5413 0x5414)) 0x5451))) +(allowx mediaserver_26_0 self (ioctl udp_socket (((range 0x5401 0x5403)) 0x540b ((range 0x540e 0x5411)) ((range 0x5413 0x5414)) 0x5451))) +(allowx mediaserver_26_0 self (ioctl rawip_socket (((range 0x5401 0x5403)) 0x540b ((range 0x540e 0x5411)) ((range 0x5413 0x5414)) 0x5451))) +(allowx mediaserver_26_0 self (ioctl tcp_socket (((range 0x8906 0x8907)) 0x8910 ((range 0x8912 0x8913)) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942))) +(allowx mediaserver_26_0 self (ioctl udp_socket (((range 0x8906 0x8907)) 0x8910 ((range 0x8912 0x8913)) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942))) +(allowx mediaserver_26_0 self (ioctl rawip_socket (((range 0x8906 0x8907)) 0x8910 ((range 0x8912 0x8913)) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942))) +(allowx mediaserver_26_0 self (ioctl tcp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f ((range 0x8b11 0x8b13)) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d))) +(allowx mediaserver_26_0 self (ioctl udp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f ((range 0x8b11 0x8b13)) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d))) +(allowx mediaserver_26_0 self (ioctl rawip_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f ((range 0x8b11 0x8b13)) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d))) +(allow mediaserver_26_0 media_rw_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow mediaserver_26_0 media_rw_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow mediaserver_26_0 preloads_media_file_26_0 (file (ioctl read getattr))) +(allow mediaserver_26_0 ion_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow mediaserver_26_0 hal_graphics_allocator (fd (use))) +(allow mediaserver_26_0 hal_graphics_composer (fd (use))) +(allow mediaserver_26_0 hal_camera (fd (use))) +(allow mediaserver_26_0 system_server_26_0 (fd (use))) +(allow mediaserver_26_0 mediacodec_26_0 (binder (call transfer))) +(allow mediacodec_26_0 mediaserver_26_0 (binder (transfer))) +(allow mediaserver_26_0 mediacodec_26_0 (fd (use))) +(neverallow mediaserver_26_0 fs_type (file (execute_no_trans))) +(neverallow mediaserver_26_0 file_type (file (execute_no_trans))) +(neverallowx mediaserver_26_0 domain (ioctl tcp_socket (0x6900 0x6902))) +(neverallowx mediaserver_26_0 domain (ioctl udp_socket (0x6900 0x6902))) +(neverallowx mediaserver_26_0 domain (ioctl rawip_socket (0x6900 0x6902))) +(neverallowx mediaserver_26_0 domain (ioctl tcp_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(neverallowx mediaserver_26_0 domain (ioctl udp_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(neverallowx mediaserver_26_0 domain (ioctl rawip_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(neverallowx mediaserver_26_0 domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(neverallowx mediaserver_26_0 domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(neverallowx mediaserver_26_0 domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(allow modprobe_26_0 proc_modules_26_0 (file (ioctl read getattr lock open))) +(allow modprobe_26_0 self (capability (sys_module))) +(allow modprobe_26_0 kernel_26_0 (key (search))) +(allow modprobe_26_0 system_file_26_0 (system (module_load))) +(allow modprobe_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow modprobe_26_0 system_file_26_0 (file (ioctl read getattr lock open))) +(allow modprobe_26_0 system_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow mtp_26_0 self (socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow mtp_26_0 self (capability (net_raw))) +(allow mtp_26_0 ppp_26_0 (process (signal))) +(allow mtp_26_0 vpn_data_file_26_0 (dir (search))) +(allowx netd_26_0 self (ioctl udp_socket (0x6900 0x6902))) +(allowx netd_26_0 self (ioctl udp_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(allowx netd_26_0 self (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(allow netd_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow netd_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow netd_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow netd_26_0 system_server_26_0 (fd (use))) +(allow netd_26_0 self (capability (kill net_admin net_raw))) +(dontaudit netd_26_0 self (capability (fsetid))) +(allow netd_26_0 self (netlink_kobject_uevent_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow netd_26_0 self (netlink_route_socket (nlmsg_write))) +(allow netd_26_0 self (netlink_nflog_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow netd_26_0 self (netlink_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow netd_26_0 self (netlink_tcpdiag_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown nlmsg_read nlmsg_write))) +(allow netd_26_0 self (netlink_generic_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow netd_26_0 self (netlink_netfilter_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow netd_26_0 shell_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow netd_26_0 system_file_26_0 (file (getattr execute execute_no_trans))) +(allow netd_26_0 devpts_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow netd_26_0 system_file_26_0 (file (lock))) +(allow netd_26_0 proc_net_26_0 (dir (ioctl read getattr lock search open))) +(allow netd_26_0 proc_net_26_0 (file (ioctl read getattr lock open))) +(allow netd_26_0 proc_net_26_0 (lnk_file (ioctl read getattr lock open))) +(allow netd_26_0 proc_net_26_0 (file (ioctl read write getattr lock append open))) +(allow netd_26_0 sysfs_type (dir (ioctl read getattr lock search open))) +(allow netd_26_0 sysfs_type (file (ioctl read getattr lock open))) +(allow netd_26_0 sysfs_type (lnk_file (ioctl read getattr lock open))) +(allow netd_26_0 sysfs_26_0 (file (write))) +(allow netd_26_0 sysfs_usb_26_0 (file (write))) +(allow netd_26_0 self (capability (chown dac_override))) +(allow netd_26_0 net_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow netd_26_0 net_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow netd_26_0 self (capability (fowner))) +(allow netd_26_0 dnsmasq_26_0 (process (signal))) +(allow netd_26_0 clatd_26_0 (process (signal))) +(allow netd_26_0 property_socket_26_0 (sock_file (write))) +(allow netd_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow netd_26_0 ctl_mdnsd_prop_26_0 (property_service (set))) +(allow netd_26_0 ctl_mdnsd_prop_26_0 (file (ioctl read getattr lock open))) +(allow netd_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 netd_26_0 (dir (search))) +(allow servicemanager_26_0 netd_26_0 (file (read open))) +(allow servicemanager_26_0 netd_26_0 (process (getattr))) +(allow netd_26_0 netd_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_156_26_0 netd_service_26_0 (service_manager (add))) +(neverallow netd_26_0 unlabeled_26_0 (service_manager (add))) +(allow netd_26_0 dumpstate_26_0 (fifo_file (write getattr))) +(allow netd_26_0 system_server_26_0 (binder (call))) +(allow netd_26_0 permission_service_26_0 (service_manager (find))) +(allow netd_26_0 netd_listener_service_26_0 (service_manager (find))) +(allow netd_26_0 netdomain (tcp_socket (read write getattr setattr getopt setopt))) +(allow netd_26_0 netdomain (udp_socket (read write getattr setattr getopt setopt))) +(allow netd_26_0 netdomain (rawip_socket (read write getattr setattr getopt setopt))) +(allow netd_26_0 netdomain (tun_socket (read write getattr setattr getopt setopt))) +(allow netd_26_0 netdomain (fd (use))) +(allow netd_26_0 self (netlink_xfrm_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown nlmsg_read nlmsg_write))) +(neverallow netd_26_0 dev_type (blk_file (read write))) +(neverallow netd_26_0 domain (process (ptrace))) +(neverallow netd_26_0 system_file_26_0 (file (write))) +(neverallow netd_26_0 system_file_26_0 (dir (write))) +(neverallow netd_26_0 system_file_26_0 (lnk_file (write))) +(neverallow netd_26_0 system_file_26_0 (chr_file (write))) +(neverallow netd_26_0 system_file_26_0 (blk_file (write))) +(neverallow netd_26_0 system_file_26_0 (sock_file (write))) +(neverallow netd_26_0 system_file_26_0 (fifo_file (write))) +(neverallow netd_26_0 system_data_file_26_0 (file (write))) +(neverallow netd_26_0 system_data_file_26_0 (dir (write))) +(neverallow netd_26_0 system_data_file_26_0 (lnk_file (write))) +(neverallow netd_26_0 system_data_file_26_0 (chr_file (write))) +(neverallow netd_26_0 system_data_file_26_0 (blk_file (write))) +(neverallow netd_26_0 system_data_file_26_0 (sock_file (write))) +(neverallow netd_26_0 system_data_file_26_0 (fifo_file (write))) +(neverallow netd_26_0 app_data_file_26_0 (file (write))) +(neverallow netd_26_0 app_data_file_26_0 (dir (write))) +(neverallow netd_26_0 app_data_file_26_0 (lnk_file (write))) +(neverallow netd_26_0 app_data_file_26_0 (chr_file (write))) +(neverallow netd_26_0 app_data_file_26_0 (blk_file (write))) +(neverallow netd_26_0 app_data_file_26_0 (sock_file (write))) +(neverallow netd_26_0 app_data_file_26_0 (fifo_file (write))) +(neverallow base_typeattr_157_26_0 netd_service_26_0 (service_manager (find))) +(neverallow base_typeattr_63_26_0 netd_26_0 (binder (call))) +(neverallow netd_26_0 base_typeattr_146_26_0 (binder (call))) +(neverallow domain netutils_wrapper_exec_26_0 (file (execute_no_trans))) +(allow otapreopt_chroot_26_0 postinstall_file_26_0 (dir (mounton search))) +(allow otapreopt_chroot_26_0 self (capability (sys_chroot sys_admin))) +(allow otapreopt_chroot_26_0 block_device_26_0 (dir (search))) +(allow otapreopt_chroot_26_0 labeledfs_26_0 (filesystem (mount))) +(dontaudit otapreopt_chroot_26_0 kernel_26_0 (process (setsched))) +(allow otapreopt_chroot_26_0 postinstall_26_0 (fd (use))) +(allow otapreopt_chroot_26_0 update_engine_26_0 (fd (use))) +(allow otapreopt_chroot_26_0 update_engine_26_0 (fifo_file (write))) +(allow otapreopt_slot_26_0 ota_data_file_26_0 (dir (ioctl read write getattr lock rename add_name remove_name reparent search rmdir open))) +(allow otapreopt_slot_26_0 ota_data_file_26_0 (file (getattr))) +(allow otapreopt_slot_26_0 ota_data_file_26_0 (lnk_file (getattr))) +(allow otapreopt_slot_26_0 ota_data_file_26_0 (lnk_file (read))) +(allow otapreopt_slot_26_0 dalvikcache_data_file_26_0 (dir (read write getattr add_name remove_name search rmdir open))) +(allow otapreopt_slot_26_0 dalvikcache_data_file_26_0 (file (getattr unlink))) +(allow otapreopt_slot_26_0 dalvikcache_data_file_26_0 (lnk_file (read getattr unlink))) +(allow otapreopt_slot_26_0 shell_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow otapreopt_slot_26_0 toolbox_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow init_26_0 pdx_performance_client_endpoint_socket_type (unix_stream_socket (create bind))) +(allow performanced_26_0 pdx_performance_client_endpoint_socket_type (unix_stream_socket (read write getattr setattr lock append listen accept getopt setopt shutdown))) +(allow performanced_26_0 self (process (setsockcreate))) +(allow performanced_26_0 pdx_performance_client_channel_socket_type (unix_stream_socket (ioctl read write create getattr setattr lock append bind connect listen accept getopt setopt shutdown))) +(neverallow base_typeattr_158_26_0 pdx_performance_client_endpoint_socket_type (unix_stream_socket (listen accept))) +(allow performanced_26_0 self (capability (setgid setuid sys_nice))) +(allow performanced_26_0 appdomain (dir (ioctl read getattr lock search open))) +(allow performanced_26_0 bufferhubd_26_0 (dir (ioctl read getattr lock search open))) +(allow performanced_26_0 kernel_26_0 (dir (ioctl read getattr lock search open))) +(allow performanced_26_0 surfaceflinger_26_0 (dir (ioctl read getattr lock search open))) +(allow performanced_26_0 appdomain (file (ioctl read getattr lock open))) +(allow performanced_26_0 appdomain (lnk_file (ioctl read getattr lock open))) +(allow performanced_26_0 bufferhubd_26_0 (file (ioctl read getattr lock open))) +(allow performanced_26_0 bufferhubd_26_0 (lnk_file (ioctl read getattr lock open))) +(allow performanced_26_0 kernel_26_0 (file (ioctl read getattr lock open))) +(allow performanced_26_0 kernel_26_0 (lnk_file (ioctl read getattr lock open))) +(allow performanced_26_0 surfaceflinger_26_0 (file (ioctl read getattr lock open))) +(allow performanced_26_0 surfaceflinger_26_0 (lnk_file (ioctl read getattr lock open))) +(dontaudit performanced_26_0 domain (dir (read))) +(allow performanced_26_0 appdomain (process (setsched))) +(allow performanced_26_0 bufferhubd_26_0 (process (setsched))) +(allow performanced_26_0 kernel_26_0 (process (setsched))) +(allow performanced_26_0 surfaceflinger_26_0 (process (setsched))) +(allow performanced_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow performanced_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow performanced_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow perfprofd_26_0 sysfs_devices_system_cpu_26_0 (file (ioctl read write getattr lock append open))) +(allow perfprofd_26_0 system_file_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow perfprofd_26_0 app_data_file_26_0 (file (ioctl read getattr lock open))) +(allow perfprofd_26_0 app_data_file_26_0 (dir (search))) +(allow perfprofd_26_0 self (capability (dac_override))) +(allow perfprofd_26_0 perfprofd_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow perfprofd_26_0 perfprofd_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow perfprofd_26_0 logcat_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow perfprofd_26_0 logdr_socket_26_0 (sock_file (write))) +(allow perfprofd_26_0 logd_26_0 (unix_stream_socket (connectto))) +(allow perfprofd_26_0 logdw_socket_26_0 (sock_file (write))) +(allow perfprofd_26_0 logd_26_0 (unix_dgram_socket (sendto))) +(allow perfprofd_26_0 pmsg_device_26_0 (chr_file (write lock append open))) +(allow perfprofd_26_0 sysfs_wake_lock_26_0 (file (ioctl read write getattr lock append open))) +(allow perfprofd_26_0 self (capability2 (block_suspend))) +(allow perfprofd_26_0 self (capability (sys_admin))) +(allow perfprofd_26_0 domain (dir (ioctl read getattr lock search open))) +(allow perfprofd_26_0 domain (file (ioctl read getattr lock open))) +(allow perfprofd_26_0 domain (lnk_file (ioctl read getattr lock open))) +(allow perfprofd_26_0 self (capability (sys_ptrace sys_resource))) +(neverallow perfprofd_26_0 domain (process (ptrace))) +(allow perfprofd_26_0 exec_type (file (ioctl read getattr lock open))) +(allow perfprofd_26_0 debugfs_tracing_26_0 (file (ioctl read getattr lock open))) +(allow perfprofd_26_0 toolbox_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow perfprofd_26_0 self (capability (ipc_lock))) +(allow postinstall_26_0 update_engine_common (fd (use))) +(allow postinstall_26_0 update_engine_common (fifo_file (ioctl read write getattr lock append open))) +(allow postinstall_26_0 postinstall_file_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow postinstall_26_0 postinstall_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow postinstall_26_0 postinstall_file_26_0 (dir (ioctl read getattr lock search open))) +(allow postinstall_26_0 shell_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow postinstall_26_0 system_file_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow postinstall_26_0 toolbox_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow postinstall_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 postinstall_26_0 (dir (search))) +(allow servicemanager_26_0 postinstall_26_0 (file (read open))) +(allow servicemanager_26_0 postinstall_26_0 (process (getattr))) +(allow postinstall_26_0 system_server_26_0 (binder (call transfer))) +(allow system_server_26_0 postinstall_26_0 (binder (transfer))) +(allow postinstall_26_0 system_server_26_0 (fd (use))) +(allow postinstall_26_0 otadexopt_service_26_0 (service_manager (find))) +(neverallow base_typeattr_35_26_0 postinstall_26_0 (process (transition dyntransition))) +(allow postinstall_dexopt_26_0 self (capability (chown dac_override fowner setgid setuid))) +(allow postinstall_dexopt_26_0 postinstall_file_26_0 (filesystem (getattr))) +(allow postinstall_dexopt_26_0 postinstall_file_26_0 (dir (getattr search))) +(allow postinstall_dexopt_26_0 postinstall_file_26_0 (lnk_file (read))) +(allow postinstall_dexopt_26_0 proc_26_0 (file (read getattr open))) +(allow postinstall_dexopt_26_0 tmpfs_26_0 (file (read))) +(allow postinstall_dexopt_26_0 apk_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow postinstall_dexopt_26_0 apk_data_file_26_0 (file (ioctl read getattr lock open))) +(allow postinstall_dexopt_26_0 apk_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow postinstall_dexopt_26_0 vendor_app_file_26_0 (dir (ioctl read getattr lock search open))) +(allow postinstall_dexopt_26_0 vendor_app_file_26_0 (file (ioctl read getattr lock open))) +(allow postinstall_dexopt_26_0 vendor_app_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow postinstall_dexopt_26_0 dalvikcache_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow postinstall_dexopt_26_0 dalvikcache_data_file_26_0 (file (ioctl read getattr lock open))) +(allow postinstall_dexopt_26_0 dalvikcache_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow postinstall_dexopt_26_0 user_profile_data_file_26_0 (dir (getattr search))) +(allow postinstall_dexopt_26_0 user_profile_data_file_26_0 (file (ioctl read getattr lock open))) +(allow postinstall_dexopt_26_0 ota_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow postinstall_dexopt_26_0 ota_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow postinstall_dexopt_26_0 ota_data_file_26_0 (lnk_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow postinstall_dexopt_26_0 dalvikcache_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow postinstall_dexopt_26_0 dalvikcache_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow postinstall_dexopt_26_0 dalvikcache_data_file_26_0 (dir (relabelto))) +(allow postinstall_dexopt_26_0 dalvikcache_data_file_26_0 (file (relabelto link))) +(allow postinstall_dexopt_26_0 selinuxfs_26_0 (dir (ioctl read getattr lock search open))) +(allow postinstall_dexopt_26_0 selinuxfs_26_0 (file (ioctl read getattr lock open))) +(allow postinstall_dexopt_26_0 selinuxfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow postinstall_dexopt_26_0 selinuxfs_26_0 (file (write lock append open))) +(allow postinstall_dexopt_26_0 kernel_26_0 (security (check_context))) +(allow postinstall_dexopt_26_0 selinuxfs_26_0 (dir (ioctl read getattr lock search open))) +(allow postinstall_dexopt_26_0 selinuxfs_26_0 (file (ioctl read getattr lock open))) +(allow postinstall_dexopt_26_0 selinuxfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow postinstall_dexopt_26_0 selinuxfs_26_0 (file (write lock append open))) +(allow postinstall_dexopt_26_0 kernel_26_0 (security (compute_av))) +(allow postinstall_dexopt_26_0 self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(allow postinstall_dexopt_26_0 postinstall_26_0 (process (sigchld))) +(allow postinstall_dexopt_26_0 otapreopt_chroot_26_0 (fd (use))) +(allow postinstall_dexopt_26_0 cpuctl_device_26_0 (dir (search))) +(allow ppp_26_0 proc_net_26_0 (dir (ioctl read getattr lock search open))) +(allow ppp_26_0 proc_net_26_0 (file (ioctl read getattr lock open))) +(allow ppp_26_0 proc_net_26_0 (lnk_file (ioctl read getattr lock open))) +(allow ppp_26_0 mtp_26_0 (socket (ioctl read write getattr setattr lock append bind connect getopt setopt shutdown))) +(allowx ppp_26_0 self (ioctl udp_socket (0x6900 0x6902))) +(allowx ppp_26_0 self (ioctl udp_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(allowx ppp_26_0 self (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(allowx ppp_26_0 mtp_26_0 (ioctl socket (((range 0x7436 0x7441)) ((range 0x7446 0x7447)) ((range 0x744b 0x745a)) ((range 0x7480 0x7488))))) +(allow ppp_26_0 mtp_26_0 (unix_dgram_socket (ioctl read write getattr setattr lock append bind connect getopt setopt shutdown))) +(allow ppp_26_0 ppp_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow ppp_26_0 self (capability (net_admin))) +(allow ppp_26_0 system_file_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow ppp_26_0 vpn_data_file_26_0 (dir (write lock add_name remove_name search open))) +(allow ppp_26_0 vpn_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow ppp_26_0 mtp_26_0 (fd (use))) +(allow preopt2cachename_26_0 cppreopts_26_0 (fd (use))) +(allow preopt2cachename_26_0 cppreopts_26_0 (fifo_file (read write getattr))) +(allow preopt2cachename_26_0 proc_net_26_0 (file (ioctl read getattr lock open))) +(allow profman_26_0 user_profile_data_file_26_0 (file (read write getattr lock))) +(allow profman_26_0 asec_apk_file_26_0 (file (read))) +(allow profman_26_0 apk_data_file_26_0 (file (read))) +(allow profman_26_0 oemfs_26_0 (file (read))) +(allow profman_26_0 tmpfs_26_0 (file (read))) +(allow profman_26_0 profman_dump_data_file_26_0 (file (write))) +(allow profman_26_0 installd_26_0 (fd (use))) +(allow profman_26_0 app_data_file_26_0 (file (read write getattr lock))) +(neverallow profman_26_0 app_data_file_26_0 (file (open))) +(neverallow profman_26_0 app_data_file_26_0 (lnk_file (open))) +(neverallow profman_26_0 app_data_file_26_0 (sock_file (open))) +(neverallow profman_26_0 app_data_file_26_0 (fifo_file (open))) +(allow property_type tmpfs_26_0 (filesystem (associate))) +(neverallow base_typeattr_10_26_0 base_typeattr_159_26_0 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open))) +(allowx racoon_26_0 self (ioctl udp_socket (0x8914 0x8916 0x891c))) +(allow racoon_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 racoon_26_0 (dir (search))) +(allow servicemanager_26_0 racoon_26_0 (file (read open))) +(allow servicemanager_26_0 racoon_26_0 (process (getattr))) +(allow racoon_26_0 tun_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow racoon_26_0 cgroup_26_0 (dir (create add_name))) +(allow racoon_26_0 kernel_26_0 (system (module_request))) +(allow racoon_26_0 self (key_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow racoon_26_0 self (tun_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow racoon_26_0 self (capability (net_bind_service net_admin net_raw))) +(allow racoon_26_0 system_file_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow racoon_26_0 vpn_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow racoon_26_0 vpn_data_file_26_0 (dir (write lock add_name remove_name search open))) +(allow keystore_26_0 racoon_26_0 (dir (search))) +(allow keystore_26_0 racoon_26_0 (file (read open))) +(allow keystore_26_0 racoon_26_0 (process (getattr))) +(allow racoon_26_0 keystore_service_26_0 (service_manager (find))) +(allow racoon_26_0 keystore_26_0 (binder (call transfer))) +(allow keystore_26_0 racoon_26_0 (binder (transfer))) +(allow racoon_26_0 keystore_26_0 (fd (use))) +(allow racoon_26_0 keystore_26_0 (keystore_key (get sign verify))) +(allow radio_26_0 radio_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow radio_26_0 radio_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow radio_26_0 radio_data_file_26_0 (lnk_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow radio_26_0 radio_data_file_26_0 (sock_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow radio_26_0 radio_data_file_26_0 (fifo_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow radio_26_0 alarm_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow radio_26_0 net_data_file_26_0 (dir (search))) +(allow radio_26_0 net_data_file_26_0 (file (ioctl read getattr lock open))) +(allow radio_26_0 property_socket_26_0 (sock_file (write))) +(allow radio_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow radio_26_0 radio_prop_26_0 (property_service (set))) +(allow radio_26_0 radio_prop_26_0 (file (ioctl read getattr lock open))) +(allow radio_26_0 property_socket_26_0 (sock_file (write))) +(allow radio_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow radio_26_0 net_radio_prop_26_0 (property_service (set))) +(allow radio_26_0 net_radio_prop_26_0 (file (ioctl read getattr lock open))) +(allow radio_26_0 property_socket_26_0 (sock_file (write))) +(allow radio_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow radio_26_0 ctl_rildaemon_prop_26_0 (property_service (set))) +(allow radio_26_0 ctl_rildaemon_prop_26_0 (file (ioctl read getattr lock open))) +(allow radio_26_0 radio_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_160_26_0 radio_service_26_0 (service_manager (add))) +(neverallow radio_26_0 unlabeled_26_0 (service_manager (add))) +(allow radio_26_0 audioserver_service_26_0 (service_manager (find))) +(allow radio_26_0 cameraserver_service_26_0 (service_manager (find))) +(allow radio_26_0 drmserver_service_26_0 (service_manager (find))) +(allow radio_26_0 mediaserver_service_26_0 (service_manager (find))) +(allow radio_26_0 nfc_service_26_0 (service_manager (find))) +(allow radio_26_0 surfaceflinger_service_26_0 (service_manager (find))) +(allow radio_26_0 app_api_service (service_manager (find))) +(allow radio_26_0 system_api_service (service_manager (find))) +(allow radio_26_0 hwservicemanager_26_0 (binder (call transfer))) +(allow hwservicemanager_26_0 radio_26_0 (binder (call transfer))) +(allow hwservicemanager_26_0 radio_26_0 (dir (search))) +(allow hwservicemanager_26_0 radio_26_0 (file (read open))) +(allow hwservicemanager_26_0 radio_26_0 (process (getattr))) +(neverallow recovery_26_0 data_file_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans))) +(neverallow recovery_26_0 data_file_type (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir))) +(allow recovery_persist_26_0 pstorefs_26_0 (dir (search))) +(allow recovery_persist_26_0 pstorefs_26_0 (file (ioctl read getattr lock open))) +(allow recovery_persist_26_0 recovery_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow recovery_persist_26_0 recovery_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(neverallow recovery_persist_26_0 dev_type (blk_file (read write))) +(neverallow recovery_persist_26_0 domain (process (ptrace))) +(neverallow recovery_persist_26_0 system_file_26_0 (file (write))) +(neverallow recovery_persist_26_0 system_file_26_0 (dir (write))) +(neverallow recovery_persist_26_0 system_file_26_0 (lnk_file (write))) +(neverallow recovery_persist_26_0 system_file_26_0 (chr_file (write))) +(neverallow recovery_persist_26_0 system_file_26_0 (blk_file (write))) +(neverallow recovery_persist_26_0 system_file_26_0 (sock_file (write))) +(neverallow recovery_persist_26_0 system_file_26_0 (fifo_file (write))) +(neverallow recovery_persist_26_0 system_data_file_26_0 (file (write))) +(neverallow recovery_persist_26_0 system_data_file_26_0 (dir (write))) +(neverallow recovery_persist_26_0 system_data_file_26_0 (lnk_file (write))) +(neverallow recovery_persist_26_0 system_data_file_26_0 (chr_file (write))) +(neverallow recovery_persist_26_0 system_data_file_26_0 (blk_file (write))) +(neverallow recovery_persist_26_0 system_data_file_26_0 (sock_file (write))) +(neverallow recovery_persist_26_0 system_data_file_26_0 (fifo_file (write))) +(neverallow recovery_persist_26_0 app_data_file_26_0 (file (write))) +(neverallow recovery_persist_26_0 app_data_file_26_0 (dir (write))) +(neverallow recovery_persist_26_0 app_data_file_26_0 (lnk_file (write))) +(neverallow recovery_persist_26_0 app_data_file_26_0 (chr_file (write))) +(neverallow recovery_persist_26_0 app_data_file_26_0 (blk_file (write))) +(neverallow recovery_persist_26_0 app_data_file_26_0 (sock_file (write))) +(neverallow recovery_persist_26_0 app_data_file_26_0 (fifo_file (write))) +(allow recovery_refresh_26_0 pstorefs_26_0 (dir (search))) +(allow recovery_refresh_26_0 pstorefs_26_0 (file (ioctl read getattr lock open))) +(neverallow recovery_refresh_26_0 dev_type (blk_file (read write))) +(neverallow recovery_refresh_26_0 domain (process (ptrace))) +(neverallow recovery_refresh_26_0 system_file_26_0 (file (write))) +(neverallow recovery_refresh_26_0 system_file_26_0 (dir (write))) +(neverallow recovery_refresh_26_0 system_file_26_0 (lnk_file (write))) +(neverallow recovery_refresh_26_0 system_file_26_0 (chr_file (write))) +(neverallow recovery_refresh_26_0 system_file_26_0 (blk_file (write))) +(neverallow recovery_refresh_26_0 system_file_26_0 (sock_file (write))) +(neverallow recovery_refresh_26_0 system_file_26_0 (fifo_file (write))) +(neverallow recovery_refresh_26_0 system_data_file_26_0 (file (write))) +(neverallow recovery_refresh_26_0 system_data_file_26_0 (dir (write))) +(neverallow recovery_refresh_26_0 system_data_file_26_0 (lnk_file (write))) +(neverallow recovery_refresh_26_0 system_data_file_26_0 (chr_file (write))) +(neverallow recovery_refresh_26_0 system_data_file_26_0 (blk_file (write))) +(neverallow recovery_refresh_26_0 system_data_file_26_0 (sock_file (write))) +(neverallow recovery_refresh_26_0 system_data_file_26_0 (fifo_file (write))) +(neverallow recovery_refresh_26_0 app_data_file_26_0 (file (write))) +(neverallow recovery_refresh_26_0 app_data_file_26_0 (dir (write))) +(neverallow recovery_refresh_26_0 app_data_file_26_0 (lnk_file (write))) +(neverallow recovery_refresh_26_0 app_data_file_26_0 (chr_file (write))) +(neverallow recovery_refresh_26_0 app_data_file_26_0 (blk_file (write))) +(neverallow recovery_refresh_26_0 app_data_file_26_0 (sock_file (write))) +(neverallow recovery_refresh_26_0 app_data_file_26_0 (fifo_file (write))) +(allowx rild_26_0 self (ioctl udp_socket (0x6900 0x6902))) +(allowx rild_26_0 self (ioctl udp_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(allowx rild_26_0 self (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(allow rild_26_0 self (netlink_route_socket (nlmsg_write))) +(allow rild_26_0 kernel_26_0 (system (module_request))) +(allow rild_26_0 self (capability (setgid setuid setpcap net_admin net_raw))) +(allow rild_26_0 alarm_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow rild_26_0 cgroup_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow rild_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow rild_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow rild_26_0 radio_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow rild_26_0 radio_device_26_0 (blk_file (ioctl read getattr lock open))) +(allow rild_26_0 mtd_device_26_0 (dir (search))) +(allow rild_26_0 efs_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow rild_26_0 efs_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow rild_26_0 shell_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow rild_26_0 bluetooth_efs_file_26_0 (file (ioctl read getattr lock open))) +(allow rild_26_0 bluetooth_efs_file_26_0 (dir (ioctl read getattr lock search open))) +(allow rild_26_0 radio_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow rild_26_0 radio_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow rild_26_0 sdcard_type (dir (ioctl read getattr lock search open))) +(allow rild_26_0 system_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow rild_26_0 system_data_file_26_0 (file (ioctl read getattr lock open))) +(allow rild_26_0 system_file_26_0 (file (getattr execute execute_no_trans))) +(allow rild_26_0 property_socket_26_0 (sock_file (write))) +(allow rild_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow rild_26_0 radio_prop_26_0 (property_service (set))) +(allow rild_26_0 radio_prop_26_0 (file (ioctl read getattr lock open))) +(allow rild_26_0 tty_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow rild_26_0 self (netlink_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow rild_26_0 self (netlink_generic_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow rild_26_0 self (netlink_kobject_uevent_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow rild_26_0 sysfs_wake_lock_26_0 (file (ioctl read write getattr lock append open))) +(allow rild_26_0 self (capability2 (block_suspend))) +(allow rild_26_0 proc_26_0 (dir (ioctl read getattr lock search open))) +(allow rild_26_0 proc_26_0 (file (ioctl read getattr lock open))) +(allow rild_26_0 proc_26_0 (lnk_file (ioctl read getattr lock open))) +(allow rild_26_0 proc_net_26_0 (dir (ioctl read getattr lock search open))) +(allow rild_26_0 proc_net_26_0 (file (ioctl read getattr lock open))) +(allow rild_26_0 proc_net_26_0 (lnk_file (ioctl read getattr lock open))) +(allow rild_26_0 sysfs_type (dir (ioctl read getattr lock search open))) +(allow rild_26_0 sysfs_type (file (ioctl read getattr lock open))) +(allow rild_26_0 sysfs_type (lnk_file (ioctl read getattr lock open))) +(allow rild_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow rild_26_0 system_file_26_0 (file (ioctl read getattr lock open))) +(allow rild_26_0 system_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow rild_26_0 self (socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow runas_26_0 adbd_26_0 (process (sigchld))) +(allow runas_26_0 adbd_26_0 (unix_stream_socket (read write))) +(allow runas_26_0 shell_26_0 (fd (use))) +(allow runas_26_0 shell_26_0 (fifo_file (read write))) +(allow runas_26_0 shell_26_0 (unix_stream_socket (read write))) +(allow runas_26_0 devpts_26_0 (chr_file (ioctl read write))) +(allow runas_26_0 shell_data_file_26_0 (file (read write))) +(allow runas_26_0 system_data_file_26_0 (file (ioctl read getattr lock open))) +(dontaudit runas_26_0 self (capability (dac_override))) +(allow runas_26_0 app_data_file_26_0 (dir (getattr search))) +(allow runas_26_0 self (capability (setgid setuid))) +(allow runas_26_0 selinuxfs_26_0 (dir (ioctl read getattr lock search open))) +(allow runas_26_0 selinuxfs_26_0 (file (ioctl read getattr lock open))) +(allow runas_26_0 selinuxfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow runas_26_0 selinuxfs_26_0 (file (write lock append open))) +(allow runas_26_0 kernel_26_0 (security (check_context))) +(allow runas_26_0 self (process (setcurrent))) +(allow runas_26_0 base_typeattr_161_26_0 (process (dyntransition))) +(allow runas_26_0 seapp_contexts_file_26_0 (file (ioctl read getattr lock open))) +(neverallow runas_26_0 self (capability (chown dac_override dac_read_search fowner fsetid kill setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap))) +(neverallow runas_26_0 self (capability2 (mac_override mac_admin syslog wake_alarm block_suspend audit_read))) +(allow sdcardd_26_0 cgroup_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow sdcardd_26_0 fuse_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow sdcardd_26_0 rootfs_26_0 (dir (mounton))) +(allow sdcardd_26_0 sdcardfs_26_0 (filesystem (remount))) +(allow sdcardd_26_0 tmpfs_26_0 (dir (ioctl read getattr lock search open))) +(allow sdcardd_26_0 mnt_media_rw_file_26_0 (dir (ioctl read getattr lock search open))) +(allow sdcardd_26_0 storage_file_26_0 (dir (search))) +(allow sdcardd_26_0 storage_stub_file_26_0 (dir (mounton search))) +(allow sdcardd_26_0 sdcard_type (filesystem (mount unmount))) +(allow sdcardd_26_0 self (capability (dac_override setgid setuid sys_admin sys_resource))) +(allow sdcardd_26_0 sdcard_type (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow sdcardd_26_0 sdcard_type (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow sdcardd_26_0 media_rw_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow sdcardd_26_0 media_rw_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow sdcardd_26_0 system_data_file_26_0 (file (ioctl read getattr lock open))) +(allow sdcardd_26_0 install_data_file_26_0 (file (ioctl read getattr lock open))) +(allow sdcardd_26_0 vold_26_0 (fd (use))) +(allow sdcardd_26_0 vold_26_0 (fifo_file (read write getattr))) +(allow sdcardd_26_0 mnt_expand_file_26_0 (dir (search))) +(allow sdcardd_26_0 proc_26_0 (file (ioctl read getattr lock open))) +(neverallow init_26_0 sdcardd_exec_26_0 (file (execute))) +(neverallow init_26_0 sdcardd_26_0 (process (transition dyntransition))) +(allow servicemanager_26_0 self (binder (set_context_mgr))) +(allow servicemanager_26_0 base_typeattr_162_26_0 (binder (transfer))) +(allow servicemanager_26_0 service_contexts_file_26_0 (file (ioctl read getattr lock open))) +(allow servicemanager_26_0 selinuxfs_26_0 (dir (ioctl read getattr lock search open))) +(allow servicemanager_26_0 selinuxfs_26_0 (file (ioctl read getattr lock open))) +(allow servicemanager_26_0 selinuxfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow servicemanager_26_0 selinuxfs_26_0 (file (write lock append open))) +(allow servicemanager_26_0 kernel_26_0 (security (compute_av))) +(allow servicemanager_26_0 self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(allow sgdisk_26_0 block_device_26_0 (dir (search))) +(allow sgdisk_26_0 vold_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow sgdisk_26_0 devpts_26_0 (chr_file (ioctl read write getattr))) +(allow sgdisk_26_0 vold_26_0 (fd (use))) +(allow sgdisk_26_0 vold_26_0 (fifo_file (read write getattr))) +(allow sgdisk_26_0 self (capability (sys_admin))) +(neverallow base_typeattr_92_26_0 sgdisk_26_0 (process (transition))) +(neverallow base_typeattr_10_26_0 sgdisk_26_0 (process (dyntransition))) +(neverallow sgdisk_26_0 base_typeattr_163_26_0 (file (entrypoint))) +(allow shared_relro_26_0 shared_relro_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow shared_relro_26_0 shared_relro_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow shared_relro_26_0 webviewupdate_service_26_0 (service_manager (find))) +(allow shell_26_0 logcat_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow shell_26_0 logdr_socket_26_0 (sock_file (write))) +(allow shell_26_0 logd_26_0 (unix_stream_socket (connectto))) +(allow shell_26_0 logd_socket_26_0 (sock_file (write))) +(allow shell_26_0 logd_26_0 (unix_stream_socket (connectto))) +(allow shell_26_0 pstorefs_26_0 (dir (search))) +(allow shell_26_0 pstorefs_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 rootfs_26_0 (dir (ioctl read getattr lock search open))) +(allow shell_26_0 anr_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow shell_26_0 anr_data_file_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 shell_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow shell_26_0 shell_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow shell_26_0 shell_data_file_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow shell_26_0 shell_data_file_26_0 (lnk_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow shell_26_0 profman_dump_data_file_26_0 (dir (write getattr remove_name search))) +(allow shell_26_0 profman_dump_data_file_26_0 (file (getattr unlink))) +(allow shell_26_0 nativetest_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow shell_26_0 nativetest_data_file_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow shell_26_0 dumpstate_socket_26_0 (sock_file (write))) +(allow shell_26_0 dumpstate_26_0 (unix_stream_socket (connectto))) +(allow shell_26_0 devpts_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow shell_26_0 tty_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow shell_26_0 console_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow shell_26_0 input_device_26_0 (dir (ioctl read getattr lock search open))) +(allow shell_26_0 input_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow shell_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow shell_26_0 system_file_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 system_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow shell_26_0 system_file_26_0 (file (getattr execute execute_no_trans))) +(allow shell_26_0 toolbox_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow shell_26_0 shell_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow shell_26_0 zygote_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow shell_26_0 apk_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow shell_26_0 apk_data_file_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 apk_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow shell_26_0 property_socket_26_0 (sock_file (write))) +(allow shell_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow shell_26_0 shell_prop_26_0 (property_service (set))) +(allow shell_26_0 shell_prop_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 property_socket_26_0 (sock_file (write))) +(allow shell_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow shell_26_0 ctl_bugreport_prop_26_0 (property_service (set))) +(allow shell_26_0 ctl_bugreport_prop_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 property_socket_26_0 (sock_file (write))) +(allow shell_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow shell_26_0 ctl_dumpstate_prop_26_0 (property_service (set))) +(allow shell_26_0 ctl_dumpstate_prop_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 property_socket_26_0 (sock_file (write))) +(allow shell_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow shell_26_0 dumpstate_prop_26_0 (property_service (set))) +(allow shell_26_0 dumpstate_prop_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 property_socket_26_0 (sock_file (write))) +(allow shell_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow shell_26_0 debug_prop_26_0 (property_service (set))) +(allow shell_26_0 debug_prop_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 property_socket_26_0 (sock_file (write))) +(allow shell_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow shell_26_0 powerctl_prop_26_0 (property_service (set))) +(allow shell_26_0 powerctl_prop_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 property_socket_26_0 (sock_file (write))) +(allow shell_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow shell_26_0 log_tag_prop_26_0 (property_service (set))) +(allow shell_26_0 log_tag_prop_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 property_socket_26_0 (sock_file (write))) +(allow shell_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow shell_26_0 wifi_log_prop_26_0 (property_service (set))) +(allow shell_26_0 wifi_log_prop_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 property_socket_26_0 (sock_file (write))) +(allow shell_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow shell_26_0 log_prop_26_0 (property_service (set))) +(allow shell_26_0 log_prop_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 property_socket_26_0 (sock_file (write))) +(allow shell_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow shell_26_0 logpersistd_logging_prop_26_0 (property_service (set))) +(allow shell_26_0 logpersistd_logging_prop_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 boottrace_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow shell_26_0 boottrace_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow shell_26_0 property_socket_26_0 (sock_file (write))) +(allow shell_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow shell_26_0 persist_debug_prop_26_0 (property_service (set))) +(allow shell_26_0 persist_debug_prop_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 serialno_prop_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 device_logging_prop_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 servicemanager_26_0 (service_manager (list))) +(allow shell_26_0 base_typeattr_164_26_0 (service_manager (find))) +(allow shell_26_0 dumpstate_26_0 (binder (call))) +(allow shell_26_0 hwservicemanager_26_0 (binder (call transfer))) +(allow hwservicemanager_26_0 shell_26_0 (binder (call transfer))) +(allow hwservicemanager_26_0 shell_26_0 (dir (search))) +(allow hwservicemanager_26_0 shell_26_0 (file (read open))) +(allow hwservicemanager_26_0 shell_26_0 (process (getattr))) +(allow shell_26_0 hwservicemanager_26_0 (hwservice_manager (list))) +(allow shell_26_0 proc_26_0 (dir (ioctl read getattr lock search open))) +(allow shell_26_0 proc_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 proc_26_0 (lnk_file (ioctl read getattr lock open))) +(allow shell_26_0 proc_net_26_0 (dir (ioctl read getattr lock search open))) +(allow shell_26_0 proc_net_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 proc_net_26_0 (lnk_file (ioctl read getattr lock open))) +(allow shell_26_0 proc_interrupts_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 proc_meminfo_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 proc_stat_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 proc_timer_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 proc_zoneinfo_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 cgroup_26_0 (dir (ioctl read getattr lock search open))) +(allow shell_26_0 cgroup_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 cgroup_26_0 (lnk_file (ioctl read getattr lock open))) +(allow shell_26_0 domain (dir (read getattr search open))) +(allow shell_26_0 domain (file (read getattr open))) +(allow shell_26_0 domain (lnk_file (read getattr open))) +(allow shell_26_0 labeledfs_26_0 (filesystem (getattr))) +(allow shell_26_0 proc_26_0 (filesystem (getattr))) +(allow shell_26_0 device_26_0 (dir (getattr))) +(allow shell_26_0 domain (process (getattr))) +(allow shell_26_0 selinuxfs_26_0 (dir (ioctl read getattr lock search open))) +(allow shell_26_0 selinuxfs_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 bootchart_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow shell_26_0 bootchart_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow shell_26_0 self (process (ptrace))) +(allow shell_26_0 sysfs_batteryinfo_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 sysfs_26_0 (dir (ioctl read getattr lock search open))) +(allow shell_26_0 ion_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow shell_26_0 dev_type (dir (ioctl read getattr lock search open))) +(allow shell_26_0 dev_type (chr_file (getattr))) +(allow shell_26_0 proc_26_0 (lnk_file (getattr))) +(allow shell_26_0 dev_type (blk_file (getattr))) +(allow shell_26_0 file_contexts_file_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 property_contexts_file_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 seapp_contexts_file_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 service_contexts_file_26_0 (file (ioctl read getattr lock open))) +(allow shell_26_0 sepolicy_file_26_0 (file (ioctl read getattr lock open))) +(neverallow shell_26_0 file_type (file (link))) +(neverallowx shell_26_0 domain (ioctl tcp_socket (0x6900 0x6902))) +(neverallowx shell_26_0 domain (ioctl udp_socket (0x6900 0x6902))) +(neverallowx shell_26_0 domain (ioctl rawip_socket (0x6900 0x6902))) +(neverallowx shell_26_0 domain (ioctl tcp_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(neverallowx shell_26_0 domain (ioctl udp_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(neverallowx shell_26_0 domain (ioctl rawip_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(neverallowx shell_26_0 domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(neverallowx shell_26_0 domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(neverallowx shell_26_0 domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(neverallow shell_26_0 hw_random_device_26_0 (chr_file (ioctl read write create setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(neverallow shell_26_0 kmem_device_26_0 (chr_file (ioctl read write create setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(neverallow shell_26_0 port_device_26_0 (chr_file (ioctl read write create setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(neverallow shell_26_0 fuse_device_26_0 (chr_file (ioctl read write create setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(neverallow shell_26_0 dev_type (blk_file (ioctl read write create setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(allow slideshow_26_0 kmsg_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow slideshow_26_0 sysfs_wake_lock_26_0 (file (ioctl read write getattr lock append open))) +(allow slideshow_26_0 self (capability2 (block_suspend))) +(allow slideshow_26_0 device_26_0 (dir (ioctl read getattr lock search open))) +(allow slideshow_26_0 self (capability (sys_tty_config))) +(allow slideshow_26_0 graphics_device_26_0 (dir (ioctl read getattr lock search open))) +(allow slideshow_26_0 graphics_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow slideshow_26_0 input_device_26_0 (dir (ioctl read getattr lock search open))) +(allow slideshow_26_0 input_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow slideshow_26_0 tty_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow su_26_0 vndbinder_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow su_26_0 vndservicemanager_26_0 (binder (call transfer))) +(allow vndservicemanager_26_0 su_26_0 (dir (search))) +(allow vndservicemanager_26_0 su_26_0 (file (read open))) +(allow vndservicemanager_26_0 su_26_0 (process (getattr))) +(dontaudit su_26_0 self (capability (chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap))) +(dontaudit su_26_0 self (capability2 (mac_override mac_admin syslog wake_alarm block_suspend audit_read))) +(dontaudit su_26_0 kernel_26_0 (security (compute_av compute_create compute_member check_context load_policy compute_relabel compute_user setenforce setbool setsecparam setcheckreqprot read_policy))) +(dontaudit su_26_0 kernel_26_0 (system (ipc_info syslog_read syslog_mod syslog_console module_request module_load))) +(dontaudit su_26_0 self (memprotect (mmap_zero))) +(dontaudit su_26_0 domain (process (fork transition sigchld sigkill sigstop signull signal ptrace getsched setsched getsession getpgid setpgid getcap setcap share getattr setexec setfscreate noatsecure siginh setrlimit rlimitinh dyntransition setcurrent execmem execstack execheap setkeycreate setsockcreate))) +(dontaudit su_26_0 domain (fd (use))) +(dontaudit su_26_0 domain (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton add_name remove_name reparent search rmdir open audit_access execmod))) +(dontaudit su_26_0 domain (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(dontaudit su_26_0 domain (file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(dontaudit su_26_0 domain (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(dontaudit su_26_0 domain (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect))) +(dontaudit su_26_0 domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(dontaudit su_26_0 domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(dontaudit su_26_0 domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (unix_stream_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind connectto))) +(dontaudit su_26_0 domain (unix_dgram_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (netlink_route_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write))) +(dontaudit su_26_0 domain (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write))) +(dontaudit su_26_0 domain (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write))) +(dontaudit su_26_0 domain (netlink_selinux_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit))) +(dontaudit su_26_0 domain (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue))) +(dontaudit su_26_0 domain (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(dontaudit su_26_0 domain (icmp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(dontaudit su_26_0 domain (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (vsock_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 domain (sem (create destroy getattr setattr read write associate unix_read unix_write))) +(dontaudit su_26_0 domain (msgq (create destroy getattr setattr read write associate unix_read unix_write enqueue))) +(dontaudit su_26_0 domain (shm (create destroy getattr setattr read write associate unix_read unix_write lock))) +(dontaudit su_26_0 domain (ipc (create destroy getattr setattr read write associate unix_read unix_write))) +(dontaudit su_26_0 domain (key (view read write search link setattr create))) +(dontaudit su_26_0 fs_type (filesystem (mount remount unmount getattr relabelfrom relabelto associate quotamod quotaget))) +(dontaudit su_26_0 dev_type (file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(dontaudit su_26_0 dev_type (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton add_name remove_name reparent search rmdir open audit_access execmod))) +(dontaudit su_26_0 dev_type (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(dontaudit su_26_0 dev_type (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(dontaudit su_26_0 dev_type (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(dontaudit su_26_0 dev_type (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(dontaudit su_26_0 dev_type (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(dontaudit su_26_0 fs_type (file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(dontaudit su_26_0 fs_type (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton add_name remove_name reparent search rmdir open audit_access execmod))) +(dontaudit su_26_0 fs_type (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(dontaudit su_26_0 fs_type (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(dontaudit su_26_0 fs_type (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(dontaudit su_26_0 fs_type (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(dontaudit su_26_0 fs_type (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(dontaudit su_26_0 file_type (file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(dontaudit su_26_0 file_type (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton add_name remove_name reparent search rmdir open audit_access execmod))) +(dontaudit su_26_0 file_type (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(dontaudit su_26_0 file_type (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(dontaudit su_26_0 file_type (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(dontaudit su_26_0 file_type (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(dontaudit su_26_0 file_type (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(dontaudit su_26_0 node_type (node (recvfrom sendto))) +(dontaudit su_26_0 node_type (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect))) +(dontaudit su_26_0 node_type (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(dontaudit su_26_0 node_type (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(dontaudit su_26_0 netif_type (netif (ingress egress))) +(dontaudit su_26_0 port_type (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect))) +(dontaudit su_26_0 port_type (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(dontaudit su_26_0 port_type (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(dontaudit su_26_0 port_type (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (unix_stream_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind connectto))) +(dontaudit su_26_0 port_type (unix_dgram_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (netlink_route_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write))) +(dontaudit su_26_0 port_type (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write))) +(dontaudit su_26_0 port_type (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write))) +(dontaudit su_26_0 port_type (netlink_selinux_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit))) +(dontaudit su_26_0 port_type (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue))) +(dontaudit su_26_0 port_type (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(dontaudit su_26_0 port_type (icmp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind))) +(dontaudit su_26_0 port_type (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (vsock_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(dontaudit su_26_0 port_type (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect))) +(dontaudit su_26_0 port_type (dccp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect))) +(dontaudit su_26_0 domain (peer (recv))) +(dontaudit su_26_0 domain (binder (impersonate call set_context_mgr transfer))) +(dontaudit su_26_0 property_type (property_service (set))) +(dontaudit su_26_0 property_type (file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(dontaudit su_26_0 service_manager_type (service_manager (add find list))) +(dontaudit su_26_0 hwservice_manager_type (hwservice_manager (add find list))) +(dontaudit su_26_0 vndservice_manager_type (service_manager (add find list))) +(dontaudit su_26_0 servicemanager_26_0 (service_manager (list))) +(dontaudit su_26_0 hwservicemanager_26_0 (hwservice_manager (list))) +(dontaudit su_26_0 vndservicemanager_26_0 (service_manager (list))) +(dontaudit su_26_0 keystore_26_0 (keystore_key (get_state get insert delete exist list reset password lock unlock is_empty sign verify grant duplicate clear_uid add_auth user_changed gen_unique_id))) +(dontaudit su_26_0 domain (drmservice (consumeRights setPlaybackStatus openDecryptSession closeDecryptSession initializeDecryptUnit decrypt finalizeDecryptUnit pread))) +(dontaudit su_26_0 unlabeled_26_0 (filesystem (mount remount unmount getattr relabelfrom relabelto associate quotamod quotaget))) +(dontaudit su_26_0 postinstall_file_26_0 (filesystem (mount remount unmount getattr relabelfrom relabelto associate quotamod quotaget))) +(allow tombstoned_26_0 domain (fd (use))) +(allow tombstoned_26_0 domain (fifo_file (write))) +(allow tombstoned_26_0 domain (dir (ioctl read getattr lock search open))) +(allow tombstoned_26_0 domain (file (ioctl read getattr lock open))) +(allow tombstoned_26_0 tombstone_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow tombstoned_26_0 tombstone_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow tombstoned_26_0 anr_data_file_26_0 (file (getattr append))) +(allow tombstoned_26_0 anr_data_file_26_0 (file (write))) +(auditallow tombstoned_26_0 anr_data_file_26_0 (file (write))) +(allow toolbox_26_0 tmpfs_26_0 (chr_file (ioctl read write))) +(allow toolbox_26_0 devpts_26_0 (chr_file (ioctl read write getattr))) +(allow toolbox_26_0 block_device_26_0 (dir (search))) +(allow toolbox_26_0 swap_block_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(neverallow base_typeattr_5_26_0 toolbox_26_0 (process (transition))) +(neverallow base_typeattr_10_26_0 toolbox_26_0 (process (dyntransition))) +(neverallow toolbox_26_0 base_typeattr_165_26_0 (file (entrypoint))) +(allow tzdatacheck_26_0 zoneinfo_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow tzdatacheck_26_0 zoneinfo_data_file_26_0 (file (unlink))) +(allow ueventd_26_0 kmsg_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow ueventd_26_0 self (capability (chown dac_override fowner fsetid setgid net_admin sys_rawio mknod))) +(allow ueventd_26_0 device_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow ueventd_26_0 sysfs_type (dir (ioctl read getattr lock search open))) +(allow ueventd_26_0 sysfs_type (file (ioctl read getattr lock open))) +(allow ueventd_26_0 sysfs_type (lnk_file (ioctl read getattr lock open))) +(allow ueventd_26_0 rootfs_26_0 (dir (ioctl read getattr lock search open))) +(allow ueventd_26_0 rootfs_26_0 (file (ioctl read getattr lock open))) +(allow ueventd_26_0 rootfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow ueventd_26_0 sysfs_26_0 (file (write lock append open))) +(allow ueventd_26_0 sysfs_usb_26_0 (file (write lock append open))) +(allow ueventd_26_0 sysfs_hwrandom_26_0 (file (write lock append open))) +(allow ueventd_26_0 sysfs_zram_uevent_26_0 (file (write lock append open))) +(allow ueventd_26_0 sysfs_type (file (getattr setattr relabelfrom relabelto))) +(allow ueventd_26_0 sysfs_type (lnk_file (getattr setattr relabelfrom relabelto))) +(allow ueventd_26_0 sysfs_type (dir (ioctl read getattr setattr lock relabelfrom relabelto search open))) +(allow ueventd_26_0 sysfs_devices_system_cpu_26_0 (file (ioctl read write getattr lock append open))) +(allow ueventd_26_0 tmpfs_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow ueventd_26_0 dev_type (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow ueventd_26_0 dev_type (lnk_file (create unlink))) +(allow ueventd_26_0 dev_type (chr_file (create getattr setattr unlink))) +(allow ueventd_26_0 dev_type (blk_file (create getattr setattr relabelfrom relabelto unlink))) +(allow ueventd_26_0 self (netlink_kobject_uevent_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow ueventd_26_0 efs_file_26_0 (dir (search))) +(allow ueventd_26_0 efs_file_26_0 (file (ioctl read getattr lock open))) +(allow ueventd_26_0 selinuxfs_26_0 (dir (ioctl read getattr lock search open))) +(allow ueventd_26_0 selinuxfs_26_0 (file (ioctl read getattr lock open))) +(allow ueventd_26_0 selinuxfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow ueventd_26_0 vendor_file_26_0 (dir (ioctl read getattr lock search open))) +(allow ueventd_26_0 vendor_file_26_0 (file (ioctl read getattr lock open))) +(allow ueventd_26_0 vendor_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow ueventd_26_0 file_contexts_file_26_0 (file (ioctl read getattr lock open))) +(allow ueventd_26_0 self (process (setfscreate))) +(neverallow ueventd_26_0 property_socket_26_0 (sock_file (write))) +(neverallow ueventd_26_0 init_26_0 (unix_stream_socket (connectto))) +(neverallow ueventd_26_0 property_type (property_service (set))) +(neverallow ueventd_26_0 dev_type (blk_file (ioctl read write lock append link rename execute quotaon mounton open audit_access execmod))) +(neverallow ueventd_26_0 kmem_device_26_0 (chr_file (ioctl read write lock relabelfrom append link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(neverallow ueventd_26_0 port_device_26_0 (chr_file (ioctl read write lock relabelfrom append link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(allow uncrypt_26_0 self (capability (dac_override))) +(allow uncrypt_26_0 app_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow uncrypt_26_0 app_data_file_26_0 (file (ioctl read getattr lock open))) +(allow uncrypt_26_0 app_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow uncrypt_26_0 shell_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow uncrypt_26_0 shell_data_file_26_0 (file (ioctl read getattr lock open))) +(allow uncrypt_26_0 shell_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow uncrypt_26_0 cache_recovery_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow uncrypt_26_0 cache_recovery_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow uncrypt_26_0 ota_package_file_26_0 (dir (ioctl read getattr lock search open))) +(allow uncrypt_26_0 ota_package_file_26_0 (file (ioctl read getattr lock open))) +(allow uncrypt_26_0 uncrypt_socket_26_0 (sock_file (write))) +(allow uncrypt_26_0 uncrypt_26_0 (unix_stream_socket (connectto))) +(allow uncrypt_26_0 property_socket_26_0 (sock_file (write))) +(allow uncrypt_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow uncrypt_26_0 powerctl_prop_26_0 (property_service (set))) +(allow uncrypt_26_0 powerctl_prop_26_0 (file (ioctl read getattr lock open))) +(allow uncrypt_26_0 self (capability (sys_rawio))) +(allow uncrypt_26_0 misc_block_device_26_0 (blk_file (write lock append open))) +(allow uncrypt_26_0 block_device_26_0 (dir (ioctl read getattr lock search open))) +(allow uncrypt_26_0 userdata_block_device_26_0 (blk_file (write lock append open))) +(allow uncrypt_26_0 rootfs_26_0 (dir (ioctl read getattr lock search open))) +(allow uncrypt_26_0 rootfs_26_0 (file (ioctl read getattr lock open))) +(allow uncrypt_26_0 rootfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow update_engine_26_0 qtaguid_proc_26_0 (file (ioctl read write getattr lock append open))) +(allow update_engine_26_0 qtaguid_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow update_engine_26_0 self (process (setsched))) +(allow update_engine_26_0 self (capability (fowner sys_admin))) +(allow update_engine_26_0 kmsg_device_26_0 (chr_file (write lock append open))) +(allow update_engine_26_0 update_engine_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow update_engine_26_0 sysfs_wake_lock_26_0 (file (ioctl read write getattr lock append open))) +(allow update_engine_26_0 self (capability2 (block_suspend))) +(dontaudit update_engine_26_0 kernel_26_0 (process (setsched))) +(allow update_engine_26_0 update_engine_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow update_engine_26_0 update_engine_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(dontaudit update_engine_26_0 kernel_26_0 (system (module_request))) +(allow update_engine_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 update_engine_26_0 (dir (search))) +(allow servicemanager_26_0 update_engine_26_0 (file (read open))) +(allow servicemanager_26_0 update_engine_26_0 (process (getattr))) +(allow update_engine_26_0 update_engine_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_166_26_0 update_engine_service_26_0 (service_manager (add))) +(neverallow update_engine_26_0 unlabeled_26_0 (service_manager (add))) +(allow update_engine_26_0 priv_app_26_0 (binder (call transfer))) +(allow priv_app_26_0 update_engine_26_0 (binder (transfer))) +(allow update_engine_26_0 priv_app_26_0 (fd (use))) +(allow update_engine_26_0 ota_package_file_26_0 (file (ioctl read getattr lock open))) +(allow update_engine_26_0 ota_package_file_26_0 (dir (ioctl read getattr lock search open))) +(allow update_engine_common block_device_26_0 (dir (search))) +(allow update_engine_common boot_block_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow update_engine_common system_block_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow update_engine_common misc_block_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow update_engine_common postinstall_mnt_dir_26_0 (dir (mounton))) +(allow update_engine_common postinstall_file_26_0 (filesystem (mount unmount relabelfrom relabelto))) +(allow update_engine_common labeledfs_26_0 (filesystem (relabelfrom))) +(allow update_engine_common postinstall_file_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow update_engine_common postinstall_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow update_engine_common postinstall_file_26_0 (dir (ioctl read getattr lock search open))) +(allow update_engine_common shell_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow update_engine_common postinstall_26_0 (process (sigkill sigstop signal))) +(allow update_engine_26_0 proc_26_0 (file (ioctl read getattr lock open))) +(allow update_engine_26_0 proc_misc_26_0 (file (ioctl read getattr lock open))) +(allow update_engine_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow update_verifier_26_0 block_device_26_0 (dir (search))) +(allow update_verifier_26_0 ota_package_file_26_0 (dir (ioctl read getattr lock search open))) +(allow update_verifier_26_0 ota_package_file_26_0 (file (ioctl read getattr lock open))) +(allow update_verifier_26_0 dm_device_26_0 (blk_file (ioctl read getattr lock open))) +(allow update_verifier_26_0 property_socket_26_0 (sock_file (write))) +(allow update_verifier_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow update_verifier_26_0 powerctl_prop_26_0 (property_service (set))) +(allow update_verifier_26_0 powerctl_prop_26_0 (file (ioctl read getattr lock open))) +(allow vdc_26_0 vold_socket_26_0 (sock_file (write))) +(allow vdc_26_0 vold_26_0 (unix_stream_socket (connectto))) +(allow vdc_26_0 dumpstate_26_0 (fd (use))) +(allow vdc_26_0 dumpstate_26_0 (unix_stream_socket (read write getattr))) +(allow vdc_26_0 shell_data_file_26_0 (file (write getattr))) +(allow vdc_26_0 dumpstate_26_0 (unix_dgram_socket (read write))) +(allow vdc_26_0 devpts_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow vdc_26_0 kmsg_device_26_0 (chr_file (write lock append open))) +(neverallow base_typeattr_167_26_0 vendor_toolbox_exec_26_0 (file (execute execute_no_trans entrypoint))) +(allow virtual_touchpad_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 virtual_touchpad_26_0 (dir (search))) +(allow servicemanager_26_0 virtual_touchpad_26_0 (file (read open))) +(allow servicemanager_26_0 virtual_touchpad_26_0 (process (getattr))) +(allow virtual_touchpad_26_0 virtual_touchpad_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_168_26_0 virtual_touchpad_service_26_0 (service_manager (add))) +(neverallow virtual_touchpad_26_0 unlabeled_26_0 (service_manager (add))) +(allow virtual_touchpad_26_0 system_server_26_0 (binder (call transfer))) +(allow system_server_26_0 virtual_touchpad_26_0 (binder (transfer))) +(allow virtual_touchpad_26_0 system_server_26_0 (fd (use))) +(allow virtual_touchpad_26_0 uhid_device_26_0 (chr_file (ioctl write lock append open))) +(allow virtual_touchpad_26_0 permission_service_26_0 (service_manager (find))) +(allow vold_26_0 cache_file_26_0 (dir (ioctl read getattr lock search open))) +(allow vold_26_0 cache_file_26_0 (file (read getattr))) +(allow vold_26_0 cache_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow vold_26_0 proc_26_0 (dir (ioctl read getattr lock search open))) +(allow vold_26_0 proc_26_0 (file (ioctl read getattr lock open))) +(allow vold_26_0 proc_26_0 (lnk_file (ioctl read getattr lock open))) +(allow vold_26_0 proc_net_26_0 (dir (ioctl read getattr lock search open))) +(allow vold_26_0 proc_net_26_0 (file (ioctl read getattr lock open))) +(allow vold_26_0 proc_net_26_0 (lnk_file (ioctl read getattr lock open))) +(allow vold_26_0 sysfs_type (dir (ioctl read getattr lock search open))) +(allow vold_26_0 sysfs_type (file (ioctl read getattr lock open))) +(allow vold_26_0 sysfs_type (lnk_file (ioctl read getattr lock open))) +(allow vold_26_0 sysfs_26_0 (file (write lock append open))) +(allow vold_26_0 sysfs_usb_26_0 (file (write lock append open))) +(allow vold_26_0 sysfs_zram_uevent_26_0 (file (write lock append open))) +(allow vold_26_0 rootfs_26_0 (dir (ioctl read getattr lock search open))) +(allow vold_26_0 rootfs_26_0 (file (ioctl read getattr lock open))) +(allow vold_26_0 rootfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow vold_26_0 proc_meminfo_26_0 (file (ioctl read getattr lock open))) +(allow vold_26_0 file_contexts_file_26_0 (file (ioctl read getattr lock open))) +(allow vold_26_0 self (process (setexec))) +(allow vold_26_0 shell_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow vold_26_0 self (process (setfscreate))) +(allow vold_26_0 system_file_26_0 (file (getattr execute execute_no_trans))) +(allow vold_26_0 block_device_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow vold_26_0 device_26_0 (dir (write))) +(allow vold_26_0 devpts_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow vold_26_0 rootfs_26_0 (dir (mounton))) +(allow vold_26_0 sdcard_type (dir (mounton))) +(allow vold_26_0 sdcard_type (filesystem (mount remount unmount))) +(allow vold_26_0 sdcard_type (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow vold_26_0 sdcard_type (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow vold_26_0 sdcard_type (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow vold_26_0 mnt_media_rw_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow vold_26_0 storage_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow vold_26_0 sdcard_type (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow vold_26_0 mnt_media_rw_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow vold_26_0 storage_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow vold_26_0 media_rw_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow vold_26_0 media_rw_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow vold_26_0 mnt_media_rw_stub_file_26_0 (dir (create getattr setattr mounton rmdir))) +(allow vold_26_0 storage_stub_file_26_0 (dir (create getattr setattr mounton rmdir))) +(allow vold_26_0 mnt_user_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow vold_26_0 mnt_user_file_26_0 (lnk_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow vold_26_0 mnt_expand_file_26_0 (dir (ioctl read write create getattr setattr lock rename mounton add_name remove_name reparent search rmdir open))) +(allow vold_26_0 apk_data_file_26_0 (dir (create getattr setattr))) +(allow vold_26_0 shell_data_file_26_0 (dir (create getattr setattr))) +(allow vold_26_0 tmpfs_26_0 (filesystem (mount unmount))) +(allow vold_26_0 tmpfs_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow vold_26_0 tmpfs_26_0 (dir (mounton))) +(allow vold_26_0 self (capability (chown dac_override fowner fsetid net_admin sys_admin mknod))) +(allow vold_26_0 self (netlink_kobject_uevent_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow vold_26_0 app_data_file_26_0 (dir (search))) +(allow vold_26_0 app_data_file_26_0 (file (ioctl read write getattr lock append open))) +(allow vold_26_0 loop_control_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow vold_26_0 loop_device_26_0 (blk_file (ioctl read write create getattr setattr lock append unlink open))) +(allow vold_26_0 vold_device_26_0 (blk_file (ioctl read write create getattr setattr lock append unlink open))) +(allow vold_26_0 dm_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow vold_26_0 dm_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow vold_26_0 domain (dir (ioctl read getattr lock search open))) +(allow vold_26_0 domain (file (ioctl read getattr lock open))) +(allow vold_26_0 domain (lnk_file (ioctl read getattr lock open))) +(allow vold_26_0 domain (process (sigkill signal))) +(allow vold_26_0 self (capability (kill sys_ptrace))) +(allow vold_26_0 sysfs_26_0 (file (ioctl read write getattr lock append open))) +(allow vold_26_0 kmsg_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow vold_26_0 fsck_exec_26_0 (file (ioctl read getattr lock execute open))) +(allow vold_26_0 fscklogs_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow vold_26_0 fscklogs_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow vold_26_0 labeledfs_26_0 (filesystem (mount unmount))) +(allow vold_26_0 efs_file_26_0 (file (ioctl read write getattr lock append open))) +(allow vold_26_0 system_data_file_26_0 (dir (ioctl read write create getattr setattr lock mounton add_name remove_name search rmdir open))) +(allow vold_26_0 kernel_26_0 (process (setsched))) +(allow vold_26_0 property_socket_26_0 (sock_file (write))) +(allow vold_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow vold_26_0 vold_prop_26_0 (property_service (set))) +(allow vold_26_0 vold_prop_26_0 (file (ioctl read getattr lock open))) +(allow vold_26_0 property_socket_26_0 (sock_file (write))) +(allow vold_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow vold_26_0 powerctl_prop_26_0 (property_service (set))) +(allow vold_26_0 powerctl_prop_26_0 (file (ioctl read getattr lock open))) +(allow vold_26_0 property_socket_26_0 (sock_file (write))) +(allow vold_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow vold_26_0 ctl_fuse_prop_26_0 (property_service (set))) +(allow vold_26_0 ctl_fuse_prop_26_0 (file (ioctl read getattr lock open))) +(allow vold_26_0 property_socket_26_0 (sock_file (write))) +(allow vold_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow vold_26_0 restorecon_prop_26_0 (property_service (set))) +(allow vold_26_0 restorecon_prop_26_0 (file (ioctl read getattr lock open))) +(allow vold_26_0 asec_image_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow vold_26_0 asec_image_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow vold_26_0 asec_apk_file_26_0 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto rename mounton add_name remove_name reparent search rmdir open))) +(allow vold_26_0 asec_public_file_26_0 (dir (setattr relabelto))) +(allow vold_26_0 asec_apk_file_26_0 (file (ioctl read getattr setattr lock relabelfrom relabelto open))) +(allow vold_26_0 asec_public_file_26_0 (file (setattr relabelto))) +(allow vold_26_0 unlabeled_26_0 (dir (ioctl read getattr setattr lock relabelfrom search open))) +(allow vold_26_0 unlabeled_26_0 (file (ioctl read getattr setattr lock relabelfrom open))) +(allow vold_26_0 sysfs_wake_lock_26_0 (file (ioctl read write getattr lock append open))) +(allow vold_26_0 self (capability2 (block_suspend))) +(allow vold_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 vold_26_0 (dir (search))) +(allow servicemanager_26_0 vold_26_0 (file (read open))) +(allow servicemanager_26_0 vold_26_0 (process (getattr))) +(allow vold_26_0 healthd_26_0 (binder (call transfer))) +(allow healthd_26_0 vold_26_0 (binder (transfer))) +(allow vold_26_0 healthd_26_0 (fd (use))) +(allow vold_26_0 userdata_block_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow vold_26_0 metadata_block_device_26_0 (blk_file (ioctl read write getattr lock append open))) +(allow vold_26_0 unencrypted_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow vold_26_0 unencrypted_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow vold_26_0 proc_drop_caches_26_0 (file (write lock append open))) +(allow vold_26_0 vold_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow vold_26_0 vold_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow vold_26_0 init_26_0 (key (write search setattr))) +(allow vold_26_0 vold_26_0 (key (write search setattr))) +(allow vold_26_0 self (capability (sys_nice))) +(allow vold_26_0 self (capability (sys_chroot))) +(allow vold_26_0 storage_file_26_0 (dir (mounton))) +(allow vold_26_0 fuse_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow vold_26_0 fuse_26_0 (filesystem (relabelfrom))) +(allow vold_26_0 app_fusefs_26_0 (filesystem (relabelfrom relabelto))) +(allow vold_26_0 app_fusefs_26_0 (filesystem (mount unmount))) +(allow vold_26_0 toolbox_exec_26_0 (file (ioctl read getattr lock execute execute_no_trans open))) +(allow vold_26_0 user_profile_data_file_26_0 (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow vold_26_0 misc_block_device_26_0 (blk_file (write lock append open))) +(neverallow base_typeattr_92_26_0 vold_data_file_26_0 (dir (write lock relabelfrom append unlink link rename execute quotaon mounton add_name remove_name reparent rmdir audit_access execmod))) +(neverallow base_typeattr_169_26_0 vold_data_file_26_0 (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(neverallow base_typeattr_169_26_0 vold_data_file_26_0 (lnk_file (ioctl read write create setattr lock relabelfrom append unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_169_26_0 vold_data_file_26_0 (sock_file (ioctl read write create setattr lock relabelfrom append unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_169_26_0 vold_data_file_26_0 (fifo_file (ioctl read write create setattr lock relabelfrom append unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_90_26_0 vold_data_file_26_0 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton add_name remove_name reparent search rmdir open audit_access execmod))) +(neverallow base_typeattr_170_26_0 vold_data_file_26_0 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton execute_no_trans entrypoint execmod open audit_access))) +(neverallow base_typeattr_170_26_0 vold_data_file_26_0 (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_170_26_0 vold_data_file_26_0 (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_170_26_0 vold_data_file_26_0 (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append unlink link rename execute quotaon mounton open audit_access execmod))) +(neverallow base_typeattr_90_26_0 restorecon_prop_26_0 (property_service (set))) +(neverallow vold_26_0 fsck_exec_26_0 (file (execute_no_trans))) +(allow vr_hwc_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 vr_hwc_26_0 (dir (search))) +(allow servicemanager_26_0 vr_hwc_26_0 (file (read open))) +(allow servicemanager_26_0 vr_hwc_26_0 (process (getattr))) +(allow vr_hwc_26_0 surfaceflinger_26_0 (binder (call transfer))) +(allow surfaceflinger_26_0 vr_hwc_26_0 (binder (transfer))) +(allow vr_hwc_26_0 surfaceflinger_26_0 (fd (use))) +(allow vr_hwc_26_0 system_server_26_0 (binder (call transfer))) +(allow system_server_26_0 vr_hwc_26_0 (binder (transfer))) +(allow vr_hwc_26_0 system_server_26_0 (fd (use))) +(allow vr_hwc_26_0 vr_hwc_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_171_26_0 vr_hwc_service_26_0 (service_manager (add))) +(neverallow vr_hwc_26_0 unlabeled_26_0 (service_manager (add))) +(allow vr_hwc_26_0 hwservicemanager_26_0 (binder (call transfer))) +(allow hwservicemanager_26_0 vr_hwc_26_0 (binder (call transfer))) +(allow hwservicemanager_26_0 vr_hwc_26_0 (dir (search))) +(allow hwservicemanager_26_0 vr_hwc_26_0 (file (read open))) +(allow hwservicemanager_26_0 vr_hwc_26_0 (process (getattr))) +(allow vr_hwc_26_0 system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow vr_hwc_26_0 ion_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow vr_hwc_26_0 pdx_display_client_endpoint_dir_type (dir (ioctl read getattr lock search open))) +(allow vr_hwc_26_0 pdx_display_client_endpoint_socket_type (sock_file (ioctl read write getattr lock append open))) +(allow vr_hwc_26_0 pdx_display_client_endpoint_socket_type (unix_stream_socket (read write shutdown connectto))) +(allow vr_hwc_26_0 pdx_display_client_channel_socket_type (unix_stream_socket (read write getattr setattr lock append getopt setopt shutdown))) +(allow vr_hwc_26_0 pdx_display_client_server_type (fd (use))) +(allow pdx_display_client_server_type vr_hwc_26_0 (fd (use))) +(allow vr_hwc_26_0 permission_service_26_0 (service_manager (find))) +(allow watchdogd_26_0 watchdog_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow watchdogd_26_0 kmsg_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow wificond_26_0 servicemanager_26_0 (binder (call transfer))) +(allow servicemanager_26_0 wificond_26_0 (dir (search))) +(allow servicemanager_26_0 wificond_26_0 (file (read open))) +(allow servicemanager_26_0 wificond_26_0 (process (getattr))) +(allow wificond_26_0 system_server_26_0 (binder (call transfer))) +(allow system_server_26_0 wificond_26_0 (binder (transfer))) +(allow wificond_26_0 system_server_26_0 (fd (use))) +(allow wificond_26_0 wificond_service_26_0 (service_manager (add find))) +(neverallow base_typeattr_172_26_0 wificond_service_26_0 (service_manager (add))) +(neverallow wificond_26_0 unlabeled_26_0 (service_manager (add))) +(allow wificond_26_0 property_socket_26_0 (sock_file (write))) +(allow wificond_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow wificond_26_0 wifi_prop_26_0 (property_service (set))) +(allow wificond_26_0 wifi_prop_26_0 (file (ioctl read getattr lock open))) +(allow wificond_26_0 property_socket_26_0 (sock_file (write))) +(allow wificond_26_0 init_26_0 (unix_stream_socket (connectto))) +(allow wificond_26_0 ctl_default_prop_26_0 (property_service (set))) +(allow wificond_26_0 ctl_default_prop_26_0 (file (ioctl read getattr lock open))) +(allow wificond_26_0 self (udp_socket (ioctl read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allowx wificond_26_0 self (ioctl udp_socket (0x8914))) +(allow wificond_26_0 self (capability (net_admin net_raw))) +(allow wificond_26_0 self (netlink_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow wificond_26_0 self (netlink_generic_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow wificond_26_0 proc_net_26_0 (dir (ioctl read getattr lock search open))) +(allow wificond_26_0 proc_net_26_0 (file (ioctl read getattr lock open))) +(allow wificond_26_0 proc_net_26_0 (lnk_file (ioctl read getattr lock open))) +(allow wificond_26_0 wifi_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow wificond_26_0 wifi_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow wificond_26_0 permission_service_26_0 (service_manager (find))) +(allow wificond_26_0 dumpstate_26_0 (fd (use))) +(allow wificond_26_0 dumpstate_26_0 (fifo_file (write))) +(allow init_26_0 hal_audio_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_audio_default (process (transition))) +(allow hal_audio_default hal_audio_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_audio_default (process (noatsecure))) +(allow init_26_0 hal_audio_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_audio_default_exec process hal_audio_default) +(typetransition hal_audio_default tmpfs_26_0 file hal_audio_default_tmpfs) +(allow hal_audio_default hal_audio_default_tmpfs (file (read write getattr))) +(allow hal_audio_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_bluetooth_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_bluetooth_default (process (transition))) +(allow hal_bluetooth_default hal_bluetooth_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_bluetooth_default (process (noatsecure))) +(allow init_26_0 hal_bluetooth_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_bluetooth_default_exec process hal_bluetooth_default) +(typetransition hal_bluetooth_default tmpfs_26_0 file hal_bluetooth_default_tmpfs) +(allow hal_bluetooth_default hal_bluetooth_default_tmpfs (file (read write getattr))) +(allow hal_bluetooth_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_bootctl_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_bootctl_default (process (transition))) +(allow hal_bootctl_default hal_bootctl_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_bootctl_default (process (noatsecure))) +(allow init_26_0 hal_bootctl_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_bootctl_default_exec process hal_bootctl_default) +(typetransition hal_bootctl_default tmpfs_26_0 file hal_bootctl_default_tmpfs) +(allow hal_bootctl_default hal_bootctl_default_tmpfs (file (read write getattr))) +(allow hal_bootctl_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_camera_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_camera_default (process (transition))) +(allow hal_camera_default hal_camera_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_camera_default (process (noatsecure))) +(allow init_26_0 hal_camera_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_camera_default_exec process hal_camera_default) +(typetransition hal_camera_default tmpfs_26_0 file hal_camera_default_tmpfs) +(allow hal_camera_default hal_camera_default_tmpfs (file (read write getattr))) +(allow hal_camera_default tmpfs_26_0 (dir (getattr search))) +(allow hal_camera_default fwk_sensor_hwservice_26_0 (hwservice_manager (find))) +(allow init_26_0 hal_configstore_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_configstore_default (process (transition))) +(allow hal_configstore_default hal_configstore_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_configstore_default (process (noatsecure))) +(allow init_26_0 hal_configstore_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_configstore_default_exec process hal_configstore_default) +(typetransition hal_configstore_default tmpfs_26_0 file hal_configstore_default_tmpfs) +(allow hal_configstore_default hal_configstore_default_tmpfs (file (read write getattr))) +(allow hal_configstore_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_contexthub_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_contexthub_default (process (transition))) +(allow hal_contexthub_default hal_contexthub_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_contexthub_default (process (noatsecure))) +(allow init_26_0 hal_contexthub_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_contexthub_default_exec process hal_contexthub_default) +(typetransition hal_contexthub_default tmpfs_26_0 file hal_contexthub_default_tmpfs) +(allow hal_contexthub_default hal_contexthub_default_tmpfs (file (read write getattr))) +(allow hal_contexthub_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_drm_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_drm_default (process (transition))) +(allow hal_drm_default hal_drm_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_drm_default (process (noatsecure))) +(allow init_26_0 hal_drm_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_drm_default_exec process hal_drm_default) +(typetransition hal_drm_default tmpfs_26_0 file hal_drm_default_tmpfs) +(allow hal_drm_default hal_drm_default_tmpfs (file (read write getattr))) +(allow hal_drm_default tmpfs_26_0 (dir (getattr search))) +(allow hal_drm_default mediacodec_26_0 (fd (use))) +(allow hal_drm_default base_typeattr_100_26_0 (fd (use))) +(allow init_26_0 hal_dumpstate_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_dumpstate_default (process (transition))) +(allow hal_dumpstate_default hal_dumpstate_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_dumpstate_default (process (noatsecure))) +(allow init_26_0 hal_dumpstate_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_dumpstate_default_exec process hal_dumpstate_default) +(typetransition hal_dumpstate_default tmpfs_26_0 file hal_dumpstate_default_tmpfs) +(allow hal_dumpstate_default hal_dumpstate_default_tmpfs (file (read write getattr))) +(allow hal_dumpstate_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_fingerprint_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_fingerprint_default (process (transition))) +(allow hal_fingerprint_default hal_fingerprint_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_fingerprint_default (process (noatsecure))) +(allow init_26_0 hal_fingerprint_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_fingerprint_default_exec process hal_fingerprint_default) +(typetransition hal_fingerprint_default tmpfs_26_0 file hal_fingerprint_default_tmpfs) +(allow hal_fingerprint_default hal_fingerprint_default_tmpfs (file (read write getattr))) +(allow hal_fingerprint_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_gatekeeper_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_gatekeeper_default (process (transition))) +(allow hal_gatekeeper_default hal_gatekeeper_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_gatekeeper_default (process (noatsecure))) +(allow init_26_0 hal_gatekeeper_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_gatekeeper_default_exec process hal_gatekeeper_default) +(typetransition hal_gatekeeper_default tmpfs_26_0 file hal_gatekeeper_default_tmpfs) +(allow hal_gatekeeper_default hal_gatekeeper_default_tmpfs (file (read write getattr))) +(allow hal_gatekeeper_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_gnss_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_gnss_default (process (transition))) +(allow hal_gnss_default hal_gnss_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_gnss_default (process (noatsecure))) +(allow init_26_0 hal_gnss_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_gnss_default_exec process hal_gnss_default) +(typetransition hal_gnss_default tmpfs_26_0 file hal_gnss_default_tmpfs) +(allow hal_gnss_default hal_gnss_default_tmpfs (file (read write getattr))) +(allow hal_gnss_default tmpfs_26_0 (dir (getattr search))) +(allow hal_gnss system_file_26_0 (dir (ioctl read getattr lock search open))) +(allow hal_gnss system_file_26_0 (file (ioctl read getattr lock open))) +(allow hal_gnss system_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow init_26_0 hal_graphics_allocator_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_graphics_allocator_default (process (transition))) +(allow hal_graphics_allocator_default hal_graphics_allocator_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_graphics_allocator_default (process (noatsecure))) +(allow init_26_0 hal_graphics_allocator_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_graphics_allocator_default_exec process hal_graphics_allocator_default) +(typetransition hal_graphics_allocator_default tmpfs_26_0 file hal_graphics_allocator_default_tmpfs) +(allow hal_graphics_allocator_default hal_graphics_allocator_default_tmpfs (file (read write getattr))) +(allow hal_graphics_allocator_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_graphics_composer_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_graphics_composer_default (process (transition))) +(allow hal_graphics_composer_default hal_graphics_composer_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_graphics_composer_default (process (noatsecure))) +(allow init_26_0 hal_graphics_composer_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_graphics_composer_default_exec process hal_graphics_composer_default) +(typetransition hal_graphics_composer_default tmpfs_26_0 file hal_graphics_composer_default_tmpfs) +(allow hal_graphics_composer_default hal_graphics_composer_default_tmpfs (file (read write getattr))) +(allow hal_graphics_composer_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_health_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_health_default (process (transition))) +(allow hal_health_default hal_health_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_health_default (process (noatsecure))) +(allow init_26_0 hal_health_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_health_default_exec process hal_health_default) +(typetransition hal_health_default tmpfs_26_0 file hal_health_default_tmpfs) +(allow hal_health_default hal_health_default_tmpfs (file (read write getattr))) +(allow hal_health_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_ir_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_ir_default (process (transition))) +(allow hal_ir_default hal_ir_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_ir_default (process (noatsecure))) +(allow init_26_0 hal_ir_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_ir_default_exec process hal_ir_default) +(typetransition hal_ir_default tmpfs_26_0 file hal_ir_default_tmpfs) +(allow hal_ir_default hal_ir_default_tmpfs (file (read write getattr))) +(allow hal_ir_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_keymaster_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_keymaster_default (process (transition))) +(allow hal_keymaster_default hal_keymaster_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_keymaster_default (process (noatsecure))) +(allow init_26_0 hal_keymaster_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_keymaster_default_exec process hal_keymaster_default) +(typetransition hal_keymaster_default tmpfs_26_0 file hal_keymaster_default_tmpfs) +(allow hal_keymaster_default hal_keymaster_default_tmpfs (file (read write getattr))) +(allow hal_keymaster_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_light_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_light_default (process (transition))) +(allow hal_light_default hal_light_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_light_default (process (noatsecure))) +(allow init_26_0 hal_light_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_light_default_exec process hal_light_default) +(typetransition hal_light_default tmpfs_26_0 file hal_light_default_tmpfs) +(allow hal_light_default hal_light_default_tmpfs (file (read write getattr))) +(allow hal_light_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_memtrack_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_memtrack_default (process (transition))) +(allow hal_memtrack_default hal_memtrack_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_memtrack_default (process (noatsecure))) +(allow init_26_0 hal_memtrack_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_memtrack_default_exec process hal_memtrack_default) +(typetransition hal_memtrack_default tmpfs_26_0 file hal_memtrack_default_tmpfs) +(allow hal_memtrack_default hal_memtrack_default_tmpfs (file (read write getattr))) +(allow hal_memtrack_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_nfc_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_nfc_default (process (transition))) +(allow hal_nfc_default hal_nfc_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_nfc_default (process (noatsecure))) +(allow init_26_0 hal_nfc_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_nfc_default_exec process hal_nfc_default) +(typetransition hal_nfc_default tmpfs_26_0 file hal_nfc_default_tmpfs) +(allow hal_nfc_default hal_nfc_default_tmpfs (file (read write getattr))) +(allow hal_nfc_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 mediacodec_exec_26_0 (file (read getattr execute open))) +(allow init_26_0 mediacodec_26_0 (process (transition))) +(allow mediacodec_26_0 mediacodec_exec_26_0 (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 mediacodec_26_0 (process (noatsecure))) +(allow init_26_0 mediacodec_26_0 (process (siginh rlimitinh))) +(typetransition init_26_0 mediacodec_exec_26_0 process mediacodec) +(typetransition mediacodec_26_0 tmpfs_26_0 file mediacodec_tmpfs) +(allow mediacodec_26_0 mediacodec_tmpfs (file (read write getattr))) +(allow mediacodec_26_0 tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_power_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_power_default (process (transition))) +(allow hal_power_default hal_power_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_power_default (process (noatsecure))) +(allow init_26_0 hal_power_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_power_default_exec process hal_power_default) +(typetransition hal_power_default tmpfs_26_0 file hal_power_default_tmpfs) +(allow hal_power_default hal_power_default_tmpfs (file (read write getattr))) +(allow hal_power_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_sensors_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_sensors_default (process (transition))) +(allow hal_sensors_default hal_sensors_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_sensors_default (process (noatsecure))) +(allow init_26_0 hal_sensors_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_sensors_default_exec process hal_sensors_default) +(typetransition hal_sensors_default tmpfs_26_0 file hal_sensors_default_tmpfs) +(allow hal_sensors_default hal_sensors_default_tmpfs (file (read write getattr))) +(allow hal_sensors_default tmpfs_26_0 (dir (getattr search))) +(allow hal_sensors_default fwk_scheduler_hwservice_26_0 (hwservice_manager (find))) +(allow init_26_0 hal_thermal_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_thermal_default (process (transition))) +(allow hal_thermal_default hal_thermal_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_thermal_default (process (noatsecure))) +(allow init_26_0 hal_thermal_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_thermal_default_exec process hal_thermal_default) +(typetransition hal_thermal_default tmpfs_26_0 file hal_thermal_default_tmpfs) +(allow hal_thermal_default hal_thermal_default_tmpfs (file (read write getattr))) +(allow hal_thermal_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_tv_cec_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_tv_cec_default (process (transition))) +(allow hal_tv_cec_default hal_tv_cec_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_tv_cec_default (process (noatsecure))) +(allow init_26_0 hal_tv_cec_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_tv_cec_default_exec process hal_tv_cec_default) +(typetransition hal_tv_cec_default tmpfs_26_0 file hal_tv_cec_default_tmpfs) +(allow hal_tv_cec_default hal_tv_cec_default_tmpfs (file (read write getattr))) +(allow hal_tv_cec_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_tv_input_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_tv_input_default (process (transition))) +(allow hal_tv_input_default hal_tv_input_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_tv_input_default (process (noatsecure))) +(allow init_26_0 hal_tv_input_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_tv_input_default_exec process hal_tv_input_default) +(typetransition hal_tv_input_default tmpfs_26_0 file hal_tv_input_default_tmpfs) +(allow hal_tv_input_default hal_tv_input_default_tmpfs (file (read write getattr))) +(allow hal_tv_input_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_usb_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_usb_default (process (transition))) +(allow hal_usb_default hal_usb_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_usb_default (process (noatsecure))) +(allow init_26_0 hal_usb_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_usb_default_exec process hal_usb_default) +(typetransition hal_usb_default tmpfs_26_0 file hal_usb_default_tmpfs) +(allow hal_usb_default hal_usb_default_tmpfs (file (read write getattr))) +(allow hal_usb_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_vibrator_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_vibrator_default (process (transition))) +(allow hal_vibrator_default hal_vibrator_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_vibrator_default (process (noatsecure))) +(allow init_26_0 hal_vibrator_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_vibrator_default_exec process hal_vibrator_default) +(typetransition hal_vibrator_default tmpfs_26_0 file hal_vibrator_default_tmpfs) +(allow hal_vibrator_default hal_vibrator_default_tmpfs (file (read write getattr))) +(allow hal_vibrator_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_vr_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_vr_default (process (transition))) +(allow hal_vr_default hal_vr_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_vr_default (process (noatsecure))) +(allow init_26_0 hal_vr_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_vr_default_exec process hal_vr_default) +(typetransition hal_vr_default tmpfs_26_0 file hal_vr_default_tmpfs) +(allow hal_vr_default hal_vr_default_tmpfs (file (read write getattr))) +(allow hal_vr_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_wifi_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_wifi_default (process (transition))) +(allow hal_wifi_default hal_wifi_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_wifi_default (process (noatsecure))) +(allow init_26_0 hal_wifi_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_wifi_default_exec process hal_wifi_default) +(typetransition hal_wifi_default tmpfs_26_0 file hal_wifi_default_tmpfs) +(allow hal_wifi_default hal_wifi_default_tmpfs (file (read write getattr))) +(allow hal_wifi_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_wifi_offload_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_wifi_offload_default (process (transition))) +(allow hal_wifi_offload_default hal_wifi_offload_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_wifi_offload_default (process (noatsecure))) +(allow init_26_0 hal_wifi_offload_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_wifi_offload_default_exec process hal_wifi_offload_default) +(typetransition hal_wifi_offload_default tmpfs_26_0 file hal_wifi_offload_default_tmpfs) +(allow hal_wifi_offload_default hal_wifi_offload_default_tmpfs (file (read write getattr))) +(allow hal_wifi_offload_default tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 hal_wifi_supplicant_default_exec (file (read getattr execute open))) +(allow init_26_0 hal_wifi_supplicant_default (process (transition))) +(allow hal_wifi_supplicant_default hal_wifi_supplicant_default_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hal_wifi_supplicant_default (process (noatsecure))) +(allow init_26_0 hal_wifi_supplicant_default (process (siginh rlimitinh))) +(typetransition init_26_0 hal_wifi_supplicant_default_exec process hal_wifi_supplicant_default) +(typetransition hal_wifi_supplicant_default tmpfs_26_0 file hal_wifi_supplicant_default_tmpfs) +(allow hal_wifi_supplicant_default hal_wifi_supplicant_default_tmpfs (file (read write getattr))) +(allow hal_wifi_supplicant_default tmpfs_26_0 (dir (getattr search))) +(allow hal_wifi_supplicant_default hwservicemanager_26_0 (binder (call transfer))) +(allow hwservicemanager_26_0 hal_wifi_supplicant_default (binder (call transfer))) +(allow hwservicemanager_26_0 hal_wifi_supplicant_default (dir (search))) +(allow hwservicemanager_26_0 hal_wifi_supplicant_default (file (read open))) +(allow hwservicemanager_26_0 hal_wifi_supplicant_default (process (getattr))) +(allow hal_wifi_supplicant_default system_wifi_keystore_hwservice_26_0 (hwservice_manager (find))) +(allow hal_wifi_supplicant_default wifi_keystore_service_server (binder (call transfer))) +(allow wifi_keystore_service_server hal_wifi_supplicant_default (binder (transfer))) +(allow hal_wifi_supplicant_default wifi_keystore_service_server (fd (use))) +(allow init_26_0 hostapd_exec (file (read getattr execute open))) +(allow init_26_0 hostapd (process (transition))) +(allow hostapd hostapd_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 hostapd (process (noatsecure))) +(allow init_26_0 hostapd (process (siginh rlimitinh))) +(typetransition init_26_0 hostapd_exec process hostapd) +(typetransition hostapd tmpfs_26_0 file hostapd_tmpfs) +(allow hostapd hostapd_tmpfs (file (read write getattr))) +(allow hostapd tmpfs_26_0 (dir (getattr search))) +(allow hostapd self (capability (net_admin net_raw))) +(allow hostapd sysfs_26_0 (file (ioctl read getattr lock open))) +(allow hostapd sysfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hostapd proc_net_26_0 (file (read getattr open))) +(allowx hostapd self (ioctl udp_socket (0x6900 0x6902))) +(allowx hostapd self (ioctl udp_socket (((range 0x890b 0x890d)) 0x8911 0x8914 0x8916 0x8918 0x891a ((range 0x891c 0x8920)) ((range 0x8922 0x8927)) 0x8929 ((range 0x8930 0x8932)) ((range 0x8934 0x8937)) 0x8939 ((range 0x8940 0x8941)) 0x8943 ((range 0x8946 0x894b)) ((range 0x8953 0x8955)) ((range 0x8960 0x8962)) ((range 0x8970 0x8971)) ((range 0x8980 0x8983)) ((range 0x8990 0x8995)) ((range 0x89a0 0x89a3)) 0x89b0 ((range 0x89e0 0x89ff))))) +(allowx hostapd self (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 ((range 0x8b14 0x8b1d)) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 ((range 0x8b2a 0x8b2c)) ((range 0x8b30 0x8b36)) ((range 0x8be0 0x8bff))))) +(allow hostapd self (netlink_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow hostapd self (netlink_generic_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow hostapd self (packet_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow hostapd self (netlink_route_socket (nlmsg_write))) +(allow hostapd wifi_data_file_26_0 (file (ioctl read write getattr lock append open))) +(allow hostapd wifi_data_file_26_0 (dir (ioctl read getattr lock search open))) +(allow hostapd wifi_data_file_26_0 (file (ioctl read getattr lock open))) +(allow hostapd wifi_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow hostapd hostapd_socket (dir (ioctl read write create getattr setattr lock rename add_name remove_name reparent search rmdir open))) +(allow hostapd hostapd_socket (sock_file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow init_26_0 rild_exec (file (read getattr execute open))) +(allow init_26_0 rild_26_0 (process (transition))) +(allow rild_26_0 rild_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 rild_26_0 (process (noatsecure))) +(allow init_26_0 rild_26_0 (process (siginh rlimitinh))) +(typetransition init_26_0 rild_exec process rild) +(typetransition rild_26_0 tmpfs_26_0 file rild_tmpfs) +(allow rild_26_0 rild_tmpfs (file (read write getattr))) +(allow rild_26_0 tmpfs_26_0 (dir (getattr search))) +(allow init_26_0 tee_exec (file (read getattr execute open))) +(allow init_26_0 tee_26_0 (process (transition))) +(allow tee_26_0 tee_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 tee_26_0 (process (noatsecure))) +(allow init_26_0 tee_26_0 (process (siginh rlimitinh))) +(typetransition init_26_0 tee_exec process tee) +(typetransition tee_26_0 tmpfs_26_0 file tee_tmpfs) +(allow tee_26_0 tee_tmpfs (file (read write getattr))) +(allow tee_26_0 tmpfs_26_0 (dir (getattr search))) +(allow tee_26_0 self (capability (dac_override))) +(allow tee_26_0 tee_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow tee_26_0 tee_data_file_26_0 (dir (ioctl read write getattr lock add_name remove_name search open))) +(allow tee_26_0 tee_data_file_26_0 (file (ioctl read write create getattr setattr lock append unlink rename open))) +(allow tee_26_0 self (netlink_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow tee_26_0 self (netlink_generic_socket (read write create getattr setattr lock append bind connect getopt setopt shutdown))) +(allow tee_26_0 ion_device_26_0 (chr_file (ioctl read getattr lock open))) +(allow tee_26_0 sysfs_type (dir (ioctl read getattr lock search open))) +(allow tee_26_0 sysfs_type (file (ioctl read getattr lock open))) +(allow tee_26_0 sysfs_type (lnk_file (ioctl read getattr lock open))) +(allow tee_26_0 system_data_file_26_0 (file (read getattr))) +(allow tee_26_0 system_data_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow init_26_0 vendor_toolbox_exec_26_0 (file (read getattr execute open))) +(allow init_26_0 vendor_modprobe (process (transition))) +(allow vendor_modprobe vendor_toolbox_exec_26_0 (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 vendor_modprobe (process (noatsecure))) +(allow init_26_0 vendor_modprobe (process (siginh rlimitinh))) +(allow vendor_modprobe proc_modules_26_0 (file (ioctl read getattr lock open))) +(allow vendor_modprobe self (capability (sys_module))) +(allow vendor_modprobe kernel_26_0 (key (search))) +(allow vendor_modprobe vendor_file_26_0 (system (module_load))) +(allow vendor_modprobe vendor_file_26_0 (dir (ioctl read getattr lock search open))) +(allow vendor_modprobe vendor_file_26_0 (file (ioctl read getattr lock open))) +(allow vendor_modprobe vendor_file_26_0 (lnk_file (ioctl read getattr lock open))) +(allow init_26_0 vndservicemanager_exec (file (read getattr execute open))) +(allow init_26_0 vndservicemanager_26_0 (process (transition))) +(allow vndservicemanager_26_0 vndservicemanager_exec (file (read getattr execute entrypoint open))) +(dontaudit init_26_0 vndservicemanager_26_0 (process (noatsecure))) +(allow init_26_0 vndservicemanager_26_0 (process (siginh rlimitinh))) +(typetransition init_26_0 vndservicemanager_exec process vndservicemanager) +(typetransition vndservicemanager_26_0 tmpfs_26_0 file vndservicemanager_tmpfs) +(allow vndservicemanager_26_0 vndservicemanager_tmpfs (file (read write getattr))) +(allow vndservicemanager_26_0 tmpfs_26_0 (dir (getattr search))) +(allow vndservicemanager_26_0 self (binder (set_context_mgr))) +(allow vndservicemanager_26_0 base_typeattr_173_26_0 (binder (transfer))) +(allow vndservicemanager_26_0 vndbinder_device_26_0 (chr_file (ioctl read write getattr lock append open))) +(allow vndservicemanager_26_0 vndservice_contexts_file_26_0 (file (ioctl read getattr lock open))) +(allow vndservicemanager_26_0 selinuxfs_26_0 (dir (ioctl read getattr lock search open))) +(allow vndservicemanager_26_0 selinuxfs_26_0 (file (ioctl read getattr lock open))) +(allow vndservicemanager_26_0 selinuxfs_26_0 (lnk_file (ioctl read getattr lock open))) +(allow vndservicemanager_26_0 selinuxfs_26_0 (file (write lock append open))) +(allow vndservicemanager_26_0 kernel_26_0 (security (compute_av))) +(allow vndservicemanager_26_0 self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind))) +(typetransition hal_wifi_supplicant_default wifi_data_file_26_0 dir "sockets" wpa_socket) +(typeattribute base_typeattr_173_26_0) +(typeattributeset base_typeattr_173_26_0 ((and (domain) ((not (coredomain init_26_0)))))) +(typeattribute base_typeattr_172_26_0) +(typeattributeset base_typeattr_172_26_0 ((and (domain) ((not (wificond_26_0)))))) +(typeattribute base_typeattr_171_26_0) +(typeattributeset base_typeattr_171_26_0 ((and (domain) ((not (vr_hwc_26_0)))))) +(typeattribute base_typeattr_170_26_0) +(typeattributeset base_typeattr_170_26_0 ((and (domain) ((not (init_26_0 kernel_26_0 vold_26_0)))))) +(typeattribute base_typeattr_169_26_0) +(typeattributeset base_typeattr_169_26_0 ((and (domain) ((not (kernel_26_0 vold_26_0)))))) +(typeattribute base_typeattr_168_26_0) +(typeattributeset base_typeattr_168_26_0 ((and (domain) ((not (virtual_touchpad_26_0)))))) +(typeattribute base_typeattr_167_26_0) +(typeattributeset base_typeattr_167_26_0 ((and (coredomain) ((not (init_26_0 modprobe_26_0)))))) +(typeattribute base_typeattr_166_26_0) +(typeattributeset base_typeattr_166_26_0 ((and (domain) ((not (update_engine_26_0)))))) +(typeattribute base_typeattr_165_26_0) +(typeattributeset base_typeattr_165_26_0 ((and (fs_type file_type) ((not (toolbox_exec_26_0)))))) +(typeattribute base_typeattr_164_26_0) +(typeattributeset base_typeattr_164_26_0 ((and (service_manager_type) ((not (gatekeeper_service_26_0 incident_service_26_0 installd_service_26_0 netd_service_26_0 virtual_touchpad_service_26_0 vr_hwc_service_26_0)))))) +(typeattribute base_typeattr_163_26_0) +(typeattributeset base_typeattr_163_26_0 ((and (fs_type file_type) ((not (sgdisk_exec_26_0)))))) +(typeattribute base_typeattr_162_26_0) +(typeattributeset base_typeattr_162_26_0 ((and (domain) ((not (hwservicemanager_26_0 init_26_0 vndservicemanager_26_0)))))) +(typeattribute base_typeattr_161_26_0) +(typeattributeset base_typeattr_161_26_0 ((and (appdomain) ((not (system_app_26_0)))))) +(typeattribute base_typeattr_160_26_0) +(typeattributeset base_typeattr_160_26_0 ((and (domain) ((not (radio_26_0)))))) +(typeattribute base_typeattr_159_26_0) +(typeattributeset base_typeattr_159_26_0 ((and (core_property_type) ((not (audio_prop_26_0 config_prop_26_0 cppreopt_prop_26_0 dalvik_prop_26_0 debuggerd_prop_26_0 debug_prop_26_0 default_prop_26_0 dhcp_prop_26_0 dumpstate_prop_26_0 ffs_prop_26_0 fingerprint_prop_26_0 logd_prop_26_0 net_radio_prop_26_0 nfc_prop_26_0 pan_result_prop_26_0 persist_debug_prop_26_0 powerctl_prop_26_0 radio_prop_26_0 restorecon_prop_26_0 shell_prop_26_0 system_prop_26_0 system_radio_prop_26_0 vold_prop_26_0)))))) +(typeattribute base_typeattr_158_26_0) +(typeattributeset base_typeattr_158_26_0 ((and (domain) ((not (performanced_26_0)))))) +(typeattribute base_typeattr_157_26_0) +(typeattributeset base_typeattr_157_26_0 ((and (domain) ((not (dumpstate_26_0 netd_26_0 system_server_26_0)))))) +(typeattribute base_typeattr_156_26_0) +(typeattributeset base_typeattr_156_26_0 ((and (domain) ((not (netd_26_0)))))) +(typeattribute base_typeattr_155_26_0) +(typeattributeset base_typeattr_155_26_0 ((and (domain) ((not (mediaserver_26_0)))))) +(typeattribute base_typeattr_154_26_0) +(typeattributeset base_typeattr_154_26_0 ((and (domain) ((not (mediametrics_26_0)))))) +(typeattribute base_typeattr_153_26_0) +(typeattributeset base_typeattr_153_26_0 ((and (domain) ((not (mediaextractor_26_0)))))) +(typeattribute base_typeattr_152_26_0) +(typeattributeset base_typeattr_152_26_0 ((and (domain) ((not (mediadrmserver_26_0)))))) +(typeattribute base_typeattr_151_26_0) +(typeattributeset base_typeattr_151_26_0 ((and (domain) ((not (mediacodec_26_0)))))) +(typeattribute base_typeattr_150_26_0) +(typeattributeset base_typeattr_150_26_0 ((and (domain) ((not (init_26_0 logd_26_0)))))) +(typeattribute base_typeattr_149_26_0) +(typeattributeset base_typeattr_149_26_0 ((and (domain) ((not (crash_dump_26_0)))))) +(typeattribute base_typeattr_148_26_0) +(typeattributeset base_typeattr_148_26_0 ((and (domain) ((not (init_26_0 keystore_26_0)))))) +(typeattribute base_typeattr_147_26_0) +(typeattributeset base_typeattr_147_26_0 ((and (domain) ((not (keystore_26_0)))))) +(typeattribute base_typeattr_146_26_0) +(typeattributeset base_typeattr_146_26_0 ((and (domain) ((not (servicemanager_26_0 su_26_0 system_server_26_0)))))) +(typeattribute base_typeattr_145_26_0) +(typeattributeset base_typeattr_145_26_0 ((and (domain) ((not (dumpstate_26_0 installd_26_0 system_server_26_0)))))) +(typeattribute base_typeattr_144_26_0) +(typeattributeset base_typeattr_144_26_0 ((and (domain) ((not (installd_26_0)))))) +(typeattribute base_typeattr_143_26_0) +(typeattributeset base_typeattr_143_26_0 ((and (domain) ((not (inputflinger_26_0)))))) +(typeattribute base_typeattr_142_26_0) +(typeattributeset base_typeattr_142_26_0 ((and (fs_type file_type) ((not (init_exec_26_0)))))) +(typeattribute base_typeattr_141_26_0) +(typeattributeset base_typeattr_141_26_0 ((and (dev_type) ((not (kmem_device_26_0 port_device_26_0)))))) +(typeattribute base_typeattr_140_26_0) +(typeattributeset base_typeattr_140_26_0 ((and (dev_type) ((not (device_26_0 alarm_device_26_0 ashmem_device_26_0 binder_device_26_0 hwbinder_device_26_0 dm_device_26_0 keychord_device_26_0 console_device_26_0 hw_random_device_26_0 kmem_device_26_0 port_device_26_0 ptmx_device_26_0 kmsg_device_26_0 null_device_26_0 random_device_26_0 owntty_device_26_0 zero_device_26_0 devpts_26_0)))))) +(typeattribute base_typeattr_139_26_0) +(typeattributeset base_typeattr_139_26_0 ((and (dev_type) ((not (device_26_0 vndbinder_device_26_0 kmem_device_26_0 port_device_26_0)))))) +(typeattribute base_typeattr_138_26_0) +(typeattributeset base_typeattr_138_26_0 ((and (fs_type) ((not (contextmount_type sdcard_type rootfs_26_0)))))) +(typeattribute base_typeattr_137_26_0) +(typeattributeset base_typeattr_137_26_0 ((and (file_type) ((not (exec_type vendor_file_type system_file_26_0)))))) +(typeattribute base_typeattr_136_26_0) +(typeattributeset base_typeattr_136_26_0 ((and (file_type) ((not (exec_type vendor_file_type system_file_26_0 runtime_event_log_tags_file_26_0 shell_data_file_26_0 keystore_data_file_26_0 vold_data_file_26_0 app_data_file_26_0 system_app_data_file_26_0 misc_logd_file_26_0)))))) +(typeattribute base_typeattr_135_26_0) +(typeattributeset base_typeattr_135_26_0 ((and (file_type) ((not (exec_type vendor_file_type system_file_26_0 shell_data_file_26_0 keystore_data_file_26_0 vold_data_file_26_0 app_data_file_26_0 system_app_data_file_26_0 misc_logd_file_26_0)))))) +(typeattribute base_typeattr_134_26_0) +(typeattributeset base_typeattr_134_26_0 ((and (file_type) ((not (exec_type vendor_file_type system_file_26_0 app_data_file_26_0 system_app_data_file_26_0 misc_logd_file_26_0)))))) +(typeattribute base_typeattr_133_26_0) +(typeattributeset base_typeattr_133_26_0 ((and (domain) ((not (healthd_26_0)))))) +(typeattribute base_typeattr_132_26_0) +(typeattributeset base_typeattr_132_26_0 ((and (domain) ((not (hal_wifi_supplicant_server)))))) +(typeattribute base_typeattr_131_26_0) +(typeattributeset base_typeattr_131_26_0 ((and (domain) ((not (hal_wifi_server)))))) +(typeattribute base_typeattr_130_26_0) +(typeattributeset base_typeattr_130_26_0 ((and (domain) ((not (hal_weaver_server)))))) +(typeattribute base_typeattr_129_26_0) +(typeattributeset base_typeattr_129_26_0 ((and (domain) ((not (hal_vr_server)))))) +(typeattribute base_typeattr_128_26_0) +(typeattributeset base_typeattr_128_26_0 ((and (domain) ((not (hal_vibrator_server)))))) +(typeattribute base_typeattr_127_26_0) +(typeattributeset base_typeattr_127_26_0 ((and (domain) ((not (hal_usb_server)))))) +(typeattribute base_typeattr_126_26_0) +(typeattributeset base_typeattr_126_26_0 ((and (domain) ((not (hal_tv_input_server)))))) +(typeattribute base_typeattr_125_26_0) +(typeattributeset base_typeattr_125_26_0 ((and (domain) ((not (hal_tv_cec_server)))))) +(typeattribute base_typeattr_124_26_0) +(typeattributeset base_typeattr_124_26_0 ((and (domain) ((not (hal_thermal_server)))))) +(typeattribute base_typeattr_123_26_0) +(typeattributeset base_typeattr_123_26_0 ((and (domain) ((not (hal_telephony_server)))))) +(typeattribute base_typeattr_122_26_0) +(typeattributeset base_typeattr_122_26_0 ((and (domain) ((not (hal_sensors_server)))))) +(typeattribute base_typeattr_121_26_0) +(typeattributeset base_typeattr_121_26_0 ((and (domain) ((not (hal_power_server)))))) +(typeattribute base_typeattr_120_26_0) +(typeattributeset base_typeattr_120_26_0 ((and (domain) ((not (hal_oemlock_server)))))) +(typeattribute base_typeattr_119_26_0) +(typeattributeset base_typeattr_119_26_0 ((and (domain) ((not (hal_nfc_server)))))) +(typeattribute base_typeattr_118_26_0) +(typeattributeset base_typeattr_118_26_0 ((and (halserverdomain) ((not (hal_dumpstate_server rild_26_0)))))) +(typeattribute base_typeattr_117_26_0) +(typeattributeset base_typeattr_117_26_0 ((and (halserverdomain) ((not (hal_tetheroffload_server hal_wifi_server hal_wifi_supplicant_server rild_26_0)))))) +(typeattribute base_typeattr_116_26_0) +(typeattributeset base_typeattr_116_26_0 ((and (halserverdomain) ((not (hal_bluetooth_server hal_wifi_server hal_wifi_supplicant_server rild_26_0)))))) +(typeattribute base_typeattr_115_26_0) +(typeattributeset base_typeattr_115_26_0 ((and (domain) ((not (hal_memtrack_server)))))) +(typeattribute base_typeattr_114_26_0) +(typeattributeset base_typeattr_114_26_0 ((and (domain) ((not (hal_light_server)))))) +(typeattribute base_typeattr_113_26_0) +(typeattributeset base_typeattr_113_26_0 ((and (domain) ((not (hal_keymaster_server)))))) +(typeattribute base_typeattr_112_26_0) +(typeattributeset base_typeattr_112_26_0 ((and (domain) ((not (hal_ir_server)))))) +(typeattribute base_typeattr_111_26_0) +(typeattributeset base_typeattr_111_26_0 ((and (domain) ((not (hal_health_server)))))) +(typeattribute base_typeattr_110_26_0) +(typeattributeset base_typeattr_110_26_0 ((and (domain) ((not (hal_graphics_composer_server)))))) +(typeattribute base_typeattr_109_26_0) +(typeattributeset base_typeattr_109_26_0 ((and (domain) ((not (hal_graphics_allocator_server)))))) +(typeattribute base_typeattr_108_26_0) +(typeattributeset base_typeattr_108_26_0 ((and (domain) ((not (hal_gnss_server)))))) +(typeattribute base_typeattr_107_26_0) +(typeattributeset base_typeattr_107_26_0 ((and (domain) ((not (hal_gatekeeper_server)))))) +(typeattribute base_typeattr_106_26_0) +(typeattributeset base_typeattr_106_26_0 ((and (domain) ((not (hal_fingerprint_server)))))) +(typeattribute base_typeattr_105_26_0) +(typeattributeset base_typeattr_105_26_0 ((and (domain) ((not (hal_dumpstate_server)))))) +(typeattribute base_typeattr_104_26_0) +(typeattributeset base_typeattr_104_26_0 ((and (domain) ((not (hal_drm_server)))))) +(typeattribute base_typeattr_103_26_0) +(typeattributeset base_typeattr_103_26_0 ((and (domain) ((not (hal_contexthub_server)))))) +(typeattribute base_typeattr_102_26_0) +(typeattributeset base_typeattr_102_26_0 ((and (domain) ((not (hal_configstore_server)))))) +(typeattribute base_typeattr_101_26_0) +(typeattributeset base_typeattr_101_26_0 ((and (halserverdomain) ((not (hal_camera_server)))))) +(typeattribute base_typeattr_100_26_0) +(typeattributeset base_typeattr_100_26_0 ((and (appdomain) ((not (isolated_app_26_0)))))) +(typeattribute base_typeattr_99_26_0) +(typeattributeset base_typeattr_99_26_0 ((and (domain) ((not (hal_camera_server)))))) +(typeattribute base_typeattr_98_26_0) +(typeattributeset base_typeattr_98_26_0 ((and (domain) ((not (hal_bootctl_server)))))) +(typeattribute base_typeattr_97_26_0) +(typeattributeset base_typeattr_97_26_0 ((and (domain) ((not (hal_bluetooth_server)))))) +(typeattribute base_typeattr_96_26_0) +(typeattributeset base_typeattr_96_26_0 ((and (halserverdomain) ((not (hal_audio_server)))))) +(typeattribute base_typeattr_95_26_0) +(typeattributeset base_typeattr_95_26_0 ((and (domain) ((not (hal_audio_server)))))) +(typeattribute base_typeattr_94_26_0) +(typeattributeset base_typeattr_94_26_0 ((and (domain) ((not (hal_allocator_server)))))) +(typeattribute base_typeattr_93_26_0) +(typeattributeset base_typeattr_93_26_0 ((and (domain) ((not (gatekeeperd_26_0)))))) +(typeattribute base_typeattr_92_26_0) +(typeattributeset base_typeattr_92_26_0 ((and (domain) ((not (vold_26_0)))))) +(typeattribute base_typeattr_91_26_0) +(typeattributeset base_typeattr_91_26_0 ((and (fs_type file_type) ((not (fsck_exec_26_0)))))) +(typeattribute base_typeattr_90_26_0) +(typeattributeset base_typeattr_90_26_0 ((and (domain) ((not (init_26_0 vold_26_0)))))) +(typeattribute base_typeattr_89_26_0) +(typeattributeset base_typeattr_89_26_0 ((and (domain) ((not (fingerprintd_26_0)))))) +(typeattribute base_typeattr_88_26_0) +(typeattributeset base_typeattr_88_26_0 ((and (domain) ((not (dumpstate_26_0 shell_26_0 system_server_26_0)))))) +(typeattribute base_typeattr_87_26_0) +(typeattributeset base_typeattr_87_26_0 ((and (domain) ((not (dumpstate_26_0)))))) +(typeattribute base_typeattr_86_26_0) +(typeattributeset base_typeattr_86_26_0 ((and (service_manager_type) ((not (dumpstate_service_26_0 gatekeeper_service_26_0 incident_service_26_0 virtual_touchpad_service_26_0 vr_hwc_service_26_0)))))) +(typeattribute base_typeattr_85_26_0) +(typeattributeset base_typeattr_85_26_0 ((and (domain) ((not (drmserver_26_0)))))) +(typeattribute base_typeattr_84_26_0) +(typeattributeset base_typeattr_84_26_0 ((not (coredomain)))) +(typeattribute base_typeattr_83_26_0) +(typeattributeset base_typeattr_83_26_0 ((not (rootfs_26_0 system_file_26_0 vendor_file_26_0)))) +(typeattribute base_typeattr_82_26_0) +(typeattributeset base_typeattr_82_26_0 ((and (domain) ((not (installd_26_0 profman_26_0)))))) +(typeattribute base_typeattr_81_26_0) +(typeattributeset base_typeattr_81_26_0 ((and (domain) ((not (dumpstate_26_0 init_26_0 system_server_26_0)))))) +(typeattribute base_typeattr_80_26_0) +(typeattributeset base_typeattr_80_26_0 ((not (hwservicemanager_26_0)))) +(typeattribute base_typeattr_79_26_0) +(typeattributeset base_typeattr_79_26_0 ((not (servicemanager_26_0 vndservicemanager_26_0)))) +(typeattribute base_typeattr_78_26_0) +(typeattributeset base_typeattr_78_26_0 ((and (domain) ((not (appdomain adbd_26_0 dumpstate_26_0 installd_26_0 uncrypt_26_0)))))) +(typeattribute base_typeattr_77_26_0) +(typeattributeset base_typeattr_77_26_0 ((and (domain) ((not (appdomain adbd_26_0 dumpstate_26_0 init_26_0 installd_26_0 system_server_26_0 uncrypt_26_0)))))) +(typeattribute base_typeattr_76_26_0) +(typeattributeset base_typeattr_76_26_0 ((and (domain) ((not (adbd_26_0 dumpstate_26_0 init_26_0 installd_26_0 shell_26_0 vold_26_0)))))) +(typeattribute base_typeattr_75_26_0) +(typeattributeset base_typeattr_75_26_0 ((and (domain) ((not (installd_26_0 shell_26_0 uncrypt_26_0)))))) +(typeattribute base_typeattr_74_26_0) +(typeattributeset base_typeattr_74_26_0 ((and (domain) ((not (appdomain installd_26_0 uncrypt_26_0)))))) +(typeattribute base_typeattr_73_26_0) +(typeattributeset base_typeattr_73_26_0 ((and (appdomain) ((not (bluetooth_26_0 shell_26_0 su_26_0)))))) +(typeattribute base_typeattr_72_26_0) +(typeattributeset base_typeattr_72_26_0 ((and (domain) ((not (runas_26_0 webview_zygote_26_0 zygote_26_0)))))) +(typeattribute base_typeattr_71_26_0) +(typeattributeset base_typeattr_71_26_0 ((and (domain) ((not (adbd_26_0 init_26_0 runas_26_0 zygote_26_0)))))) +(typeattribute base_typeattr_70_26_0) +(typeattributeset base_typeattr_70_26_0 ((and (domain) ((not (appdomain installd_26_0)))))) +(typeattribute base_typeattr_69_26_0) +(typeattributeset base_typeattr_69_26_0 ((and (domain) ((not (appdomain installd_26_0 system_server_26_0)))))) +(typeattribute base_typeattr_68_26_0) +(typeattributeset base_typeattr_68_26_0 ((and (domain) ((not (init_26_0 installd_26_0 system_app_26_0 system_server_26_0)))))) +(typeattribute base_typeattr_67_26_0) +(typeattributeset base_typeattr_67_26_0 ((not (domain)))) +(typeattribute base_typeattr_66_26_0) +(typeattributeset base_typeattr_66_26_0 ((and (domain) ((not (untrusted_app_all)))))) +(typeattribute base_typeattr_65_26_0) +(typeattributeset base_typeattr_65_26_0 ((and (file_type) ((not (apk_data_file_26_0 app_data_file_26_0 asec_public_file_26_0)))))) +(typeattribute base_typeattr_64_26_0) +(typeattributeset base_typeattr_64_26_0 ((and (domain) ((not (dumpstate_26_0 shell_26_0 su_26_0)))))) +(typeattribute base_typeattr_63_26_0) +(typeattributeset base_typeattr_63_26_0 ((and (domain) ((not (dumpstate_26_0 system_server_26_0)))))) +(typeattribute base_typeattr_62_26_0) +(typeattributeset base_typeattr_62_26_0 ((and (domain) ((not (crash_dump_26_0 mediacodec_26_0 mediaextractor_26_0)))))) +(typeattribute base_typeattr_61_26_0) +(typeattributeset base_typeattr_61_26_0 ((and (domain) ((not (crash_dump_26_0 dumpstate_26_0 mediacodec_26_0 mediaextractor_26_0 system_server_26_0 tombstoned_26_0)))))) +(typeattribute base_typeattr_60_26_0) +(typeattributeset base_typeattr_60_26_0 ((and (domain) ((not (system_server_26_0 webview_zygote_26_0)))))) +(typeattribute base_typeattr_59_26_0) +(typeattributeset base_typeattr_59_26_0 ((and (domain) ((not (system_server_26_0)))))) +(typeattribute base_typeattr_58_26_0) +(typeattributeset base_typeattr_58_26_0 ((and (domain) ((not (system_server_26_0 zygote_26_0)))))) +(typeattribute base_typeattr_57_26_0) +(typeattributeset base_typeattr_57_26_0 ((and (domain) ((not (cppreopts_26_0 dex2oat_26_0 init_26_0 installd_26_0 otapreopt_slot_26_0 postinstall_dexopt_26_0 zygote_26_0)))))) +(typeattribute base_typeattr_56_26_0) +(typeattributeset base_typeattr_56_26_0 ((and (exec_type) ((not (vendor_file_type crash_dump_exec_26_0 netutils_wrapper_exec_26_0)))))) +(typeattribute base_typeattr_55_26_0) +(typeattributeset base_typeattr_55_26_0 ((and (domain) ((not (appdomain coredomain vendor_executes_system_violators rild_26_0)))))) +(typeattribute base_typeattr_54_26_0) +(typeattributeset base_typeattr_54_26_0 ((and (coredomain) ((not (init_26_0)))))) +(typeattribute base_typeattr_53_26_0) +(typeattributeset base_typeattr_53_26_0 ((and (coredomain) ((not (appdomain idmap_26_0 init_26_0 installd_26_0 system_server_26_0 zygote_26_0)))))) +(typeattribute base_typeattr_52_26_0) +(typeattributeset base_typeattr_52_26_0 ((and (coredomain) ((not (appdomain dex2oat_26_0 idmap_26_0 init_26_0 installd_26_0 postinstall_dexopt_26_0 system_server_26_0)))))) +(typeattribute base_typeattr_51_26_0) +(typeattributeset base_typeattr_51_26_0 ((and (dev_type file_type) ((not (core_data_file_type coredomain_socket unlabeled_26_0)))))) +(typeattribute base_typeattr_50_26_0) +(typeattributeset base_typeattr_50_26_0 ((and (coredomain) ((not (socket_between_core_and_vendor_violators init_26_0 ueventd_26_0)))))) +(typeattribute base_typeattr_49_26_0) +(typeattributeset base_typeattr_49_26_0 ((and (core_data_file_type coredomain_socket unlabeled_26_0) ((not (pdx_endpoint_socket_type pdx_channel_socket_type app_data_file_26_0)))))) +(typeattribute base_typeattr_48_26_0) +(typeattributeset base_typeattr_48_26_0 ((and (domain) ((not (netdomain coredomain socket_between_core_and_vendor_violators)))))) +(typeattribute base_typeattr_47_26_0) +(typeattributeset base_typeattr_47_26_0 ((and (coredomain) ((not (incidentd_26_0 init_26_0 logd_26_0 mdnsd_26_0 netd_26_0 su_26_0 tombstoned_26_0)))))) +(typeattribute base_typeattr_46_26_0) +(typeattributeset base_typeattr_46_26_0 ((and (domain) ((not (appdomain coredomain socket_between_core_and_vendor_violators)))))) +(typeattribute base_typeattr_45_26_0) +(typeattributeset base_typeattr_45_26_0 ((and (domain) ((not (coredomain socket_between_core_and_vendor_violators)))))) +(typeattribute base_typeattr_44_26_0) +(typeattributeset base_typeattr_44_26_0 ((and (coredomain) ((not (adbd_26_0 init_26_0)))))) +(typeattribute base_typeattr_43_26_0) +(typeattributeset base_typeattr_43_26_0 ((and (coredomain) ((not (shell_26_0 su_26_0)))))) +(typeattribute base_typeattr_42_26_0) +(typeattributeset base_typeattr_42_26_0 ((and (coredomain) ((not (shell_26_0 su_26_0 ueventd_26_0)))))) +(typeattribute base_typeattr_41_26_0) +(typeattributeset base_typeattr_41_26_0 ((and (service_manager_type) ((not (app_api_service ephemeral_app_api_service audioserver_service_26_0 cameraserver_service_26_0 drmserver_service_26_0 keystore_service_26_0 mediaserver_service_26_0 mediametrics_service_26_0 mediaextractor_service_26_0 mediadrmserver_service_26_0 mediacasserver_service_26_0 nfc_service_26_0 radio_service_26_0 surfaceflinger_service_26_0 virtual_touchpad_service_26_0 vr_hwc_service_26_0 vr_manager_service_26_0)))))) +(typeattribute base_typeattr_40_26_0) +(typeattributeset base_typeattr_40_26_0 ((and (appdomain) ((not (coredomain)))))) +(typeattribute base_typeattr_39_26_0) +(typeattributeset base_typeattr_39_26_0 ((and (domain) ((not (appdomain coredomain binder_in_vendor_violators)))))) +(typeattribute base_typeattr_38_26_0) +(typeattributeset base_typeattr_38_26_0 ((and (domain) ((not (hwservicemanager_26_0 servicemanager_26_0 vndservicemanager_26_0)))))) +(typeattribute base_typeattr_37_26_0) +(typeattributeset base_typeattr_37_26_0 ((and (domain) ((not (domain hal_bootctl init_26_0 recovery_26_0 ueventd_26_0 uncrypt_26_0 update_engine_26_0 vold_26_0)))))) +(typeattribute base_typeattr_36_26_0) +(typeattributeset base_typeattr_36_26_0 ((and (domain) ((not (install_recovery_26_0 recovery_26_0)))))) +(typeattribute base_typeattr_35_26_0) +(typeattributeset base_typeattr_35_26_0 ((and (domain) ((not (recovery_26_0 update_engine_26_0)))))) +(typeattribute base_typeattr_34_26_0) +(typeattributeset base_typeattr_34_26_0 ((and (domain) ((not (init_26_0 recovery_26_0 vold_26_0)))))) +(typeattribute base_typeattr_33_26_0) +(typeattributeset base_typeattr_33_26_0 ((and (domain) ((not (init_26_0 recovery_26_0 shell_26_0 system_server_26_0 ueventd_26_0)))))) +(typeattribute base_typeattr_32_26_0) +(typeattributeset base_typeattr_32_26_0 ((and (domain) ((not (init_26_0 system_server_26_0)))))) +(typeattribute base_typeattr_31_26_0) +(typeattributeset base_typeattr_31_26_0 ((and (domain) ((not (hal_drm adbd_26_0 dumpstate_26_0 init_26_0 mediadrmserver_26_0 recovery_26_0 shell_26_0 system_server_26_0)))))) +(typeattribute base_typeattr_30_26_0) +(typeattributeset base_typeattr_30_26_0 ((and (fs_type) ((not (contextmount_type)))))) +(typeattribute base_typeattr_29_26_0) +(typeattributeset base_typeattr_29_26_0 ((and (domain) ((not (kernel_26_0 recovery_26_0)))))) +(typeattribute base_typeattr_28_26_0) +(typeattributeset base_typeattr_28_26_0 ((and (domain) ((not (shell_26_0)))))) +(typeattribute base_typeattr_27_26_0) +(typeattributeset base_typeattr_27_26_0 ((and (data_file_type) ((not (system_data_file_26_0 apk_data_file_26_0 dalvikcache_data_file_26_0)))))) +(typeattribute base_typeattr_26_26_0) +(typeattributeset base_typeattr_26_26_0 ((and (domain) ((not (appdomain)))))) +(typeattribute base_typeattr_25_26_0) +(typeattributeset base_typeattr_25_26_0 ((and (fs_type) ((not (rootfs_26_0)))))) +(typeattribute base_typeattr_24_26_0) +(typeattributeset base_typeattr_24_26_0 ((and (domain) ((not (appdomain recovery_26_0)))))) +(typeattribute base_typeattr_23_26_0) +(typeattributeset base_typeattr_23_26_0 ((and (file_type) ((not (exec_type vendor_file_type system_file_26_0 postinstall_file_26_0)))))) +(typeattribute base_typeattr_22_26_0) +(typeattributeset base_typeattr_22_26_0 ((and (domain) ((not (appdomain dumpstate_26_0 shell_26_0 su_26_0 system_server_26_0 webview_zygote_26_0 zygote_26_0)))))) +(typeattribute base_typeattr_21_26_0) +(typeattributeset base_typeattr_21_26_0 ((and (fs_type) ((not (sdcard_type)))))) +(typeattribute base_typeattr_20_26_0) +(typeattributeset base_typeattr_20_26_0 ((and (domain) ((not (init_26_0 kernel_26_0 otapreopt_chroot_26_0 recovery_26_0 update_engine_26_0 vold_26_0 zygote_26_0)))))) +(typeattribute base_typeattr_19_26_0) +(typeattributeset base_typeattr_19_26_0 ((and (domain) ((not (init_26_0 kernel_26_0 recovery_26_0)))))) +(typeattribute base_typeattr_18_26_0) +(typeattributeset base_typeattr_18_26_0 ((and (domain) ((not (shell_26_0 ueventd_26_0)))))) +(typeattribute base_typeattr_17_26_0) +(typeattributeset base_typeattr_17_26_0 ((and (file_type) ((not (exec_type postinstall_file_26_0)))))) +(typeattribute base_typeattr_16_26_0) +(typeattributeset base_typeattr_16_26_0 ((and (domain) ((not (init_26_0 shell_26_0 system_server_26_0 ueventd_26_0)))))) +(typeattribute base_typeattr_15_26_0) +(typeattributeset base_typeattr_15_26_0 ((and (domain) ((not (kernel_26_0)))))) +(typeattribute base_typeattr_14_26_0) +(typeattributeset base_typeattr_14_26_0 ((and (domain) ((not (recovery_26_0)))))) +(typeattribute base_typeattr_13_26_0) +(typeattributeset base_typeattr_13_26_0 ((and (domain) ((not (domain healthd_26_0 init_26_0 kernel_26_0 recovery_26_0 tee_26_0 ueventd_26_0 uncrypt_26_0)))))) +(typeattribute base_typeattr_12_26_0) +(typeattributeset base_typeattr_12_26_0 ((and (domain) ((not (init_26_0 kernel_26_0 ueventd_26_0 vold_26_0)))))) +(typeattribute base_typeattr_11_26_0) +(typeattributeset base_typeattr_11_26_0 ((and (domain) ((not (init_26_0 recovery_26_0)))))) +(typeattribute base_typeattr_10_26_0) +(typeattributeset base_typeattr_10_26_0 ((all))) +(typeattribute base_typeattr_9_26_0) +(typeattributeset base_typeattr_9_26_0 ((and (domain) ((not (domain)))))) +(typeattribute base_typeattr_8_26_0) +(typeattributeset base_typeattr_8_26_0 ((and (domain) ((not (coredomain)))))) +(typeattribute base_typeattr_7_26_0) +(typeattributeset base_typeattr_7_26_0 ((and (domain) ((not (servicemanager_26_0 vndservicemanager_26_0)))))) +(typeattribute base_typeattr_6_26_0) +(typeattributeset base_typeattr_6_26_0 ((and (appdomain coredomain binder_in_vendor_violators) ((not (hwservicemanager_26_0)))))) +(typeattribute base_typeattr_5_26_0) +(typeattributeset base_typeattr_5_26_0 ((and (domain) ((not (init_26_0)))))) +(typeattribute base_typeattr_4_26_0) +(typeattributeset base_typeattr_4_26_0 ((and (domain) ((not (display_service_server)))))) +(typeattribute base_typeattr_3_26_0) +(typeattributeset base_typeattr_3_26_0 ((and (domain) ((not (crash_dump_26_0 init_26_0 keystore_26_0 logd_26_0)))))) +(typeattribute base_typeattr_2_26_0) +(typeattributeset base_typeattr_2_26_0 ((and (domain) ((not (cameraserver_26_0)))))) +(typeattribute base_typeattr_1_26_0) +(typeattributeset base_typeattr_1_26_0 ((and (domain) ((not (bufferhubd_26_0)))))) diff --git a/prebuilts/api/26.0/private/access_vectors b/prebuilts/api/26.0/private/access_vectors new file mode 100644 index 000000000..74cf530a6 --- /dev/null +++ b/prebuilts/api/26.0/private/access_vectors @@ -0,0 +1,710 @@ +# +# Define common prefixes for access vectors +# +# common common_name { permission_name ... } + + +# +# Define a common prefix for file access vectors. +# + +common file +{ + ioctl + read + write + create + getattr + setattr + lock + relabelfrom + relabelto + append + unlink + link + rename + execute + quotaon + mounton +} + + +# +# Define a common prefix for socket access vectors. +# + +common socket +{ +# inherited from file + ioctl + read + write + create + getattr + setattr + lock + relabelfrom + relabelto + append +# socket-specific + bind + connect + listen + accept + getopt + setopt + shutdown + recvfrom + sendto + name_bind +} + +# +# Define a common prefix for ipc access vectors. +# + +common ipc +{ + create + destroy + getattr + setattr + read + write + associate + unix_read + unix_write +} + +# +# Define a common for capability access vectors. +# +common cap +{ + # The capabilities are defined in include/linux/capability.h + # Capabilities >= 32 are defined in the cap2 common. + # Care should be taken to ensure that these are consistent with + # those definitions. (Order matters) + + chown + dac_override + dac_read_search + fowner + fsetid + kill + setgid + setuid + setpcap + linux_immutable + net_bind_service + net_broadcast + net_admin + net_raw + ipc_lock + ipc_owner + sys_module + sys_rawio + sys_chroot + sys_ptrace + sys_pacct + sys_admin + sys_boot + sys_nice + sys_resource + sys_time + sys_tty_config + mknod + lease + audit_write + audit_control + setfcap +} + +common cap2 +{ + mac_override # unused by SELinux + mac_admin # unused by SELinux + syslog + wake_alarm + block_suspend + audit_read +} + +# +# Define the access vectors. +# +# class class_name [ inherits common_name ] { permission_name ... } + + +# +# Define the access vector interpretation for file-related objects. +# + +class filesystem +{ + mount + remount + unmount + getattr + relabelfrom + relabelto + associate + quotamod + quotaget +} + +class dir +inherits file +{ + add_name + remove_name + reparent + search + rmdir + open + audit_access + execmod +} + +class file +inherits file +{ + execute_no_trans + entrypoint + execmod + open + audit_access +} + +class lnk_file +inherits file +{ + open + audit_access + execmod +} + +class chr_file +inherits file +{ + execute_no_trans + entrypoint + execmod + open + audit_access +} + +class blk_file +inherits file +{ + open + audit_access + execmod +} + +class sock_file +inherits file +{ + open + audit_access + execmod +} + +class fifo_file +inherits file +{ + open + audit_access + execmod +} + +class fd +{ + use +} + + +# +# Define the access vector interpretation for network-related objects. +# + +class socket +inherits socket + +class tcp_socket +inherits socket +{ + node_bind + name_connect +} + +class udp_socket +inherits socket +{ + node_bind +} + +class rawip_socket +inherits socket +{ + node_bind +} + +class node +{ + recvfrom + sendto +} + +class netif +{ + ingress + egress +} + +class netlink_socket +inherits socket + +class packet_socket +inherits socket + +class key_socket +inherits socket + +class unix_stream_socket +inherits socket +{ + connectto +} + +class unix_dgram_socket +inherits socket + +# +# Define the access vector interpretation for process-related objects +# + +class process +{ + fork + transition + sigchld # commonly granted from child to parent + sigkill # cannot be caught or ignored + sigstop # cannot be caught or ignored + signull # for kill(pid, 0) + signal # all other signals + ptrace + getsched + setsched + getsession + getpgid + setpgid + getcap + setcap + share + getattr + setexec + setfscreate + noatsecure + siginh + setrlimit + rlimitinh + dyntransition + setcurrent + execmem + execstack + execheap + setkeycreate + setsockcreate +} + + +# +# Define the access vector interpretation for ipc-related objects +# + +class ipc +inherits ipc + +class sem +inherits ipc + +class msgq +inherits ipc +{ + enqueue +} + +class msg +{ + send + receive +} + +class shm +inherits ipc +{ + lock +} + + +# +# Define the access vector interpretation for the security server. +# + +class security +{ + compute_av + compute_create + compute_member + check_context + load_policy + compute_relabel + compute_user + setenforce # was avc_toggle in system class + setbool + setsecparam + setcheckreqprot + read_policy +} + + +# +# Define the access vector interpretation for system operations. +# + +class system +{ + ipc_info + syslog_read + syslog_mod + syslog_console + module_request + module_load +} + +# +# Define the access vector interpretation for controlling capabilities +# + +class capability +inherits cap + +class capability2 +inherits cap2 + +# +# Extended Netlink classes +# +class netlink_route_socket +inherits socket +{ + nlmsg_read + nlmsg_write +} + +class netlink_tcpdiag_socket +inherits socket +{ + nlmsg_read + nlmsg_write +} + +class netlink_nflog_socket +inherits socket + +class netlink_xfrm_socket +inherits socket +{ + nlmsg_read + nlmsg_write +} + +class netlink_selinux_socket +inherits socket + +class netlink_audit_socket +inherits socket +{ + nlmsg_read + nlmsg_write + nlmsg_relay + nlmsg_readpriv + nlmsg_tty_audit +} + +class netlink_dnrt_socket +inherits socket + +# Define the access vector interpretation for controlling +# access to IPSec network data by association +# +class association +{ + sendto + recvfrom + setcontext + polmatch +} + +# Updated Netlink class for KOBJECT_UEVENT family. +class netlink_kobject_uevent_socket +inherits socket + +class appletalk_socket +inherits socket + +class packet +{ + send + recv + relabelto + flow_in # deprecated + flow_out # deprecated + forward_in + forward_out +} + +class key +{ + view + read + write + search + link + setattr + create +} + +class dccp_socket +inherits socket +{ + node_bind + name_connect +} + +class memprotect +{ + mmap_zero +} + +# network peer labels +class peer +{ + recv +} + +class kernel_service +{ + use_as_override + create_files_as +} + +class tun_socket +inherits socket +{ + attach_queue +} + +class binder +{ + impersonate + call + set_context_mgr + transfer +} + +class netlink_iscsi_socket +inherits socket + +class netlink_fib_lookup_socket +inherits socket + +class netlink_connector_socket +inherits socket + +class netlink_netfilter_socket +inherits socket + +class netlink_generic_socket +inherits socket + +class netlink_scsitransport_socket +inherits socket + +class netlink_rdma_socket +inherits socket + +class netlink_crypto_socket +inherits socket + +# +# Define the access vector interpretation for controlling capabilities +# in user namespaces +# + +class cap_userns +inherits cap + +class cap2_userns +inherits cap2 + + +# +# Define the access vector interpretation for the new socket classes +# enabled by the extended_socket_class policy capability. +# + +# +# The next two classes were previously mapped to rawip_socket and therefore +# have the same definition as rawip_socket (until further permissions +# are defined). +# +class sctp_socket +inherits socket +{ + node_bind +} + +class icmp_socket +inherits socket +{ + node_bind +} + +# +# The remaining network socket classes were previously +# mapped to the socket class and therefore have the +# same definition as socket. +# + +class ax25_socket +inherits socket + +class ipx_socket +inherits socket + +class netrom_socket +inherits socket + +class atmpvc_socket +inherits socket + +class x25_socket +inherits socket + +class rose_socket +inherits socket + +class decnet_socket +inherits socket + +class atmsvc_socket +inherits socket + +class rds_socket +inherits socket + +class irda_socket +inherits socket + +class pppox_socket +inherits socket + +class llc_socket +inherits socket + +class can_socket +inherits socket + +class tipc_socket +inherits socket + +class bluetooth_socket +inherits socket + +class iucv_socket +inherits socket + +class rxrpc_socket +inherits socket + +class isdn_socket +inherits socket + +class phonet_socket +inherits socket + +class ieee802154_socket +inherits socket + +class caif_socket +inherits socket + +class alg_socket +inherits socket + +class nfc_socket +inherits socket + +class vsock_socket +inherits socket + +class kcm_socket +inherits socket + +class qipcrtr_socket +inherits socket + +class property_service +{ + set +} + +class service_manager +{ + add + find + list +} + +class hwservice_manager +{ + add + find + list +} + +class keystore_key +{ + get_state + get + insert + delete + exist + list + reset + password + lock + unlock + is_empty + sign + verify + grant + duplicate + clear_uid + add_auth + user_changed + gen_unique_id +} + +class drmservice { + consumeRights + setPlaybackStatus + openDecryptSession + closeDecryptSession + initializeDecryptUnit + decrypt + finalizeDecryptUnit + pread +} diff --git a/prebuilts/api/26.0/private/adbd.te b/prebuilts/api/26.0/private/adbd.te new file mode 100644 index 000000000..52597ebbf --- /dev/null +++ b/prebuilts/api/26.0/private/adbd.te @@ -0,0 +1,141 @@ +### ADB daemon + +typeattribute adbd coredomain; +typeattribute adbd mlstrustedsubject; + +domain_auto_trans(adbd, shell_exec, shell) + +userdebug_or_eng(` + allow adbd self:process setcurrent; + allow adbd su:process dyntransition; +') + +# Do not sanitize the environment or open fds of the shell. Allow signaling +# created processes. +allow adbd shell:process { noatsecure signal }; + +# Set UID and GID to shell. Set supplementary groups. +allow adbd self:capability { setuid setgid }; + +# Drop capabilities from bounding set on user builds. +allow adbd self:capability setpcap; + +# Create and use network sockets. +net_domain(adbd) + +# Access /dev/usb-ffs/adb/ep0 +allow adbd functionfs:dir search; +allow adbd functionfs:file rw_file_perms; + +# Use a pseudo tty. +allow adbd devpts:chr_file rw_file_perms; + +# adb push/pull /data/local/tmp. +allow adbd shell_data_file:dir create_dir_perms; +allow adbd shell_data_file:file create_file_perms; + +# adb pull /data/misc/profman. +allow adbd profman_dump_data_file:dir r_dir_perms; +allow adbd profman_dump_data_file:file r_file_perms; + +# adb push/pull sdcard. +allow adbd tmpfs:dir search; +allow adbd rootfs:lnk_file r_file_perms; # /sdcard symlink +allow adbd tmpfs:lnk_file r_file_perms; # /mnt/sdcard symlink +allow adbd sdcard_type:dir create_dir_perms; +allow adbd sdcard_type:file create_file_perms; + +# adb pull /data/anr/traces.txt +allow adbd anr_data_file:dir r_dir_perms; +allow adbd anr_data_file:file r_file_perms; + +# Set service.adb.*, sys.powerctl, and sys.usb.ffs.ready properties. +set_prop(adbd, shell_prop) +set_prop(adbd, powerctl_prop) +set_prop(adbd, ffs_prop) + +# Access device logging gating property +get_prop(adbd, device_logging_prop) + +# Read device's serial number from system properties +get_prop(adbd, serialno_prop) + +# Run /system/bin/bu +allow adbd system_file:file rx_file_perms; + +# Perform binder IPC to surfaceflinger (screencap) +# XXX Run screencap in a separate domain? +binder_use(adbd) +binder_call(adbd, surfaceflinger) +# b/13188914 +allow adbd gpu_device:chr_file rw_file_perms; +allow adbd ion_device:chr_file rw_file_perms; +r_dir_file(adbd, system_file) + +# Needed for various screenshots +hal_client_domain(adbd, hal_graphics_allocator) + +# Read /data/misc/adb/adb_keys. +allow adbd adb_keys_file:dir search; +allow adbd adb_keys_file:file r_file_perms; + +userdebug_or_eng(` + # Write debugging information to /data/adb + # when persist.adb.trace_mask is set + # https://code.google.com/p/android/issues/detail?id=72895 + allow adbd adb_data_file:dir rw_dir_perms; + allow adbd adb_data_file:file create_file_perms; +') + +# ndk-gdb invokes adb forward to forward the gdbserver socket. +allow adbd app_data_file:dir search; +allow adbd app_data_file:sock_file write; +allow adbd appdomain:unix_stream_socket connectto; + +# ndk-gdb invokes adb pull of app_process, linker, and libc.so. +allow adbd zygote_exec:file r_file_perms; +allow adbd system_file:file r_file_perms; + +# Allow pulling the SELinux policy for CTS purposes +allow adbd selinuxfs:dir r_dir_perms; +allow adbd selinuxfs:file r_file_perms; +allow adbd kernel:security read_policy; +allow adbd service_contexts_file:file r_file_perms; +allow adbd file_contexts_file:file r_file_perms; +allow adbd seapp_contexts_file:file r_file_perms; +allow adbd property_contexts_file:file r_file_perms; +allow adbd sepolicy_file:file r_file_perms; + +# Allow pulling config.gz for CTS purposes +allow adbd config_gz:file r_file_perms; + +allow adbd surfaceflinger_service:service_manager find; +allow adbd bootchart_data_file:dir search; +allow adbd bootchart_data_file:file r_file_perms; + +# Allow access to external storage; we have several visible mount points under /storage +# and symlinks to primary storage at places like /storage/sdcard0 and /mnt/user/0/primary +allow adbd storage_file:dir r_dir_perms; +allow adbd storage_file:lnk_file r_file_perms; +allow adbd mnt_user_file:dir r_dir_perms; +allow adbd mnt_user_file:lnk_file r_file_perms; + +# Access to /data/media. +# This should be removed if sdcardfs is modified to alter the secontext for its +# accesses to the underlying FS. +allow adbd media_rw_data_file:dir create_dir_perms; +allow adbd media_rw_data_file:file create_file_perms; + +r_dir_file(adbd, apk_data_file) + +allow adbd rootfs:dir r_dir_perms; + +### +### Neverallow rules +### + +# No transitions from adbd to non-shell, non-crash_dump domains. adbd only ever +# transitions to the shell domain (except when it crashes). In particular, we +# never want to see a transition from adbd to su (aka "adb root") +neverallow adbd { domain -crash_dump -shell }:process transition; +neverallow adbd { domain userdebug_or_eng(`-su') }:process dyntransition; diff --git a/prebuilts/api/26.0/private/app.te b/prebuilts/api/26.0/private/app.te new file mode 100644 index 000000000..6f2b820b7 --- /dev/null +++ b/prebuilts/api/26.0/private/app.te @@ -0,0 +1,524 @@ +### +### Domain for all zygote spawned apps +### +### This file is the base policy for all zygote spawned apps. +### Other policy files, such as isolated_app.te, untrusted_app.te, etc +### extend from this policy. Only policies which should apply to ALL +### zygote spawned apps should be added here. +### + +# TODO: deal with tmpfs_domain pub/priv split properly +# Read system properties managed by zygote. +allow appdomain zygote_tmpfs:file read; + +# WebView and other application-specific JIT compilers +allow appdomain self:process execmem; + +allow appdomain ashmem_device:chr_file execute; + +# Receive and use open file descriptors inherited from zygote. +allow appdomain zygote:fd use; + +# gdbserver for ndk-gdb reads the zygote. +# valgrind needs mmap exec for zygote +allow appdomain zygote_exec:file rx_file_perms; + +# Notify zygote of death; +allow appdomain zygote:process sigchld; + +# Place process into foreground / background +allow appdomain cgroup:dir { search write }; +allow appdomain cgroup:file rw_file_perms; + +# Read /data/dalvik-cache. +allow appdomain dalvikcache_data_file:dir { search getattr }; +allow appdomain dalvikcache_data_file:file r_file_perms; + +# Read the /sdcard and /mnt/sdcard symlinks +allow { appdomain -isolated_app } rootfs:lnk_file r_file_perms; +allow { appdomain -isolated_app } tmpfs:lnk_file r_file_perms; + +# Search /storage/emulated tmpfs mount. +allow appdomain tmpfs:dir r_dir_perms; + +userdebug_or_eng(` + # Notify zygote of the wrapped process PID when using --invoke-with. + allow appdomain zygote:fifo_file write; + + # Allow apps to create and write method traces in /data/misc/trace. + allow appdomain method_trace_data_file:dir w_dir_perms; + allow appdomain method_trace_data_file:file { create w_file_perms }; +') + +# Notify shell and adbd of death when spawned via runas for ndk-gdb. +allow appdomain shell:process sigchld; +allow appdomain adbd:process sigchld; + +# child shell or gdbserver pty access for runas. +allow appdomain devpts:chr_file { getattr read write ioctl }; + +# Use pipes and sockets provided by system_server via binder or local socket. +allow appdomain system_server:fd use; +allow appdomain system_server:fifo_file rw_file_perms; +allow appdomain system_server:unix_stream_socket { read write setopt getattr getopt shutdown }; +allow appdomain system_server:tcp_socket { read write getattr getopt shutdown }; + +# Communication with other apps via fifos +allow appdomain appdomain:fifo_file rw_file_perms; + +# Communicate with surfaceflinger. +allow appdomain surfaceflinger:unix_stream_socket { read write setopt getattr getopt shutdown }; + +# Query whether a Surface supports wide color +allow { appdomain -isolated_app } hal_configstore_ISurfaceFlingerConfigs:hwservice_manager find; + +# App sandbox file accesses. +allow { appdomain -isolated_app } app_data_file:dir create_dir_perms; +allow { appdomain -isolated_app } app_data_file:notdevfile_class_set create_file_perms; + +# Traverse into expanded storage +allow appdomain mnt_expand_file:dir r_dir_perms; + +# Keychain and user-trusted credentials +r_dir_file(appdomain, keychain_data_file) +allow appdomain misc_user_data_file:dir r_dir_perms; +allow appdomain misc_user_data_file:file r_file_perms; + +# TextClassifier +r_dir_file({ appdomain -isolated_app }, textclassifier_data_file) + +# Access to OEM provided data and apps +allow appdomain oemfs:dir r_dir_perms; +allow appdomain oemfs:file rx_file_perms; + +# Execute the shell or other system executables. +allow { appdomain -ephemeral_app -untrusted_v2_app } shell_exec:file rx_file_perms; +allow { appdomain -ephemeral_app -untrusted_v2_app } toolbox_exec:file rx_file_perms; +allow { appdomain -ephemeral_app -untrusted_v2_app } system_file:file x_file_perms; +not_full_treble(`allow { appdomain -ephemeral_app -untrusted_v2_app } vendor_file:file x_file_perms;') + +# Renderscript needs the ability to read directories on /system +allow appdomain system_file:dir r_dir_perms; +allow appdomain system_file:lnk_file { getattr open read }; +# Renderscript specific permissions to open /system/vendor/lib64. +not_full_treble(` + allow appdomain vendor_file_type:dir r_dir_perms; + allow appdomain vendor_file_type:lnk_file { getattr open read }; +') + +full_treble_only(` + # For looking up Renderscript vendor drivers + allow { appdomain -isolated_app } vendor_file:dir { open read }; +') + +# Allow apps access to /vendor/app except for privileged +# apps which cannot be in /vendor. +r_dir_file({ appdomain -ephemeral_app -untrusted_v2_app }, vendor_app_file) +allow { appdomain -ephemeral_app -untrusted_v2_app } vendor_app_file:file execute; + +# Allow apps access to /vendor/overlay +r_dir_file(appdomain, vendor_overlay_file) + +# Allow apps access to /vendor/framework +# for vendor provided libraries. +r_dir_file(appdomain, vendor_framework_file) + +# Execute dex2oat when apps call dexclassloader +allow appdomain dex2oat_exec:file rx_file_perms; + +# Read/write wallpaper file (opened by system). +allow appdomain wallpaper_file:file { getattr read write }; + +# Read/write cached ringtones (opened by system). +allow appdomain ringtone_file:file { getattr read write }; + +# Read ShortcutManager icon files (opened by system). +allow appdomain shortcut_manager_icons:file { getattr read }; + +# Read icon file (opened by system). +allow appdomain icon_file:file { getattr read }; + +# Write to /data/anr/traces.txt. +allow appdomain anr_data_file:dir search; +allow appdomain anr_data_file:file { open append }; + +# Allow apps to send dump information to dumpstate +allow appdomain dumpstate:fd use; +allow appdomain dumpstate:unix_stream_socket { read write getopt getattr shutdown }; +allow appdomain dumpstate:fifo_file { write getattr }; +allow appdomain shell_data_file:file { write getattr }; + +# Write profiles /data/misc/profiles +allow appdomain user_profile_data_file:dir { search write add_name }; +allow appdomain user_profile_data_file:file create_file_perms; + +# Send heap dumps to system_server via an already open file descriptor +# % adb shell am set-watch-heap com.android.systemui 1048576 +# % adb shell dumpsys procstats --start-testing +# debuggable builds only. +userdebug_or_eng(` + allow appdomain heapdump_data_file:file append; +') + +# Write to /proc/net/xt_qtaguid/ctrl file. +allow appdomain qtaguid_proc:file rw_file_perms; +# read /proc/net/xt_qtguid/stats +r_dir_file({ appdomain -ephemeral_app}, proc_net) +# Everybody can read the xt_qtaguid resource tracking misc dev. +# So allow all apps to read from /dev/xt_qtaguid. +allow appdomain qtaguid_device:chr_file r_file_perms; + +# Grant GPU access to all processes started by Zygote. +# They need that to render the standard UI. +allow { appdomain -isolated_app } gpu_device:chr_file rw_file_perms; + +# Use the Binder. +binder_use(appdomain) +# Perform binder IPC to binder services. +binder_call(appdomain, binderservicedomain) +# Perform binder IPC to other apps. +binder_call(appdomain, appdomain) +# Perform binder IPC to ephemeral apps. +binder_call(appdomain, ephemeral_app) + +# TODO(b/36375899): Replace this with hal_client_domain once mediacodec is properly attributized +# as OMX HAL +hwbinder_use({ appdomain -isolated_app }) +allow { appdomain -isolated_app } hal_omx_hwservice:hwservice_manager find; +allow { appdomain -isolated_app } hidl_token_hwservice:hwservice_manager find; + +# Talk with graphics composer fences +allow appdomain hal_graphics_composer:fd use; + +# Already connected, unnamed sockets being passed over some other IPC +# hence no sock_file or connectto permission. This appears to be how +# Chrome works, may need to be updated as more apps using isolated services +# are examined. +allow appdomain appdomain:unix_stream_socket { getopt getattr read write shutdown }; + +# Backup ability for every app. BMS opens and passes the fd +# to any app that has backup ability. Hence, no open permissions here. +allow appdomain backup_data_file:file { read write getattr }; +allow appdomain cache_backup_file:file { read write getattr }; +allow appdomain cache_backup_file:dir getattr; +# Backup ability using 'adb backup' +allow appdomain system_data_file:lnk_file r_file_perms; +allow appdomain system_data_file:file { getattr read }; + +# Allow read/stat of /data/media files passed by Binder or local socket IPC. +allow { appdomain -isolated_app } media_rw_data_file:file { read getattr }; + +# Read and write /data/data/com.android.providers.telephony files passed over Binder. +allow { appdomain -isolated_app } radio_data_file:file { read write getattr }; + +# Allow access to external storage; we have several visible mount points under /storage +# and symlinks to primary storage at places like /storage/sdcard0 and /mnt/user/0/primary +allow { appdomain -isolated_app -ephemeral_app } storage_file:dir r_dir_perms; +allow { appdomain -isolated_app -ephemeral_app } storage_file:lnk_file r_file_perms; +allow { appdomain -isolated_app -ephemeral_app } mnt_user_file:dir r_dir_perms; +allow { appdomain -isolated_app -ephemeral_app } mnt_user_file:lnk_file r_file_perms; + +# Read/write visible storage +allow { appdomain -isolated_app -ephemeral_app } fuse:dir create_dir_perms; +allow { appdomain -isolated_app -ephemeral_app } fuse:file create_file_perms; +allow { appdomain -isolated_app -ephemeral_app } sdcardfs:dir create_dir_perms; +allow { appdomain -isolated_app -ephemeral_app } sdcardfs:file create_file_perms; +# This should be removed if sdcardfs is modified to alter the secontext for its +# accesses to the underlying FS. +allow { appdomain -isolated_app -ephemeral_app } { media_rw_data_file vfat }:dir create_dir_perms; +allow { appdomain -isolated_app -ephemeral_app } { media_rw_data_file vfat }:file create_file_perms; + +# Access OBBs (vfat images) mounted by vold (b/17633509) +# File write access allowed for FDs returned through Storage Access Framework +allow { appdomain -isolated_app -ephemeral_app } vfat:dir r_dir_perms; +allow { appdomain -isolated_app -ephemeral_app } vfat:file rw_file_perms; + +# Allow apps to use the USB Accessory interface. +# http://developer.android.com/guide/topics/connectivity/usb/accessory.html +# +# USB devices are first opened by the system server (USBDeviceManagerService) +# and the file descriptor is passed to the right Activity via binder. +allow { appdomain -isolated_app -ephemeral_app } usb_device:chr_file { read write getattr ioctl }; +allow { appdomain -isolated_app -ephemeral_app } usbaccessory_device:chr_file { read write getattr }; + +# For art. +allow appdomain dalvikcache_data_file:file execute; +allow appdomain dalvikcache_data_file:lnk_file r_file_perms; + +# Allow any app to read shared RELRO files. +allow appdomain shared_relro_file:dir search; +allow appdomain shared_relro_file:file r_file_perms; + +# Allow apps to read/execute installed binaries +allow appdomain apk_data_file:dir r_dir_perms; +allow appdomain apk_data_file:file rx_file_perms; + +# /data/resource-cache +allow appdomain resourcecache_data_file:file r_file_perms; +allow appdomain resourcecache_data_file:dir r_dir_perms; + +# logd access +read_logd(appdomain) +control_logd({ appdomain -ephemeral_app untrusted_v2_app }) +# application inherit logd write socket (urge is to deprecate this long term) +allow appdomain zygote:unix_dgram_socket write; + +allow { appdomain -isolated_app -ephemeral_app } keystore:keystore_key { get_state get insert delete exist list sign verify }; + +use_keystore({ appdomain -isolated_app -ephemeral_app }) + +allow appdomain console_device:chr_file { read write }; + +# only allow unprivileged socket ioctl commands +allowxperm { appdomain -bluetooth } self:{ rawip_socket tcp_socket udp_socket } + ioctl { unpriv_sock_ioctls unpriv_tty_ioctls }; + +allow { appdomain -isolated_app } ion_device:chr_file rw_file_perms; +# TODO is write really necessary ? +auditallow { appdomain userdebug_or_eng(`-su') } ion_device:chr_file { write append }; + +# TODO(b/36375899) replace with hal_client_domain for mediacodec (hal_omx) +get_prop({ appdomain -isolated_app }, hwservicemanager_prop); + +# Allow app access to mediacodec (IOMX HAL) +binder_call({ appdomain -isolated_app }, mediacodec) + +# Allow AAudio apps to use shared memory file descriptors from the HAL +allow { appdomain -isolated_app } hal_audio:fd use; + +# Allow app to access shared memory created by camera HAL1 +allow { appdomain -isolated_app } hal_camera:fd use; + +# RenderScript always-passthrough HAL +allow { appdomain -isolated_app } hal_renderscript_hwservice:hwservice_manager find; + +# TODO: switch to meminfo service +allow appdomain proc_meminfo:file r_file_perms; + +# For app fuse. +allow appdomain app_fuse_file:file { getattr read append write }; + +pdx_client({ appdomain -isolated_app -ephemeral_app }, display_client) +pdx_client({ appdomain -isolated_app -ephemeral_app }, display_manager) +pdx_client({ appdomain -isolated_app -ephemeral_app }, display_vsync) +pdx_client({ appdomain -isolated_app -ephemeral_app }, performance_client) +# Apps do not directly open the IPC socket for bufferhubd. +pdx_use({ appdomain -isolated_app -ephemeral_app }, bufferhub_client) + +### +### CTS-specific rules +### + +# For cts/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java. +# testRunAsHasCorrectCapabilities +allow appdomain runas_exec:file getattr; +# Others are either allowed elsewhere or not desired. + +# For cts/tests/tests/security/src/android/security/cts/SELinuxTest.java +# Check SELinux policy and contexts. +selinux_check_access(appdomain) +selinux_check_context(appdomain) + +# Apps receive an open tun fd from the framework for +# device traffic. Do not allow untrusted app to directly open tun_device +allow { appdomain -isolated_app -ephemeral_app } tun_device:chr_file { read write getattr ioctl append }; + +# Connect to adbd and use a socket transferred from it. +# This is used for e.g. adb backup/restore. +allow appdomain adbd:unix_stream_socket connectto; +allow appdomain adbd:fd use; +allow appdomain adbd:unix_stream_socket { getattr getopt ioctl read write shutdown }; + +allow appdomain cache_file:dir getattr; + +### +### Neverallow rules +### +### These are things that Android apps should NEVER be able to do +### + +# Superuser capabilities. +# bluetooth requires net_admin and wake_alarm. +neverallow { appdomain -bluetooth } self:capability *; +neverallow { appdomain -bluetooth } self:capability2 *; + +# Block device access. +neverallow appdomain dev_type:blk_file { read write }; + +# Access to any of the following character devices. +neverallow appdomain { + audio_device + camera_device + dm_device + radio_device + rpmsg_device + video_device +}:chr_file { read write }; + +# Note: Try expanding list of app domains in the future. +neverallow { untrusted_app isolated_app shell } graphics_device:chr_file { read write }; + +neverallow { appdomain -nfc } nfc_device:chr_file + { read write }; +neverallow { appdomain -bluetooth } hci_attach_dev:chr_file + { read write }; +neverallow appdomain tee_device:chr_file { read write }; + +# Privileged netlink socket interfaces. +neverallow appdomain + domain:{ + netlink_tcpdiag_socket + netlink_nflog_socket + netlink_xfrm_socket + netlink_audit_socket + netlink_dnrt_socket + } *; + +# These messages are broadcast messages from the kernel to userspace. +# Do not allow the writing of netlink messages, which has been a source +# of rooting vulns in the past. +neverallow appdomain domain:netlink_kobject_uevent_socket { write append }; + +# Sockets under /dev/socket that are not specifically typed. +neverallow appdomain socket_device:sock_file write; + +# Unix domain sockets. +neverallow appdomain adbd_socket:sock_file write; +neverallow { appdomain -radio } rild_socket:sock_file write; +neverallow appdomain vold_socket:sock_file write; +neverallow appdomain zygote_socket:sock_file write; + +# ptrace access to non-app domains. +neverallow appdomain { domain -appdomain }:process ptrace; + +# Write access to /proc/pid entries for any non-app domain. +neverallow appdomain { domain -appdomain }:file write; + +# signal access to non-app domains. +# sigchld allowed for parent death notification. +# signull allowed for kill(pid, 0) existence test. +# All others prohibited. +neverallow appdomain { domain -appdomain }:process + { sigkill sigstop signal }; + +# Transition to a non-app domain. +# Exception for the shell and su domains, can transition to runas, etc. +# Exception for crash_dump. +neverallow { appdomain -shell userdebug_or_eng(`-su') } { domain -appdomain -crash_dump }:process + { transition }; +neverallow { appdomain -shell userdebug_or_eng(`-su') } { domain -appdomain }:process + { dyntransition }; + +# Write to rootfs. +neverallow appdomain rootfs:dir_file_class_set + { create write setattr relabelfrom relabelto append unlink link rename }; + +# Write to /system. +neverallow appdomain system_file:dir_file_class_set + { create write setattr relabelfrom relabelto append unlink link rename }; + +# Write to entrypoint executables. +neverallow appdomain exec_type:file + { create write setattr relabelfrom relabelto append unlink link rename }; + +# Write to system-owned parts of /data. +# This is the default type for anything under /data not otherwise +# specified in file_contexts. Define a different type for portions +# that should be writable by apps. +neverallow appdomain system_data_file:dir_file_class_set + { create write setattr relabelfrom relabelto append unlink link rename }; + +# Write to various other parts of /data. +neverallow appdomain drm_data_file:dir_file_class_set + { create write setattr relabelfrom relabelto append unlink link rename }; +neverallow { appdomain -platform_app } + apk_data_file:dir_file_class_set + { create write setattr relabelfrom relabelto append unlink link rename }; +neverallow { appdomain -platform_app } + apk_tmp_file:dir_file_class_set + { create write setattr relabelfrom relabelto append unlink link rename }; +neverallow { appdomain -platform_app } + apk_private_data_file:dir_file_class_set + { create write setattr relabelfrom relabelto append unlink link rename }; +neverallow { appdomain -platform_app } + apk_private_tmp_file:dir_file_class_set + { create write setattr relabelfrom relabelto append unlink link rename }; +neverallow { appdomain -shell } + shell_data_file:dir_file_class_set + { create setattr relabelfrom relabelto append unlink link rename }; +neverallow { appdomain -bluetooth } + bluetooth_data_file:dir_file_class_set + { create write setattr relabelfrom relabelto append unlink link rename }; +neverallow appdomain + keystore_data_file:dir_file_class_set + { create write setattr relabelfrom relabelto append unlink link rename }; +neverallow appdomain + systemkeys_data_file:dir_file_class_set + { create write setattr relabelfrom relabelto append unlink link rename }; +neverallow appdomain + wifi_data_file:dir_file_class_set + { create write setattr relabelfrom relabelto append unlink link rename }; +neverallow appdomain + dhcp_data_file:dir_file_class_set + { create write setattr relabelfrom relabelto append unlink link rename }; + +# access tmp apk files +neverallow { appdomain -platform_app -priv_app } + { apk_tmp_file apk_private_tmp_file }:dir_file_class_set *; + +# Access to factory files. +neverallow appdomain efs_file:dir_file_class_set write; +neverallow { appdomain -shell } efs_file:dir_file_class_set read; + +# Write to various pseudo file systems. +neverallow { appdomain -bluetooth -nfc } + sysfs:dir_file_class_set write; +neverallow appdomain + proc:dir_file_class_set write; + +# Access to syslog(2) or /proc/kmsg. +neverallow appdomain kernel:system { syslog_read syslog_mod syslog_console }; + +# Ability to perform any filesystem operation other than statfs(2). +# i.e. no mount(2), unmount(2), etc. +neverallow appdomain fs_type:filesystem ~getattr; + +# prevent creation/manipulation of globally readable symlinks +neverallow appdomain { + apk_data_file + cache_file + cache_recovery_file + dev_type + rootfs + system_file + tmpfs +}:lnk_file no_w_file_perms; + +# Blacklist app domains not allowed to execute from /data +neverallow { + bluetooth + isolated_app + nfc + radio + shared_relro + system_app +} { + data_file_type + -dalvikcache_data_file + -system_data_file # shared libs in apks + -apk_data_file +}:file no_x_file_perms; + +# Applications should use the activity model for receiving events +neverallow { + appdomain + -shell # bugreport +} input_device:chr_file ~getattr; + +# Do not allow access to Bluetooth-related system properties except for a few whitelisted domains. +# neverallow rules for access to Bluetooth-related data files are above. +neverallow { + appdomain + -bluetooth + -system_app +} bluetooth_prop:file create_file_perms; diff --git a/prebuilts/api/26.0/private/app_neverallows.te b/prebuilts/api/26.0/private/app_neverallows.te new file mode 100644 index 000000000..3c159d5f1 --- /dev/null +++ b/prebuilts/api/26.0/private/app_neverallows.te @@ -0,0 +1,215 @@ +### +### neverallow rules for untrusted app domains +### + +# Only allow domains in AOSP to use the untrusted_app_all attribute. +neverallow { untrusted_app_all -untrusted_app -untrusted_app_25 } domain:process fork; + +define(`all_untrusted_apps',`{ untrusted_app_all untrusted_app_25 untrusted_app ephemeral_app isolated_app }') +# Receive or send uevent messages. +neverallow all_untrusted_apps domain:netlink_kobject_uevent_socket *; + +# Receive or send generic netlink messages +neverallow all_untrusted_apps domain:netlink_socket *; + +# Too much leaky information in debugfs. It's a security +# best practice to ensure these files aren't readable. +neverallow all_untrusted_apps debugfs_type:file read; + +# Do not allow untrusted apps to register services. +# Only trusted components of Android should be registering +# services. +neverallow all_untrusted_apps service_manager_type:service_manager add; + +# Do not allow untrusted apps to use VendorBinder +neverallow all_untrusted_apps vndbinder_device:chr_file *; +neverallow all_untrusted_apps vndservice_manager_type:service_manager *; + +# Do not allow untrusted apps to connect to the property service +# or set properties. b/10243159 +neverallow all_untrusted_apps property_socket:sock_file write; +neverallow all_untrusted_apps init:unix_stream_socket connectto; +neverallow all_untrusted_apps property_type:property_service set; + +# Do not allow untrusted apps to be assigned mlstrustedsubject. +# This would undermine the per-user isolation model being +# enforced via levelFrom=user in seapp_contexts and the mls +# constraints. As there is no direct way to specify a neverallow +# on attribute assignment, this relies on the fact that fork +# permission only makes sense within a domain (hence should +# never be granted to any other domain within mlstrustedsubject) +# and an untrusted app is allowed fork permission to itself. +neverallow all_untrusted_apps mlstrustedsubject:process fork; + +# Do not allow untrusted apps to hard link to any files. +# In particular, if an untrusted app links to other app data +# files, installd will not be able to guarantee the deletion +# of the linked to file. Hard links also contribute to security +# bugs, so we want to ensure untrusted apps never have this +# capability. +neverallow all_untrusted_apps file_type:file link; + +# Do not allow untrusted apps to access network MAC address file +neverallow all_untrusted_apps sysfs_mac_address:file no_rw_file_perms; + +# Restrict socket ioctls. Either 1. disallow privileged ioctls, 2. disallow the +# ioctl permission, or 3. disallow the socket class. +neverallowxperm all_untrusted_apps domain:{ rawip_socket tcp_socket udp_socket } ioctl priv_sock_ioctls; +neverallow all_untrusted_apps *:{ netlink_route_socket netlink_selinux_socket } ioctl; +neverallow all_untrusted_apps *:{ + socket netlink_socket packet_socket key_socket appletalk_socket + netlink_tcpdiag_socket netlink_nflog_socket + netlink_xfrm_socket netlink_audit_socket + netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket + netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket + netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket + netlink_rdma_socket netlink_crypto_socket +} *; + +# Do not allow untrusted apps access to /cache +neverallow all_untrusted_apps { cache_file cache_recovery_file }:dir ~{ r_dir_perms }; +neverallow all_untrusted_apps { cache_file cache_recovery_file }:file ~{ read getattr }; + +# Do not allow untrusted apps to create/unlink files outside of its sandbox, +# internal storage or sdcard. +# World accessible data locations allow application to fill the device +# with unaccounted for data. This data will not get removed during +# application un-installation. +neverallow all_untrusted_apps { + fs_type + -fuse # sdcard + -sdcardfs # sdcard + -vfat + file_type + -app_data_file # The apps sandbox itself + -media_rw_data_file # Internal storage. Known that apps can + # leave artfacts here after uninstall. + -user_profile_data_file # Access to profile files + userdebug_or_eng(` + -method_trace_data_file # only on ro.debuggable=1 + -coredump_file # userdebug/eng only + ') +}:dir_file_class_set { create unlink }; + +# No untrusted component should be touching /dev/fuse +neverallow all_untrusted_apps fuse_device:chr_file *; + +# Do not allow untrusted apps to directly open tun_device +neverallow all_untrusted_apps tun_device:chr_file open; + +# Only allow appending to /data/anr/traces.txt (b/27853304, b/18340553) +neverallow all_untrusted_apps anr_data_file:file ~{ open append }; +neverallow all_untrusted_apps anr_data_file:dir ~search; + +# Avoid reads from generically labeled /proc files +# Create a more specific label if needed +neverallow all_untrusted_apps proc:file { no_rw_file_perms no_x_file_perms }; + +# Avoid all access to kernel configuration +neverallow all_untrusted_apps config_gz:file { no_rw_file_perms no_x_file_perms }; + +# Do not allow untrusted apps access to preloads data files +neverallow all_untrusted_apps preloads_data_file:file no_rw_file_perms; + +# Locking of files on /system could lead to denial of service attacks +# against privileged system components +neverallow all_untrusted_apps system_file:file lock; + +# Do not permit untrusted apps to perform actions on HwBinder service_manager +# other than find actions for services listed below +neverallow all_untrusted_apps *:hwservice_manager ~find; + +# Do not permit access from apps which host arbitrary code to HwBinder services, +# except those considered sufficiently safe for access from such apps. +# The two main reasons for this are: +# 1. HwBinder servers do not perform client authentication because HIDL +# currently does not expose caller UID information and, even if it did, many +# HwBinder services either operate at a level below that of apps (e.g., HALs) +# or must not rely on app identity for authorization. Thus, to be safe, the +# default assumption is that every HwBinder service treats all its clients as +# equally authorized to perform operations offered by the service. +# 2. HAL servers (a subset of HwBinder services) contain code with higher +# incidence rate of security issues than system/core components and have +# access to lower layes of the stack (all the way down to hardware) thus +# increasing opportunities for bypassing the Android security model. +# +# Safe services include: +# - same process services: because they by definition run in the process +# of the client and thus have the same access as the client domain in which +# the process runs +# - coredomain_hwservice: are considered safe because they do not pose risks +# associated with reason #2 above. +# - hal_configstore_ISurfaceFlingerConfigs: becuase it has specifically been +# designed for use by any domain. +# - hal_graphics_allocator_hwservice: because these operations are also offered +# by surfaceflinger Binder service, which apps are permitted to access +# - hal_omx_hwservice: because this is a HwBinder version of the mediacodec +# Binder service which apps were permitted to access. +neverallow all_untrusted_apps { + hwservice_manager_type + -same_process_hwservice + -coredomain_hwservice + -hal_configstore_ISurfaceFlingerConfigs + -hal_graphics_allocator_hwservice + -hal_omx_hwservice + -untrusted_app_visible_hwservice +}:hwservice_manager find; +neverallow untrusted_app_visible_hwservice unlabeled:service_manager list; #TODO: b/62658302 +# Make sure that the following services are never accessible by untrusted_apps +neverallow all_untrusted_apps { + default_android_hwservice + hal_audio_hwservice + hal_bluetooth_hwservice + hal_bootctl_hwservice + hal_camera_hwservice + hal_contexthub_hwservice + hal_drm_hwservice + hal_dumpstate_hwservice + hal_fingerprint_hwservice + hal_gatekeeper_hwservice + hal_gnss_hwservice + hal_graphics_composer_hwservice + hal_health_hwservice + hal_ir_hwservice + hal_keymaster_hwservice + hal_light_hwservice + hal_memtrack_hwservice + hal_nfc_hwservice + hal_oemlock_hwservice + hal_power_hwservice + hal_sensors_hwservice + hal_telephony_hwservice + hal_thermal_hwservice + hal_tv_cec_hwservice + hal_tv_input_hwservice + hal_usb_hwservice + hal_vibrator_hwservice + hal_vr_hwservice + hal_weaver_hwservice + hal_wifi_hwservice + hal_wifi_supplicant_hwservice + hidl_base_hwservice +}:hwservice_manager find; +# HwBinder services offered by core components (as opposed to vendor components) +# are considered somewhat safer due to point #2 above. +neverallow all_untrusted_apps { + coredomain_hwservice + -same_process_hwservice + -hidl_allocator_hwservice # Designed for use by any domain + -hidl_manager_hwservice # Designed for use by any domain + -hidl_memory_hwservice # Designed for use by any domain + -hidl_token_hwservice # Designed for use by any domain +}:hwservice_manager find; + +# Restrict *Binder access from apps to HAL domains. We can only do this on full +# Treble devices where *Binder communications between apps and HALs are tightly +# restricted. +full_treble_only(` + neverallow all_untrusted_apps { + halserverdomain + -coredomain + -hal_configstore_server + -hal_graphics_allocator_server + -binder_in_vendor_violators # TODO(b/35870313): Remove once all violations are gone + }:binder { call transfer }; +') diff --git a/prebuilts/api/26.0/private/asan_extract.te b/prebuilts/api/26.0/private/asan_extract.te new file mode 100644 index 000000000..1c20d78ec --- /dev/null +++ b/prebuilts/api/26.0/private/asan_extract.te @@ -0,0 +1,8 @@ +# type_transition must be private policy the domain_trans rules could stay +# public, but conceptually should go with this +# Technically not a daemon but we do want the transition from init domain to +# asan_extract to occur. +with_asan(` +typeattribute asan_extract coredomain; +init_daemon_domain(asan_extract) +') diff --git a/prebuilts/api/26.0/private/atrace.te b/prebuilts/api/26.0/private/atrace.te new file mode 100644 index 000000000..94d84834d --- /dev/null +++ b/prebuilts/api/26.0/private/atrace.te @@ -0,0 +1,24 @@ +# Domain for atrace process spawned by boottrace service. + +type atrace_exec, exec_type, file_type; + +userdebug_or_eng(` + type atrace, domain, coredomain, domain_deprecated; + + init_daemon_domain(atrace) + + # boottrace services uses /data/misc/boottrace/categories + allow atrace boottrace_data_file:dir search; + allow atrace boottrace_data_file:file r_file_perms; + + # atrace reads the files in /sys/kernel/debug/tracing/ + allow atrace debugfs_tracing:file r_file_perms; + + # atrace sets debug.atrace.* properties + set_prop(atrace, debug_prop) + + # atrace pokes all the binder-enabled processes at startup. + binder_use(atrace) + allow atrace healthd:binder call; + allow atrace surfaceflinger:binder call; +') diff --git a/prebuilts/api/26.0/private/attributes b/prebuilts/api/26.0/private/attributes new file mode 100644 index 000000000..fcbfecfb2 --- /dev/null +++ b/prebuilts/api/26.0/private/attributes @@ -0,0 +1,9 @@ +# Temporary attribute used for migrating permissions out of domain. +# Motivation: Domain is overly permissive. Start removing permissions +# from domain and assign them to the domain_deprecated attribute. +# Domain_deprecated and domain can initially be assigned to all +# domains. The goal is to not assign domain_deprecated to new domains +# and to start removing domain_deprecated where it's not required or +# reassigning the appropriate permissions to the inheriting domain +# when necessary. +attribute domain_deprecated; diff --git a/prebuilts/api/26.0/private/audioserver.te b/prebuilts/api/26.0/private/audioserver.te new file mode 100644 index 000000000..9119daa5d --- /dev/null +++ b/prebuilts/api/26.0/private/audioserver.te @@ -0,0 +1,66 @@ +# audioserver - audio services daemon + +typeattribute audioserver coredomain; + +type audioserver_exec, exec_type, file_type; +init_daemon_domain(audioserver) + +r_dir_file(audioserver, sdcard_type) + +binder_use(audioserver) +binder_call(audioserver, binderservicedomain) +binder_call(audioserver, appdomain) +binder_service(audioserver) + +hal_client_domain(audioserver, hal_allocator) +# /system/lib64/hw for always-passthrough Allocator HAL ashmem / mapper .so +r_dir_file(audioserver, system_file) + +hal_client_domain(audioserver, hal_audio) + +userdebug_or_eng(` + # used for TEE sink - pcm capture for debug. + allow audioserver media_data_file:dir create_dir_perms; + allow audioserver audioserver_data_file:dir create_dir_perms; + allow audioserver audioserver_data_file:file create_file_perms; + + # ptrace to processes in the same domain for memory leak detection + allow audioserver self:process ptrace; +') + +add_service(audioserver, audioserver_service) +allow audioserver appops_service:service_manager find; +allow audioserver batterystats_service:service_manager find; +allow audioserver permission_service:service_manager find; +allow audioserver power_service:service_manager find; +allow audioserver scheduling_policy_service:service_manager find; + +# Grant access to audio files to audioserver +allow audioserver audio_data_file:dir ra_dir_perms; +allow audioserver audio_data_file:file create_file_perms; + +# allow access to ALSA MMAP FDs for AAudio API +allow audioserver audio_device:chr_file { read write }; + +# For A2DP bridge which is loaded directly into audioserver +unix_socket_connect(audioserver, bluetooth, bluetooth) + +### +### neverallow rules +### + +# audioserver should never execute any executable without a +# domain transition +neverallow audioserver { file_type fs_type }:file execute_no_trans; + +# The goal of the mediaserver split is to place media processing code into +# restrictive sandboxes with limited responsibilities and thus limited +# permissions. Example: Audioserver is only responsible for controlling audio +# hardware and processing audio content. Cameraserver does the same for camera +# hardware/content. Etc. +# +# Media processing code is inherently risky and thus should have limited +# permissions and be isolated from the rest of the system and network. +# Lengthier explanation here: +# https://android-developers.googleblog.com/2016/05/hardening-media-stack.html +neverallow audioserver domain:{ tcp_socket udp_socket rawip_socket } *; diff --git a/prebuilts/api/26.0/private/binder_in_vendor_violators.te b/prebuilts/api/26.0/private/binder_in_vendor_violators.te new file mode 100644 index 000000000..4a1218e1d --- /dev/null +++ b/prebuilts/api/26.0/private/binder_in_vendor_violators.te @@ -0,0 +1 @@ +allow binder_in_vendor_violators binder_device:chr_file rw_file_perms; diff --git a/prebuilts/api/26.0/private/binderservicedomain.te b/prebuilts/api/26.0/private/binderservicedomain.te new file mode 100644 index 000000000..0891ee5b2 --- /dev/null +++ b/prebuilts/api/26.0/private/binderservicedomain.te @@ -0,0 +1,22 @@ +# Rules common to all binder service domains + +# Allow dumpstate and incidentd to collect information from binder services +allow binderservicedomain { dumpstate incidentd }:fd use; +allow binderservicedomain { dumpstate incidentd }:unix_stream_socket { read write getopt getattr }; +allow binderservicedomain { dumpstate incidentd }:fifo_file { getattr write }; +allow binderservicedomain shell_data_file:file { getattr write }; + +# Allow dumpsys to work from adb shell or the serial console +allow binderservicedomain devpts:chr_file rw_file_perms; +allow binderservicedomain console_device:chr_file rw_file_perms; + +# Receive and write to a pipe received over Binder from an app. +allow binderservicedomain appdomain:fd use; +allow binderservicedomain appdomain:fifo_file write; + +# allow all services to run permission checks +allow binderservicedomain permission_service:service_manager find; + +allow binderservicedomain keystore:keystore_key { get_state get insert delete exist list sign verify }; + +use_keystore(binderservicedomain) diff --git a/prebuilts/api/26.0/private/blkid.te b/prebuilts/api/26.0/private/blkid.te new file mode 100644 index 000000000..090912b82 --- /dev/null +++ b/prebuilts/api/26.0/private/blkid.te @@ -0,0 +1,22 @@ +# blkid called from vold + +typeattribute blkid coredomain; + +type blkid_exec, exec_type, file_type; + +# Allowed read-only access to encrypted devices to extract UUID/label +allow blkid block_device:dir search; +allow blkid userdata_block_device:blk_file r_file_perms; +allow blkid dm_device:blk_file r_file_perms; + +# Allow stdin/out back to vold +allow blkid vold:fd use; +allow blkid vold:fifo_file { read write getattr }; + +# For blkid launched through popen() +allow blkid blkid_exec:file rx_file_perms; + +# Only allow entry from vold +neverallow { domain -vold } blkid:process transition; +neverallow * blkid:process dyntransition; +neverallow blkid { file_type fs_type -blkid_exec -shell_exec }:file entrypoint; diff --git a/prebuilts/api/26.0/private/blkid_untrusted.te b/prebuilts/api/26.0/private/blkid_untrusted.te new file mode 100644 index 000000000..125677157 --- /dev/null +++ b/prebuilts/api/26.0/private/blkid_untrusted.te @@ -0,0 +1,37 @@ +# blkid for untrusted block devices + +typeattribute blkid_untrusted coredomain; + +# Allowed read-only access to vold block devices to extract UUID/label +allow blkid_untrusted block_device:dir search; +allow blkid_untrusted vold_device:blk_file r_file_perms; + +# Allow stdin/out back to vold +allow blkid_untrusted vold:fd use; +allow blkid_untrusted vold:fifo_file { read write getattr }; + +# For blkid launched through popen() +allow blkid_untrusted blkid_exec:file rx_file_perms; + +### +### neverallow rules +### + +# Untrusted blkid should never be run on block devices holding sensitive data +neverallow blkid_untrusted { + boot_block_device + frp_block_device + metadata_block_device + recovery_block_device + root_block_device + swap_block_device + system_block_device + userdata_block_device + cache_block_device + dm_device +}:blk_file no_rw_file_perms; + +# Only allow entry from vold via blkid binary +neverallow { domain -vold } blkid_untrusted:process transition; +neverallow * blkid_untrusted:process dyntransition; +neverallow blkid_untrusted { file_type fs_type -blkid_exec -shell_exec }:file entrypoint; diff --git a/prebuilts/api/26.0/private/bluetooth.te b/prebuilts/api/26.0/private/bluetooth.te new file mode 100644 index 000000000..1c0e14fb2 --- /dev/null +++ b/prebuilts/api/26.0/private/bluetooth.te @@ -0,0 +1,77 @@ +# bluetooth subsystem + +typeattribute bluetooth coredomain; +typeattribute bluetooth domain_deprecated; + +app_domain(bluetooth) +net_domain(bluetooth) + +# Socket creation under /data/misc/bluedroid. +type_transition bluetooth bluetooth_data_file:sock_file bluetooth_socket; + +# Allow access to net_admin ioctls +allowxperm bluetooth self:udp_socket ioctl priv_sock_ioctls; + +wakelock_use(bluetooth); + +# Data file accesses. +allow bluetooth bluetooth_data_file:dir create_dir_perms; +allow bluetooth bluetooth_data_file:notdevfile_class_set create_file_perms; +allow bluetooth bluetooth_logs_data_file:dir rw_dir_perms; +allow bluetooth bluetooth_logs_data_file:file create_file_perms; + +# Socket creation under /data/misc/bluedroid. +allow bluetooth bluetooth_socket:sock_file create_file_perms; + +allow bluetooth self:capability net_admin; +allow bluetooth self:capability2 wake_alarm; + +# tethering +allow bluetooth self:packet_socket create_socket_perms_no_ioctl; +allow bluetooth self:capability { net_admin net_raw net_bind_service }; +allow bluetooth self:tun_socket create_socket_perms_no_ioctl; +allow bluetooth tun_device:chr_file rw_file_perms; +allow bluetooth efs_file:dir search; + +# allow Bluetooth to access uhid device for HID profile +allow bluetooth uhid_device:chr_file rw_file_perms; + +# proc access. +allow bluetooth proc_bluetooth_writable:file rw_file_perms; + +# Allow write access to bluetooth specific properties +set_prop(bluetooth, bluetooth_prop) +set_prop(bluetooth, pan_result_prop) + +allow bluetooth audioserver_service:service_manager find; +allow bluetooth bluetooth_service:service_manager find; +allow bluetooth drmserver_service:service_manager find; +allow bluetooth mediaserver_service:service_manager find; +allow bluetooth radio_service:service_manager find; +allow bluetooth surfaceflinger_service:service_manager find; +allow bluetooth app_api_service:service_manager find; +allow bluetooth system_api_service:service_manager find; + +# already open bugreport file descriptors may be shared with +# the bluetooth process, from a file in +# /data/data/com.android.shell/files/bugreports/bugreport-*. +allow bluetooth shell_data_file:file read; + +# Bluetooth audio needs RT scheduling to meet deadlines, allow sys_nice +allow bluetooth self:capability sys_nice; + +hal_client_domain(bluetooth, hal_bluetooth) +hal_client_domain(bluetooth, hal_telephony) + +read_runtime_log_tags(bluetooth) + +### +### Neverallow rules +### +### These are things that the bluetooth app should NEVER be able to do +### + +# Superuser capabilities. +# Bluetooth requires net_{admin,raw,bind_service} and wake_alarm and block_suspend and sys_nice. +neverallow bluetooth self:capability ~{ net_admin net_raw net_bind_service sys_nice}; +neverallow bluetooth self:capability2 ~{ wake_alarm block_suspend }; diff --git a/prebuilts/api/26.0/private/bluetoothdomain.te b/prebuilts/api/26.0/private/bluetoothdomain.te new file mode 100644 index 000000000..fe4f0e663 --- /dev/null +++ b/prebuilts/api/26.0/private/bluetoothdomain.te @@ -0,0 +1,2 @@ +# Allow clients to use a socket provided by the bluetooth app. +allow bluetoothdomain bluetooth:unix_stream_socket { getopt setopt getattr read write ioctl shutdown }; diff --git a/prebuilts/api/26.0/private/bootanim.te b/prebuilts/api/26.0/private/bootanim.te new file mode 100644 index 000000000..8c9f6c76e --- /dev/null +++ b/prebuilts/api/26.0/private/bootanim.te @@ -0,0 +1,3 @@ +typeattribute bootanim coredomain; + +init_daemon_domain(bootanim) diff --git a/prebuilts/api/26.0/private/bootstat.te b/prebuilts/api/26.0/private/bootstat.te new file mode 100644 index 000000000..806144cf6 --- /dev/null +++ b/prebuilts/api/26.0/private/bootstat.te @@ -0,0 +1,3 @@ +typeattribute bootstat coredomain; + +init_daemon_domain(bootstat) diff --git a/prebuilts/api/26.0/private/bufferhubd.te b/prebuilts/api/26.0/private/bufferhubd.te new file mode 100644 index 000000000..012eb2027 --- /dev/null +++ b/prebuilts/api/26.0/private/bufferhubd.te @@ -0,0 +1,3 @@ +typeattribute bufferhubd coredomain; + +init_daemon_domain(bufferhubd) diff --git a/prebuilts/api/26.0/private/cameraserver.te b/prebuilts/api/26.0/private/cameraserver.te new file mode 100644 index 000000000..c16c13260 --- /dev/null +++ b/prebuilts/api/26.0/private/cameraserver.te @@ -0,0 +1,3 @@ +typeattribute cameraserver coredomain; + +init_daemon_domain(cameraserver) diff --git a/prebuilts/api/26.0/private/charger.te b/prebuilts/api/26.0/private/charger.te new file mode 100644 index 000000000..65109deff --- /dev/null +++ b/prebuilts/api/26.0/private/charger.te @@ -0,0 +1 @@ +typeattribute charger coredomain; diff --git a/prebuilts/api/26.0/private/clatd.te b/prebuilts/api/26.0/private/clatd.te new file mode 100644 index 000000000..c09398ddd --- /dev/null +++ b/prebuilts/api/26.0/private/clatd.te @@ -0,0 +1,2 @@ +typeattribute clatd coredomain; +typeattribute clatd domain_deprecated; diff --git a/prebuilts/api/26.0/private/cppreopts.te b/prebuilts/api/26.0/private/cppreopts.te new file mode 100644 index 000000000..34f0d669b --- /dev/null +++ b/prebuilts/api/26.0/private/cppreopts.te @@ -0,0 +1,6 @@ +typeattribute cppreopts coredomain; + +# Technically not a daemon but we do want the transition from init domain to +# cppreopts to occur. +init_daemon_domain(cppreopts) +domain_auto_trans(cppreopts, preopt2cachename_exec, preopt2cachename); diff --git a/prebuilts/api/26.0/private/crash_dump.te b/prebuilts/api/26.0/private/crash_dump.te new file mode 100644 index 000000000..fb73f08a9 --- /dev/null +++ b/prebuilts/api/26.0/private/crash_dump.te @@ -0,0 +1 @@ +typeattribute crash_dump coredomain; diff --git a/prebuilts/api/26.0/private/dex2oat.te b/prebuilts/api/26.0/private/dex2oat.te new file mode 100644 index 000000000..89c3970af --- /dev/null +++ b/prebuilts/api/26.0/private/dex2oat.te @@ -0,0 +1,2 @@ +typeattribute dex2oat coredomain; +typeattribute dex2oat domain_deprecated; diff --git a/prebuilts/api/26.0/private/dexoptanalyzer.te b/prebuilts/api/26.0/private/dexoptanalyzer.te new file mode 100644 index 000000000..db81d0dad --- /dev/null +++ b/prebuilts/api/26.0/private/dexoptanalyzer.te @@ -0,0 +1,26 @@ +# dexoptanalyzer +type dexoptanalyzer, domain, coredomain, mlstrustedsubject; +type dexoptanalyzer_exec, exec_type, file_type; + +# Reading an APK opens a ZipArchive, which unpack to tmpfs. +# Use tmpfs_domain() which will give tmpfs files created by dexoptanalyzer their +# own label, which differs from other labels created by other processes. +# This allows to distinguish in policy files created by dexoptanalyzer vs other +#processes. +tmpfs_domain(dexoptanalyzer) + +# Read symlinks in /data/dalvik-cache. This is required for PIC mode boot +# app_data_file the oat file is symlinked to the original file in /system. +allow dexoptanalyzer dalvikcache_data_file:dir { getattr search }; +allow dexoptanalyzer dalvikcache_data_file:file r_file_perms; +allow dexoptanalyzer dalvikcache_data_file:lnk_file read; + +allow dexoptanalyzer installd:fd use; + +# Allow reading secondary dex files that were reported by the app to the +# package manager. +allow dexoptanalyzer app_data_file:dir { getattr search }; +allow dexoptanalyzer app_data_file:file r_file_perms; + +# Allow testing /data/user/0 which symlinks to /data/data +allow dexoptanalyzer system_data_file:lnk_file { getattr }; diff --git a/prebuilts/api/26.0/private/dhcp.te b/prebuilts/api/26.0/private/dhcp.te new file mode 100644 index 000000000..6a6a139e2 --- /dev/null +++ b/prebuilts/api/26.0/private/dhcp.te @@ -0,0 +1,5 @@ +typeattribute dhcp coredomain; +typeattribute dhcp domain_deprecated; + +init_daemon_domain(dhcp) +type_transition dhcp system_data_file:{ dir file } dhcp_data_file; diff --git a/prebuilts/api/26.0/private/dnsmasq.te b/prebuilts/api/26.0/private/dnsmasq.te new file mode 100644 index 000000000..96084b490 --- /dev/null +++ b/prebuilts/api/26.0/private/dnsmasq.te @@ -0,0 +1 @@ +typeattribute dnsmasq coredomain; diff --git a/prebuilts/api/26.0/private/domain.te b/prebuilts/api/26.0/private/domain.te new file mode 100644 index 000000000..d37a0bd26 --- /dev/null +++ b/prebuilts/api/26.0/private/domain.te @@ -0,0 +1,18 @@ +# Transition to crash_dump when /system/bin/crash_dump* is executed. +# This occurs when the process crashes. +domain_auto_trans(domain, crash_dump_exec, crash_dump); +allow domain crash_dump:process sigchld; + +# Limit ability to ptrace or read sensitive /proc/pid files of processes +# with other UIDs to these whitelisted domains. +neverallow { + domain + -vold + -dumpstate + -storaged + -system_server + userdebug_or_eng(`-perfprofd') +} self:capability sys_ptrace; + +# Limit ability to generate hardware unique device ID attestations to priv_apps +neverallow { domain -priv_app } *:keystore_key gen_unique_id; diff --git a/prebuilts/api/26.0/private/domain_deprecated.te b/prebuilts/api/26.0/private/domain_deprecated.te new file mode 100644 index 000000000..aefb724f7 --- /dev/null +++ b/prebuilts/api/26.0/private/domain_deprecated.te @@ -0,0 +1,311 @@ +# rules removed from the domain attribute + +# Search /storage/emulated tmpfs mount. +allow { domain_deprecated -installd } tmpfs:dir r_dir_perms; +userdebug_or_eng(` +auditallow { + domain_deprecated + -appdomain + -installd + -sdcardd + -surfaceflinger + -system_server + -vold + -zygote +} tmpfs:dir r_dir_perms; +') + +# Inherit or receive open files from others. +allow domain_deprecated system_server:fd use; +userdebug_or_eng(` +auditallow { domain_deprecated -appdomain -netd -surfaceflinger } system_server:fd use; +') + +# Connect to adbd and use a socket transferred from it. +# This is used for e.g. adb backup/restore. +allow domain_deprecated adbd:fd use; +userdebug_or_eng(` +auditallow { domain_deprecated -appdomain -system_server } adbd:fd use; +') + +# Root fs. +allow domain_deprecated rootfs:dir r_dir_perms; +allow domain_deprecated rootfs:file r_file_perms; +allow domain_deprecated rootfs:lnk_file r_file_perms; +userdebug_or_eng(` +auditallow { + domain_deprecated + -fsck + -healthd + -installd + -servicemanager + -system_server + -ueventd + -uncrypt + -vold + -zygote +} rootfs:dir { open getattr read ioctl lock }; # search granted in domain +auditallow { + domain_deprecated + -healthd + -installd + -servicemanager + -system_server + -ueventd + -uncrypt + -vold + -zygote +} rootfs:file r_file_perms; +auditallow { + domain_deprecated + -appdomain + -healthd + -installd + -servicemanager + -system_server + -ueventd + -uncrypt + -vold + -zygote +} rootfs:lnk_file { getattr open ioctl lock }; # read granted in domain +') + +# System file accesses. +allow domain_deprecated system_file:dir r_dir_perms; +userdebug_or_eng(` +auditallow { + domain_deprecated + -appdomain + -fingerprintd + -installd + -keystore + -surfaceflinger + -system_server + -update_engine + -vold + -zygote +} system_file:dir { open read ioctl lock }; # search getattr in domain +') + +# Read files already opened under /data. +allow domain_deprecated system_data_file:file { getattr read }; +allow domain_deprecated system_data_file:lnk_file r_file_perms; +userdebug_or_eng(` +auditallow { + domain_deprecated + -appdomain + -sdcardd + -system_server + -tee +} system_data_file:file { getattr read }; +auditallow { + domain_deprecated + -appdomain + -system_server + -tee +} system_data_file:lnk_file r_file_perms; +') + +# Read apk files under /data/app. +allow domain_deprecated apk_data_file:dir { getattr search }; +allow domain_deprecated apk_data_file:file r_file_perms; +allow domain_deprecated apk_data_file:lnk_file r_file_perms; +userdebug_or_eng(` +auditallow { + domain_deprecated + -appdomain + -dex2oat + -installd + -system_server +} apk_data_file:dir { getattr search }; +auditallow { + domain_deprecated + -appdomain + -dex2oat + -installd + -system_server +} apk_data_file:file r_file_perms; +auditallow { + domain_deprecated + -appdomain + -dex2oat + -installd + -system_server +} apk_data_file:lnk_file r_file_perms; +') + +# Read already opened /cache files. +allow domain_deprecated cache_file:dir r_dir_perms; +allow domain_deprecated cache_file:file { getattr read }; +allow domain_deprecated cache_file:lnk_file r_file_perms; +userdebug_or_eng(` +auditallow { + domain_deprecated + -system_server + -vold +} cache_file:dir { open read search ioctl lock }; +auditallow { + domain_deprecated + -appdomain + -system_server + -vold +} cache_file:dir getattr; +auditallow { + domain_deprecated + -system_server + -vold +} cache_file:file { getattr read }; +auditallow { + domain_deprecated + -system_server + -vold +} cache_file:lnk_file r_file_perms; +') + +# Allow access to ion memory allocation device +allow domain_deprecated ion_device:chr_file rw_file_perms; +# split this auditallow into read and write perms since most domains seem to +# only require read +userdebug_or_eng(` +auditallow { + domain_deprecated + -appdomain + -fingerprintd + -keystore + -surfaceflinger + -system_server + -tee + -vold + -zygote +} ion_device:chr_file r_file_perms; +auditallow domain_deprecated ion_device:chr_file { write append }; +') + +# Read access to pseudo filesystems. +r_dir_file(domain_deprecated, proc) +r_dir_file(domain_deprecated, sysfs) +r_dir_file(domain_deprecated, cgroup) +allow domain_deprecated proc_meminfo:file r_file_perms; + +userdebug_or_eng(` +auditallow { + domain_deprecated + -fsck + -fsck_untrusted + -sdcardd + -system_server + -update_engine + -vold +} proc:file r_file_perms; +auditallow { + domain_deprecated + -fsck + -fsck_untrusted + -system_server + -vold +} proc:lnk_file { open ioctl lock }; # getattr read granted in domain +auditallow { + domain_deprecated + -bluetooth + -fingerprintd + -healthd + -netd + -system_app + -surfaceflinger + -system_server + -tee + -ueventd + -vold +} sysfs:dir { open getattr read ioctl lock }; # search granted in domain +auditallow { + domain_deprecated + -bluetooth + -fingerprintd + -healthd + -netd + -system_app + -surfaceflinger + -system_server + -tee + -ueventd + -vold +} sysfs:file r_file_perms; +auditallow { + domain_deprecated + -bluetooth + -fingerprintd + -healthd + -netd + -system_app + -surfaceflinger + -system_server + -tee + -ueventd + -vold +} sysfs:lnk_file { getattr open ioctl lock }; # read granted in domain +auditallow { + domain_deprecated + -appdomain + -dumpstate + -fingerprintd + -healthd + -inputflinger + -installd + -keystore + -netd + -surfaceflinger + -system_server + -zygote +} cgroup:dir r_dir_perms; +auditallow { + domain_deprecated + -appdomain + -dumpstate + -fingerprintd + -healthd + -inputflinger + -installd + -keystore + -netd + -surfaceflinger + -system_server + -zygote +} cgroup:{ file lnk_file } r_file_perms; +auditallow { + domain_deprecated + -appdomain + -surfaceflinger + -system_server + -vold +} proc_meminfo:file r_file_perms; +') + +# Get SELinux enforcing status. +allow domain_deprecated selinuxfs:dir r_dir_perms; +allow domain_deprecated selinuxfs:file r_file_perms; +userdebug_or_eng(` +auditallow { + domain_deprecated + -appdomain + -installd + -keystore + -postinstall_dexopt + -runas + -servicemanager + -system_server + -ueventd + -zygote +} selinuxfs:dir { open getattr read ioctl lock }; # search granted in domain +auditallow { + domain_deprecated + -appdomain + -installd + -keystore + -postinstall_dexopt + -runas + -servicemanager + -system_server + -ueventd + -zygote +} selinuxfs:file { open read ioctl lock }; # getattr granted in domain +') diff --git a/prebuilts/api/26.0/private/drmserver.te b/prebuilts/api/26.0/private/drmserver.te new file mode 100644 index 000000000..afe4f0aae --- /dev/null +++ b/prebuilts/api/26.0/private/drmserver.te @@ -0,0 +1,7 @@ +typeattribute drmserver coredomain; + +init_daemon_domain(drmserver) + +type_transition drmserver apk_data_file:sock_file drmserver_socket; + +typeattribute drmserver_socket coredomain_socket; diff --git a/prebuilts/api/26.0/private/dumpstate.te b/prebuilts/api/26.0/private/dumpstate.te new file mode 100644 index 000000000..0fe2adfc6 --- /dev/null +++ b/prebuilts/api/26.0/private/dumpstate.te @@ -0,0 +1,26 @@ +typeattribute dumpstate coredomain; +typeattribute dumpstate domain_deprecated; + +init_daemon_domain(dumpstate) + +# Execute and transition to the vdc domain +domain_auto_trans(dumpstate, vdc_exec, vdc) + +# Acquire advisory lock on /system/etc/xtables.lock from ip[6]tables +allow dumpstate system_file:file lock; + +# TODO: deal with tmpfs_domain pub/priv split properly +allow dumpstate dumpstate_tmpfs:file execute; + +# systrace support - allow atrace to run +allow dumpstate debugfs_tracing:dir r_dir_perms; +allow dumpstate debugfs_tracing:file rw_file_perms; +allow dumpstate debugfs_trace_marker:file getattr; +allow dumpstate atrace_exec:file rx_file_perms; +allow dumpstate storaged_exec:file rx_file_perms; + +# Allow dumpstate to make binder calls to storaged service +binder_call(dumpstate, storaged) + +# Collect metrics on boot time created by init +get_prop(dumpstate, boottime_prop) diff --git a/prebuilts/api/26.0/private/ephemeral_app.te b/prebuilts/api/26.0/private/ephemeral_app.te new file mode 100644 index 000000000..d664a5027 --- /dev/null +++ b/prebuilts/api/26.0/private/ephemeral_app.te @@ -0,0 +1,68 @@ +### +### Ephemeral apps. +### +### This file defines the security policy for apps with the ephemeral +### feature. +### +### The ephemeral_app domain is a reduced permissions sandbox allowing +### ephemeral applications to be safely installed and run. Non ephemeral +### applications may also opt-in to ephemeral to take advantage of the +### additional security features. +### +### PackageManager flags an app as ephemeral at install time. + +typeattribute ephemeral_app coredomain; + +net_domain(ephemeral_app) +app_domain(ephemeral_app) + +# Allow ephemeral apps to read/write files in visible storage if provided fds +allow ephemeral_app { sdcard_type media_rw_data_file }:file {read write getattr ioctl lock append}; + +# services +allow ephemeral_app audioserver_service:service_manager find; +allow ephemeral_app cameraserver_service:service_manager find; +allow ephemeral_app mediaserver_service:service_manager find; +allow ephemeral_app mediaextractor_service:service_manager find; +allow ephemeral_app mediacodec_service:service_manager find; +allow ephemeral_app mediametrics_service:service_manager find; +allow ephemeral_app mediadrmserver_service:service_manager find; +allow ephemeral_app mediacasserver_service:service_manager find; +allow ephemeral_app surfaceflinger_service:service_manager find; +allow ephemeral_app radio_service:service_manager find; +allow ephemeral_app ephemeral_app_api_service:service_manager find; + +### +### neverallow rules +### + +# Executable content should never be loaded from an ephemeral app home directory. +neverallow ephemeral_app app_data_file:file { execute execute_no_trans }; + +# Receive or send uevent messages. +neverallow ephemeral_app domain:netlink_kobject_uevent_socket *; + +# Receive or send generic netlink messages +neverallow ephemeral_app domain:netlink_socket *; + +# Too much leaky information in debugfs. It's a security +# best practice to ensure these files aren't readable. +neverallow ephemeral_app debugfs:file read; + +# execute gpu_device +neverallow ephemeral_app gpu_device:chr_file execute; + +# access files in /sys with the default sysfs label +neverallow ephemeral_app sysfs:file *; + +# Avoid reads from generically labeled /proc files +# Create a more specific label if needed +neverallow ephemeral_app proc:file { no_rw_file_perms no_x_file_perms }; + +# Directly access external storage +neverallow ephemeral_app { sdcard_type media_rw_data_file }:file {open create}; +neverallow ephemeral_app { sdcard_type media_rw_data_file }:dir search; + +# Avoid reads to proc_net, it contains too much device wide information about +# ongoing connections. +neverallow ephemeral_app proc_net:file no_rw_file_perms; diff --git a/prebuilts/api/26.0/private/file.te b/prebuilts/api/26.0/private/file.te new file mode 100644 index 000000000..da5f9adde --- /dev/null +++ b/prebuilts/api/26.0/private/file.te @@ -0,0 +1,7 @@ +# Compatibility with type names used in vanilla Android 4.3 and 4.4. +typealias audio_data_file alias audio_firmware_file; +typealias app_data_file alias platform_app_data_file; +typealias app_data_file alias download_file; + +# /proc/config.gz +type config_gz, fs_type; diff --git a/prebuilts/api/26.0/private/file_contexts b/prebuilts/api/26.0/private/file_contexts new file mode 100644 index 000000000..4485b9537 --- /dev/null +++ b/prebuilts/api/26.0/private/file_contexts @@ -0,0 +1,539 @@ +########################################### +# Root +/ u:object_r:rootfs:s0 + +# Data files +/adb_keys u:object_r:adb_keys_file:s0 +/build\.prop u:object_r:rootfs:s0 +/default\.prop u:object_r:rootfs:s0 +/fstab\..* u:object_r:rootfs:s0 +/init\..* u:object_r:rootfs:s0 +/res(/.*)? u:object_r:rootfs:s0 +/selinux_version u:object_r:rootfs:s0 +/ueventd\..* u:object_r:rootfs:s0 +/verity_key u:object_r:rootfs:s0 + +# Executables +/charger u:object_r:rootfs:s0 +/init u:object_r:init_exec:s0 +/sbin(/.*)? u:object_r:rootfs:s0 + +# For kernel modules +/lib(/.*)? u:object_r:rootfs:s0 + +# Empty directories +/lost\+found u:object_r:rootfs:s0 +/acct u:object_r:cgroup:s0 +/config u:object_r:rootfs:s0 +/mnt u:object_r:tmpfs:s0 +/postinstall u:object_r:postinstall_mnt_dir:s0 +/proc u:object_r:rootfs:s0 +/root u:object_r:rootfs:s0 +/sys u:object_r:sysfs:s0 + +# Symlinks +/bugreports u:object_r:rootfs:s0 +/d u:object_r:rootfs:s0 +/etc u:object_r:rootfs:s0 +/sdcard u:object_r:rootfs:s0 + +# SELinux policy files +/nonplat_file_contexts u:object_r:file_contexts_file:s0 +/plat_file_contexts u:object_r:file_contexts_file:s0 +/mapping_sepolicy\.cil u:object_r:sepolicy_file:s0 +/nonplat_sepolicy\.cil u:object_r:sepolicy_file:s0 +/plat_sepolicy\.cil u:object_r:sepolicy_file:s0 +/plat_property_contexts u:object_r:property_contexts_file:s0 +/nonplat_property_contexts u:object_r:property_contexts_file:s0 +/seapp_contexts u:object_r:seapp_contexts_file:s0 +/nonplat_seapp_contexts u:object_r:seapp_contexts_file:s0 +/plat_seapp_contexts u:object_r:seapp_contexts_file:s0 +/sepolicy u:object_r:sepolicy_file:s0 +/plat_service_contexts u:object_r:service_contexts_file:s0 +/plat_hwservice_contexts u:object_r:hwservice_contexts_file:s0 +/nonplat_service_contexts u:object_r:service_contexts_file:s0 +/nonplat_hwservice_contexts u:object_r:hwservice_contexts_file:s0 +/vndservice_contexts u:object_r:vndservice_contexts_file:s0 + +########################## +# Devices +# +/dev(/.*)? u:object_r:device:s0 +/dev/akm8973.* u:object_r:sensors_device:s0 +/dev/accelerometer u:object_r:sensors_device:s0 +/dev/adf[0-9]* u:object_r:graphics_device:s0 +/dev/adf-interface[0-9]*\.[0-9]* u:object_r:graphics_device:s0 +/dev/adf-overlay-engine[0-9]*\.[0-9]* u:object_r:graphics_device:s0 +/dev/alarm u:object_r:alarm_device:s0 +/dev/ashmem u:object_r:ashmem_device:s0 +/dev/audio.* u:object_r:audio_device:s0 +/dev/binder u:object_r:binder_device:s0 +/dev/block(/.*)? u:object_r:block_device:s0 +/dev/block/dm-[0-9]+ u:object_r:dm_device:s0 +/dev/block/loop[0-9]* u:object_r:loop_device:s0 +/dev/block/vold/.+ u:object_r:vold_device:s0 +/dev/block/ram[0-9]* u:object_r:ram_device:s0 +/dev/block/zram[0-9]* u:object_r:ram_device:s0 +/dev/bus/usb(.*)? u:object_r:usb_device:s0 +/dev/cam u:object_r:camera_device:s0 +/dev/console u:object_r:console_device:s0 +/dev/cpuctl(/.*)? u:object_r:cpuctl_device:s0 +/dev/device-mapper u:object_r:dm_device:s0 +/dev/eac u:object_r:audio_device:s0 +/dev/event-log-tags u:object_r:runtime_event_log_tags_file:s0 +/dev/fscklogs(/.*)? u:object_r:fscklogs:s0 +/dev/full u:object_r:full_device:s0 +/dev/fuse u:object_r:fuse_device:s0 +/dev/graphics(/.*)? u:object_r:graphics_device:s0 +/dev/hw_random u:object_r:hw_random_device:s0 +/dev/hwbinder u:object_r:hwbinder_device:s0 +/dev/i2c-[0-9]+ u:object_r:i2c_device:s0 +/dev/input(/.*) u:object_r:input_device:s0 +/dev/iio:device[0-9]+ u:object_r:iio_device:s0 +/dev/ion u:object_r:ion_device:s0 +/dev/keychord u:object_r:keychord_device:s0 +/dev/kmem u:object_r:kmem_device:s0 +/dev/log(/.*)? u:object_r:log_device:s0 +/dev/loop-control u:object_r:loop_control_device:s0 +/dev/mem u:object_r:kmem_device:s0 +/dev/modem.* u:object_r:radio_device:s0 +/dev/mtd(/.*)? u:object_r:mtd_device:s0 +/dev/mtp_usb u:object_r:mtp_device:s0 +/dev/pmsg0 u:object_r:pmsg_device:s0 +/dev/pn544 u:object_r:nfc_device:s0 +/dev/port u:object_r:port_device:s0 +/dev/ppp u:object_r:ppp_device:s0 +/dev/ptmx u:object_r:ptmx_device:s0 +/dev/pvrsrvkm u:object_r:gpu_device:s0 +/dev/kmsg u:object_r:kmsg_device:s0 +/dev/null u:object_r:null_device:s0 +/dev/nvhdcp1 u:object_r:video_device:s0 +/dev/random u:object_r:random_device:s0 +/dev/rpmsg-omx[0-9] u:object_r:rpmsg_device:s0 +/dev/rproc_user u:object_r:rpmsg_device:s0 +/dev/rtc[0-9] u:object_r:rtc_device:s0 +/dev/snd(/.*)? u:object_r:audio_device:s0 +/dev/snd/audio_timer_device u:object_r:audio_timer_device:s0 +/dev/snd/audio_seq_device u:object_r:audio_seq_device:s0 +/dev/socket(/.*)? u:object_r:socket_device:s0 +/dev/socket/adbd u:object_r:adbd_socket:s0 +/dev/socket/cryptd u:object_r:vold_socket:s0 +/dev/socket/dnsproxyd u:object_r:dnsproxyd_socket:s0 +/dev/socket/dumpstate u:object_r:dumpstate_socket:s0 +/dev/socket/fwmarkd u:object_r:fwmarkd_socket:s0 +/dev/socket/lmkd u:object_r:lmkd_socket:s0 +/dev/socket/logd u:object_r:logd_socket:s0 +/dev/socket/logdr u:object_r:logdr_socket:s0 +/dev/socket/logdw u:object_r:logdw_socket:s0 +/dev/socket/mdns u:object_r:mdns_socket:s0 +/dev/socket/mdnsd u:object_r:mdnsd_socket:s0 +/dev/socket/mtpd u:object_r:mtpd_socket:s0 +/dev/socket/netd u:object_r:netd_socket:s0 +/dev/socket/pdx/system/buffer_hub u:object_r:pdx_bufferhub_dir:s0 +/dev/socket/pdx/system/buffer_hub/client u:object_r:pdx_bufferhub_client_endpoint_socket:s0 +/dev/socket/pdx/system/performance u:object_r:pdx_performance_dir:s0 +/dev/socket/pdx/system/performance/client u:object_r:pdx_performance_client_endpoint_socket:s0 +/dev/socket/pdx/system/vr/display u:object_r:pdx_display_dir:s0 +/dev/socket/pdx/system/vr/display/client u:object_r:pdx_display_client_endpoint_socket:s0 +/dev/socket/pdx/system/vr/display/manager u:object_r:pdx_display_manager_endpoint_socket:s0 +/dev/socket/pdx/system/vr/display/screenshot u:object_r:pdx_display_screenshot_endpoint_socket:s0 +/dev/socket/pdx/system/vr/display/vsync u:object_r:pdx_display_vsync_endpoint_socket:s0 +/dev/socket/property_service u:object_r:property_socket:s0 +/dev/socket/racoon u:object_r:racoon_socket:s0 +/dev/socket/rild u:object_r:rild_socket:s0 +/dev/socket/rild-debug u:object_r:rild_debug_socket:s0 +/dev/socket/tombstoned_crash u:object_r:tombstoned_crash_socket:s0 +/dev/socket/tombstoned_intercept u:object_r:tombstoned_intercept_socket:s0 +/dev/socket/uncrypt u:object_r:uncrypt_socket:s0 +/dev/socket/vold u:object_r:vold_socket:s0 +/dev/socket/webview_zygote u:object_r:webview_zygote_socket:s0 +/dev/socket/wpa_eth[0-9] u:object_r:wpa_socket:s0 +/dev/socket/wpa_wlan[0-9] u:object_r:wpa_socket:s0 +/dev/socket/zygote u:object_r:zygote_socket:s0 +/dev/socket/zygote_secondary u:object_r:zygote_socket:s0 +/dev/spdif_out.* u:object_r:audio_device:s0 +/dev/tegra.* u:object_r:video_device:s0 +/dev/tty u:object_r:owntty_device:s0 +/dev/tty[0-9]* u:object_r:tty_device:s0 +/dev/ttyS[0-9]* u:object_r:serial_device:s0 +/dev/tun u:object_r:tun_device:s0 +/dev/uhid u:object_r:uhid_device:s0 +/dev/uinput u:object_r:uhid_device:s0 +/dev/uio[0-9]* u:object_r:uio_device:s0 +/dev/urandom u:object_r:random_device:s0 +/dev/usb_accessory u:object_r:usbaccessory_device:s0 +/dev/vcs[0-9a-z]* u:object_r:vcs_device:s0 +/dev/video[0-9]* u:object_r:video_device:s0 +/dev/vndbinder u:object_r:vndbinder_device:s0 +/dev/watchdog u:object_r:watchdog_device:s0 +/dev/xt_qtaguid u:object_r:qtaguid_device:s0 +/dev/zero u:object_r:zero_device:s0 +/dev/__properties__ u:object_r:properties_device:s0 +############################# +# System files +# +/system(/.*)? u:object_r:system_file:s0 +/system/bin/atrace u:object_r:atrace_exec:s0 +/system/bin/e2fsck -- u:object_r:fsck_exec:s0 +/system/bin/fsck\.f2fs -- u:object_r:fsck_exec:s0 +/system/bin/fsck_msdos -- u:object_r:fsck_exec:s0 +/system/bin/tune2fs -- u:object_r:fsck_exec:s0 +/system/bin/toolbox -- u:object_r:toolbox_exec:s0 +/system/bin/toybox -- u:object_r:toolbox_exec:s0 +/system/bin/logcat -- u:object_r:logcat_exec:s0 +/system/bin/logcatd -- u:object_r:logcat_exec:s0 +/system/bin/sh -- u:object_r:shell_exec:s0 +/system/bin/run-as -- u:object_r:runas_exec:s0 +/system/bin/bootanimation u:object_r:bootanim_exec:s0 +/system/bin/bootstat u:object_r:bootstat_exec:s0 +/system/bin/app_process32 u:object_r:zygote_exec:s0 +/system/bin/app_process64 u:object_r:zygote_exec:s0 +/system/bin/servicemanager u:object_r:servicemanager_exec:s0 +/system/bin/hwservicemanager u:object_r:hwservicemanager_exec:s0 +/system/bin/surfaceflinger u:object_r:surfaceflinger_exec:s0 +/system/bin/bufferhubd u:object_r:bufferhubd_exec:s0 +/system/bin/performanced u:object_r:performanced_exec:s0 +/system/bin/drmserver u:object_r:drmserver_exec:s0 +/system/bin/dumpstate u:object_r:dumpstate_exec:s0 +/system/bin/incident u:object_r:incident_exec:s0 +/system/bin/incidentd u:object_r:incidentd_exec:s0 +/system/bin/netutils-wrapper-1\.0 u:object_r:netutils_wrapper_exec:s0 +/system/bin/vold u:object_r:vold_exec:s0 +/system/bin/netd u:object_r:netd_exec:s0 +/system/bin/wificond u:object_r:wificond_exec:s0 +/system/bin/audioserver u:object_r:audioserver_exec:s0 +/system/bin/mediadrmserver u:object_r:mediadrmserver_exec:s0 +/system/bin/mediaserver u:object_r:mediaserver_exec:s0 +/system/bin/mediametrics u:object_r:mediametrics_exec:s0 +/system/bin/cameraserver u:object_r:cameraserver_exec:s0 +/system/bin/mediaextractor u:object_r:mediaextractor_exec:s0 +/system/bin/mdnsd u:object_r:mdnsd_exec:s0 +/system/bin/installd u:object_r:installd_exec:s0 +/system/bin/otapreopt_chroot u:object_r:otapreopt_chroot_exec:s0 +/system/bin/otapreopt_slot u:object_r:otapreopt_slot_exec:s0 +/system/bin/keystore u:object_r:keystore_exec:s0 +/system/bin/fingerprintd u:object_r:fingerprintd_exec:s0 +/system/bin/gatekeeperd u:object_r:gatekeeperd_exec:s0 +/system/bin/crash_dump32 u:object_r:crash_dump_exec:s0 +/system/bin/crash_dump64 u:object_r:crash_dump_exec:s0 +/system/bin/tombstoned u:object_r:tombstoned_exec:s0 +/system/bin/recovery-persist u:object_r:recovery_persist_exec:s0 +/system/bin/recovery-refresh u:object_r:recovery_refresh_exec:s0 +/system/bin/sdcard u:object_r:sdcardd_exec:s0 +/system/bin/dhcpcd u:object_r:dhcp_exec:s0 +/system/bin/dhcpcd-6.8.2 u:object_r:dhcp_exec:s0 +/system/bin/mtpd u:object_r:mtp_exec:s0 +/system/bin/pppd u:object_r:ppp_exec:s0 +/system/bin/racoon u:object_r:racoon_exec:s0 +/system/xbin/su u:object_r:su_exec:s0 +/system/xbin/perfprofd u:object_r:perfprofd_exec:s0 +/system/bin/dnsmasq u:object_r:dnsmasq_exec:s0 +/system/bin/healthd u:object_r:healthd_exec:s0 +/system/bin/clatd u:object_r:clatd_exec:s0 +/system/bin/lmkd u:object_r:lmkd_exec:s0 +/system/bin/inputflinger u:object_r:inputflinger_exec:s0 +/system/bin/logd u:object_r:logd_exec:s0 +/system/bin/uncrypt u:object_r:uncrypt_exec:s0 +/system/bin/update_verifier u:object_r:update_verifier_exec:s0 +/system/bin/logwrapper u:object_r:system_file:s0 +/system/bin/vdc u:object_r:vdc_exec:s0 +/system/bin/cppreopts.sh u:object_r:cppreopts_exec:s0 +/system/bin/preopt2cachename u:object_r:preopt2cachename_exec:s0 +/system/bin/install-recovery.sh u:object_r:install_recovery_exec:s0 +/system/bin/dex2oat(d)? u:object_r:dex2oat_exec:s0 +/system/bin/dexoptanalyzer u:object_r:dexoptanalyzer_exec:s0 +# patchoat executable has (essentially) the same requirements as dex2oat. +/system/bin/patchoat(d)? u:object_r:dex2oat_exec:s0 +/system/bin/profman u:object_r:profman_exec:s0 +/system/bin/sgdisk u:object_r:sgdisk_exec:s0 +/system/bin/blkid u:object_r:blkid_exec:s0 +/system/bin/tzdatacheck u:object_r:tzdatacheck_exec:s0 +/system/bin/idmap u:object_r:idmap_exec:s0 +/system/bin/update_engine u:object_r:update_engine_exec:s0 +/system/bin/bspatch u:object_r:update_engine_exec:s0 +/system/bin/storaged u:object_r:storaged_exec:s0 +/system/bin/webview_zygote32 u:object_r:webview_zygote_exec:s0 +/system/bin/webview_zygote64 u:object_r:webview_zygote_exec:s0 +/system/bin/virtual_touchpad u:object_r:virtual_touchpad_exec:s0 +/system/bin/hw/android\.hidl\.allocator@1\.0-service u:object_r:hal_allocator_default_exec:s0 +/system/etc/selinux/mapping/[0-9]+\.[0-9]+\.cil u:object_r:sepolicy_file:s0 +/system/etc/selinux/plat_mac_permissions\.xml u:object_r:mac_perms_file:s0 +/system/etc/selinux/plat_property_contexts u:object_r:property_contexts_file:s0 +/system/etc/selinux/plat_service_contexts u:object_r:service_contexts_file:s0 +/system/etc/selinux/plat_hwservice_contexts u:object_r:hwservice_contexts_file:s0 +/system/etc/selinux/plat_file_contexts u:object_r:file_contexts_file:s0 +/system/etc/selinux/plat_seapp_contexts u:object_r:seapp_contexts_file:s0 +/system/etc/selinux/plat_sepolicy.cil u:object_r:sepolicy_file:s0 +/system/etc/selinux/plat_and_mapping_sepolicy\.cil\.sha256 u:object_r:sepolicy_file:s0 +/system/bin/vr_hwc u:object_r:vr_hwc_exec:s0 + +############################# +# Vendor files +# +/(vendor|system/vendor)(/.*)? u:object_r:vendor_file:s0 +/(vendor|system/vendor)/bin/sh u:object_r:vendor_shell_exec:s0 +/(vendor|system/vendor)/bin/toybox_vendor u:object_r:vendor_toolbox_exec:s0 +/(vendor|system/vendor)/etc(/.*)? u:object_r:vendor_configs_file:s0 + +/(vendor|system/vendor)/lib(64)?/egl(/.*)? u:object_r:same_process_hal_file:s0 + +/(vendor|system/vendor)/lib(64)?/vndk-sp(/.*)? u:object_r:vndk_sp_file:s0 + +# TODO: b/36790901 move this to /vendor/etc +/(vendor|system/vendor)/manifest.xml u:object_r:vendor_configs_file:s0 +/(vendor|system/vendor)/compatibility_matrix.xml u:object_r:vendor_configs_file:s0 +/(vendor|system/vendor)/app(/.*)? u:object_r:vendor_app_file:s0 +/(vendor|system/vendor)/overlay(/.*)? u:object_r:vendor_overlay_file:s0 +/(vendor|system/vendor)/framework(/.*)? u:object_r:vendor_framework_file:s0 + +# HAL location +/(vendor|system/vendor)/lib(64)?/hw u:object_r:vendor_hal_file:s0 + +/vendor/etc/selinux/nonplat_mac_permissions.xml u:object_r:mac_perms_file:s0 +/vendor/etc/selinux/nonplat_property_contexts u:object_r:property_contexts_file:s0 +/vendor/etc/selinux/nonplat_service_contexts u:object_r:service_contexts_file:s0 +/vendor/etc/selinux/nonplat_hwservice_contexts u:object_r:hwservice_contexts_file:s0 +/vendor/etc/selinux/nonplat_file_contexts u:object_r:file_contexts_file:s0 +/vendor/etc/selinux/nonplat_seapp_contexts u:object_r:seapp_contexts_file:s0 +/vendor/etc/selinux/nonplat_sepolicy.cil u:object_r:sepolicy_file:s0 +/vendor/etc/selinux/precompiled_sepolicy u:object_r:sepolicy_file:s0 +/vendor/etc/selinux/precompiled_sepolicy\.plat_and_mapping\.sha256 u:object_r:sepolicy_file:s0 +/vendor/etc/selinux/vndservice_contexts u:object_r:vndservice_contexts_file:s0 + +############################# +# OEM and ODM files +# +/odm(/.*)? u:object_r:system_file:s0 +/oem(/.*)? u:object_r:oemfs:s0 + + +############################# +# Data files +# +# NOTE: When modifying existing label rules, changes may also need to +# propagate to the "Expanded data files" section. +# +/data(/.*)? u:object_r:system_data_file:s0 +/data/.layout_version u:object_r:install_data_file:s0 +/data/unencrypted(/.*)? u:object_r:unencrypted_data_file:s0 +/data/backup(/.*)? u:object_r:backup_data_file:s0 +/data/secure/backup(/.*)? u:object_r:backup_data_file:s0 +/data/system/ndebugsocket u:object_r:system_ndebug_socket:s0 +/data/drm(/.*)? u:object_r:drm_data_file:s0 +/data/resource-cache(/.*)? u:object_r:resourcecache_data_file:s0 +/data/dalvik-cache(/.*)? u:object_r:dalvikcache_data_file:s0 +/data/ota(/.*)? u:object_r:ota_data_file:s0 +/data/ota_package(/.*)? u:object_r:ota_package_file:s0 +/data/adb(/.*)? u:object_r:adb_data_file:s0 +/data/anr(/.*)? u:object_r:anr_data_file:s0 +/data/app(/.*)? u:object_r:apk_data_file:s0 +/data/app/[^/]+/oat(/.*)? u:object_r:dalvikcache_data_file:s0 +/data/app/vmdl[^/]+\.tmp(/.*)? u:object_r:apk_tmp_file:s0 +/data/app/vmdl[^/]+\.tmp/oat(/.*)? u:object_r:dalvikcache_data_file:s0 +/data/app-private(/.*)? u:object_r:apk_private_data_file:s0 +/data/app-private/vmdl.*\.tmp(/.*)? u:object_r:apk_private_tmp_file:s0 +/data/tombstones(/.*)? u:object_r:tombstone_data_file:s0 +/data/local/tmp(/.*)? u:object_r:shell_data_file:s0 +/data/media(/.*)? u:object_r:media_rw_data_file:s0 +/data/mediadrm(/.*)? u:object_r:media_data_file:s0 +/data/nativetest(/.*)? u:object_r:nativetest_data_file:s0 +/data/nativetest64(/.*)? u:object_r:nativetest_data_file:s0 +/data/property(/.*)? u:object_r:property_data_file:s0 +/data/preloads(/.*)? u:object_r:preloads_data_file:s0 +/data/preloads/media(/.*)? u:object_r:preloads_media_file:s0 +/data/preloads/demo(/.*)? u:object_r:preloads_media_file:s0 + +# Misc data +/data/misc/adb(/.*)? u:object_r:adb_keys_file:s0 +/data/misc/audio(/.*)? u:object_r:audio_data_file:s0 +/data/misc/audioserver(/.*)? u:object_r:audioserver_data_file:s0 +/data/misc/audiohal(/.*)? u:object_r:audiohal_data_file:s0 +/data/misc/bootstat(/.*)? u:object_r:bootstat_data_file:s0 +/data/misc/boottrace(/.*)? u:object_r:boottrace_data_file:s0 +/data/misc/bluetooth(/.*)? u:object_r:bluetooth_data_file:s0 +/data/misc/bluetooth/logs(/.*)? u:object_r:bluetooth_logs_data_file:s0 +/data/misc/bluedroid(/.*)? u:object_r:bluetooth_data_file:s0 +/data/misc/bluedroid/\.a2dp_ctrl u:object_r:bluetooth_socket:s0 +/data/misc/bluedroid/\.a2dp_data u:object_r:bluetooth_socket:s0 +/data/misc/camera(/.*)? u:object_r:camera_data_file:s0 +/data/misc/dhcp(/.*)? u:object_r:dhcp_data_file:s0 +/data/misc/dhcp-6.8.2(/.*)? u:object_r:dhcp_data_file:s0 +/data/misc/gatekeeper(/.*)? u:object_r:gatekeeper_data_file:s0 +/data/misc/incidents(/.*)? u:object_r:incident_data_file:s0 +/data/misc/keychain(/.*)? u:object_r:keychain_data_file:s0 +/data/misc/keystore(/.*)? u:object_r:keystore_data_file:s0 +/data/misc/logd(/.*)? u:object_r:misc_logd_file:s0 +/data/misc/media(/.*)? u:object_r:media_data_file:s0 +/data/misc/net(/.*)? u:object_r:net_data_file:s0 +/data/misc/reboot(/.*)? u:object_r:reboot_data_file:s0 +/data/misc/recovery(/.*)? u:object_r:recovery_data_file:s0 +/data/misc/shared_relro(/.*)? u:object_r:shared_relro_file:s0 +/data/misc/sms(/.*)? u:object_r:radio_data_file:s0 +/data/misc/systemkeys(/.*)? u:object_r:systemkeys_data_file:s0 +/data/misc/textclassifier(/.*)? u:object_r:textclassifier_data_file:s0 +/data/misc/user(/.*)? u:object_r:misc_user_data_file:s0 +/data/misc/vpn(/.*)? u:object_r:vpn_data_file:s0 +/data/misc/wifi(/.*)? u:object_r:wifi_data_file:s0 +/data/misc/wifi/sockets(/.*)? u:object_r:wpa_socket:s0 +/data/misc/wifi/sockets/wpa_ctrl.* u:object_r:system_wpa_socket:s0 +/data/misc/zoneinfo(/.*)? u:object_r:zoneinfo_data_file:s0 +/data/misc/vold(/.*)? u:object_r:vold_data_file:s0 +/data/misc/perfprofd(/.*)? u:object_r:perfprofd_data_file:s0 +/data/misc/update_engine(/.*)? u:object_r:update_engine_data_file:s0 +/data/system/heapdump(/.*)? u:object_r:heapdump_data_file:s0 +/data/misc/trace(/.*)? u:object_r:method_trace_data_file:s0 +# TODO(calin) label profile reference differently so that only +# profman run as a special user can write to them +/data/misc/profiles/cur(/.*)? u:object_r:user_profile_data_file:s0 +/data/misc/profiles/ref(/.*)? u:object_r:user_profile_data_file:s0 +/data/misc/profman(/.*)? u:object_r:profman_dump_data_file:s0 + +# Fingerprint data +/data/system/users/[0-9]+/fpdata(/.*)? u:object_r:fingerprintd_data_file:s0 + +# Bootchart data +/data/bootchart(/.*)? u:object_r:bootchart_data_file:s0 + +############################# +# Expanded data files +# +/mnt/expand(/.*)? u:object_r:mnt_expand_file:s0 +/mnt/expand/[^/]+(/.*)? u:object_r:system_data_file:s0 +/mnt/expand/[^/]+/app(/.*)? u:object_r:apk_data_file:s0 +/mnt/expand/[^/]+/app/[^/]+/oat(/.*)? u:object_r:dalvikcache_data_file:s0 +/mnt/expand/[^/]+/app/vmdl[^/]+\.tmp(/.*)? u:object_r:apk_tmp_file:s0 +/mnt/expand/[^/]+/app/vmdl[^/]+\.tmp/oat(/.*)? u:object_r:dalvikcache_data_file:s0 +/mnt/expand/[^/]+/local/tmp(/.*)? u:object_r:shell_data_file:s0 +/mnt/expand/[^/]+/media(/.*)? u:object_r:media_rw_data_file:s0 +/mnt/expand/[^/]+/misc/vold(/.*)? u:object_r:vold_data_file:s0 + +# coredump directory for userdebug/eng devices +/cores(/.*)? u:object_r:coredump_file:s0 + +# Wallpaper files +/data/system/users/[0-9]+/wallpaper_lock_orig u:object_r:wallpaper_file:s0 +/data/system/users/[0-9]+/wallpaper_lock u:object_r:wallpaper_file:s0 +/data/system/users/[0-9]+/wallpaper_orig u:object_r:wallpaper_file:s0 +/data/system/users/[0-9]+/wallpaper u:object_r:wallpaper_file:s0 + +# Ringtone files +/data/system_de/[0-9]+/ringtones(/.*)? u:object_r:ringtone_file:s0 + +# ShortcutManager icons, e.g. +# /data/system_ce/0/shortcut_service/bitmaps/com.example.app/1457472879282.png +/data/system_ce/[0-9]+/shortcut_service/bitmaps(/.*)? u:object_r:shortcut_manager_icons:s0 + +# User icon files +/data/system/users/[0-9]+/photo.png u:object_r:icon_file:s0 + +############################# +# efs files +# +/efs(/.*)? u:object_r:efs_file:s0 + +############################# +# Cache files +# +/cache(/.*)? u:object_r:cache_file:s0 +/cache/recovery(/.*)? u:object_r:cache_recovery_file:s0 +# General backup/restore interchange with apps +/cache/backup_stage(/.*)? u:object_r:cache_backup_file:s0 +# LocalTransport (backup) uses this subtree +/cache/backup(/.*)? u:object_r:cache_private_backup_file:s0 + +/data/cache(/.*)? u:object_r:cache_file:s0 +/data/cache/recovery(/.*)? u:object_r:cache_recovery_file:s0 +# General backup/restore interchange with apps +/data/cache/backup_stage(/.*)? u:object_r:cache_backup_file:s0 +# LocalTransport (backup) uses this subtree +/data/cache/backup(/.*)? u:object_r:cache_private_backup_file:s0 + +############################# +# sysfs files +# +/sys/class/leds(/.*)? u:object_r:sysfs_leds:s0 +/sys/devices/platform/nfc-power/nfc_power -- u:object_r:sysfs_nfc_power_writable:s0 +/sys/devices/virtual/block/zram\d+(/.*)? u:object_r:sysfs_zram:s0 +/sys/devices/virtual/block/zram\d+/uevent u:object_r:sysfs_zram_uevent:s0 +/sys/devices/virtual/misc/hw_random(/.*)? u:object_r:sysfs_hwrandom:s0 +/sys/power/wake_lock -- u:object_r:sysfs_wake_lock:s0 +/sys/power/wake_unlock -- u:object_r:sysfs_wake_lock:s0 +/sys/kernel/uevent_helper -- u:object_r:usermodehelper:s0 +/sys/module/lowmemorykiller(/.*)? -- u:object_r:sysfs_lowmemorykiller:s0 +/sys/module/wlan/parameters/fwpath u:object_r:sysfs_wlan_fwpath:s0 +/sys/devices/virtual/timed_output/vibrator/enable u:object_r:sysfs_vibrator:s0 + +############################# +# debugfs files +# +/sys/kernel/debug/mmc0(/.*)? u:object_r:debugfs_mmc:s0 + +############################# +# tracefs files +# +/sys/kernel(/debug)?/tracing/buffer_size_kb u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/binder/binder_locked/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/binder/binder_lock/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/binder/binder_transaction/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/binder/binder_transaction_received/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/binder/binder_unlock/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/cpufreq_interactive/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/power/clock_set_rate/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/power/cpu_frequency/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/power/cpu_frequency_limits/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/power/cpu_idle/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/sched/sched_blocked_reason/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/sched/sched_cpu_hotplug/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/sched/sched_switch/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/sched/sched_wakeup/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/vmscan/mm_vmscan_direct_reclaim_begin/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/vmscan/mm_vmscan_direct_reclaim_end/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/vmscan/mm_vmscan_kswapd_sleep/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/events/vmscan/mm_vmscan_kswapd_wake/enable u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/instances(/.*)? u:object_r:debugfs_tracing_instances:s0 +/sys/kernel(/debug)?/tracing/instances/wifi/free_buffer u:object_r:debugfs_wifi_tracing:s0 +/sys/kernel(/debug)?/tracing/instances/wifi/trace u:object_r:debugfs_wifi_tracing:s0 +/sys/kernel(/debug)?/tracing/instances/wifi/tracing_on u:object_r:debugfs_wifi_tracing:s0 +/sys/kernel(/debug)?/tracing/options/overwrite u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/options/print-tgid u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/trace u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/trace_clock u:object_r:tracing_shell_writable:s0 +/sys/kernel(/debug)?/tracing/trace_marker u:object_r:debugfs_trace_marker:s0 +/sys/kernel(/debug)?/tracing/tracing_on u:object_r:tracing_shell_writable:s0 + +########################################### +# debug-only tracing +# +/sys/kernel/debug/tracing/events/sync/enable u:object_r:tracing_shell_writable_debug:s0 +/sys/kernel/debug/tracing/events/workqueue/enable u:object_r:tracing_shell_writable_debug:s0 +/sys/kernel/debug/tracing/events/regulator/enable u:object_r:tracing_shell_writable_debug:s0 +/sys/kernel/debug/tracing/events/pagecache/enable u:object_r:tracing_shell_writable_debug:s0 + +/sys/kernel/debug/tracing/events/irq/enable u:object_r:tracing_shell_writable_debug:s0 +/sys/kernel/debug/tracing/events/ipi/enable u:object_r:tracing_shell_writable_debug:s0 + +/sys/kernel/debug/tracing/events/f2fs/f2fs_sync_file_enter/enable u:object_r:tracing_shell_writable_debug:s0 +/sys/kernel/debug/tracing/events/f2fs/f2fs_sync_file_exit/enable u:object_r:tracing_shell_writable_debug:s0 +/sys/kernel/debug/tracing/events/f2fs/f2fs_write_begin/enable u:object_r:tracing_shell_writable_debug:s0 +/sys/kernel/debug/tracing/events/f2fs/f2fs_write_end/enable u:object_r:tracing_shell_writable_debug:s0 +/sys/kernel/debug/tracing/events/ext4/ext4_da_write_begin/enable u:object_r:tracing_shell_writable_debug:s0 +/sys/kernel/debug/tracing/events/ext4/ext4_da_write_end/enable u:object_r:tracing_shell_writable_debug:s0 +/sys/kernel/debug/tracing/events/ext4/ext4_sync_file_enter/enable u:object_r:tracing_shell_writable_debug:s0 +/sys/kernel/debug/tracing/events/ext4/ext4_sync_file_exit/enable u:object_r:tracing_shell_writable_debug:s0 +/sys/kernel/debug/tracing/events/block/block_rq_issue/enable u:object_r:tracing_shell_writable_debug:s0 +/sys/kernel/debug/tracing/events/block/block_rq_complete/enable u:object_r:tracing_shell_writable_debug:s0 +/sys/kernel/debug/tracing/saved_cmdlines_size u:object_r:tracing_shell_writable_debug:s0 + +############################# +# asec containers +/mnt/asec(/.*)? u:object_r:asec_apk_file:s0 +/mnt/asec/[^/]+/[^/]+\.zip u:object_r:asec_public_file:s0 +/mnt/asec/[^/]+/lib(/.*)? u:object_r:asec_public_file:s0 +/data/app-asec(/.*)? u:object_r:asec_image_file:s0 + +############################# +# external storage +/mnt/media_rw(/.*)? u:object_r:mnt_media_rw_file:s0 +/mnt/user(/.*)? u:object_r:mnt_user_file:s0 +/mnt/runtime(/.*)? u:object_r:storage_file:s0 +/storage(/.*)? u:object_r:storage_file:s0 diff --git a/prebuilts/api/26.0/private/file_contexts_asan b/prebuilts/api/26.0/private/file_contexts_asan new file mode 100644 index 000000000..d35cd3c94 --- /dev/null +++ b/prebuilts/api/26.0/private/file_contexts_asan @@ -0,0 +1,5 @@ +/data/asan/system/lib(/.*)? u:object_r:system_file:s0 +/data/asan/system/lib64(/.*)? u:object_r:system_file:s0 +/data/asan/vendor/lib(/.*)? u:object_r:system_file:s0 +/data/asan/vendor/lib64(/.*)? u:object_r:system_file:s0 +/system/bin/asan_extract u:object_r:asan_extract_exec:s0 diff --git a/prebuilts/api/26.0/private/fingerprintd.te b/prebuilts/api/26.0/private/fingerprintd.te new file mode 100644 index 000000000..0c1dfaa37 --- /dev/null +++ b/prebuilts/api/26.0/private/fingerprintd.te @@ -0,0 +1,4 @@ +typeattribute fingerprintd coredomain; +typeattribute fingerprintd domain_deprecated; + +init_daemon_domain(fingerprintd) diff --git a/prebuilts/api/26.0/private/fs_use b/prebuilts/api/26.0/private/fs_use new file mode 100644 index 000000000..4bd11126e --- /dev/null +++ b/prebuilts/api/26.0/private/fs_use @@ -0,0 +1,23 @@ +# Label inodes via getxattr. +fs_use_xattr yaffs2 u:object_r:labeledfs:s0; +fs_use_xattr jffs2 u:object_r:labeledfs:s0; +fs_use_xattr ext2 u:object_r:labeledfs:s0; +fs_use_xattr ext3 u:object_r:labeledfs:s0; +fs_use_xattr ext4 u:object_r:labeledfs:s0; +fs_use_xattr xfs u:object_r:labeledfs:s0; +fs_use_xattr btrfs u:object_r:labeledfs:s0; +fs_use_xattr f2fs u:object_r:labeledfs:s0; +fs_use_xattr squashfs u:object_r:labeledfs:s0; + +# Label inodes from task label. +fs_use_task pipefs u:object_r:pipefs:s0; +fs_use_task sockfs u:object_r:sockfs:s0; + +# Label inodes from combination of task label and fs label. +# Define type_transition rules if you want per-domain types. +fs_use_trans devpts u:object_r:devpts:s0; +fs_use_trans tmpfs u:object_r:tmpfs:s0; +fs_use_trans devtmpfs u:object_r:device:s0; +fs_use_trans shm u:object_r:shm:s0; +fs_use_trans mqueue u:object_r:mqueue:s0; + diff --git a/prebuilts/api/26.0/private/fsck.te b/prebuilts/api/26.0/private/fsck.te new file mode 100644 index 000000000..e8467972f --- /dev/null +++ b/prebuilts/api/26.0/private/fsck.te @@ -0,0 +1,4 @@ +typeattribute fsck coredomain; +typeattribute fsck domain_deprecated; + +init_daemon_domain(fsck) diff --git a/prebuilts/api/26.0/private/fsck_untrusted.te b/prebuilts/api/26.0/private/fsck_untrusted.te new file mode 100644 index 000000000..2a1a39f46 --- /dev/null +++ b/prebuilts/api/26.0/private/fsck_untrusted.te @@ -0,0 +1,2 @@ +typeattribute fsck_untrusted coredomain; +typeattribute fsck_untrusted domain_deprecated; diff --git a/prebuilts/api/26.0/private/gatekeeperd.te b/prebuilts/api/26.0/private/gatekeeperd.te new file mode 100644 index 000000000..5e4d0a2e9 --- /dev/null +++ b/prebuilts/api/26.0/private/gatekeeperd.te @@ -0,0 +1,3 @@ +typeattribute gatekeeperd coredomain; + +init_daemon_domain(gatekeeperd) diff --git a/prebuilts/api/26.0/private/genfs_contexts b/prebuilts/api/26.0/private/genfs_contexts new file mode 100644 index 000000000..a2d9b892f --- /dev/null +++ b/prebuilts/api/26.0/private/genfs_contexts @@ -0,0 +1,61 @@ +# Label inodes with the fs label. +genfscon rootfs / u:object_r:rootfs:s0 +# proc labeling can be further refined (longest matching prefix). +genfscon proc / u:object_r:proc:s0 +genfscon proc /config.gz u:object_r:config_gz:s0 +genfscon proc /interrupts u:object_r:proc_interrupts:s0 +genfscon proc /iomem u:object_r:proc_iomem:s0 +genfscon proc /meminfo u:object_r:proc_meminfo:s0 +genfscon proc /misc u:object_r:proc_misc:s0 +genfscon proc /modules u:object_r:proc_modules:s0 +genfscon proc /net u:object_r:proc_net:s0 +genfscon proc /net/xt_qtaguid/ctrl u:object_r:qtaguid_proc:s0 +genfscon proc /cpuinfo u:object_r:proc_cpuinfo:s0 +genfscon proc /softirqs u:object_r:proc_timer:s0 +genfscon proc /stat u:object_r:proc_stat:s0 +genfscon proc /sysrq-trigger u:object_r:proc_sysrq:s0 +genfscon proc /sys/fs/protected_hardlinks u:object_r:proc_security:s0 +genfscon proc /sys/fs/protected_symlinks u:object_r:proc_security:s0 +genfscon proc /sys/fs/suid_dumpable u:object_r:proc_security:s0 +genfscon proc /sys/kernel/core_pattern u:object_r:usermodehelper:s0 +genfscon proc /sys/kernel/dmesg_restrict u:object_r:proc_security:s0 +genfscon proc /sys/kernel/hotplug u:object_r:usermodehelper:s0 +genfscon proc /sys/kernel/kptr_restrict u:object_r:proc_security:s0 +genfscon proc /sys/kernel/modprobe u:object_r:usermodehelper:s0 +genfscon proc /sys/kernel/modules_disabled u:object_r:proc_security:s0 +genfscon proc /sys/kernel/perf_event_max_sample_rate u:object_r:proc_perf:s0 +genfscon proc /sys/kernel/poweroff_cmd u:object_r:usermodehelper:s0 +genfscon proc /sys/kernel/randomize_va_space u:object_r:proc_security:s0 +genfscon proc /sys/kernel/usermodehelper u:object_r:usermodehelper:s0 +genfscon proc /sys/net u:object_r:proc_net:s0 +genfscon proc /sys/vm/mmap_min_addr u:object_r:proc_security:s0 +genfscon proc /sys/vm/mmap_rnd_bits u:object_r:proc_security:s0 +genfscon proc /sys/vm/mmap_rnd_compat_bits u:object_r:proc_security:s0 +genfscon proc /sys/vm/drop_caches u:object_r:proc_drop_caches:s0 +genfscon proc /sys/vm/overcommit_memory u:object_r:proc_overcommit_memory:s0 +genfscon proc /timer_list u:object_r:proc_timer:s0 +genfscon proc /timer_stats u:object_r:proc_timer:s0 +genfscon proc /tty/drivers u:object_r:proc_tty_drivers:s0 +genfscon proc /uid_cputime/show_uid_stat u:object_r:proc_uid_cputime_showstat:s0 +genfscon proc /uid_cputime/remove_uid_range u:object_r:proc_uid_cputime_removeuid:s0 +genfscon proc /uid_io/stats u:object_r:proc_uid_io_stats:s0 +genfscon proc /uid_procstat/set u:object_r:proc_uid_procstat_set:s0 +genfscon proc /zoneinfo u:object_r:proc_zoneinfo:s0 + +# selinuxfs booleans can be individually labeled. +genfscon selinuxfs / u:object_r:selinuxfs:s0 +genfscon cgroup / u:object_r:cgroup:s0 +# sysfs labels can be set by userspace. +genfscon sysfs / u:object_r:sysfs:s0 +genfscon sysfs /devices/system/cpu u:object_r:sysfs_devices_system_cpu:s0 +genfscon inotifyfs / u:object_r:inotify:s0 +genfscon vfat / u:object_r:vfat:s0 +genfscon debugfs / u:object_r:debugfs:s0 +genfscon tracefs / u:object_r:debugfs_tracing:s0 +genfscon fuse / u:object_r:fuse:s0 +genfscon configfs / u:object_r:configfs:s0 +genfscon sdcardfs / u:object_r:sdcardfs:s0 +genfscon pstore / u:object_r:pstorefs:s0 +genfscon functionfs / u:object_r:functionfs:s0 +genfscon usbfs / u:object_r:usbfs:s0 +genfscon binfmt_misc / u:object_r:binfmt_miscfs:s0 diff --git a/prebuilts/api/26.0/private/hal_allocator_default.te b/prebuilts/api/26.0/private/hal_allocator_default.te new file mode 100644 index 000000000..49ef1781b --- /dev/null +++ b/prebuilts/api/26.0/private/hal_allocator_default.te @@ -0,0 +1,5 @@ +type hal_allocator_default, domain, coredomain; +hal_server_domain(hal_allocator_default, hal_allocator) + +type hal_allocator_default_exec, exec_type, file_type; +init_daemon_domain(hal_allocator_default) diff --git a/prebuilts/api/26.0/private/halclientdomain.te b/prebuilts/api/26.0/private/halclientdomain.te new file mode 100644 index 000000000..9dcd3ee38 --- /dev/null +++ b/prebuilts/api/26.0/private/halclientdomain.te @@ -0,0 +1,13 @@ +### +### Rules for all domains which are clients of a HAL +### + +# Find out whether a HAL in passthrough/in-process mode or +# binderized/out-of-process mode +hwbinder_use(halclientdomain) + +# Used to wait for hwservicemanager +get_prop(halclientdomain, hwservicemanager_prop) + +# Wait for HAL server to be up (used by getService) +allow halclientdomain hidl_manager_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/private/halserverdomain.te b/prebuilts/api/26.0/private/halserverdomain.te new file mode 100644 index 000000000..f36e0e7d8 --- /dev/null +++ b/prebuilts/api/26.0/private/halserverdomain.te @@ -0,0 +1,12 @@ +### +### Rules for all domains which offer a HAL service over HwBinder +### + +# Register the HAL service with hwservicemanager +hwbinder_use(halserverdomain) + +# Find HAL implementations +allow halserverdomain system_file:dir r_dir_perms; + +# Used to wait for hwservicemanager +get_prop(halserverdomain, hwservicemanager_prop) diff --git a/prebuilts/api/26.0/private/healthd.te b/prebuilts/api/26.0/private/healthd.te new file mode 100644 index 000000000..0693a3a68 --- /dev/null +++ b/prebuilts/api/26.0/private/healthd.te @@ -0,0 +1,6 @@ +typeattribute healthd coredomain; + +init_daemon_domain(healthd) + +# Allow callback to storaged batteryproperties listener +binder_call(healthd, storaged) diff --git a/prebuilts/api/26.0/private/hwservice_contexts b/prebuilts/api/26.0/private/hwservice_contexts new file mode 100644 index 000000000..051636462 --- /dev/null +++ b/prebuilts/api/26.0/private/hwservice_contexts @@ -0,0 +1,52 @@ +android.frameworks.displayservice::IDisplayService u:object_r:fwk_display_hwservice:s0 +android.frameworks.schedulerservice::ISchedulingPolicyService u:object_r:fwk_scheduler_hwservice:s0 +android.frameworks.sensorservice::ISensorManager u:object_r:fwk_sensor_hwservice:s0 +android.hardware.audio.effect::IEffectsFactory u:object_r:hal_audio_hwservice:s0 +android.hardware.audio::IDevicesFactory u:object_r:hal_audio_hwservice:s0 +android.hardware.biometrics.fingerprint::IBiometricsFingerprint u:object_r:hal_fingerprint_hwservice:s0 +android.hardware.bluetooth::IBluetoothHci u:object_r:hal_bluetooth_hwservice:s0 +android.hardware.boot::IBootControl u:object_r:hal_bootctl_hwservice:s0 +android.hardware.broadcastradio::IBroadcastRadioFactory u:object_r:hal_audio_hwservice:s0 +android.hardware.camera.provider::ICameraProvider u:object_r:hal_camera_hwservice:s0 +android.hardware.configstore::ISurfaceFlingerConfigs u:object_r:hal_configstore_ISurfaceFlingerConfigs:s0 +android.hardware.contexthub::IContexthub u:object_r:hal_contexthub_hwservice:s0 +android.hardware.drm::ICryptoFactory u:object_r:hal_drm_hwservice:s0 +android.hardware.drm::IDrmFactory u:object_r:hal_drm_hwservice:s0 +android.hardware.dumpstate::IDumpstateDevice u:object_r:hal_dumpstate_hwservice:s0 +android.hardware.gatekeeper::IGatekeeper u:object_r:hal_gatekeeper_hwservice:s0 +android.hardware.gnss::IGnss u:object_r:hal_gnss_hwservice:s0 +android.hardware.graphics.allocator::IAllocator u:object_r:hal_graphics_allocator_hwservice:s0 +android.hardware.graphics.composer::IComposer u:object_r:hal_graphics_composer_hwservice:s0 +android.hardware.graphics.mapper::IMapper u:object_r:hal_graphics_mapper_hwservice:s0 +android.hardware.health::IHealth u:object_r:hal_health_hwservice:s0 +android.hardware.ir::IConsumerIr u:object_r:hal_ir_hwservice:s0 +android.hardware.keymaster::IKeymasterDevice u:object_r:hal_keymaster_hwservice:s0 +android.hardware.light::ILight u:object_r:hal_light_hwservice:s0 +android.hardware.media.omx::IOmx u:object_r:hal_omx_hwservice:s0 +android.hardware.media.omx::IOmxStore u:object_r:hal_omx_hwservice:s0 +android.hardware.memtrack::IMemtrack u:object_r:hal_memtrack_hwservice:s0 +android.hardware.nfc::INfc u:object_r:hal_nfc_hwservice:s0 +android.hardware.oemlock::IOemLock u:object_r:hal_oemlock_hwservice:s0 +android.hardware.power::IPower u:object_r:hal_power_hwservice:s0 +android.hardware.radio.deprecated::IOemHook u:object_r:hal_telephony_hwservice:s0 +android.hardware.radio::IRadio u:object_r:hal_telephony_hwservice:s0 +android.hardware.radio::ISap u:object_r:hal_telephony_hwservice:s0 +android.hardware.renderscript::IDevice u:object_r:hal_renderscript_hwservice:s0 +android.hardware.sensors::ISensors u:object_r:hal_sensors_hwservice:s0 +android.hardware.soundtrigger::ISoundTriggerHw u:object_r:hal_audio_hwservice:s0 +android.hardware.thermal::IThermal u:object_r:hal_thermal_hwservice:s0 +android.hardware.tv.cec::IHdmiCec u:object_r:hal_tv_cec_hwservice:s0 +android.hardware.tv.input::ITvInput u:object_r:hal_tv_input_hwservice:s0 +android.hardware.usb::IUsb u:object_r:hal_usb_hwservice:s0 +android.hardware.vibrator::IVibrator u:object_r:hal_vibrator_hwservice:s0 +android.hardware.vr::IVr u:object_r:hal_vr_hwservice:s0 +android.hardware.weaver::IWeaver u:object_r:hal_weaver_hwservice:s0 +android.hardware.wifi::IWifi u:object_r:hal_wifi_hwservice:s0 +android.hardware.wifi.supplicant::ISupplicant u:object_r:hal_wifi_supplicant_hwservice:s0 +android.hidl.allocator::IAllocator u:object_r:hidl_allocator_hwservice:s0 +android.hidl.base::IBase u:object_r:hidl_base_hwservice:s0 +android.hidl.manager::IServiceManager u:object_r:hidl_manager_hwservice:s0 +android.hidl.memory::IMapper u:object_r:hidl_memory_hwservice:s0 +android.hidl.token::ITokenManager u:object_r:hidl_token_hwservice:s0 +android.system.wifi.keystore::IKeystore u:object_r:system_wifi_keystore_hwservice:s0 +* u:object_r:default_android_hwservice:s0 diff --git a/prebuilts/api/26.0/private/hwservicemanager.te b/prebuilts/api/26.0/private/hwservicemanager.te new file mode 100644 index 000000000..a43eb0206 --- /dev/null +++ b/prebuilts/api/26.0/private/hwservicemanager.te @@ -0,0 +1,6 @@ +typeattribute hwservicemanager coredomain; + +init_daemon_domain(hwservicemanager) + +add_hwservice(hwservicemanager, hidl_manager_hwservice) +add_hwservice(hwservicemanager, hidl_token_hwservice) diff --git a/prebuilts/api/26.0/private/idmap.te b/prebuilts/api/26.0/private/idmap.te new file mode 100644 index 000000000..73abf3552 --- /dev/null +++ b/prebuilts/api/26.0/private/idmap.te @@ -0,0 +1 @@ +typeattribute idmap coredomain; diff --git a/prebuilts/api/26.0/private/incident.te b/prebuilts/api/26.0/private/incident.te new file mode 100644 index 000000000..b910ddef3 --- /dev/null +++ b/prebuilts/api/26.0/private/incident.te @@ -0,0 +1,25 @@ +typeattribute incident coredomain; + +type incident_exec, exec_type, file_type; + +# switch to incident domain for incident command +domain_auto_trans(shell, incident_exec, incident) + +# allow incident access to stdout from its parent shell. +allow incident shell:fd use; + +# allow incident to communicate use, read and write over the adb +# connection. +allow incident adbd:fd use; +allow incident adbd:unix_stream_socket { read write }; + +# allow adbd to reap incident +allow incident adbd:process { sigchld }; + +# Allow the incident command to talk to the incidentd over the binder, and get +# back the incident report data from a ParcelFileDescriptor. +binder_use(incident) +allow incident incident_service:service_manager find; +binder_call(incident, incidentd) +allow incident incidentd:fifo_file write; + diff --git a/prebuilts/api/26.0/private/incidentd.te b/prebuilts/api/26.0/private/incidentd.te new file mode 100644 index 000000000..efd23bdae --- /dev/null +++ b/prebuilts/api/26.0/private/incidentd.te @@ -0,0 +1,110 @@ +typeattribute incidentd coredomain; + +init_daemon_domain(incidentd) +type incidentd_exec, exec_type, file_type; +binder_use(incidentd) +wakelock_use(incidentd) + +# Allow setting process priority, protect from OOM killer, and dropping +# privileges by switching UID / GID +# TODO allow incidentd self:capability { setuid setgid sys_resource }; + +# Allow incidentd to scan through /proc/pid for all processes +r_dir_file(incidentd, domain) + +allow incidentd self:capability { + # Send signals to processes + kill +}; + +# Allow executing files on system, such as: +# /system/bin/toolbox +# /system/bin/logcat +# /system/bin/dumpsys +allow incidentd system_file:file execute_no_trans; +allow incidentd toolbox_exec:file rx_file_perms; + +# Create and write into /data/misc/incidents +allow incidentd incident_data_file:dir rw_dir_perms; +allow incidentd incident_data_file:file create_file_perms; + +# Get process attributes +# TODO allow incidentd domain:process getattr; + +# Signal java processes to dump their stack and get the results +# TODO allow incidentd { appdomain ephemeral_app system_server }:process signal; +# TODO allow incidentd anr_data_file:dir rw_dir_perms; +# TODO allow incidentd anr_data_file:file create_file_perms; + +# Signal native processes to dump their stack. +# This list comes from native_processes_to_dump in incidentd/utils.c +allow incidentd { + audioserver + cameraserver + drmserver + inputflinger + mediacodec + mediadrmserver + mediaextractor + mediaserver + sdcardd + surfaceflinger +}:process signal; + +# Allow incidentd to make binder calls to any binder service +binder_call(incidentd, binderservicedomain) +binder_call(incidentd, appdomain) + +# Reading /proc/PID/maps of other processes +# TODO allow incidentd self:capability sys_ptrace; + +# Run a shell. +allow incidentd shell_exec:file rx_file_perms; + +# logd access - work to be done is a PII safe log (possibly an event log?) +# TODO read_logd(incidentd) +# TODO control_logd(incidentd) + +# Allow incidentd to find these standard groups of services. +# Others can be whitelisted individually. +allow incidentd { + system_server_service + app_api_service + system_api_service +}:service_manager find; + +# Only incidentd can publish the binder service +add_service(incidentd, incident_service) + +# Allow pipes from (and only from) incident +allow incidentd incident:fd use; +allow incidentd incident:fifo_file write; + +# Allow incident to call back to incident with status updates. +binder_call(incidentd, incident) + +### +### neverallow rules +### + +# only system_server, system_app and incident command can find the incident service +neverallow { domain -system_server -system_app -incident -incidentd } incident_service:service_manager find; + +# only incidentd and the other root services in limited circumstances +# can get to the files in /data/misc/incidents +# +# write, execute, append are forbidden almost everywhere +neverallow { domain -incidentd -init -vold } incident_data_file:file { + w_file_perms + x_file_perms + create + rename + setattr + unlink + append +}; +# read is also allowed by system_server, for when the file is handed to dropbox +neverallow { domain -incidentd -init -vold -system_server } incident_data_file:file r_file_perms; +# limited access to the directory itself +neverallow { domain -incidentd -init -vold } incident_data_file:dir create_dir_perms; + diff --git a/prebuilts/api/26.0/private/init.te b/prebuilts/api/26.0/private/init.te new file mode 100644 index 000000000..568e0d360 --- /dev/null +++ b/prebuilts/api/26.0/private/init.te @@ -0,0 +1,25 @@ +typeattribute init coredomain; + +tmpfs_domain(init) + +# Transitions to seclabel processes in init.rc +domain_trans(init, rootfs, adbd) +domain_trans(init, rootfs, charger) +domain_trans(init, rootfs, healthd) +domain_trans(init, rootfs, slideshow) +recovery_only(` + domain_trans(init, rootfs, recovery) +') +domain_trans(init, shell_exec, shell) +domain_trans(init, init_exec, ueventd) +domain_trans(init, init_exec, watchdogd) +domain_trans(init, { rootfs toolbox_exec }, modprobe) +# case where logpersistd is actually logcat -f in logd context (nee: logcatd) +userdebug_or_eng(` + domain_auto_trans(init, logcat_exec, logpersist) +') + +# Creating files on sysfs is impossible so this isn't a threat +# Sometimes we have to write to non-existent files to avoid conditional +# init behavior. See b/35303861 for an example. +dontaudit init sysfs:dir write; diff --git a/prebuilts/api/26.0/private/initial_sid_contexts b/prebuilts/api/26.0/private/initial_sid_contexts new file mode 100644 index 000000000..98190510f --- /dev/null +++ b/prebuilts/api/26.0/private/initial_sid_contexts @@ -0,0 +1,27 @@ +sid kernel u:r:kernel:s0 +sid security u:object_r:kernel:s0 +sid unlabeled u:object_r:unlabeled:s0 +sid fs u:object_r:labeledfs:s0 +sid file u:object_r:unlabeled:s0 +sid file_labels u:object_r:unlabeled:s0 +sid init u:object_r:unlabeled:s0 +sid any_socket u:object_r:unlabeled:s0 +sid port u:object_r:port:s0 +sid netif u:object_r:netif:s0 +sid netmsg u:object_r:unlabeled:s0 +sid node u:object_r:node:s0 +sid igmp_packet u:object_r:unlabeled:s0 +sid icmp_socket u:object_r:unlabeled:s0 +sid tcp_socket u:object_r:unlabeled:s0 +sid sysctl_modprobe u:object_r:unlabeled:s0 +sid sysctl u:object_r:proc:s0 +sid sysctl_fs u:object_r:unlabeled:s0 +sid sysctl_kernel u:object_r:unlabeled:s0 +sid sysctl_net u:object_r:unlabeled:s0 +sid sysctl_net_unix u:object_r:unlabeled:s0 +sid sysctl_vm u:object_r:unlabeled:s0 +sid sysctl_dev u:object_r:unlabeled:s0 +sid kmod u:object_r:unlabeled:s0 +sid policy u:object_r:unlabeled:s0 +sid scmp_packet u:object_r:unlabeled:s0 +sid devnull u:object_r:null_device:s0 diff --git a/prebuilts/api/26.0/private/initial_sids b/prebuilts/api/26.0/private/initial_sids new file mode 100644 index 000000000..91ac816ba --- /dev/null +++ b/prebuilts/api/26.0/private/initial_sids @@ -0,0 +1,35 @@ +# FLASK + +# +# Define initial security identifiers +# + +sid kernel +sid security +sid unlabeled +sid fs +sid file +sid file_labels +sid init +sid any_socket +sid port +sid netif +sid netmsg +sid node +sid igmp_packet +sid icmp_socket +sid tcp_socket +sid sysctl_modprobe +sid sysctl +sid sysctl_fs +sid sysctl_kernel +sid sysctl_net +sid sysctl_net_unix +sid sysctl_vm +sid sysctl_dev +sid kmod +sid policy +sid scmp_packet +sid devnull + +# FLASK diff --git a/prebuilts/api/26.0/private/inputflinger.te b/prebuilts/api/26.0/private/inputflinger.te new file mode 100644 index 000000000..9696b491b --- /dev/null +++ b/prebuilts/api/26.0/private/inputflinger.te @@ -0,0 +1,3 @@ +typeattribute inputflinger coredomain; + +init_daemon_domain(inputflinger) diff --git a/prebuilts/api/26.0/private/install_recovery.te b/prebuilts/api/26.0/private/install_recovery.te new file mode 100644 index 000000000..b79d683a6 --- /dev/null +++ b/prebuilts/api/26.0/private/install_recovery.te @@ -0,0 +1,3 @@ +typeattribute install_recovery coredomain; + +init_daemon_domain(install_recovery) diff --git a/prebuilts/api/26.0/private/installd.te b/prebuilts/api/26.0/private/installd.te new file mode 100644 index 000000000..d726e7df2 --- /dev/null +++ b/prebuilts/api/26.0/private/installd.te @@ -0,0 +1,19 @@ +typeattribute installd coredomain; +typeattribute installd domain_deprecated; + +init_daemon_domain(installd) + +# Run dex2oat in its own sandbox. +domain_auto_trans(installd, dex2oat_exec, dex2oat) + +# Run dexoptanalyzer in its own sandbox. +domain_auto_trans(installd, dexoptanalyzer_exec, dexoptanalyzer) + +# Run profman in its own sandbox. +domain_auto_trans(installd, profman_exec, profman) + +# Run idmap in its own sandbox. +domain_auto_trans(installd, idmap_exec, idmap) + +# Create /data/.layout_version.* file +type_transition installd system_data_file:file install_data_file; diff --git a/prebuilts/api/26.0/private/isolated_app.te b/prebuilts/api/26.0/private/isolated_app.te new file mode 100644 index 000000000..418a3224e --- /dev/null +++ b/prebuilts/api/26.0/private/isolated_app.te @@ -0,0 +1,93 @@ +### +### Services with isolatedProcess=true in their manifest. +### +### This file defines the rules for isolated apps. An "isolated +### app" is an APP with UID between AID_ISOLATED_START (99000) +### and AID_ISOLATED_END (99999). +### + +typeattribute isolated_app coredomain; + +app_domain(isolated_app) + +# Access already open app data files received over Binder or local socket IPC. +allow isolated_app app_data_file:file { append read write getattr lock }; + +allow isolated_app activity_service:service_manager find; +allow isolated_app display_service:service_manager find; +allow isolated_app webviewupdate_service:service_manager find; + +# Google Breakpad (crash reporter for Chrome) relies on ptrace +# functionality. Without the ability to ptrace, the crash reporter +# tool is broken. +# b/20150694 +# https://code.google.com/p/chromium/issues/detail?id=475270 +allow isolated_app self:process ptrace; + +# b/32896414: Allow accessing sdcard file descriptors passed to isolated_apps +# by other processes. Open should never be allowed, and is blocked by +# neverallow rules below. +# TODO: consider removing write/append. We want to limit isolated_apps +# ability to mutate files of any type. +# media_rw_data_file is included for sdcardfs, and can be removed if sdcardfs +# is modified to change the secontext when accessing the lower filesystem. +allow isolated_app { sdcard_type media_rw_data_file }:file { read write append getattr lock }; +auditallow isolated_app { sdcard_type media_rw_data_file }:file { write append }; + +# For webviews, isolated_app processes can be forked from the webview_zygote +# in addition to the zygote. Allow access to resources inherited from the +# webview_zygote process. These rules are specialized copies of the ones in app.te. +# Inherit FDs from the webview_zygote. +allow isolated_app webview_zygote:fd use; +# Notify webview_zygote of child death. +allow isolated_app webview_zygote:process sigchld; +# Inherit logd write socket. +allow isolated_app webview_zygote:unix_dgram_socket write; +# Read system properties managed by webview_zygote. +allow isolated_app webview_zygote_tmpfs:file read; + +##### +##### Neverallow +##### + +# Do not allow isolated_app to directly open tun_device +neverallow isolated_app tun_device:chr_file open; + +# Isolated apps should not directly open app data files themselves. +neverallow isolated_app app_data_file:file open; + +# Only allow appending to /data/anr/traces.txt (b/27853304, b/18340553) +# TODO: are there situations where isolated_apps write to this file? +# TODO: should we tighten these restrictions further? +neverallow isolated_app anr_data_file:file ~{ open append }; +neverallow isolated_app anr_data_file:dir ~search; + +# b/17487348 +# Isolated apps can only access three services, +# activity_service, display_service and webviewupdate_service. +neverallow isolated_app { + service_manager_type + -activity_service + -display_service + -webviewupdate_service +}:service_manager find; + +# Isolated apps shouldn't be able to access the driver directly. +neverallow isolated_app gpu_device:chr_file { rw_file_perms execute }; + +# Do not allow isolated_app access to /cache +neverallow isolated_app cache_file:dir ~{ r_dir_perms }; +neverallow isolated_app cache_file:file ~{ read getattr }; + +# Do not allow isolated_app to access external storage, except for files passed +# via file descriptors (b/32896414). +neverallow isolated_app { storage_file mnt_user_file sdcard_type }:dir ~getattr; +neverallow isolated_app { storage_file mnt_user_file }:file_class_set *; +neverallow isolated_app sdcard_type:{ devfile_class_set lnk_file sock_file fifo_file } *; +neverallow isolated_app sdcard_type:file ~{ read write append getattr lock }; + +# Do not allow USB access +neverallow isolated_app { usb_device usbaccessory_device }:chr_file *; + +# Restrict the webview_zygote control socket. +neverallow isolated_app webview_zygote_socket:sock_file write; diff --git a/prebuilts/api/26.0/private/kernel.te b/prebuilts/api/26.0/private/kernel.te new file mode 100644 index 000000000..a4e6ebe36 --- /dev/null +++ b/prebuilts/api/26.0/private/kernel.te @@ -0,0 +1,3 @@ +typeattribute kernel coredomain; + +domain_auto_trans(kernel, init_exec, init) diff --git a/prebuilts/api/26.0/private/keys.conf b/prebuilts/api/26.0/private/keys.conf new file mode 100644 index 000000000..7a307b5de --- /dev/null +++ b/prebuilts/api/26.0/private/keys.conf @@ -0,0 +1,25 @@ +# +# Maps an arbitrary tag [TAGNAME] with the string contents found in +# TARGET_BUILD_VARIANT. Common convention is to start TAGNAME with an @ and +# name it after the base file name of the pem file. +# +# Each tag (section) then allows one to specify any string found in +# TARGET_BUILD_VARIANT. Typcially this is user, eng, and userdebug. Another +# option is to use ALL which will match ANY TARGET_BUILD_VARIANT string. +# + +[@PLATFORM] +ALL : $DEFAULT_SYSTEM_DEV_CERTIFICATE/platform.x509.pem + +[@MEDIA] +ALL : $DEFAULT_SYSTEM_DEV_CERTIFICATE/media.x509.pem + +[@SHARED] +ALL : $DEFAULT_SYSTEM_DEV_CERTIFICATE/shared.x509.pem + +# Example of ALL TARGET_BUILD_VARIANTS +[@RELEASE] +ENG : $DEFAULT_SYSTEM_DEV_CERTIFICATE/testkey.x509.pem +USER : $DEFAULT_SYSTEM_DEV_CERTIFICATE/testkey.x509.pem +USERDEBUG : $DEFAULT_SYSTEM_DEV_CERTIFICATE/testkey.x509.pem + diff --git a/prebuilts/api/26.0/private/keystore.te b/prebuilts/api/26.0/private/keystore.te new file mode 100644 index 000000000..1e563389e --- /dev/null +++ b/prebuilts/api/26.0/private/keystore.te @@ -0,0 +1,11 @@ +typeattribute keystore coredomain; +typeattribute keystore domain_deprecated; + +init_daemon_domain(keystore) + +# talk to keymaster +hal_client_domain(keystore, hal_keymaster) + +# Offer the Wifi Keystore HwBinder service +typeattribute keystore wifi_keystore_service_server; +add_hwservice(keystore, system_wifi_keystore_hwservice) diff --git a/prebuilts/api/26.0/private/lmkd.te b/prebuilts/api/26.0/private/lmkd.te new file mode 100644 index 000000000..a07ce879c --- /dev/null +++ b/prebuilts/api/26.0/private/lmkd.te @@ -0,0 +1,3 @@ +typeattribute lmkd coredomain; + +init_daemon_domain(lmkd) diff --git a/prebuilts/api/26.0/private/logd.te b/prebuilts/api/26.0/private/logd.te new file mode 100644 index 000000000..4338e4005 --- /dev/null +++ b/prebuilts/api/26.0/private/logd.te @@ -0,0 +1,39 @@ +typeattribute logd coredomain; + +init_daemon_domain(logd) + +# logd is not allowed to write anywhere other than /data/misc/logd, and then +# only on userdebug or eng builds +# TODO: deal with tmpfs_domain pub/priv split properly +neverallow logd { + file_type + -logd_tmpfs + -runtime_event_log_tags_file + userdebug_or_eng(`-coredump_file -misc_logd_file') +}:file { create write append }; + +# protect the event-log-tags file +neverallow { + domain + -appdomain # covered below + -bootstat + -dumpstate + -init + -logd + userdebug_or_eng(`-logpersist') + -servicemanager + -system_server + -surfaceflinger + -zygote +} runtime_event_log_tags_file:file no_rw_file_perms; + +neverallow { + appdomain + -bluetooth + -platform_app + -priv_app + -radio + -shell + userdebug_or_eng(`-su') + -system_app +} runtime_event_log_tags_file:file no_rw_file_perms; diff --git a/prebuilts/api/26.0/private/logpersist.te b/prebuilts/api/26.0/private/logpersist.te new file mode 100644 index 000000000..70e3198b5 --- /dev/null +++ b/prebuilts/api/26.0/private/logpersist.te @@ -0,0 +1,24 @@ +typeattribute logpersist coredomain; + +# android debug log storage in logpersist domains (eng and userdebug only) +userdebug_or_eng(` + + r_dir_file(logpersist, cgroup) + + allow logpersist misc_logd_file:file create_file_perms; + allow logpersist misc_logd_file:dir rw_dir_perms; + + allow logpersist self:capability sys_nice; + allow logpersist pstorefs:dir search; + allow logpersist pstorefs:file r_file_perms; + + control_logd(logpersist) + unix_socket_connect(logpersist, logdr, logd) + read_runtime_log_tags(logpersist) + +') + +# logpersist is allowed to write to /data/misc/log for userdebug and eng builds +neverallow logpersist { file_type userdebug_or_eng(`-misc_logd_file -coredump_file') }:file { create write append }; +neverallow { domain -init userdebug_or_eng(`-logpersist -logd -dumpstate') } misc_logd_file:file no_rw_file_perms; +neverallow { domain -init userdebug_or_eng(`-logpersist -logd') } misc_logd_file:dir { add_name link relabelfrom remove_name rename reparent rmdir write }; diff --git a/prebuilts/api/26.0/private/mac_permissions.xml b/prebuilts/api/26.0/private/mac_permissions.xml new file mode 100644 index 000000000..1fcd2a409 --- /dev/null +++ b/prebuilts/api/26.0/private/mac_permissions.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + diff --git a/prebuilts/api/26.0/private/mdnsd.te b/prebuilts/api/26.0/private/mdnsd.te new file mode 100644 index 000000000..96259e298 --- /dev/null +++ b/prebuilts/api/26.0/private/mdnsd.te @@ -0,0 +1,12 @@ +# mdns daemon + +typeattribute mdnsd coredomain; +typeattribute mdnsd mlstrustedsubject; + +type mdnsd_exec, exec_type, file_type; +init_daemon_domain(mdnsd) + +net_domain(mdnsd) + +# Read from /proc/net +r_dir_file(mdnsd, proc_net) diff --git a/prebuilts/api/26.0/private/mediadrmserver.te b/prebuilts/api/26.0/private/mediadrmserver.te new file mode 100644 index 000000000..4e511a819 --- /dev/null +++ b/prebuilts/api/26.0/private/mediadrmserver.te @@ -0,0 +1,8 @@ +typeattribute mediadrmserver coredomain; + +init_daemon_domain(mediadrmserver) + +# allocate and use graphic buffers +hal_client_domain(mediadrmserver, hal_graphics_allocator) +auditallow mediadrmserver hal_graphics_allocator_server:binder call; + diff --git a/prebuilts/api/26.0/private/mediaextractor.te b/prebuilts/api/26.0/private/mediaextractor.te new file mode 100644 index 000000000..c1a85219c --- /dev/null +++ b/prebuilts/api/26.0/private/mediaextractor.te @@ -0,0 +1,3 @@ +typeattribute mediaextractor coredomain; + +init_daemon_domain(mediaextractor) diff --git a/prebuilts/api/26.0/private/mediametrics.te b/prebuilts/api/26.0/private/mediametrics.te new file mode 100644 index 000000000..f8b2fa5cd --- /dev/null +++ b/prebuilts/api/26.0/private/mediametrics.te @@ -0,0 +1,3 @@ +typeattribute mediametrics coredomain; + +init_daemon_domain(mediametrics) diff --git a/prebuilts/api/26.0/private/mediaserver.te b/prebuilts/api/26.0/private/mediaserver.te new file mode 100644 index 000000000..a9b85be0c --- /dev/null +++ b/prebuilts/api/26.0/private/mediaserver.te @@ -0,0 +1,10 @@ +typeattribute mediaserver coredomain; + +init_daemon_domain(mediaserver) + +# allocate and use graphic buffers +hal_client_domain(mediaserver, hal_graphics_allocator) + +# TODO(b/36375899): Remove this once OMX HAL is attributized and mediaserver is marked as a client +# of OMX HAL. +allow mediaserver hal_omx_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/private/mls b/prebuilts/api/26.0/private/mls new file mode 100644 index 000000000..a561de1f0 --- /dev/null +++ b/prebuilts/api/26.0/private/mls @@ -0,0 +1,100 @@ +################################################# +# MLS policy constraints +# + +# +# Process constraints +# + +# Process transition: Require equivalence unless the subject is trusted. +mlsconstrain process { transition dyntransition } + ((h1 eq h2 and l1 eq l2) or t1 == mlstrustedsubject); + +# Process read operations: No read up unless trusted. +mlsconstrain process { getsched getsession getpgid getcap getattr ptrace share } + (l1 dom l2 or t1 == mlstrustedsubject); + +# Process write operations: Require equivalence unless trusted. +mlsconstrain process { sigkill sigstop signal setsched setpgid setcap setrlimit ptrace share } + (l1 eq l2 or t1 == mlstrustedsubject); + +# +# Socket constraints +# + +# Create/relabel operations: Subject must be equivalent to object unless +# the subject is trusted. Sockets inherit the range of their creator. +mlsconstrain socket_class_set { create relabelfrom relabelto } + ((h1 eq h2 and l1 eq l2) or t1 == mlstrustedsubject); + +# Datagram send: Sender must be equivalent to the receiver unless one of them +# is trusted. +mlsconstrain unix_dgram_socket { sendto } + (l1 eq l2 or t1 == mlstrustedsubject or t2 == mlstrustedsubject); + +# Stream connect: Client must be equivalent to server unless one of them +# is trusted. +mlsconstrain unix_stream_socket { connectto } + (l1 eq l2 or t1 == mlstrustedsubject or t2 == mlstrustedsubject); + +# +# Directory/file constraints +# + +# Create/relabel operations: Subject must be equivalent to object unless +# the subject is trusted. Also, files should always be single-level. +# Do NOT exempt mlstrustedobject types from this constraint. +mlsconstrain dir_file_class_set { create relabelfrom relabelto } + (l2 eq h2 and (l1 eq l2 or t1 == mlstrustedsubject)); + +# +# Constraints for app data files only. +# + +# Only constrain open, not read/write. +# Also constrain other forms of manipulation, e.g. chmod/chown, unlink, rename, etc. +# Subject must be equivalent to object unless the subject is trusted. +mlsconstrain dir { open search setattr rename add_name remove_name reparent rmdir } + (t2 != app_data_file or l1 eq l2 or t1 == mlstrustedsubject); +mlsconstrain { file lnk_file sock_file } { open setattr unlink link rename } + (t2 != app_data_file or l1 eq l2 or t1 == mlstrustedsubject); + +# +# Constraints for file types other than app data files. +# + +# Read operations: Subject must dominate object unless the subject +# or the object is trusted. +mlsconstrain dir { read getattr search } + (t2 == app_data_file or l1 dom l2 or t1 == mlstrustedsubject or t2 == mlstrustedobject); + +mlsconstrain { file lnk_file sock_file chr_file blk_file } { read getattr execute } + (t2 == app_data_file or l1 dom l2 or t1 == mlstrustedsubject or t2 == mlstrustedobject); + +# Write operations: Subject must be equivalent to the object unless the +# subject or the object is trusted. +mlsconstrain dir { write setattr rename add_name remove_name reparent rmdir } + (t2 == app_data_file or l1 eq l2 or t1 == mlstrustedsubject or t2 == mlstrustedobject); + +mlsconstrain { file lnk_file sock_file chr_file blk_file } { write setattr append unlink link rename } + (t2 == app_data_file or l1 eq l2 or t1 == mlstrustedsubject or t2 == mlstrustedobject); + +# Special case for FIFOs. +# These can be unnamed pipes, in which case they will be labeled with the +# creating process' label. Thus we also have an exemption when the "object" +# is a domain type, so that processes can communicate via unnamed pipes +# passed by binder or local socket IPC. +mlsconstrain fifo_file { read getattr } + (l1 dom l2 or t1 == mlstrustedsubject or t2 == mlstrustedobject or t2 == domain); + +mlsconstrain fifo_file { write setattr append unlink link rename } + (l1 eq l2 or t1 == mlstrustedsubject or t2 == mlstrustedobject or t2 == domain); + +# +# Binder IPC constraints +# +# Presently commented out, as apps are expected to call one another. +# This would only make sense if apps were assigned categories +# based on allowable communications rather than per-app categories. +#mlsconstrain binder call +# (l1 eq l2 or t1 == mlstrustedsubject or t2 == mlstrustedsubject); diff --git a/prebuilts/api/26.0/private/mls_decl b/prebuilts/api/26.0/private/mls_decl new file mode 100644 index 000000000..dd53bea7e --- /dev/null +++ b/prebuilts/api/26.0/private/mls_decl @@ -0,0 +1,10 @@ +######################################### +# MLS declarations +# + +# Generate the desired number of sensitivities and categories. +gen_sens(mls_num_sens) +gen_cats(mls_num_cats) + +# Generate level definitions for each sensitivity and category. +gen_levels(mls_num_sens,mls_num_cats) diff --git a/prebuilts/api/26.0/private/mls_macros b/prebuilts/api/26.0/private/mls_macros new file mode 100644 index 000000000..83e05425b --- /dev/null +++ b/prebuilts/api/26.0/private/mls_macros @@ -0,0 +1,54 @@ +######################################## +# +# gen_cats(N) +# +# declares categores c0 to c(N-1) +# +define(`decl_cats',`dnl +category c$1; +ifelse(`$1',`$2',,`decl_cats(incr($1),$2)')dnl +') + +define(`gen_cats',`decl_cats(0,decr($1))') + +######################################## +# +# gen_sens(N) +# +# declares sensitivites s0 to s(N-1) with dominance +# in increasing numeric order with s0 lowest, s(N-1) highest +# +define(`decl_sens',`dnl +sensitivity s$1; +ifelse(`$1',`$2',,`decl_sens(incr($1),$2)')dnl +') + +define(`gen_dominance',`s$1 ifelse(`$1',`$2',,`gen_dominance(incr($1),$2)')') + +define(`gen_sens',` +# Each sensitivity has a name and zero or more aliases. +decl_sens(0,decr($1)) + +# Define the ordering of the sensitivity levels (least to greatest) +dominance { gen_dominance(0,decr($1)) } +') + +######################################## +# +# gen_levels(N,M) +# +# levels from s0 to (N-1) with categories c0 to (M-1) +# +define(`decl_levels',`dnl +level s$1:c0.c$3; +ifelse(`$1',`$2',,`decl_levels(incr($1),$2,$3)')dnl +') + +define(`gen_levels',`decl_levels(0,decr($1),decr($2))') + +######################################## +# +# Basic level names for system low and high +# +define(`mls_systemlow',`s0') +define(`mls_systemhigh',`s`'decr(mls_num_sens):c0.c`'decr(mls_num_cats)') diff --git a/prebuilts/api/26.0/private/modprobe.te b/prebuilts/api/26.0/private/modprobe.te new file mode 100644 index 000000000..98586756f --- /dev/null +++ b/prebuilts/api/26.0/private/modprobe.te @@ -0,0 +1 @@ +typeattribute modprobe coredomain; diff --git a/prebuilts/api/26.0/private/mtp.te b/prebuilts/api/26.0/private/mtp.te new file mode 100644 index 000000000..3cfda0b1a --- /dev/null +++ b/prebuilts/api/26.0/private/mtp.te @@ -0,0 +1,4 @@ +typeattribute mtp coredomain; +typeattribute mtp domain_deprecated; + +init_daemon_domain(mtp) diff --git a/prebuilts/api/26.0/private/net.te b/prebuilts/api/26.0/private/net.te new file mode 100644 index 000000000..f16daf94c --- /dev/null +++ b/prebuilts/api/26.0/private/net.te @@ -0,0 +1,24 @@ +### +### Domain with network access +### + +# Use network sockets. +allow netdomain self:tcp_socket create_stream_socket_perms; +allow netdomain self:{ udp_socket rawip_socket } create_socket_perms; +# Connect to ports. +allow netdomain port_type:tcp_socket name_connect; +# Bind to ports. +allow {netdomain -ephemeral_app} node_type:{ tcp_socket udp_socket } node_bind; +allow {netdomain -ephemeral_app} port_type:udp_socket name_bind; +allow {netdomain -ephemeral_app} port_type:tcp_socket name_bind; +# See changes to the routing table. +allow netdomain self:netlink_route_socket { create read getattr write setattr lock append bind connect getopt setopt shutdown nlmsg_read }; + +# Talks to netd via dnsproxyd socket. +unix_socket_connect(netdomain, dnsproxyd, netd) + +# Talks to netd via fwmarkd socket. +unix_socket_connect(netdomain, fwmarkd, netd) + +# Connect to mdnsd via mdnsd socket. +unix_socket_connect(netdomain, mdnsd, mdnsd) diff --git a/prebuilts/api/26.0/private/netd.te b/prebuilts/api/26.0/private/netd.te new file mode 100644 index 000000000..3a824af13 --- /dev/null +++ b/prebuilts/api/26.0/private/netd.te @@ -0,0 +1,10 @@ +typeattribute netd coredomain; +typeattribute netd domain_deprecated; + +init_daemon_domain(netd) + +# Allow netd to spawn dnsmasq in it's own domain +domain_auto_trans(netd, dnsmasq_exec, dnsmasq) + +# Allow netd to start clatd in its own domain +domain_auto_trans(netd, clatd_exec, clatd) diff --git a/prebuilts/api/26.0/private/netutils_wrapper.te b/prebuilts/api/26.0/private/netutils_wrapper.te new file mode 100644 index 000000000..f7fe32ae4 --- /dev/null +++ b/prebuilts/api/26.0/private/netutils_wrapper.te @@ -0,0 +1,28 @@ +typeattribute netutils_wrapper coredomain; + +r_dir_file(netutils_wrapper, system_file); + +# For netutils (ip, iptables, tc) +allow netutils_wrapper self:capability net_raw; + +allow netutils_wrapper system_file:file { execute execute_no_trans }; +allow netutils_wrapper proc_net:file { open read getattr }; +allow netutils_wrapper self:rawip_socket create_socket_perms; +allow netutils_wrapper self:udp_socket create_socket_perms; +allow netutils_wrapper self:capability net_admin; +# ip utils need everything but ioctl +allow netutils_wrapper self:netlink_route_socket ~ioctl; +allow netutils_wrapper self:netlink_xfrm_socket ~ioctl; + +# For netutils (ndc) to be able to talk to netd +allow netutils_wrapper netd_socket:sock_file { open getattr read write append }; +allow netutils_wrapper netd:unix_stream_socket { read getattr connectto }; + +# For /data/misc/net access to ndc and ip +r_dir_file(netutils_wrapper, net_data_file) + +domain_auto_trans({ + domain + -coredomain + -appdomain +}, netutils_wrapper_exec, netutils_wrapper) diff --git a/prebuilts/api/26.0/private/nfc.te b/prebuilts/api/26.0/private/nfc.te new file mode 100644 index 000000000..25ad702b5 --- /dev/null +++ b/prebuilts/api/26.0/private/nfc.te @@ -0,0 +1,31 @@ +# nfc subsystem +typeattribute nfc coredomain; +app_domain(nfc) +net_domain(nfc) + +binder_service(nfc) +add_service(nfc, nfc_service) + +hal_client_domain(nfc, hal_nfc) + +# Data file accesses. +allow nfc nfc_data_file:dir create_dir_perms; +allow nfc nfc_data_file:notdevfile_class_set create_file_perms; + +# SoundPool loading and playback +allow nfc audioserver_service:service_manager find; +allow nfc drmserver_service:service_manager find; +allow nfc mediacodec_service:service_manager find; +allow nfc mediametrics_service:service_manager find; +allow nfc mediaextractor_service:service_manager find; +allow nfc mediaserver_service:service_manager find; + +allow nfc radio_service:service_manager find; +allow nfc surfaceflinger_service:service_manager find; +allow nfc app_api_service:service_manager find; +allow nfc system_api_service:service_manager find; + +# already open bugreport file descriptors may be shared with +# the nfc process, from a file in +# /data/data/com.android.shell/files/bugreports/bugreport-*. +allow nfc shell_data_file:file read; diff --git a/prebuilts/api/26.0/private/otapreopt_chroot.te b/prebuilts/api/26.0/private/otapreopt_chroot.te new file mode 100644 index 000000000..1f69931c8 --- /dev/null +++ b/prebuilts/api/26.0/private/otapreopt_chroot.te @@ -0,0 +1,4 @@ +typeattribute otapreopt_chroot coredomain; + +# Allow to transition to postinstall_ota, to run otapreopt in its own sandbox. +domain_auto_trans(otapreopt_chroot, postinstall_file, postinstall_dexopt) diff --git a/prebuilts/api/26.0/private/otapreopt_slot.te b/prebuilts/api/26.0/private/otapreopt_slot.te new file mode 100644 index 000000000..98b93d406 --- /dev/null +++ b/prebuilts/api/26.0/private/otapreopt_slot.te @@ -0,0 +1,5 @@ +typeattribute otapreopt_slot coredomain; + +# Technically not a daemon but we do want the transition from init domain to +# cppreopts to occur. +init_daemon_domain(otapreopt_slot) diff --git a/prebuilts/api/26.0/private/performanced.te b/prebuilts/api/26.0/private/performanced.te new file mode 100644 index 000000000..792826e02 --- /dev/null +++ b/prebuilts/api/26.0/private/performanced.te @@ -0,0 +1,3 @@ +typeattribute performanced coredomain; + +init_daemon_domain(performanced) diff --git a/prebuilts/api/26.0/private/perfprofd.te b/prebuilts/api/26.0/private/perfprofd.te new file mode 100644 index 000000000..a655f1d34 --- /dev/null +++ b/prebuilts/api/26.0/private/perfprofd.te @@ -0,0 +1,5 @@ +userdebug_or_eng(` + typeattribute perfprofd coredomain; + typeattribute perfprofd domain_deprecated; + init_daemon_domain(perfprofd) +') diff --git a/prebuilts/api/26.0/private/platform_app.te b/prebuilts/api/26.0/private/platform_app.te new file mode 100644 index 000000000..fd4634a30 --- /dev/null +++ b/prebuilts/api/26.0/private/platform_app.te @@ -0,0 +1,70 @@ +### +### Apps signed with the platform key. +### + +typeattribute platform_app coredomain; +typeattribute platform_app domain_deprecated; + +app_domain(platform_app) + +# Access the network. +net_domain(platform_app) +# Access bluetooth. +bluetooth_domain(platform_app) +# Read from /data/local/tmp or /data/data/com.android.shell. +allow platform_app shell_data_file:dir search; +allow platform_app shell_data_file:file { open getattr read }; +allow platform_app icon_file:file { open getattr read }; +# Populate /data/app/vmdl*.tmp, /data/app-private/vmdl*.tmp files +# created by system server. +allow platform_app { apk_tmp_file apk_private_tmp_file }:dir rw_dir_perms; +allow platform_app { apk_tmp_file apk_private_tmp_file }:file rw_file_perms; +allow platform_app apk_private_data_file:dir search; +# ASEC +allow platform_app asec_apk_file:dir create_dir_perms; +allow platform_app asec_apk_file:file create_file_perms; + +# Access to /data/media. +allow platform_app media_rw_data_file:dir create_dir_perms; +allow platform_app media_rw_data_file:file create_file_perms; + +# Write to /cache. +allow platform_app cache_file:dir create_dir_perms; +allow platform_app cache_file:file create_file_perms; + +# Direct access to vold-mounted storage under /mnt/media_rw +# This is a performance optimization that allows platform apps to bypass the FUSE layer +allow platform_app mnt_media_rw_file:dir r_dir_perms; +allow platform_app vfat:dir create_dir_perms; +allow platform_app vfat:file create_file_perms; + +allow platform_app audioserver_service:service_manager find; +allow platform_app cameraserver_service:service_manager find; +allow platform_app drmserver_service:service_manager find; +allow platform_app mediaserver_service:service_manager find; +allow platform_app mediametrics_service:service_manager find; +allow platform_app mediaextractor_service:service_manager find; +allow platform_app mediacodec_service:service_manager find; +allow platform_app mediadrmserver_service:service_manager find; +allow platform_app mediacasserver_service:service_manager find; +allow platform_app persistent_data_block_service:service_manager find; +allow platform_app radio_service:service_manager find; +allow platform_app surfaceflinger_service:service_manager find; +allow platform_app app_api_service:service_manager find; +allow platform_app system_api_service:service_manager find; +allow platform_app vr_manager_service:service_manager find; + +# Access to /data/preloads +allow platform_app preloads_data_file:file r_file_perms; +allow platform_app preloads_data_file:dir r_dir_perms; +allow platform_app preloads_media_file:file r_file_perms; +allow platform_app preloads_media_file:dir r_dir_perms; + +read_runtime_log_tags(platform_app) + +### +### Neverallow rules +### + +# app domains which access /dev/fuse should not run as platform_app +neverallow platform_app fuse_device:chr_file *; diff --git a/prebuilts/api/26.0/private/policy_capabilities b/prebuilts/api/26.0/private/policy_capabilities new file mode 100644 index 000000000..ab55c15e3 --- /dev/null +++ b/prebuilts/api/26.0/private/policy_capabilities @@ -0,0 +1,13 @@ +# Enable new networking controls. +policycap network_peer_controls; + +# Enable open permission check. +policycap open_perms; + +# Enable separate security classes for +# all network address families previously +# mapped to the socket class and for +# ICMP and SCTP sockets previously mapped +# to the rawip_socket class. +policycap extended_socket_class; + diff --git a/prebuilts/api/26.0/private/port_contexts b/prebuilts/api/26.0/private/port_contexts new file mode 100644 index 000000000..b473c0c9b --- /dev/null +++ b/prebuilts/api/26.0/private/port_contexts @@ -0,0 +1,3 @@ +# portcon statements go here, e.g. +# portcon tcp 80 u:object_r:http_port:s0 + diff --git a/prebuilts/api/26.0/private/postinstall.te b/prebuilts/api/26.0/private/postinstall.te new file mode 100644 index 000000000..363e362dd --- /dev/null +++ b/prebuilts/api/26.0/private/postinstall.te @@ -0,0 +1,3 @@ +typeattribute postinstall coredomain; + +domain_auto_trans(postinstall, otapreopt_chroot_exec, otapreopt_chroot) diff --git a/prebuilts/api/26.0/private/postinstall_dexopt.te b/prebuilts/api/26.0/private/postinstall_dexopt.te new file mode 100644 index 000000000..ff5fe8735 --- /dev/null +++ b/prebuilts/api/26.0/private/postinstall_dexopt.te @@ -0,0 +1,5 @@ +typeattribute postinstall_dexopt coredomain; + +# Run dex2oat/patchoat in its own sandbox. +# We have to manually transition, as we don't have an entrypoint. +domain_auto_trans(postinstall_dexopt, postinstall_file, dex2oat) diff --git a/prebuilts/api/26.0/private/ppp.te b/prebuilts/api/26.0/private/ppp.te new file mode 100644 index 000000000..9b301f475 --- /dev/null +++ b/prebuilts/api/26.0/private/ppp.te @@ -0,0 +1,4 @@ +typeattribute ppp coredomain; +typeattribute ppp domain_deprecated; + +domain_auto_trans(mtp, ppp_exec, ppp) diff --git a/prebuilts/api/26.0/private/preopt2cachename.te b/prebuilts/api/26.0/private/preopt2cachename.te new file mode 100644 index 000000000..d10f76766 --- /dev/null +++ b/prebuilts/api/26.0/private/preopt2cachename.te @@ -0,0 +1 @@ +typeattribute preopt2cachename coredomain; diff --git a/prebuilts/api/26.0/private/priv_app.te b/prebuilts/api/26.0/private/priv_app.te new file mode 100644 index 000000000..065ea1ad3 --- /dev/null +++ b/prebuilts/api/26.0/private/priv_app.te @@ -0,0 +1,168 @@ +### +### A domain for further sandboxing privileged apps. +### + +typeattribute priv_app coredomain; +app_domain(priv_app) + +# Access the network. +net_domain(priv_app) +# Access bluetooth. +bluetooth_domain(priv_app) + +# Allow the allocation and use of ptys +# Used by: https://play.privileged.com/store/apps/details?id=jackpal.androidterm +create_pty(priv_app) + +# webview crash handling depends on self ptrace (b/27697529, b/20150694, b/19277529#comment7) +allow priv_app self:process ptrace; + +# Some apps ship with shared libraries that they write out +# to their sandbox directory and then dlopen(). +allow priv_app app_data_file:file execute; + +allow priv_app audioserver_service:service_manager find; +allow priv_app cameraserver_service:service_manager find; +allow priv_app drmserver_service:service_manager find; +allow priv_app mediacodec_service:service_manager find; +allow priv_app mediametrics_service:service_manager find; +allow priv_app mediadrmserver_service:service_manager find; +allow priv_app mediacasserver_service:service_manager find; +allow priv_app mediaextractor_service:service_manager find; +allow priv_app mediaserver_service:service_manager find; +allow priv_app nfc_service:service_manager find; +allow priv_app oem_lock_service:service_manager find; +allow priv_app radio_service:service_manager find; +allow priv_app surfaceflinger_service:service_manager find; +allow priv_app app_api_service:service_manager find; +allow priv_app system_api_service:service_manager find; +allow priv_app persistent_data_block_service:service_manager find; +allow priv_app recovery_service:service_manager find; + +# Write to /cache. +allow priv_app { cache_file cache_recovery_file }:dir create_dir_perms; +allow priv_app { cache_file cache_recovery_file }:file create_file_perms; +# /cache is a symlink to /data/cache on some devices. Allow reading the link. +allow priv_app cache_file:lnk_file r_file_perms; + +# Write to /data/ota_package for OTA packages. +allow priv_app ota_package_file:dir rw_dir_perms; +allow priv_app ota_package_file:file create_file_perms; + +# Access to /data/media. +allow priv_app media_rw_data_file:dir create_dir_perms; +allow priv_app media_rw_data_file:file create_file_perms; + +# Used by Finsky / Android "Verify Apps" functionality when +# running "adb install foo.apk". +allow priv_app shell_data_file:file r_file_perms; +allow priv_app shell_data_file:dir r_dir_perms; + +# Allow verifier to access staged apks. +allow priv_app { apk_tmp_file apk_private_tmp_file }:dir r_dir_perms; +allow priv_app { apk_tmp_file apk_private_tmp_file }:file r_file_perms; + +# b/18504118: Allow reads from /data/anr/traces.txt +allow priv_app anr_data_file:file r_file_perms; + +# Allow GMS core to access perfprofd output, which is stored +# in /data/misc/perfprofd/. GMS core will need to list all +# data stored in that directory to process them one by one. +userdebug_or_eng(` + allow priv_app perfprofd_data_file:file r_file_perms; + allow priv_app perfprofd_data_file:dir r_dir_perms; +') + +# For AppFuse. +allow priv_app vold:fd use; +allow priv_app fuse_device:chr_file { read write }; + +# /sys and /proc access +r_dir_file(priv_app, sysfs_type) +r_dir_file(priv_app, proc) +r_dir_file(priv_app, rootfs) + +# Allow GMS core to open kernel config for OTA matching through libvintf +allow priv_app config_gz:file { open read getattr }; + +# access the mac address +allowxperm priv_app self:udp_socket ioctl SIOCGIFHWADDR; + +# Allow GMS core to communicate with update_engine for A/B update. +binder_call(priv_app, update_engine) +allow priv_app update_engine_service:service_manager find; + +# Allow GMS core to communicate with dumpsys storaged. +binder_call(priv_app, storaged) +allow priv_app storaged_service:service_manager find; + +# Allow Phone to read/write cached ringtones (opened by system). +allow priv_app ringtone_file:file { getattr read write }; + +# Access to /data/preloads +allow priv_app preloads_data_file:file r_file_perms; +allow priv_app preloads_data_file:dir r_dir_perms; +allow priv_app preloads_media_file:file r_file_perms; +allow priv_app preloads_media_file:dir r_dir_perms; + +# TODO: revert this as part of fixing 33574909 +# android.process.media uses /dev/mtp_usb +allow priv_app mtp_device:chr_file rw_file_perms; + +# TODO: revert this as part of fixing 33574909 +# MtpServer uses /dev/usb-ffs/mtp +allow priv_app functionfs:dir search; +allow priv_app functionfs:file rw_file_perms; + +# TODO: revert this as part of fixing 33574909 +# Traverse into /mnt/media_rw for bypassing FUSE daemon +# TODO: narrow this to just MediaProvider +allow priv_app mnt_media_rw_file:dir search; + +# Allow privileged apps (e.g. GMS core) to generate unique hardware IDs +allow priv_app keystore:keystore_key gen_unique_id; + +read_runtime_log_tags(priv_app) + +### +### neverallow rules +### + +# Receive or send uevent messages. +neverallow priv_app domain:netlink_kobject_uevent_socket *; + +# Receive or send generic netlink messages +neverallow priv_app domain:netlink_socket *; + +# Too much leaky information in debugfs. It's a security +# best practice to ensure these files aren't readable. +neverallow priv_app debugfs:file read; + +# Do not allow privileged apps to register services. +# Only trusted components of Android should be registering +# services. +neverallow priv_app service_manager_type:service_manager add; + +# Do not allow privileged apps to connect to the property service +# or set properties. b/10243159 +neverallow priv_app property_socket:sock_file write; +neverallow priv_app init:unix_stream_socket connectto; +neverallow priv_app property_type:property_service set; + +# Do not allow priv_app to be assigned mlstrustedsubject. +# This would undermine the per-user isolation model being +# enforced via levelFrom=user in seapp_contexts and the mls +# constraints. As there is no direct way to specify a neverallow +# on attribute assignment, this relies on the fact that fork +# permission only makes sense within a domain (hence should +# never be granted to any other domain within mlstrustedsubject) +# and priv_app is allowed fork permission to itself. +neverallow priv_app mlstrustedsubject:process fork; + +# Do not allow priv_app to hard link to any files. +# In particular, if priv_app links to other app data +# files, installd will not be able to guarantee the deletion +# of the linked to file. Hard links also contribute to security +# bugs, so we want to ensure priv_app never has this +# capability. +neverallow priv_app file_type:file link; diff --git a/prebuilts/api/26.0/private/profman.te b/prebuilts/api/26.0/private/profman.te new file mode 100644 index 000000000..f61d05efe --- /dev/null +++ b/prebuilts/api/26.0/private/profman.te @@ -0,0 +1 @@ +typeattribute profman coredomain; diff --git a/prebuilts/api/26.0/private/property_contexts b/prebuilts/api/26.0/private/property_contexts new file mode 100644 index 000000000..4c27b35d6 --- /dev/null +++ b/prebuilts/api/26.0/private/property_contexts @@ -0,0 +1,116 @@ +########################## +# property service keys +# +# +net.rmnet u:object_r:net_radio_prop:s0 +net.gprs u:object_r:net_radio_prop:s0 +net.ppp u:object_r:net_radio_prop:s0 +net.qmi u:object_r:net_radio_prop:s0 +net.lte u:object_r:net_radio_prop:s0 +net.cdma u:object_r:net_radio_prop:s0 +net.dns u:object_r:net_dns_prop:s0 +sys.usb.config u:object_r:system_radio_prop:s0 +ril. u:object_r:radio_prop:s0 +ro.ril. u:object_r:radio_prop:s0 +gsm. u:object_r:radio_prop:s0 +persist.radio u:object_r:radio_prop:s0 + +net. u:object_r:system_prop:s0 +dev. u:object_r:system_prop:s0 +ro.runtime. u:object_r:system_prop:s0 +ro.runtime.firstboot u:object_r:firstboot_prop:s0 +hw. u:object_r:system_prop:s0 +ro.hw. u:object_r:system_prop:s0 +sys. u:object_r:system_prop:s0 +sys.cppreopt u:object_r:cppreopt_prop:s0 +sys.powerctl u:object_r:powerctl_prop:s0 +sys.usb.ffs. u:object_r:ffs_prop:s0 +service. u:object_r:system_prop:s0 +dhcp. u:object_r:dhcp_prop:s0 +dhcp.bt-pan.result u:object_r:pan_result_prop:s0 +bluetooth. u:object_r:bluetooth_prop:s0 + +debug. u:object_r:debug_prop:s0 +debug.db. u:object_r:debuggerd_prop:s0 +dumpstate. u:object_r:dumpstate_prop:s0 +dumpstate.options u:object_r:dumpstate_options_prop:s0 +log. u:object_r:log_prop:s0 +log.tag u:object_r:log_tag_prop:s0 +log.tag.WifiHAL u:object_r:wifi_log_prop:s0 +security.perf_harden u:object_r:shell_prop:s0 +service.adb.root u:object_r:shell_prop:s0 +service.adb.tcp.port u:object_r:shell_prop:s0 + +persist.audio. u:object_r:audio_prop:s0 +persist.bluetooth. u:object_r:bluetooth_prop:s0 +persist.debug. u:object_r:persist_debug_prop:s0 +persist.logd. u:object_r:logd_prop:s0 +persist.logd.security u:object_r:device_logging_prop:s0 +persist.logd.logpersistd u:object_r:logpersistd_logging_prop:s0 +logd.logpersistd u:object_r:logpersistd_logging_prop:s0 +persist.log.tag u:object_r:log_tag_prop:s0 +persist.mmc. u:object_r:mmc_prop:s0 +persist.sys. u:object_r:system_prop:s0 +persist.sys.safemode u:object_r:safemode_prop:s0 +ro.sys.safemode u:object_r:safemode_prop:s0 +persist.sys.audit_safemode u:object_r:safemode_prop:s0 +persist.service. u:object_r:system_prop:s0 +persist.service.bdroid. u:object_r:bluetooth_prop:s0 +persist.security. u:object_r:system_prop:s0 +persist.vendor.overlay. u:object_r:overlay_prop:s0 +ro.boot.vendor.overlay. u:object_r:overlay_prop:s0 +ro.boottime. u:object_r:boottime_prop:s0 +ro.serialno u:object_r:serialno_prop:s0 +ro.boot.btmacaddr u:object_r:bluetooth_prop:s0 +ro.boot.serialno u:object_r:serialno_prop:s0 +ro.bt. u:object_r:bluetooth_prop:s0 + +# Boolean property set by system server upon boot indicating +# if device owner is provisioned. +ro.device_owner u:object_r:device_logging_prop:s0 + +# selinux non-persistent properties +selinux.restorecon_recursive u:object_r:restorecon_prop:s0 + +# default property context +* u:object_r:default_prop:s0 + +# data partition encryption properties +vold. u:object_r:vold_prop:s0 +ro.crypto. u:object_r:vold_prop:s0 + +# ro.build.fingerprint is either set in /system/build.prop, or is +# set at runtime by system_server. +ro.build.fingerprint u:object_r:fingerprint_prop:s0 + +ro.persistent_properties.ready u:object_r:persistent_properties_ready_prop:s0 + +# ctl properties +ctl.bootanim u:object_r:ctl_bootanim_prop:s0 +ctl.dumpstate u:object_r:ctl_dumpstate_prop:s0 +ctl.fuse_ u:object_r:ctl_fuse_prop:s0 +ctl.mdnsd u:object_r:ctl_mdnsd_prop:s0 +ctl.ril-daemon u:object_r:ctl_rildaemon_prop:s0 +ctl.bugreport u:object_r:ctl_bugreport_prop:s0 +ctl.console u:object_r:ctl_console_prop:s0 +ctl. u:object_r:ctl_default_prop:s0 + +# NFC properties +nfc. u:object_r:nfc_prop:s0 + +# These properties are not normally set by processes other than init. +# They are only distinguished here for setting by qemu-props on the +# emulator/goldfish. +config. u:object_r:config_prop:s0 +ro.config. u:object_r:config_prop:s0 +dalvik. u:object_r:dalvik_prop:s0 +ro.dalvik. u:object_r:dalvik_prop:s0 + +# Shared between system server and wificond +wlan. u:object_r:wifi_prop:s0 + +# hwservicemanager properties +hwservicemanager. u:object_r:hwservicemanager_prop:s0 + +# ASAN install trigger +asan.restore_reboot u:object_r:asan_reboot_prop:s0 diff --git a/prebuilts/api/26.0/private/racoon.te b/prebuilts/api/26.0/private/racoon.te new file mode 100644 index 000000000..42ea7c9e4 --- /dev/null +++ b/prebuilts/api/26.0/private/racoon.te @@ -0,0 +1,3 @@ +typeattribute racoon coredomain; + +init_daemon_domain(racoon) diff --git a/prebuilts/api/26.0/private/radio.te b/prebuilts/api/26.0/private/radio.te new file mode 100644 index 000000000..83b5b416b --- /dev/null +++ b/prebuilts/api/26.0/private/radio.te @@ -0,0 +1,6 @@ +typeattribute radio coredomain; +typeattribute radio domain_deprecated; + +app_domain(radio) + +read_runtime_log_tags(radio) diff --git a/prebuilts/api/26.0/private/recovery.te b/prebuilts/api/26.0/private/recovery.te new file mode 100644 index 000000000..b7b2847ec --- /dev/null +++ b/prebuilts/api/26.0/private/recovery.te @@ -0,0 +1,2 @@ +typeattribute recovery coredomain; +typeattribute recovery domain_deprecated; diff --git a/prebuilts/api/26.0/private/recovery_persist.te b/prebuilts/api/26.0/private/recovery_persist.te new file mode 100644 index 000000000..1fdd7583d --- /dev/null +++ b/prebuilts/api/26.0/private/recovery_persist.te @@ -0,0 +1,7 @@ +typeattribute recovery_persist coredomain; + +init_daemon_domain(recovery_persist) + +# recovery_persist is not allowed to write anywhere other than recovery_data_file +# TODO: deal with tmpfs_domain pub/priv split properly +neverallow recovery_persist { file_type -recovery_data_file -recovery_persist_tmpfs userdebug_or_eng(`-coredump_file') }:file write; diff --git a/prebuilts/api/26.0/private/recovery_refresh.te b/prebuilts/api/26.0/private/recovery_refresh.te new file mode 100644 index 000000000..327098dad --- /dev/null +++ b/prebuilts/api/26.0/private/recovery_refresh.te @@ -0,0 +1,7 @@ +typeattribute recovery_refresh coredomain; + +init_daemon_domain(recovery_refresh) + +# recovery_refresh is not allowed to write anywhere +# TODO: deal with tmpfs_domain pub/priv split properly +neverallow recovery_refresh { file_type -recovery_refresh_tmpfs userdebug_or_eng(`-coredump_file') }:file write; diff --git a/prebuilts/api/26.0/private/roles_decl b/prebuilts/api/26.0/private/roles_decl new file mode 100644 index 000000000..c84fcba0f --- /dev/null +++ b/prebuilts/api/26.0/private/roles_decl @@ -0,0 +1 @@ +role r; diff --git a/prebuilts/api/26.0/private/runas.te b/prebuilts/api/26.0/private/runas.te new file mode 100644 index 000000000..73a91ffd6 --- /dev/null +++ b/prebuilts/api/26.0/private/runas.te @@ -0,0 +1,5 @@ +typeattribute runas coredomain; +typeattribute runas domain_deprecated; + +# ndk-gdb invokes adb shell run-as. +domain_auto_trans(shell, runas_exec, runas) diff --git a/prebuilts/api/26.0/private/sdcardd.te b/prebuilts/api/26.0/private/sdcardd.te new file mode 100644 index 000000000..ac6bb4e2c --- /dev/null +++ b/prebuilts/api/26.0/private/sdcardd.te @@ -0,0 +1,4 @@ +typeattribute sdcardd coredomain; +typeattribute sdcardd domain_deprecated; + +type_transition sdcardd system_data_file:{ dir file } media_rw_data_file; diff --git a/prebuilts/api/26.0/private/seapp_contexts b/prebuilts/api/26.0/private/seapp_contexts new file mode 100644 index 000000000..4356889b5 --- /dev/null +++ b/prebuilts/api/26.0/private/seapp_contexts @@ -0,0 +1,110 @@ +# Input selectors: +# isSystemServer (boolean) +# isEphemeralApp (boolean) +# isV2App (boolean) +# isOwner (boolean) +# user (string) +# seinfo (string) +# name (string) +# path (string) +# isPrivApp (boolean) +# minTargetSdkVersion (unsigned integer) +# isSystemServer=true can only be used once. +# An unspecified isSystemServer defaults to false. +# isEphemeralApp=true will match apps marked by PackageManager as Ephemeral +# isV2App=true will match apps in the v2 app sandbox. +# isOwner=true will only match for the owner/primary user. +# isOwner=false will only match for secondary users. +# If unspecified, the entry can match either case. +# An unspecified string selector will match any value. +# A user string selector that ends in * will perform a prefix match. +# user=_app will match any regular app UID. +# user=_isolated will match any isolated service UID. +# isPrivApp=true will only match for applications preinstalled in +# /system/priv-app. +# minTargetSdkVersion will match applications with a targetSdkVersion +# greater than or equal to the specified value. If unspecified, +# it has a default value of 0. +# All specified input selectors in an entry must match (i.e. logical AND). +# Matching is case-insensitive. +# +# Precedence rules (see external/selinux/libselinux/src/android/android.c seapp_context_cmp()): +# (1) isSystemServer=true before isSystemServer=false. +# (2) Specified isEphemeralApp= before unspecified isEphemeralApp= boolean. +# (3) Specified isV2App= before unspecified isV2App= boolean. +# (4) Specified isOwner= before unspecified isOwner= boolean. +# (5) Specified user= string before unspecified user= string. +# (6) Fixed user= string before user= prefix (i.e. ending in *). +# (7) Longer user= prefix before shorter user= prefix. +# (8) Specified seinfo= string before unspecified seinfo= string. +# ':' character is reserved and may not be used. +# (9) Specified name= string before unspecified name= string. +# (10) Specified path= string before unspecified path= string. +# (11) Specified isPrivApp= before unspecified isPrivApp= boolean. +# (12) Higher value of minTargetSdkVersion= before lower value of minTargetSdkVersion= +# integer. Note that minTargetSdkVersion= defaults to 0 if unspecified. +# +# Outputs: +# domain (string) +# type (string) +# levelFrom (string; one of none, all, app, or user) +# 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. +# levelFrom=user is only supported for _app or _isolated UIDs. +# levelFrom=app or levelFrom=all is only supported for _app UIDs. +# level may be used to specify a fixed level for any UID. +# +# +# Neverallow Assertions +# Additional compile time assertion checks can be added as well. The assertion +# rules are lines beginning with the keyword neverallow. Full support for PCRE +# regular expressions exists on all input and output selectors. Neverallow +# rules are never output to the built seapp_contexts file. Like all keywords, +# neverallows are case-insensitive. A neverallow is asserted when all key value +# inputs are matched on a key value rule line. +# + +# only the system server can be in system_server domain +neverallow isSystemServer=false domain=system_server +neverallow isSystemServer="" domain=system_server + +# system domains should never be assigned outside of system uid +neverallow user=((?!system).)* domain=system_app +neverallow user=((?!system).)* type=system_app_data_file + +# anything with a non-known uid with a specified name should have a specified seinfo +neverallow user=_app name=.* seinfo="" +neverallow user=_app name=.* seinfo=default + +# neverallow shared relro to any other domain +# and neverallow any other uid into shared_relro +neverallow user=shared_relro domain=((?!shared_relro).)* +neverallow user=((?!shared_relro).)* domain=shared_relro + +# neverallow non-isolated uids into isolated_app domain +# and vice versa +neverallow user=_isolated domain=((?!isolated_app).)* +neverallow user=((?!_isolated).)* domain=isolated_app + +# uid shell should always be in shell domain, however non-shell +# uid's can be in shell domain +neverallow user=shell domain=((?!shell).)* + +# Ephemeral Apps must run in the ephemeral_app domain +neverallow isEphemeralApp=true domain=((?!ephemeral_app).)* + +isSystemServer=true domain=system_server +user=system seinfo=platform domain=system_app type=system_app_data_file +user=bluetooth seinfo=platform domain=bluetooth type=bluetooth_data_file +user=nfc seinfo=platform domain=nfc type=nfc_data_file +user=radio seinfo=platform domain=radio type=radio_data_file +user=shared_relro domain=shared_relro +user=shell seinfo=platform domain=shell type=shell_data_file +user=_isolated domain=isolated_app levelFrom=user +user=_app seinfo=platform domain=platform_app type=app_data_file levelFrom=user +user=_app isV2App=true isEphemeralApp=true domain=ephemeral_app type=app_data_file levelFrom=user +user=_app isV2App=true domain=untrusted_v2_app type=app_data_file levelFrom=user +user=_app isPrivApp=true domain=priv_app type=app_data_file levelFrom=user +user=_app minTargetSdkVersion=26 domain=untrusted_app type=app_data_file levelFrom=user +user=_app domain=untrusted_app_25 type=app_data_file levelFrom=user diff --git a/prebuilts/api/26.0/private/security_classes b/prebuilts/api/26.0/private/security_classes new file mode 100644 index 000000000..02e3ef2f6 --- /dev/null +++ b/prebuilts/api/26.0/private/security_classes @@ -0,0 +1,144 @@ +# FLASK + +# +# Define the security object classes +# + +# Classes marked as userspace are classes +# for userspace object managers + +class security +class process +class system +class capability + +# file-related classes +class filesystem +class file +class dir +class fd +class lnk_file +class chr_file +class blk_file +class sock_file +class fifo_file + +# network-related classes +class socket +class tcp_socket +class udp_socket +class rawip_socket +class node +class netif +class netlink_socket +class packet_socket +class key_socket +class unix_stream_socket +class unix_dgram_socket + +# sysv-ipc-related classes +class sem +class msg +class msgq +class shm +class ipc + +# extended netlink sockets +class netlink_route_socket +class netlink_tcpdiag_socket +class netlink_nflog_socket +class netlink_xfrm_socket +class netlink_selinux_socket +class netlink_audit_socket +class netlink_dnrt_socket + +# IPSec association +class association + +# Updated Netlink class for KOBJECT_UEVENT family. +class netlink_kobject_uevent_socket + +class appletalk_socket + +class packet + +# Kernel access key retention +class key + +class dccp_socket + +class memprotect + +# network peer labels +class peer + +# Capabilities >= 32 +class capability2 + +# kernel services that need to override task security, e.g. cachefiles +class kernel_service + +class tun_socket + +class binder + +# Updated netlink classes for more recent netlink protocols. +class netlink_iscsi_socket +class netlink_fib_lookup_socket +class netlink_connector_socket +class netlink_netfilter_socket +class netlink_generic_socket +class netlink_scsitransport_socket +class netlink_rdma_socket +class netlink_crypto_socket + +# Capability checks when on a non-init user namespace +class cap_userns +class cap2_userns + +# New socket classes introduced by extended_socket_class policy capability. +# These two were previously mapped to rawip_socket. +class sctp_socket +class icmp_socket +# These were previously mapped to socket. +class ax25_socket +class ipx_socket +class netrom_socket +class atmpvc_socket +class x25_socket +class rose_socket +class decnet_socket +class atmsvc_socket +class rds_socket +class irda_socket +class pppox_socket +class llc_socket +class can_socket +class tipc_socket +class bluetooth_socket +class iucv_socket +class rxrpc_socket +class isdn_socket +class phonet_socket +class ieee802154_socket +class caif_socket +class alg_socket +class nfc_socket +class vsock_socket +class kcm_socket +class qipcrtr_socket + +# Property service +class property_service # userspace + +# Service manager +class service_manager # userspace + +# hardware service manager # userspace +class hwservice_manager + +# Keystore Key +class keystore_key # userspace + +class drmservice # userspace +# FLASK diff --git a/prebuilts/api/26.0/private/service_contexts b/prebuilts/api/26.0/private/service_contexts new file mode 100644 index 000000000..dc77cb9c3 --- /dev/null +++ b/prebuilts/api/26.0/private/service_contexts @@ -0,0 +1,172 @@ +accessibility u:object_r:accessibility_service:s0 +account u:object_r:account_service:s0 +activity u:object_r:activity_service:s0 +alarm u:object_r:alarm_service:s0 +android.os.UpdateEngineService u:object_r:update_engine_service:s0 +android.security.keystore u:object_r:keystore_service:s0 +android.service.gatekeeper.IGateKeeperService u:object_r:gatekeeper_service:s0 +appops u:object_r:appops_service:s0 +appwidget u:object_r:appwidget_service:s0 +assetatlas u:object_r:assetatlas_service:s0 +audio u:object_r:audio_service:s0 +autofill u:object_r:autofill_service:s0 +backup u:object_r:backup_service:s0 +batteryproperties u:object_r:batteryproperties_service:s0 +batterystats u:object_r:batterystats_service:s0 +battery u:object_r:battery_service:s0 +bluetooth_manager u:object_r:bluetooth_manager_service:s0 +bluetooth u:object_r:bluetooth_service:s0 +carrier_config u:object_r:radio_service:s0 +clipboard u:object_r:clipboard_service:s0 +com.android.net.IProxyService u:object_r:IProxyService_service:s0 +commontime_management u:object_r:commontime_management_service:s0 +common_time.clock u:object_r:mediaserver_service:s0 +common_time.config u:object_r:mediaserver_service:s0 +companiondevice u:object_r:companion_device_service:s0 +connectivity u:object_r:connectivity_service:s0 +connmetrics u:object_r:connmetrics_service:s0 +consumer_ir u:object_r:consumer_ir_service:s0 +content u:object_r:content_service:s0 +contexthub u:object_r:contexthub_service:s0 +country_detector u:object_r:country_detector_service:s0 +coverage u:object_r:coverage_service:s0 +cpuinfo u:object_r:cpuinfo_service:s0 +dbinfo u:object_r:dbinfo_service:s0 +device_policy u:object_r:device_policy_service:s0 +device_identifiers u:object_r:device_identifiers_service:s0 +deviceidle u:object_r:deviceidle_service:s0 +devicestoragemonitor u:object_r:devicestoragemonitor_service:s0 +diskstats u:object_r:diskstats_service:s0 +display.qservice u:object_r:surfaceflinger_service:s0 +display u:object_r:display_service:s0 +netd_listener u:object_r:netd_listener_service:s0 +DockObserver u:object_r:DockObserver_service:s0 +dreams u:object_r:dreams_service:s0 +drm.drmManager u:object_r:drmserver_service:s0 +dropbox u:object_r:dropbox_service:s0 +dumpstate u:object_r:dumpstate_service:s0 +econtroller u:object_r:radio_service:s0 +ethernet u:object_r:ethernet_service:s0 +fingerprint u:object_r:fingerprint_service:s0 +font u:object_r:font_service:s0 +android.hardware.fingerprint.IFingerprintDaemon u:object_r:fingerprintd_service:s0 +gfxinfo u:object_r:gfxinfo_service:s0 +graphicsstats u:object_r:graphicsstats_service:s0 +gpu u:object_r:gpu_service:s0 +hardware u:object_r:hardware_service:s0 +hardware_properties u:object_r:hardware_properties_service:s0 +hdmi_control u:object_r:hdmi_control_service:s0 +incident u:object_r:incident_service:s0 +inputflinger u:object_r:inputflinger_service:s0 +input_method u:object_r:input_method_service:s0 +input u:object_r:input_service:s0 +installd u:object_r:installd_service:s0 +iphonesubinfo_msim u:object_r:radio_service:s0 +iphonesubinfo2 u:object_r:radio_service:s0 +iphonesubinfo u:object_r:radio_service:s0 +ims u:object_r:radio_service:s0 +imms u:object_r:imms_service:s0 +ipsec u:object_r:ipsec_service:s0 +isms_msim u:object_r:radio_service:s0 +isms2 u:object_r:radio_service:s0 +isms u:object_r:radio_service:s0 +isub u:object_r:radio_service:s0 +jobscheduler u:object_r:jobscheduler_service:s0 +launcherapps u:object_r:launcherapps_service:s0 +location u:object_r:location_service:s0 +lock_settings u:object_r:lock_settings_service:s0 +media.aaudio u:object_r:audioserver_service:s0 +media.audio_flinger u:object_r:audioserver_service:s0 +media.audio_policy u:object_r:audioserver_service:s0 +media.camera u:object_r:cameraserver_service:s0 +media.camera.proxy u:object_r:cameraproxy_service:s0 +media.log u:object_r:audioserver_service:s0 +media.player u:object_r:mediaserver_service:s0 +media.metrics u:object_r:mediametrics_service:s0 +media.extractor u:object_r:mediaextractor_service:s0 +media.codec u:object_r:mediacodec_service:s0 +media.resource_manager u:object_r:mediaserver_service:s0 +media.radio u:object_r:audioserver_service:s0 +media.sound_trigger_hw u:object_r:audioserver_service:s0 +media.drm u:object_r:mediadrmserver_service:s0 +media.cas u:object_r:mediacasserver_service:s0 +media_projection u:object_r:media_projection_service:s0 +media_resource_monitor u:object_r:media_session_service:s0 +media_router u:object_r:media_router_service:s0 +media_session u:object_r:media_session_service:s0 +meminfo u:object_r:meminfo_service:s0 +midi u:object_r:midi_service:s0 +mount u:object_r:mount_service:s0 +netd u:object_r:netd_service:s0 +netpolicy u:object_r:netpolicy_service:s0 +netstats u:object_r:netstats_service:s0 +network_management u:object_r:network_management_service:s0 +network_score u:object_r:network_score_service:s0 +network_time_update_service u:object_r:network_time_update_service:s0 +nfc u:object_r:nfc_service:s0 +notification u:object_r:notification_service:s0 +oem_lock u:object_r:oem_lock_service:s0 +otadexopt u:object_r:otadexopt_service:s0 +overlay u:object_r:overlay_service:s0 +package u:object_r:package_service:s0 +permission u:object_r:permission_service:s0 +persistent_data_block u:object_r:persistent_data_block_service:s0 +phone_msim u:object_r:radio_service:s0 +phone1 u:object_r:radio_service:s0 +phone2 u:object_r:radio_service:s0 +phone u:object_r:radio_service:s0 +pinner u:object_r:pinner_service:s0 +power u:object_r:power_service:s0 +print u:object_r:print_service:s0 +processinfo u:object_r:processinfo_service:s0 +procstats u:object_r:procstats_service:s0 +radio.phonesubinfo u:object_r:radio_service:s0 +radio.phone u:object_r:radio_service:s0 +radio.sms u:object_r:radio_service:s0 +recovery u:object_r:recovery_service:s0 +restrictions u:object_r:restrictions_service:s0 +rttmanager u:object_r:rttmanager_service:s0 +samplingprofiler u:object_r:samplingprofiler_service:s0 +scheduling_policy u:object_r:scheduling_policy_service:s0 +search u:object_r:search_service:s0 +sec_key_att_app_id_provider u:object_r:sec_key_att_app_id_provider_service:s0 +sensorservice u:object_r:sensorservice_service:s0 +serial u:object_r:serial_service:s0 +servicediscovery u:object_r:servicediscovery_service:s0 +settings u:object_r:settings_service:s0 +shortcut u:object_r:shortcut_service:s0 +simphonebook_msim u:object_r:radio_service:s0 +simphonebook2 u:object_r:radio_service:s0 +simphonebook u:object_r:radio_service:s0 +sip u:object_r:radio_service:s0 +soundtrigger u:object_r:voiceinteraction_service:s0 +statusbar u:object_r:statusbar_service:s0 +storaged u:object_r:storaged_service:s0 +storagestats u:object_r:storagestats_service:s0 +SurfaceFlinger u:object_r:surfaceflinger_service:s0 +task u:object_r:task_service:s0 +telecom u:object_r:telecom_service:s0 +telephony.registry u:object_r:registry_service:s0 +textclassification u:object_r:textclassification_service:s0 +textservices u:object_r:textservices_service:s0 +trust u:object_r:trust_service:s0 +tv_input u:object_r:tv_input_service:s0 +uimode u:object_r:uimode_service:s0 +updatelock u:object_r:updatelock_service:s0 +usagestats u:object_r:usagestats_service:s0 +usb u:object_r:usb_service:s0 +user u:object_r:user_service:s0 +vibrator u:object_r:vibrator_service:s0 +virtual_touchpad u:object_r:virtual_touchpad_service:s0 +voiceinteraction u:object_r:voiceinteraction_service:s0 +vr_hwc u:object_r:vr_hwc_service:s0 +vrmanager u:object_r:vr_manager_service:s0 +wallpaper u:object_r:wallpaper_service:s0 +webviewupdate u:object_r:webviewupdate_service:s0 +wifip2p u:object_r:wifip2p_service:s0 +wifiscanner u:object_r:wifiscanner_service:s0 +wifi u:object_r:wifi_service:s0 +wificond u:object_r:wificond_service:s0 +wifiaware u:object_r:wifiaware_service:s0 +window u:object_r:window_service:s0 +* u:object_r:default_android_service:s0 diff --git a/prebuilts/api/26.0/private/servicemanager.te b/prebuilts/api/26.0/private/servicemanager.te new file mode 100644 index 000000000..9f675a2be --- /dev/null +++ b/prebuilts/api/26.0/private/servicemanager.te @@ -0,0 +1,5 @@ +typeattribute servicemanager coredomain; + +init_daemon_domain(servicemanager) + +read_runtime_log_tags(servicemanager) diff --git a/prebuilts/api/26.0/private/sgdisk.te b/prebuilts/api/26.0/private/sgdisk.te new file mode 100644 index 000000000..a17342e01 --- /dev/null +++ b/prebuilts/api/26.0/private/sgdisk.te @@ -0,0 +1 @@ +typeattribute sgdisk coredomain; diff --git a/prebuilts/api/26.0/private/shared_relro.te b/prebuilts/api/26.0/private/shared_relro.te new file mode 100644 index 000000000..8d06294d9 --- /dev/null +++ b/prebuilts/api/26.0/private/shared_relro.te @@ -0,0 +1,6 @@ +typeattribute shared_relro coredomain; +typeattribute shared_relro domain_deprecated; + +# The shared relro process is a Java program forked from the zygote, so it +# inherits from app to get basic permissions it needs to run. +app_domain(shared_relro) diff --git a/prebuilts/api/26.0/private/shell.te b/prebuilts/api/26.0/private/shell.te new file mode 100644 index 000000000..fbd9676a7 --- /dev/null +++ b/prebuilts/api/26.0/private/shell.te @@ -0,0 +1,22 @@ +typeattribute shell coredomain; + +# systrace support - allow atrace to run +allow shell debugfs_tracing:dir r_dir_perms; +allow shell debugfs_tracing:file r_file_perms; +allow shell tracing_shell_writable:file rw_file_perms; +allow shell debugfs_trace_marker:file getattr; +allow shell atrace_exec:file rx_file_perms; + +# read config.gz for CTS purposes +allow shell config_gz:file r_file_perms; + +userdebug_or_eng(` + allow shell tracing_shell_writable_debug:file rw_file_perms; +') + +# Run app_process. +# XXX Transition into its own domain? +app_domain(shell) + +# allow shell to call dumpsys storaged +binder_call(shell, storaged) diff --git a/prebuilts/api/26.0/private/slideshow.te b/prebuilts/api/26.0/private/slideshow.te new file mode 100644 index 000000000..7dfa994ea --- /dev/null +++ b/prebuilts/api/26.0/private/slideshow.te @@ -0,0 +1 @@ +typeattribute slideshow coredomain; diff --git a/prebuilts/api/26.0/private/storaged.te b/prebuilts/api/26.0/private/storaged.te new file mode 100644 index 000000000..96433b308 --- /dev/null +++ b/prebuilts/api/26.0/private/storaged.te @@ -0,0 +1,51 @@ +# storaged daemon +type storaged, domain, coredomain, mlstrustedsubject; +type storaged_exec, exec_type, file_type; + +init_daemon_domain(storaged) + +# Read access to pseudo filesystems +r_dir_file(storaged, sysfs_type) +r_dir_file(storaged, proc_net) +r_dir_file(storaged, domain) + +# Read /proc/uid_io/stats +allow storaged proc_uid_io_stats:file r_file_perms; + +# Read /data/system/packages.list +allow storaged system_data_file:file r_file_perms; + +userdebug_or_eng(` + # Read access to debugfs + allow storaged debugfs_mmc:dir search; + allow storaged debugfs_mmc:file r_file_perms; +') + +# Needed to provide debug dump output via dumpsys pipes. +allow storaged shell:fd use; +allow storaged shell:fifo_file write; + +# Needed for GMScore to call dumpsys storaged +allow storaged priv_app:fd use; +allow storaged app_data_file:file write; +allow storaged permission_service:service_manager find; + +# Binder permissions +add_service(storaged, storaged_service) + +binder_use(storaged) +binder_call(storaged, system_server) + +# use batteryproperties service +allow storaged batteryproperties_service:service_manager find; +binder_call(storaged, healthd) + +# Kernel does extra check on CAP_DAC_OVERRIDE for libbinder when storaged is +# running as root. See b/35323867 #3. +dontaudit storaged self:capability dac_override; + +### +### neverallow +### +neverallow storaged domain:process ptrace; +neverallow storaged self:capability_class_set *; diff --git a/prebuilts/api/26.0/private/su.te b/prebuilts/api/26.0/private/su.te new file mode 100644 index 000000000..d42bf614c --- /dev/null +++ b/prebuilts/api/26.0/private/su.te @@ -0,0 +1,20 @@ +userdebug_or_eng(` + typeattribute su coredomain; + + domain_auto_trans(shell, su_exec, su) + # Allow dumpstate to call su on userdebug / eng builds to collect + # additional information. + domain_auto_trans(dumpstate, su_exec, su) + + # Make sure that dumpstate runs the same from the "su" domain as + # from the "init" domain. + domain_auto_trans(su, dumpstate_exec, dumpstate) + + # Put the incident command into its domain so it is the same on user, userdebug and eng. + domain_auto_trans(su, incident_exec, incident) + +# su is also permissive to permit setenforce. + permissive su; + + app_domain(su) +') diff --git a/prebuilts/api/26.0/private/surfaceflinger.te b/prebuilts/api/26.0/private/surfaceflinger.te new file mode 100644 index 000000000..3595ee426 --- /dev/null +++ b/prebuilts/api/26.0/private/surfaceflinger.te @@ -0,0 +1,110 @@ +# surfaceflinger - display compositor service + +typeattribute surfaceflinger coredomain; + +type surfaceflinger_exec, exec_type, file_type; +init_daemon_domain(surfaceflinger) + +typeattribute surfaceflinger mlstrustedsubject; +typeattribute surfaceflinger display_service_server; + +read_runtime_log_tags(surfaceflinger) + +# Perform HwBinder IPC. +hal_client_domain(surfaceflinger, hal_graphics_allocator) +hal_client_domain(surfaceflinger, hal_graphics_composer) +hal_client_domain(surfaceflinger, hal_configstore) +allow surfaceflinger hal_configstore_ISurfaceFlingerConfigs:hwservice_manager find; +allow surfaceflinger hidl_token_hwservice:hwservice_manager find; + +# Perform Binder IPC. +binder_use(surfaceflinger) +binder_call(surfaceflinger, binderservicedomain) +binder_call(surfaceflinger, appdomain) +binder_call(surfaceflinger, bootanim) +binder_service(surfaceflinger) + +# Binder IPC to bu, presently runs in adbd domain. +binder_call(surfaceflinger, adbd) + +# Read /proc/pid files for Binder clients. +r_dir_file(surfaceflinger, binderservicedomain) +r_dir_file(surfaceflinger, appdomain) + +# Access the GPU. +allow surfaceflinger gpu_device:chr_file rw_file_perms; + +# Access /dev/graphics/fb0. +allow surfaceflinger graphics_device:dir search; +allow surfaceflinger graphics_device:chr_file rw_file_perms; + +# Access /dev/video1. +allow surfaceflinger video_device:dir r_dir_perms; +allow surfaceflinger video_device:chr_file rw_file_perms; + +# Create and use netlink kobject uevent sockets. +allow surfaceflinger self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; + +# Set properties. +set_prop(surfaceflinger, system_prop) +set_prop(surfaceflinger, ctl_bootanim_prop) + +# Use open files supplied by an app. +allow surfaceflinger appdomain:fd use; +allow surfaceflinger app_data_file:file { read write }; + +# Use socket supplied by adbd, for cmd gpu vkjson etc. +allow surfaceflinger adbd:unix_stream_socket { read write getattr }; + +# Allow a dumpstate triggered screenshot +binder_call(surfaceflinger, dumpstate) +binder_call(surfaceflinger, shell) +r_dir_file(surfaceflinger, dumpstate) + +# Needed on some devices for playing DRM protected content, +# but seems expected and appropriate for all devices. +allow surfaceflinger tee_device:chr_file rw_file_perms; + + +# media.player service +add_service(surfaceflinger, gpu_service) + +# do not use add_service() as hal_graphics_composer_default may be the +# provider as well +#add_service(surfaceflinger, surfaceflinger_service) +allow surfaceflinger surfaceflinger_service:service_manager { add find }; + +allow surfaceflinger mediaserver_service:service_manager find; +allow surfaceflinger permission_service:service_manager find; +allow surfaceflinger power_service:service_manager find; +allow surfaceflinger vr_manager_service:service_manager find; +allow surfaceflinger window_service:service_manager find; + + +# allow self to set SCHED_FIFO +allow surfaceflinger self:capability sys_nice; +allow surfaceflinger proc_meminfo:file r_file_perms; +r_dir_file(surfaceflinger, cgroup) +r_dir_file(surfaceflinger, sysfs_type) +r_dir_file(surfaceflinger, system_file) +allow surfaceflinger tmpfs:dir r_dir_perms; +allow surfaceflinger system_server:fd use; +allow surfaceflinger ion_device:chr_file r_file_perms; + +# pdx IPC +pdx_server(surfaceflinger, display_client) +pdx_server(surfaceflinger, display_manager) +pdx_server(surfaceflinger, display_screenshot) +pdx_server(surfaceflinger, display_vsync) + +pdx_client(surfaceflinger, bufferhub_client) +pdx_client(surfaceflinger, performance_client) + +### +### Neverallow rules +### +### surfaceflinger should NEVER do any of this + +# Do not allow accessing SDcard files as unsafe ejection could +# cause the kernel to kill the process. +neverallow surfaceflinger sdcard_type:file rw_file_perms; diff --git a/prebuilts/api/26.0/private/system_app.te b/prebuilts/api/26.0/private/system_app.te new file mode 100644 index 000000000..7950044ba --- /dev/null +++ b/prebuilts/api/26.0/private/system_app.te @@ -0,0 +1,92 @@ +### +### Apps that run with the system UID, e.g. com.android.system.ui, +### com.android.settings. These are not as privileged as the system +### server. +### + +typeattribute system_app coredomain; +typeattribute system_app domain_deprecated; + +app_domain(system_app) +net_domain(system_app) +binder_service(system_app) + +# Read and write /data/data subdirectory. +allow system_app system_app_data_file:dir create_dir_perms; +allow system_app system_app_data_file:{ file lnk_file } create_file_perms; + +# Read and write to /data/misc/user. +allow system_app misc_user_data_file:dir create_dir_perms; +allow system_app misc_user_data_file:file create_file_perms; + +# Access to vold-mounted storage for measuring free space +allow system_app mnt_media_rw_file:dir search; + +# Read wallpaper file. +allow system_app wallpaper_file:file r_file_perms; + +# Read icon file. +allow system_app icon_file:file r_file_perms; + +# Write to properties +set_prop(system_app, bluetooth_prop) +set_prop(system_app, debug_prop) +set_prop(system_app, system_prop) +set_prop(system_app, logd_prop) +set_prop(system_app, net_radio_prop) +set_prop(system_app, system_radio_prop) +set_prop(system_app, log_tag_prop) +userdebug_or_eng(`set_prop(system_app, logpersistd_logging_prop)') +auditallow system_app net_radio_prop:property_service set; +auditallow system_app system_radio_prop:property_service set; + +# ctl interface +set_prop(system_app, ctl_default_prop) +set_prop(system_app, ctl_bugreport_prop) + +# Create /data/anr/traces.txt. +allow system_app anr_data_file:dir ra_dir_perms; +allow system_app anr_data_file:file create_file_perms; + +# Settings need to access app name and icon from asec +allow system_app asec_apk_file:file r_file_perms; + +# Allow system apps to interact with incidentd +binder_call(system_app, incidentd) + +allow system_app servicemanager:service_manager list; +# TODO: scope this down? Too broad? +allow system_app { service_manager_type -netd_service -dumpstate_service -installd_service -virtual_touchpad_service -vr_hwc_service }:service_manager find; + +allow system_app keystore:keystore_key { + get_state + get + insert + delete + exist + list + reset + password + lock + unlock + is_empty + sign + verify + grant + duplicate + clear_uid + user_changed +}; + +# /sys access +r_dir_file(system_app, sysfs_type) + +control_logd(system_app) +read_runtime_log_tags(system_app) + +### +### Neverallow rules +### + +# app domains which access /dev/fuse should not run as system_app +neverallow system_app fuse_device:chr_file *; diff --git a/prebuilts/api/26.0/private/system_server.te b/prebuilts/api/26.0/private/system_server.te new file mode 100644 index 000000000..05e47734b --- /dev/null +++ b/prebuilts/api/26.0/private/system_server.te @@ -0,0 +1,740 @@ +# +# System Server aka system_server spawned by zygote. +# Most of the framework services run in this process. +# + +typeattribute system_server coredomain; +typeattribute system_server domain_deprecated; +typeattribute system_server mlstrustedsubject; + +# Define a type for tmpfs-backed ashmem regions. +tmpfs_domain(system_server) + +# Create a socket for connections from crash_dump. +type_transition system_server system_data_file:sock_file system_ndebug_socket "ndebugsocket"; + +allow system_server zygote_tmpfs:file read; + +# For art. +allow system_server dalvikcache_data_file:dir r_dir_perms; +allow system_server dalvikcache_data_file:file { r_file_perms execute }; +userdebug_or_eng(` + # Report dalvikcache_data_file:file execute violations. + auditallow system_server dalvikcache_data_file:file execute; +') + +# /data/resource-cache +allow system_server resourcecache_data_file:file r_file_perms; +allow system_server resourcecache_data_file:dir r_dir_perms; + +# ptrace to processes in the same domain for debugging crashes. +allow system_server self:process ptrace; + +# Read and delete last_reboot_reason file +allow system_server reboot_data_file:file { rename r_file_perms unlink }; +allow system_server reboot_data_file:dir { write search open remove_name }; + +# Child of the zygote. +allow system_server zygote:fd use; +allow system_server zygote:process sigchld; + +# May kill zygote on crashes. +allow system_server zygote:process sigkill; +allow system_server crash_dump:process sigkill; + +# Read /system/bin/app_process. +allow system_server zygote_exec:file r_file_perms; + +# Needed to close the zygote socket, which involves getopt / getattr +allow system_server zygote:unix_stream_socket { getopt getattr }; + +# system server gets network and bluetooth permissions. +net_domain(system_server) +# in addition to ioctls whitelisted for all domains, also allow system_server +# to use privileged ioctls commands. Needed to set up VPNs. +allowxperm system_server self:udp_socket ioctl priv_sock_ioctls; +bluetooth_domain(system_server) + +# These are the capabilities assigned by the zygote to the +# system server. +allow system_server self:capability { + ipc_lock + kill + net_admin + net_bind_service + net_broadcast + net_raw + sys_boot + sys_nice + sys_ptrace + sys_time + sys_tty_config +}; + +wakelock_use(system_server) + +# Trigger module auto-load. +allow system_server kernel:system module_request; + +# Allow alarmtimers to be set +allow system_server self:capability2 wake_alarm; + +# Use netlink uevent sockets. +allow system_server self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; + +# Use generic netlink sockets. +allow system_server self:netlink_socket create_socket_perms_no_ioctl; +allow system_server self:netlink_generic_socket create_socket_perms_no_ioctl; + +# libvintf reads the kernel config to verify vendor interface compatibility. +allow system_server config_gz:file { read open }; + +# Use generic "sockets" where the address family is not known +# to the kernel. The ioctl permission is specifically omitted here, but may +# be added to device specific policy along with the ioctl commands to be +# whitelisted. +allow system_server self:socket create_socket_perms_no_ioctl; + +# Set and get routes directly via netlink. +allow system_server self:netlink_route_socket nlmsg_write; + +# Kill apps. +allow system_server appdomain:process { sigkill signal }; + +# Set scheduling info for apps. +allow system_server appdomain:process { getsched setsched }; +allow system_server audioserver:process { getsched setsched }; +allow system_server hal_audio:process { getsched setsched }; +allow system_server hal_bluetooth:process { getsched setsched }; +allow system_server cameraserver:process { getsched setsched }; +allow system_server hal_camera:process { getsched setsched }; +allow system_server mediaserver:process { getsched setsched }; +allow system_server bootanim:process { getsched setsched }; + +# Read /proc/pid data for all domains. This is used by ProcessCpuTracker +# within system_server to keep track of memory and CPU usage for +# all processes on the device. In addition, /proc/pid files access is needed +# for dumping stack traces of native processes. +r_dir_file(system_server, domain) + +# Read/Write to /proc/net/xt_qtaguid/ctrl and and /dev/xt_qtaguid. +allow system_server qtaguid_proc:file rw_file_perms; +allow system_server qtaguid_device:chr_file rw_file_perms; + +# Read /proc/uid_cputime/show_uid_stat. +allow system_server proc_uid_cputime_showstat:file r_file_perms; + +# Write /proc/uid_cputime/remove_uid_range. +allow system_server proc_uid_cputime_removeuid:file { w_file_perms getattr }; + +# Write /proc/uid_procstat/set. +allow system_server proc_uid_procstat_set:file { w_file_perms getattr }; + +# Write to /proc/sysrq-trigger. +allow system_server proc_sysrq:file rw_file_perms; + +# Read /proc/stat for CPU usage statistics +allow system_server proc_stat:file r_file_perms; + +# Read /sys/kernel/debug/wakeup_sources. +allow system_server debugfs:file r_file_perms; + +# The DhcpClient and WifiWatchdog use packet_sockets +allow system_server self:packet_socket create_socket_perms_no_ioctl; + +# NetworkDiagnostics requires explicit bind() calls to ping sockets. These aren't actually the same +# as raw sockets, but the kernel doesn't yet distinguish between the two. +allow system_server node:rawip_socket node_bind; + +# 3rd party VPN clients require a tun_socket to be created +allow system_server self:tun_socket create_socket_perms_no_ioctl; + +# Talk to init and various daemons via sockets. +unix_socket_connect(system_server, lmkd, lmkd) +unix_socket_connect(system_server, mtpd, mtp) +unix_socket_connect(system_server, netd, netd) +unix_socket_connect(system_server, vold, vold) +unix_socket_connect(system_server, webview_zygote, webview_zygote) +unix_socket_connect(system_server, zygote, zygote) +unix_socket_connect(system_server, racoon, racoon) +unix_socket_connect(system_server, uncrypt, uncrypt) + +# Communicate over a socket created by surfaceflinger. +allow system_server surfaceflinger:unix_stream_socket { read write setopt }; + +# Perform Binder IPC. +binder_use(system_server) +binder_call(system_server, appdomain) +binder_call(system_server, binderservicedomain) +binder_call(system_server, dumpstate) +binder_call(system_server, fingerprintd) +binder_call(system_server, gatekeeperd) +binder_call(system_server, installd) +binder_call(system_server, incidentd) +binder_call(system_server, netd) +binder_call(system_server, wificond) +binder_service(system_server) + +# Use HALs +hal_client_domain(system_server, hal_allocator) +hal_client_domain(system_server, hal_contexthub) +hal_client_domain(system_server, hal_fingerprint) +hal_client_domain(system_server, hal_gnss) +hal_client_domain(system_server, hal_graphics_allocator) +hal_client_domain(system_server, hal_ir) +hal_client_domain(system_server, hal_light) +hal_client_domain(system_server, hal_memtrack) +hal_client_domain(system_server, hal_oemlock) +allow system_server hal_omx_hwservice:hwservice_manager find; +allow system_server hidl_token_hwservice:hwservice_manager find; +hal_client_domain(system_server, hal_power) +hal_client_domain(system_server, hal_sensors) +hal_client_domain(system_server, hal_tetheroffload) +hal_client_domain(system_server, hal_thermal) +hal_client_domain(system_server, hal_tv_cec) +hal_client_domain(system_server, hal_tv_input) +hal_client_domain(system_server, hal_usb) +hal_client_domain(system_server, hal_vibrator) +hal_client_domain(system_server, hal_vr) +hal_client_domain(system_server, hal_weaver) +hal_client_domain(system_server, hal_wifi) +hal_client_domain(system_server, hal_wifi_offload) +hal_client_domain(system_server, hal_wifi_supplicant) + +binder_call(system_server, mediacodec) + +# Talk with graphics composer fences +allow system_server hal_graphics_composer:fd use; + +# Use RenderScript always-passthrough HAL +allow system_server hal_renderscript_hwservice:hwservice_manager find; + +# Offer HwBinder services +add_hwservice(system_server, fwk_scheduler_hwservice) +add_hwservice(system_server, fwk_sensor_hwservice) + +# Talk to tombstoned to get ANR traces. +unix_socket_connect(system_server, tombstoned_intercept, tombstoned) + +# List HAL interfaces to get ANR traces. +allow system_server hwservicemanager:hwservice_manager list; + +# Send signals to trigger ANR traces. +allow system_server { + # This is derived from the list that system server defines as interesting native processes + # to dump during ANRs or watchdog aborts, defined in NATIVE_STACKS_OF_INTEREST in + # frameworks/base/services/core/java/com/android/server/Watchdog.java. + audioserver + cameraserver + drmserver + inputflinger + mediadrmserver + mediaextractor + mediaserver + mediametrics + sdcardd + surfaceflinger + + # This list comes from HAL_INTERFACES_OF_INTEREST in + # frameworks/base/services/core/java/com/android/server/Watchdog.java. + hal_audio_server + hal_bluetooth_server + hal_camera_server + hal_graphics_composer_server + hal_vr_server + mediacodec # TODO(b/36375899): hal_omx_server +}:process { signal }; + +# Use sockets received over binder from various services. +allow system_server audioserver:tcp_socket rw_socket_perms; +allow system_server audioserver:udp_socket rw_socket_perms; +allow system_server mediaserver:tcp_socket rw_socket_perms; +allow system_server mediaserver:udp_socket rw_socket_perms; + +# Use sockets received over binder from various services. +allow system_server mediadrmserver:tcp_socket rw_socket_perms; +allow system_server mediadrmserver:udp_socket rw_socket_perms; + +# Get file context +allow system_server file_contexts_file:file r_file_perms; +# access for mac_permissions +allow system_server mac_perms_file: file r_file_perms; +# Check SELinux permissions. +selinux_check_access(system_server) + +# XXX Label sysfs files with a specific type? +allow system_server sysfs:file rw_file_perms; +allow system_server sysfs_nfc_power_writable:file rw_file_perms; +allow system_server sysfs_devices_system_cpu:file w_file_perms; +allow system_server sysfs_mac_address:file r_file_perms; +allow system_server sysfs_thermal:dir search; +allow system_server sysfs_thermal:file r_file_perms; + +# TODO: Remove when HALs are forced into separate processes +allow system_server sysfs_vibrator:file { write append }; + +# TODO: added to match above sysfs rule. Remove me? +allow system_server sysfs_usb:file w_file_perms; + +# Access devices. +allow system_server device:dir r_dir_perms; +allow system_server mdns_socket:sock_file rw_file_perms; +allow system_server alarm_device:chr_file rw_file_perms; +allow system_server gpu_device:chr_file rw_file_perms; +allow system_server iio_device:chr_file rw_file_perms; +allow system_server input_device:dir r_dir_perms; +allow system_server input_device:chr_file rw_file_perms; +allow system_server radio_device:chr_file r_file_perms; +allow system_server tty_device:chr_file rw_file_perms; +allow system_server usbaccessory_device:chr_file rw_file_perms; +allow system_server video_device:dir r_dir_perms; +allow system_server video_device:chr_file rw_file_perms; +allow system_server adbd_socket:sock_file rw_file_perms; +allow system_server rtc_device:chr_file rw_file_perms; +allow system_server audio_device:dir r_dir_perms; + +# write access needed for MIDI +allow system_server audio_device:chr_file rw_file_perms; + +# tun device used for 3rd party vpn apps +allow system_server tun_device:chr_file rw_file_perms; + +# Manage system data files. +allow system_server system_data_file:dir create_dir_perms; +allow system_server system_data_file:notdevfile_class_set create_file_perms; +allow system_server keychain_data_file:dir create_dir_perms; +allow system_server keychain_data_file:file create_file_perms; +allow system_server keychain_data_file:lnk_file create_file_perms; + +# Manage /data/app. +allow system_server apk_data_file:dir create_dir_perms; +allow system_server apk_data_file:{ file lnk_file } { create_file_perms link }; +allow system_server apk_tmp_file:dir create_dir_perms; +allow system_server apk_tmp_file:file create_file_perms; + +# Access /vendor/app +r_dir_file(system_server, vendor_app_file) + +# Access /vendor/app +r_dir_file(system_server, vendor_overlay_file) + +# Manage /data/app-private. +allow system_server apk_private_data_file:dir create_dir_perms; +allow system_server apk_private_data_file:file create_file_perms; +allow system_server apk_private_tmp_file:dir create_dir_perms; +allow system_server apk_private_tmp_file:file create_file_perms; + +# Manage files within asec containers. +allow system_server asec_apk_file:dir create_dir_perms; +allow system_server asec_apk_file:file create_file_perms; +allow system_server asec_public_file:file create_file_perms; + +# Manage /data/anr. +allow system_server anr_data_file:dir create_dir_perms; +allow system_server anr_data_file:file create_file_perms; + +# Read /data/misc/incidents - only read. The fd will be sent over binder, +# with no DAC access to it, for dropbox to read. +allow system_server incident_data_file:file read; + +# Manage /data/backup. +allow system_server backup_data_file:dir create_dir_perms; +allow system_server backup_data_file:file create_file_perms; + +# Write to /data/system/heapdump +allow system_server heapdump_data_file:dir rw_dir_perms; +allow system_server heapdump_data_file:file create_file_perms; + +# Manage /data/misc/adb. +allow system_server adb_keys_file:dir create_dir_perms; +allow system_server adb_keys_file:file create_file_perms; + +# Manage /data/misc/sms. +# TODO: Split into a separate type? +allow system_server radio_data_file:dir create_dir_perms; +allow system_server radio_data_file:file create_file_perms; + +# Manage /data/misc/systemkeys. +allow system_server systemkeys_data_file:dir create_dir_perms; +allow system_server systemkeys_data_file:file create_file_perms; + +# Manage /data/misc/textclassifier. +allow system_server textclassifier_data_file:dir create_dir_perms; +allow system_server textclassifier_data_file:file create_file_perms; + +# Access /data/tombstones. +allow system_server tombstone_data_file:dir r_dir_perms; +allow system_server tombstone_data_file:file r_file_perms; + +# Manage /data/misc/vpn. +allow system_server vpn_data_file:dir create_dir_perms; +allow system_server vpn_data_file:file create_file_perms; + +# Manage /data/misc/wifi. +allow system_server wifi_data_file:dir create_dir_perms; +allow system_server wifi_data_file:file create_file_perms; + +# Manage /data/misc/zoneinfo. +allow system_server zoneinfo_data_file:dir create_dir_perms; +allow system_server zoneinfo_data_file:file create_file_perms; + +# Walk /data/data subdirectories. +# Types extracted from seapp_contexts type= fields. +allow system_server { system_app_data_file bluetooth_data_file nfc_data_file radio_data_file shell_data_file app_data_file }:dir { getattr read search }; +# Also permit for unlabeled /data/data subdirectories and +# for unlabeled asec containers on upgrades from 4.2. +allow system_server unlabeled:dir r_dir_perms; +# Read pkg.apk file before it has been relabeled by vold. +allow system_server unlabeled:file r_file_perms; + +# Populate com.android.providers.settings/databases/settings.db. +allow system_server system_app_data_file:dir create_dir_perms; +allow system_server system_app_data_file:file create_file_perms; + +# Receive and use open app data files passed over binder IPC. +# Types extracted from seapp_contexts type= fields. +allow system_server { system_app_data_file bluetooth_data_file nfc_data_file radio_data_file shell_data_file app_data_file }:file { getattr read write append }; + +# Access to /data/media for measuring disk usage. +allow system_server media_rw_data_file:dir { search getattr open read }; + +# Receive and use open /data/media files passed over binder IPC. +# Also used for measuring disk usage. +allow system_server media_rw_data_file:file { getattr read write append }; + +# Relabel apk files. +allow system_server { apk_tmp_file apk_private_tmp_file }:{ dir file } { relabelfrom relabelto }; +allow system_server { apk_data_file apk_private_data_file }:{ dir file } { relabelfrom relabelto }; + +# Relabel wallpaper. +allow system_server system_data_file:file relabelfrom; +allow system_server wallpaper_file:file relabelto; +allow system_server wallpaper_file:file { rw_file_perms rename unlink }; + +# Backup of wallpaper imagery uses temporary hard links to avoid data churn +allow system_server { system_data_file wallpaper_file }:file link; + +# ShortcutManager icons +allow system_server system_data_file:dir relabelfrom; +allow system_server shortcut_manager_icons:dir { create_dir_perms relabelto }; +allow system_server shortcut_manager_icons:file create_file_perms; + +# Manage ringtones. +allow system_server ringtone_file:dir { create_dir_perms relabelto }; +allow system_server ringtone_file:file create_file_perms; + +# Relabel icon file. +allow system_server icon_file:file relabelto; +allow system_server icon_file:file { rw_file_perms unlink }; + +# FingerprintService.java does a restorecon of the directory /data/system/users/[0-9]+/fpdata(/.*)? +allow system_server system_data_file:dir relabelfrom; + +# Property Service write +set_prop(system_server, system_prop) +set_prop(system_server, safemode_prop) +set_prop(system_server, dhcp_prop) +set_prop(system_server, net_radio_prop) +set_prop(system_server, net_dns_prop) +set_prop(system_server, system_radio_prop) +set_prop(system_server, debug_prop) +set_prop(system_server, powerctl_prop) +set_prop(system_server, fingerprint_prop) +set_prop(system_server, device_logging_prop) +set_prop(system_server, dumpstate_options_prop) +set_prop(system_server, overlay_prop) +userdebug_or_eng(`set_prop(system_server, wifi_log_prop)') + +# ctl interface +set_prop(system_server, ctl_default_prop) +set_prop(system_server, ctl_bugreport_prop) + +# cppreopt property +set_prop(system_server, cppreopt_prop) + +# Collect metrics on boot time created by init +get_prop(system_server, boottime_prop) + +# Read device's serial number from system properties +get_prop(system_server, serialno_prop) + +# Read/write the property which keeps track of whether this is the first start of system_server +set_prop(system_server, firstboot_prop) + +# Create a socket for connections from debuggerd. +allow system_server system_ndebug_socket:sock_file create_file_perms; + +# Manage cache files. +allow system_server { cache_file cache_recovery_file }:dir { relabelfrom create_dir_perms }; +allow system_server { cache_file cache_recovery_file }:file { relabelfrom create_file_perms }; +allow system_server { cache_file cache_recovery_file }:fifo_file create_file_perms; + +allow system_server system_file:dir r_dir_perms; +allow system_server system_file:lnk_file r_file_perms; + +# LocationManager(e.g, GPS) needs to read and write +# to uart driver and ctrl proc entry +allow system_server gps_control:file rw_file_perms; + +# Allow system_server to use app-created sockets and pipes. +allow system_server appdomain:{ tcp_socket udp_socket } { getattr getopt setopt read write shutdown }; +allow system_server appdomain:{ fifo_file unix_stream_socket } { getattr read write }; + +# BackupManagerService needs to manipulate backup data files +allow system_server cache_backup_file:dir rw_dir_perms; +allow system_server cache_backup_file:file create_file_perms; +# LocalTransport works inside /cache/backup +allow system_server cache_private_backup_file:dir create_dir_perms; +allow system_server cache_private_backup_file:file create_file_perms; + +# Allow system to talk to usb device +allow system_server usb_device:chr_file rw_file_perms; +allow system_server usb_device:dir r_dir_perms; + +# Read from HW RNG (needed by EntropyMixer). +allow system_server hw_random_device:chr_file r_file_perms; + +# Read and delete files under /dev/fscklogs. +r_dir_file(system_server, fscklogs) +allow system_server fscklogs:dir { write remove_name }; +allow system_server fscklogs:file unlink; + +# logd access, system_server inherit logd write socket +# (urge is to deprecate this long term) +allow system_server zygote:unix_dgram_socket write; + +# Read from log daemon. +read_logd(system_server) +read_runtime_log_tags(system_server) + +# Be consistent with DAC permissions. Allow system_server to write to +# /sys/module/lowmemorykiller/parameters/adj +# /sys/module/lowmemorykiller/parameters/minfree +allow system_server sysfs_lowmemorykiller:file { getattr w_file_perms }; + +# Read /sys/fs/pstore/console-ramoops +# Don't worry about overly broad permissions for now, as there's +# only one file in /sys/fs/pstore +allow system_server pstorefs:dir r_dir_perms; +allow system_server pstorefs:file r_file_perms; + +# /sys access +allow system_server sysfs_zram:dir search; +allow system_server sysfs_zram:file r_file_perms; + +add_service(system_server, system_server_service); +allow system_server audioserver_service:service_manager find; +allow system_server batteryproperties_service:service_manager find; +allow system_server cameraserver_service:service_manager find; +allow system_server drmserver_service:service_manager find; +allow system_server dumpstate_service:service_manager find; +allow system_server fingerprintd_service:service_manager find; +allow system_server hal_fingerprint_service:service_manager find; +allow system_server gatekeeper_service:service_manager find; +allow system_server incident_service:service_manager find; +allow system_server installd_service:service_manager find; +allow system_server keystore_service:service_manager find; +allow system_server mediaserver_service:service_manager find; +allow system_server mediametrics_service:service_manager find; +allow system_server mediaextractor_service:service_manager find; +allow system_server mediacodec_service:service_manager find; +allow system_server mediadrmserver_service:service_manager find; +allow system_server mediacasserver_service:service_manager find; +allow system_server netd_service:service_manager find; +allow system_server nfc_service:service_manager find; +allow system_server radio_service:service_manager find; +allow system_server surfaceflinger_service:service_manager find; +allow system_server wificond_service:service_manager find; + +allow system_server keystore:keystore_key { + get_state + get + insert + delete + exist + list + reset + password + lock + unlock + is_empty + sign + verify + grant + duplicate + clear_uid + add_auth + user_changed +}; + +# Allow system server to search and write to the persistent factory reset +# protection partition. This block device does not get wiped in a factory reset. +allow system_server block_device:dir search; +allow system_server frp_block_device:blk_file rw_file_perms; + +# Clean up old cgroups +allow system_server cgroup:dir { remove_name rmdir }; + +# /oem access +r_dir_file(system_server, oemfs) + +# Allow resolving per-user storage symlinks +allow system_server { mnt_user_file storage_file }:dir { getattr search }; +allow system_server { mnt_user_file storage_file }:lnk_file { getattr read }; + +# Allow statfs() on storage devices, which happens fast enough that +# we shouldn't be killed during unsafe removal +allow system_server sdcard_type:dir { getattr search }; + +# Traverse into expanded storage +allow system_server mnt_expand_file:dir r_dir_perms; + +# Allow system process to relabel the fingerprint directory after mkdir +# and delete the directory and files when no longer needed +allow system_server fingerprintd_data_file:dir { r_dir_perms remove_name rmdir relabelto write }; +allow system_server fingerprintd_data_file:file { getattr unlink }; + +# Allow system process to read network MAC address +allow system_server sysfs_mac_address:file r_file_perms; + +userdebug_or_eng(` + # Allow system server to create and write method traces in /data/misc/trace. + allow system_server method_trace_data_file:dir w_dir_perms; + allow system_server method_trace_data_file:file { create w_file_perms }; + + # Allow system server to read dmesg + allow system_server kernel:system syslog_read; +') + +# For AppFuse. +allow system_server vold:fd use; +allow system_server fuse_device:chr_file { read write ioctl getattr }; +allow system_server app_fuse_file:dir rw_dir_perms; +allow system_server app_fuse_file:file { read write open getattr append }; + +# For configuring sdcardfs +allow system_server configfs:dir { create_dir_perms }; +allow system_server configfs:file { getattr open unlink write }; + +# Connect to adbd and use a socket transferred from it. +# Used for e.g. jdwp. +allow system_server adbd:unix_stream_socket connectto; +allow system_server adbd:fd use; +allow system_server adbd:unix_stream_socket { getattr getopt ioctl read write shutdown }; + +# Allow invoking tools like "timeout" +allow system_server toolbox_exec:file rx_file_perms; + +# Postinstall +# +# For OTA dexopt, allow calls coming from postinstall. +binder_call(system_server, postinstall) + +allow system_server postinstall:fifo_file write; +allow system_server update_engine:fd use; +allow system_server update_engine:fifo_file write; + +# Access to /data/preloads +allow system_server preloads_data_file:file { r_file_perms unlink }; +allow system_server preloads_data_file:dir { r_dir_perms write remove_name rmdir }; +allow system_server preloads_media_file:file { r_file_perms unlink }; +allow system_server preloads_media_file:dir { r_dir_perms write remove_name rmdir }; + +r_dir_file(system_server, cgroup) +allow system_server ion_device:chr_file r_file_perms; + +r_dir_file(system_server, proc) +r_dir_file(system_server, proc_meminfo) +r_dir_file(system_server, proc_net) +r_dir_file(system_server, rootfs) +r_dir_file(system_server, sysfs_type) + +### Rules needed when Light HAL runs inside system_server process. +### These rules should eventually be granted only when needed. +allow system_server sysfs_leds:lnk_file read; +allow system_server sysfs_leds:file rw_file_perms; +allow system_server sysfs_leds:dir r_dir_perms; +### + +# Allow WifiService to start, stop, and read wifi-specific trace events. +allow system_server debugfs_tracing_instances:dir search; +allow system_server debugfs_wifi_tracing:file rw_file_perms; + +# allow system_server to exec shell on ASAN builds. Needed to run +# asanwrapper. +with_asan(` + allow system_server shell_exec:file rx_file_perms; +') + +### +### Neverallow rules +### +### system_server should NEVER do any of this + +# Do not allow opening files from external storage as unsafe ejection +# could cause the kernel to kill the system_server. +neverallow system_server sdcard_type:dir { open read write }; +neverallow system_server sdcard_type:file rw_file_perms; + +# system server should never be operating on zygote spawned app data +# files directly. Rather, they should always be passed via a +# file descriptor. +# Types extracted from seapp_contexts type= fields, excluding +# those types that system_server needs to open directly. +neverallow system_server { bluetooth_data_file nfc_data_file shell_data_file app_data_file }:file { open create unlink link }; + +# Forking and execing is inherently dangerous and racy. See, for +# example, https://www.linuxprogrammingblog.com/threads-and-fork-think-twice-before-using-them +# Prevent the addition of new file execs to stop the problem from +# getting worse. b/28035297 +neverallow system_server { + file_type + -toolbox_exec + -logcat_exec + with_asan(`-shell_exec') +}:file execute_no_trans; + +# Ensure that system_server doesn't perform any domain transitions other than +# transitioning to the crash_dump domain when a crash occurs. +neverallow system_server { domain -crash_dump }:process transition; +neverallow system_server *:process dyntransition; + +# Only allow crash_dump to connect to system_ndebug_socket. +neverallow { domain -init -system_server -crash_dump } system_ndebug_socket:sock_file { open write }; + +# system_server should never be executing dex2oat. This is either +# a bug (for example, bug 16317188), or represents an attempt by +# system server to dynamically load a dex file, something we do not +# want to allow. +neverallow system_server dex2oat_exec:file no_x_file_perms; + +# system_server should never execute or load executable shared libraries +# in /data except for /data/dalvik-cache files. +neverallow system_server { + data_file_type + -dalvikcache_data_file #mapping with PROT_EXEC +}:file no_x_file_perms; + +# The only block device system_server should be accessing is +# the frp_block_device. This helps avoid a system_server to root +# escalation by writing to raw block devices. +neverallow system_server { dev_type -frp_block_device }:blk_file no_rw_file_perms; + +# system_server should never use JIT functionality +neverallow system_server self:process execmem; +neverallow system_server ashmem_device:chr_file execute; + +# TODO: deal with tmpfs_domain pub/priv split properly +neverallow system_server system_server_tmpfs:file execute; + +# dexoptanalyzer is currently used only for secondary dex files which +# system_server should never access. +neverallow system_server dexoptanalyzer_exec:file no_x_file_perms; + +# No ptracing others +neverallow system_server { domain -system_server }:process ptrace; + +# CAP_SYS_RESOURCE was traditionally needed for sensitive /proc/PID +# file read access. However, that is now unnecessary (b/34951864) +# This neverallow can be removed after b/34951864 is fixed. +neverallow system_server system_server:capability sys_resource; diff --git a/prebuilts/api/26.0/private/technical_debt.cil b/prebuilts/api/26.0/private/technical_debt.cil new file mode 100644 index 000000000..ccbae1088 --- /dev/null +++ b/prebuilts/api/26.0/private/technical_debt.cil @@ -0,0 +1,28 @@ +; THIS IS A WORKAROUND for the current limitations of the module policy language +; This should be used sparingly until we figure out a saner way to achieve the +; stuff below, for example, by improving typeattribute statement of module +; language. +; +; NOTE: This file has no effect on recovery policy. + +; Apps, except isolated apps, are clients of Allocator HAL +; Unfortunately, we can't currently express this in module policy language: +; typeattribute { appdomain -isolated_app } hal_allocator_client; +; typeattribute hal_allocator_client halclientdomain; +(typeattributeset hal_allocator_client ((and (appdomain) ((not (isolated_app)))))) +(typeattributeset halclientdomain (hal_allocator_client)) + +; Apps, except isolated apps, are clients of Configstore HAL +; Unfortunately, we can't currently express this in module policy language: +; typeattribute { appdomain -isolated_app } hal_configstore_client; +(typeattributeset hal_configstore_client ((and (appdomain) ((not (isolated_app)))))) + +; Apps, except isolated apps, are clients of Graphics Allocator HAL +; Unfortunately, we can't currently express this in module policy language: +; typeattribute { appdomain -isolated_app } hal_graphics_allocator_client; +(typeattributeset hal_graphics_allocator_client ((and (appdomain) ((not (isolated_app)))))) + +; Domains hosting Camera HAL implementations are clients of Allocator HAL +; Unfortunately, we can't currently express this in module policy language: +; typeattribute hal_camera hal_allocator_client; +(typeattributeset hal_allocator_client (hal_camera)) diff --git a/prebuilts/api/26.0/private/tombstoned.te b/prebuilts/api/26.0/private/tombstoned.te new file mode 100644 index 000000000..305f9d006 --- /dev/null +++ b/prebuilts/api/26.0/private/tombstoned.te @@ -0,0 +1,3 @@ +typeattribute tombstoned coredomain; + +init_daemon_domain(tombstoned) diff --git a/prebuilts/api/26.0/private/toolbox.te b/prebuilts/api/26.0/private/toolbox.te new file mode 100644 index 000000000..a2b958dba --- /dev/null +++ b/prebuilts/api/26.0/private/toolbox.te @@ -0,0 +1,3 @@ +typeattribute toolbox coredomain; + +init_daemon_domain(toolbox) diff --git a/prebuilts/api/26.0/private/tzdatacheck.te b/prebuilts/api/26.0/private/tzdatacheck.te new file mode 100644 index 000000000..502735cad --- /dev/null +++ b/prebuilts/api/26.0/private/tzdatacheck.te @@ -0,0 +1,3 @@ +typeattribute tzdatacheck coredomain; + +init_daemon_domain(tzdatacheck) diff --git a/prebuilts/api/26.0/private/ueventd.te b/prebuilts/api/26.0/private/ueventd.te new file mode 100644 index 000000000..0df587fff --- /dev/null +++ b/prebuilts/api/26.0/private/ueventd.te @@ -0,0 +1,4 @@ +typeattribute ueventd coredomain; +typeattribute ueventd domain_deprecated; + +tmpfs_domain(ueventd) diff --git a/prebuilts/api/26.0/private/uncrypt.te b/prebuilts/api/26.0/private/uncrypt.te new file mode 100644 index 000000000..fde686be9 --- /dev/null +++ b/prebuilts/api/26.0/private/uncrypt.te @@ -0,0 +1,4 @@ +typeattribute uncrypt coredomain; +typeattribute uncrypt domain_deprecated; + +init_daemon_domain(uncrypt) diff --git a/prebuilts/api/26.0/private/untrusted_app.te b/prebuilts/api/26.0/private/untrusted_app.te new file mode 100644 index 000000000..68c1a41bd --- /dev/null +++ b/prebuilts/api/26.0/private/untrusted_app.te @@ -0,0 +1,29 @@ +### +### Untrusted apps. +### +### This file defines the rules for untrusted apps. +### Apps are labeled based on mac_permissions.xml (maps signer and +### optionally package name to seinfo value) and seapp_contexts (maps UID +### and optionally seinfo value to domain for process and type for data +### directory). The untrusted_app domain is the default assignment in +### seapp_contexts for any app with UID between APP_AID (10000) +### and AID_ISOLATED_START (99000) if the app has no specific seinfo +### value as determined from mac_permissions.xml. In current AOSP, this +### domain is assigned to all non-system apps as well as to any system apps +### that are not signed by the platform key. To move +### a system app into a specific domain, add a signer entry for it to +### mac_permissions.xml and assign it one of the pre-existing seinfo values +### or define and use a new seinfo value in both mac_permissions.xml and +### seapp_contexts. +### + +typeattribute untrusted_app coredomain; + +app_domain(untrusted_app) +untrusted_app_domain(untrusted_app) +net_domain(untrusted_app) +bluetooth_domain(untrusted_app) + +# Allow the allocation and use of ptys +# Used by: https://play.google.com/store/apps/details?id=jackpal.androidterm +create_pty(untrusted_app) diff --git a/prebuilts/api/26.0/private/untrusted_app_25.te b/prebuilts/api/26.0/private/untrusted_app_25.te new file mode 100644 index 000000000..3fa79efce --- /dev/null +++ b/prebuilts/api/26.0/private/untrusted_app_25.te @@ -0,0 +1,46 @@ +### +### Untrusted_app_25 +### +### This file defines the rules for untrusted apps running with +### targetSdkVersion <= 25. +### +### Apps are labeled based on mac_permissions.xml (maps signer and +### optionally package name to seinfo value) and seapp_contexts (maps UID +### and optionally seinfo value to domain for process and type for data +### directory). The untrusted_app domain is the default assignment in +### seapp_contexts for any app with UID between APP_AID (10000) +### and AID_ISOLATED_START (99000) if the app has no specific seinfo +### value as determined from mac_permissions.xml. In current AOSP, this +### domain is assigned to all non-system apps as well as to any system apps +### that are not signed by the platform key. To move +### a system app into a specific domain, add a signer entry for it to +### mac_permissions.xml and assign it one of the pre-existing seinfo values +### or define and use a new seinfo value in both mac_permissions.xml and +### seapp_contexts. +### + +typeattribute untrusted_app_25 coredomain; + +app_domain(untrusted_app_25) +untrusted_app_domain(untrusted_app_25) +net_domain(untrusted_app_25) +bluetooth_domain(untrusted_app_25) + +# Allow the allocation and use of ptys +# Used by: https://play.google.com/store/apps/details?id=jackpal.androidterm +create_pty(untrusted_app_25) + +# b/34115651 - net.dns* properties read +# This will go away in a future Android release +get_prop(untrusted_app_25, net_dns_prop) + +# b/35917228 - /proc/misc access +# This will go away in a future Android release +allow untrusted_app_25 proc_misc:file r_file_perms; + +# Access to /proc/tty/drivers, to allow apps to determine if they +# are running in an emulated environment. +# b/33214085 b/33814662 b/33791054 b/33211769 +# https://github.com/strazzere/anti-emulator/blob/master/AntiEmulator/src/diff/strazzere/anti/emulator/FindEmulator.java +# This will go away in a future Android release +allow untrusted_app_25 proc_tty_drivers:file r_file_perms; diff --git a/prebuilts/api/26.0/private/untrusted_app_all.te b/prebuilts/api/26.0/private/untrusted_app_all.te new file mode 100644 index 000000000..fc80129a7 --- /dev/null +++ b/prebuilts/api/26.0/private/untrusted_app_all.te @@ -0,0 +1,106 @@ +### +### Untrusted_app_all. +### +### This file defines the rules shared by all untrusted app domains except +### apps which target the v2 security sandbox (ephemeral_app for instant apps, +### untrusted_v2_app for fully installed v2 apps). +### Apps are labeled based on mac_permissions.xml (maps signer and +### optionally package name to seinfo value) and seapp_contexts (maps UID +### and optionally seinfo value to domain for process and type for data +### directory). The untrusted_app_all attribute is assigned to all default +### seapp_contexts for any app with UID between APP_AID (10000) +### and AID_ISOLATED_START (99000) if the app has no specific seinfo +### value as determined from mac_permissions.xml. In current AOSP, this +### attribute is assigned to all non-system apps as well as to any system apps +### that are not signed by the platform key. To move +### a system app into a specific domain, add a signer entry for it to +### mac_permissions.xml and assign it one of the pre-existing seinfo values +### or define and use a new seinfo value in both mac_permissions.xml and +### seapp_contexts. +### +### Note that rules that should apply to all untrusted apps must be in app.te or also +### added to untrusted_v2_app.te and ephemeral_app.te. + +# Legacy text relocations +allow untrusted_app_all apk_data_file:file execmod; + +# Some apps ship with shared libraries and binaries that they write out +# to their sandbox directory and then execute. +allow untrusted_app_all app_data_file:file { rx_file_perms execmod }; + +# ASEC +allow untrusted_app_all asec_apk_file:file r_file_perms; +allow untrusted_app_all asec_apk_file:dir r_dir_perms; +# Execute libs in asec containers. +allow untrusted_app_all asec_public_file:file { execute execmod }; + +# Used by Finsky / Android "Verify Apps" functionality when +# running "adb install foo.apk". +# TODO: Long term, we don't want apps probing into shell data files. +# Figure out a way to remove these rules. +allow untrusted_app_all shell_data_file:file r_file_perms; +allow untrusted_app_all shell_data_file:dir r_dir_perms; + +# Read and write system app data files passed over Binder. +# Motivating case was /data/data/com.android.settings/cache/*.jpg for +# cropping or taking user photos. +allow untrusted_app_all system_app_data_file:file { read write getattr }; + +# +# Rules migrated from old app domains coalesced into untrusted_app. +# This includes what used to be media_app, shared_app, and release_app. +# + +# Access to /data/media. +allow untrusted_app_all media_rw_data_file:dir create_dir_perms; +allow untrusted_app_all media_rw_data_file:file create_file_perms; + +# Traverse into /mnt/media_rw for bypassing FUSE daemon +# TODO: narrow this to just MediaProvider +allow untrusted_app_all mnt_media_rw_file:dir search; + +# allow cts to query all services +allow untrusted_app_all servicemanager:service_manager list; + +allow untrusted_app_all audioserver_service:service_manager find; +allow untrusted_app_all cameraserver_service:service_manager find; +allow untrusted_app_all drmserver_service:service_manager find; +allow untrusted_app_all mediaserver_service:service_manager find; +allow untrusted_app_all mediaextractor_service:service_manager find; +allow untrusted_app_all mediacodec_service:service_manager find; +allow untrusted_app_all mediametrics_service:service_manager find; +allow untrusted_app_all mediadrmserver_service:service_manager find; +allow untrusted_app_all mediacasserver_service:service_manager find; +allow untrusted_app_all nfc_service:service_manager find; +allow untrusted_app_all radio_service:service_manager find; +allow untrusted_app_all surfaceflinger_service:service_manager find; +allow untrusted_app_all app_api_service:service_manager find; +allow untrusted_app_all vr_manager_service:service_manager find; + +# Allow GMS core to access perfprofd output, which is stored +# in /data/misc/perfprofd/. GMS core will need to list all +# data stored in that directory to process them one by one. +userdebug_or_eng(` + allow untrusted_app_all perfprofd_data_file:file r_file_perms; + allow untrusted_app_all perfprofd_data_file:dir r_dir_perms; +') + +# gdbserver for ndk-gdb ptrace attaches to app process. +allow untrusted_app_all self:process ptrace; + +# Cts: HwRngTest +allow untrusted_app_all sysfs_hwrandom:dir search; +allow untrusted_app_all sysfs_hwrandom:file r_file_perms; + +# Allow apps to view preloaded media content +allow untrusted_app_all preloads_media_file:dir r_dir_perms; +allow untrusted_app_all preloads_media_file:file r_file_perms; +allow untrusted_app_all preloads_data_file:dir search; + +# Allow untrusted apps read / execute access to /vendor/app for there can +# be pre-installed vendor apps that package a library within themselves. +# TODO (b/37784178) Consider creating a special type for /vendor/app installed +# apps. +allow untrusted_app_all vendor_app_file:dir { open getattr read search }; +allow untrusted_app_all vendor_app_file:file { open getattr read execute }; +allow untrusted_app_all vendor_app_file:lnk_file { open getattr read }; diff --git a/prebuilts/api/26.0/private/untrusted_v2_app.te b/prebuilts/api/26.0/private/untrusted_v2_app.te new file mode 100644 index 000000000..ef628414d --- /dev/null +++ b/prebuilts/api/26.0/private/untrusted_v2_app.te @@ -0,0 +1,43 @@ +### +### Untrusted v2 sandbox apps. +### + +typeattribute untrusted_v2_app coredomain; + +app_domain(untrusted_v2_app) +net_domain(untrusted_v2_app) +bluetooth_domain(untrusted_v2_app) + +# Read and write system app data files passed over Binder. +# Motivating case was /data/data/com.android.settings/cache/*.jpg for +# cropping or taking user photos. +allow untrusted_v2_app system_app_data_file:file { read write getattr }; + +# Access to /data/media. +allow untrusted_v2_app media_rw_data_file:dir create_dir_perms; +allow untrusted_v2_app media_rw_data_file:file create_file_perms; + +# Traverse into /mnt/media_rw for bypassing FUSE daemon +# TODO: narrow this to just MediaProvider +allow untrusted_v2_app mnt_media_rw_file:dir search; + +# allow cts to query all services +allow untrusted_v2_app servicemanager:service_manager list; + +allow untrusted_v2_app audioserver_service:service_manager find; +allow untrusted_v2_app cameraserver_service:service_manager find; +allow untrusted_v2_app drmserver_service:service_manager find; +allow untrusted_v2_app mediaserver_service:service_manager find; +allow untrusted_v2_app mediaextractor_service:service_manager find; +allow untrusted_v2_app mediacodec_service:service_manager find; +allow untrusted_v2_app mediametrics_service:service_manager find; +allow untrusted_v2_app mediadrmserver_service:service_manager find; +allow untrusted_v2_app mediacasserver_service:service_manager find; +allow untrusted_v2_app nfc_service:service_manager find; +allow untrusted_v2_app radio_service:service_manager find; +allow untrusted_v2_app surfaceflinger_service:service_manager find; +# TODO: potentially provide a tighter list of services here +allow untrusted_v2_app app_api_service:service_manager find; + +# gdbserver for ndk-gdb ptrace attaches to app process. +allow untrusted_v2_app self:process ptrace; diff --git a/prebuilts/api/26.0/private/update_engine.te b/prebuilts/api/26.0/private/update_engine.te new file mode 100644 index 000000000..f460272d1 --- /dev/null +++ b/prebuilts/api/26.0/private/update_engine.te @@ -0,0 +1,4 @@ +typeattribute update_engine coredomain; +typeattribute update_engine domain_deprecated; + +init_daemon_domain(update_engine); diff --git a/prebuilts/api/26.0/private/update_engine_common.te b/prebuilts/api/26.0/private/update_engine_common.te new file mode 100644 index 000000000..a7fb58471 --- /dev/null +++ b/prebuilts/api/26.0/private/update_engine_common.te @@ -0,0 +1,5 @@ +# type_transition must be private policy the domain_trans rules could stay +# public, but conceptually should go with this +# The postinstall program is run by update_engine_common and will always be tagged as a +# postinstall_file regardless of its attributes in the new system. +domain_auto_trans(update_engine_common, postinstall_file, postinstall) diff --git a/prebuilts/api/26.0/private/update_verifier.te b/prebuilts/api/26.0/private/update_verifier.te new file mode 100644 index 000000000..1b934d980 --- /dev/null +++ b/prebuilts/api/26.0/private/update_verifier.te @@ -0,0 +1,3 @@ +typeattribute update_verifier coredomain; + +init_daemon_domain(update_verifier) diff --git a/prebuilts/api/26.0/private/users b/prebuilts/api/26.0/private/users new file mode 100644 index 000000000..51b7b57e6 --- /dev/null +++ b/prebuilts/api/26.0/private/users @@ -0,0 +1 @@ +user u roles { r } level s0 range s0 - mls_systemhigh; diff --git a/prebuilts/api/26.0/private/vdc.te b/prebuilts/api/26.0/private/vdc.te new file mode 100644 index 000000000..bc7409eee --- /dev/null +++ b/prebuilts/api/26.0/private/vdc.te @@ -0,0 +1,3 @@ +typeattribute vdc coredomain; + +init_daemon_domain(vdc) diff --git a/prebuilts/api/26.0/private/virtual_touchpad.te b/prebuilts/api/26.0/private/virtual_touchpad.te new file mode 100644 index 000000000..e735172fe --- /dev/null +++ b/prebuilts/api/26.0/private/virtual_touchpad.te @@ -0,0 +1,3 @@ +typeattribute virtual_touchpad coredomain; + +init_daemon_domain(virtual_touchpad) diff --git a/prebuilts/api/26.0/private/vold.te b/prebuilts/api/26.0/private/vold.te new file mode 100644 index 000000000..f2416f895 --- /dev/null +++ b/prebuilts/api/26.0/private/vold.te @@ -0,0 +1,20 @@ +typeattribute vold coredomain; +typeattribute vold domain_deprecated; + +init_daemon_domain(vold) + +# Switch to more restrictive domains when executing common tools +domain_auto_trans(vold, sgdisk_exec, sgdisk); +domain_auto_trans(vold, sdcardd_exec, sdcardd); + +# For a handful of probing tools, we choose an even more restrictive +# domain when working with untrusted block devices +domain_trans(vold, shell_exec, blkid); +domain_trans(vold, shell_exec, blkid_untrusted); +domain_trans(vold, fsck_exec, fsck); +domain_trans(vold, fsck_exec, fsck_untrusted); + +# Newly created storage dirs are always treated as mount stubs to prevent us +# from accidentally writing when the mount point isn't present. +type_transition vold storage_file:dir storage_stub_file; +type_transition vold mnt_media_rw_file:dir mnt_media_rw_stub_file; diff --git a/prebuilts/api/26.0/private/vr_hwc.te b/prebuilts/api/26.0/private/vr_hwc.te new file mode 100644 index 000000000..053c03d98 --- /dev/null +++ b/prebuilts/api/26.0/private/vr_hwc.te @@ -0,0 +1,6 @@ +typeattribute vr_hwc coredomain; + +# Daemon started by init. +init_daemon_domain(vr_hwc) + +hal_server_domain(vr_hwc, hal_graphics_composer) diff --git a/prebuilts/api/26.0/private/watchdogd.te b/prebuilts/api/26.0/private/watchdogd.te new file mode 100644 index 000000000..36dd30fd7 --- /dev/null +++ b/prebuilts/api/26.0/private/watchdogd.te @@ -0,0 +1 @@ +typeattribute watchdogd coredomain; diff --git a/prebuilts/api/26.0/private/webview_zygote.te b/prebuilts/api/26.0/private/webview_zygote.te new file mode 100644 index 000000000..501581abf --- /dev/null +++ b/prebuilts/api/26.0/private/webview_zygote.te @@ -0,0 +1,116 @@ +# webview_zygote is an auxiliary zygote process that is used to spawn +# isolated_app processes for rendering untrusted web content. + +typeattribute webview_zygote coredomain; + +# The webview_zygote needs to be able to transition domains. +typeattribute webview_zygote mlstrustedsubject; + +# When init launches the WebView zygote's executable, transition the +# resulting process into webview_zygote domain. +init_daemon_domain(webview_zygote) + +# Allow reading/executing installed binaries to enable preloading the +# installed WebView implementation. +allow webview_zygote apk_data_file:dir r_dir_perms; +allow webview_zygote apk_data_file:file { r_file_perms execute }; + +# Access to the WebView relro file. +allow webview_zygote shared_relro_file:dir search; +allow webview_zygote shared_relro_file:file r_file_perms; + +# Set the UID/GID of the process. +allow webview_zygote self:capability { setgid setuid }; +# Drop capabilities from bounding set. +allow webview_zygote self:capability setpcap; +# Switch SELinux context to app domains. +allow webview_zygote self:process setcurrent; +allow webview_zygote isolated_app:process dyntransition; + +# For art. +allow webview_zygote dalvikcache_data_file:dir r_dir_perms; +allow webview_zygote dalvikcache_data_file:lnk_file r_file_perms; +allow webview_zygote dalvikcache_data_file:file { r_file_perms execute }; + +# Allow webview_zygote to stat the files that it opens. It must +# be able to inspect them so that it can reopen them on fork +# if necessary: b/30963384. +allow webview_zygote debugfs_trace_marker:file getattr; + +# Allow webview_zygote to manage the pgroup of its children. +allow webview_zygote system_server:process getpgid; + +# Interaction between the webview_zygote and its children. +allow webview_zygote isolated_app:process setpgid; + +# Get seapp_contexts +allow webview_zygote seapp_contexts_file:file r_file_perms; +# Check validity of SELinux context before use. +selinux_check_context(webview_zygote) +# Check SELinux permissions. +selinux_check_access(webview_zygote) + +##### +##### Neverallow +##### + +# Only permit transition to isolated_app. +neverallow webview_zygote { domain -isolated_app }:process dyntransition; + +# Only setcon() transitions, no exec() based transitions, except for crash_dump. +neverallow webview_zygote { domain -crash_dump }:process transition; + +# Must not exec() a program without changing domains. +# Having said that, exec() above is not allowed. +neverallow webview_zygote *:file execute_no_trans; + +# The only way to enter this domain is for init to exec() us. +neverallow { domain -init } webview_zygote:process transition; +neverallow * webview_zygote:process dyntransition; + +# Disallow write access to properties. +neverallow webview_zygote property_socket:sock_file write; +neverallow webview_zygote property_type:property_service set; + +# Should not have any access to app data files. +neverallow webview_zygote { + app_data_file + system_app_data_file + bluetooth_data_file + nfc_data_file + radio_data_file + shell_data_file +}:file { rwx_file_perms }; + +neverallow webview_zygote { + service_manager_type + -activity_service + -webviewupdate_service +}:service_manager find; + +# Isolated apps shouldn't be able to access the driver directly. +neverallow webview_zygote gpu_device:chr_file { rwx_file_perms }; + +# Do not allow webview_zygote access to /cache. +neverallow webview_zygote cache_file:dir ~{ r_dir_perms }; +neverallow webview_zygote cache_file:file ~{ read getattr }; + +# Do not allow most socket access. This is socket_class_set, excluding unix_dgram_socket, +# unix_stream_socket, and netlink_selinux_socket. +neverallow webview_zygote domain:{ + socket tcp_socket udp_socket rawip_socket netlink_socket packet_socket key_socket + appletalk_socket netlink_route_socket netlink_tcpdiag_socket + netlink_nflog_socket netlink_xfrm_socket netlink_audit_socket + netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket + netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket + netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket + sctp_socket icmp_socket ax25_socket ipx_socket netrom_socket atmpvc_socket + x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket + pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket + rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket + alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket +} *; + +# Do not allow access to Bluetooth-related system properties. +# neverallow rules for Bluetooth-related data files are listed above. +neverallow webview_zygote bluetooth_prop:file create_file_perms; diff --git a/prebuilts/api/26.0/private/wificond.te b/prebuilts/api/26.0/private/wificond.te new file mode 100644 index 000000000..cc7644745 --- /dev/null +++ b/prebuilts/api/26.0/private/wificond.te @@ -0,0 +1,4 @@ +typeattribute wificond coredomain; + +init_daemon_domain(wificond) +hal_client_domain(wificond, hal_wifi_offload) diff --git a/prebuilts/api/26.0/private/zygote.te b/prebuilts/api/26.0/private/zygote.te new file mode 100644 index 000000000..daabbc06e --- /dev/null +++ b/prebuilts/api/26.0/private/zygote.te @@ -0,0 +1,134 @@ +# zygote +typeattribute zygote coredomain; +typeattribute zygote domain_deprecated; +typeattribute zygote mlstrustedsubject; + +init_daemon_domain(zygote) + +read_runtime_log_tags(zygote) + +# Override DAC on files and switch uid/gid. +allow zygote self:capability { dac_override setgid setuid fowner chown }; + +# Drop capabilities from bounding set. +allow zygote self:capability setpcap; + +# Switch SELinux context to app domains. +allow zygote self:process setcurrent; +allow zygote system_server:process dyntransition; +allow zygote appdomain:process dyntransition; + +# Allow zygote to read app /proc/pid dirs (b/10455872). +allow zygote appdomain:dir { getattr search }; +allow zygote appdomain:file { r_file_perms }; + +# Move children into the peer process group. +allow zygote system_server:process { getpgid setpgid }; +allow zygote appdomain:process { getpgid setpgid }; + +# Read system data. +allow zygote system_data_file:dir r_dir_perms; +allow zygote system_data_file:file r_file_perms; + +# Write to /data/dalvik-cache. +allow zygote dalvikcache_data_file:dir create_dir_perms; +allow zygote dalvikcache_data_file:file create_file_perms; + +# Create symlinks in /data/dalvik-cache. +allow zygote dalvikcache_data_file:lnk_file create_file_perms; + +# Write to /data/resource-cache. +allow zygote resourcecache_data_file:dir rw_dir_perms; +allow zygote resourcecache_data_file:file create_file_perms; + +# When WITH_DEXPREOPT is true, the zygote does not load executable content from +# /data/dalvik-cache. +allow { zygote with_dexpreopt(`-zygote') } dalvikcache_data_file:file execute; + +# Execute idmap and dex2oat within zygote's own domain. +# TODO: Should either of these be transitioned to the same domain +# used by installd or stay in-domain for zygote? +allow zygote idmap_exec:file rx_file_perms; +allow zygote dex2oat_exec:file rx_file_perms; + +# Allow apps access to /vendor/overlay +r_dir_file(zygote, vendor_overlay_file) + +# Control cgroups. +allow zygote cgroup:dir create_dir_perms; +allow zygote cgroup:{ file lnk_file } r_file_perms; +allow zygote self:capability sys_admin; + +# Allow zygote to stat the files that it opens. The zygote must +# be able to inspect them so that it can reopen them on fork +# if necessary: b/30963384. +allow zygote pmsg_device:chr_file getattr; +allow zygote debugfs_trace_marker:file getattr; + +# Get seapp_contexts +allow zygote seapp_contexts_file:file r_file_perms; +# Check validity of SELinux context before use. +selinux_check_context(zygote) +# Check SELinux permissions. +selinux_check_access(zygote) + +# Native bridge functionality requires that zygote replaces +# /proc/cpuinfo with /system/lib//cpuinfo using a bind mount +allow zygote proc_cpuinfo:file mounton; + +# Allow remounting rootfs as MS_SLAVE. +allow zygote rootfs:dir mounton; +allow zygote tmpfs:filesystem { mount unmount }; +allow zygote fuse:filesystem { unmount }; +allow zygote sdcardfs:filesystem { unmount }; + +# Allow creating user-specific storage source if started before vold. +allow zygote mnt_user_file:dir create_dir_perms; +allow zygote mnt_user_file:lnk_file create_file_perms; +# Allowed to mount user-specific storage into place +allow zygote storage_file:dir { search mounton }; + +# Handle --invoke-with command when launching Zygote with a wrapper command. +allow zygote zygote_exec:file rx_file_perms; + +# Read access to pseudo filesystems. +r_dir_file(zygote, proc_net) + +# Root fs. +r_dir_file(zygote, rootfs) + +# System file accesses. +r_dir_file(zygote, system_file) + +userdebug_or_eng(` + # Allow zygote to create and write method traces in /data/misc/trace. + allow zygote method_trace_data_file:dir w_dir_perms; + allow zygote method_trace_data_file:file { create w_file_perms }; +') + +allow zygote ion_device:chr_file r_file_perms; +allow zygote tmpfs:dir r_dir_perms; + +# Let the zygote access overlays so it can initialize the AssetManager. +get_prop(zygote, overlay_prop) + +### +### neverallow rules +### + +# Ensure that all types assigned to app processes are included +# in the appdomain attribute, so that all allow and neverallow rules +# written on appdomain are applied to all app processes. +# This is achieved by ensuring that it is impossible for zygote to +# setcon (dyntransition) to any types other than those associated +# with appdomain plus system_server. +neverallow zygote ~{ appdomain system_server }:process dyntransition; + +# Zygote should never execute anything from /data except for /data/dalvik-cache files. +neverallow zygote { + data_file_type + -dalvikcache_data_file # map PROT_EXEC +}:file no_x_file_perms; + +# Do not allow access to Bluetooth-related system properties and files +neverallow zygote bluetooth_prop:file create_file_perms; diff --git a/prebuilts/api/26.0/public/adbd.te b/prebuilts/api/26.0/public/adbd.te new file mode 100644 index 000000000..7ecd045fc --- /dev/null +++ b/prebuilts/api/26.0/public/adbd.te @@ -0,0 +1,3 @@ +# adbd seclabel is specified in init.rc since +# it lives in the rootfs and has no unique file type. +type adbd, domain; diff --git a/prebuilts/api/26.0/public/asan_extract.te b/prebuilts/api/26.0/public/asan_extract.te new file mode 100644 index 000000000..6d0de6cf1 --- /dev/null +++ b/prebuilts/api/26.0/public/asan_extract.te @@ -0,0 +1,36 @@ +# asan_extract +# +# This command set moves the artifact corresponding to the current slot +# from /data/ota to /data/dalvik-cache. + +with_asan(` + type asan_extract, domain, coredomain; + type asan_extract_exec, exec_type, file_type; + + # Allow asan_extract to execute itself using #!/system/bin/sh + allow asan_extract shell_exec:file rx_file_perms; + + # We execute log, rm, gzip and tar. + allow asan_extract toolbox_exec:file rx_file_perms; + allow asan_extract system_file:file execute_no_trans; + + # asan_extract deletes old /data/lib. + allow asan_extract system_file:dir { open read remove_name rmdir write }; + allow asan_extract system_file:file unlink; + + # asan_extract untars ASAN libraries into /data. + allow asan_extract system_data_file:dir create_dir_perms ; + allow asan_extract system_data_file:{ file lnk_file } create_file_perms ; + + # Relabel the libraries with restorecon. + allow asan_extract file_contexts_file:file r_file_perms; + allow asan_extract system_data_file:{ dir file } relabelfrom; + allow asan_extract system_file:dir { relabelto setattr }; + allow asan_extract system_file:file relabelto; + + # Restorecon will actually already try to run with sanitized libraries (libpackagelistparser). + allow asan_extract system_data_file:file execute; + + # We use asan.restore_reboot to signal a reboot is required. + set_prop(asan_extract, asan_reboot_prop) +') diff --git a/prebuilts/api/26.0/public/attributes b/prebuilts/api/26.0/public/attributes new file mode 100644 index 000000000..cde55da19 --- /dev/null +++ b/prebuilts/api/26.0/public/attributes @@ -0,0 +1,291 @@ +###################################### +# Attribute declarations +# + +# All types used for devices. +# On change, update CHECK_FC_ASSERT_ATTRS +# in tools/checkfc.c +attribute dev_type; + +# All types used for processes. +attribute domain; + +# All types used for filesystems. +# On change, update CHECK_FC_ASSERT_ATTRS +# definition in tools/checkfc.c. +attribute fs_type; + +# All types used for context= mounts. +attribute contextmount_type; + +# All types used for files that can exist on a labeled fs. +# Do not use for pseudo file types. +# On change, update CHECK_FC_ASSERT_ATTRS +# definition in tools/checkfc.c. +attribute file_type; + +# All types used for domain entry points. +attribute exec_type; + +# All types used for /data files. +attribute data_file_type; +# All types in /data, not in /data/vendor +attribute core_data_file_type; +# All types in /vendor +attribute vendor_file_type; + +# All types use for sysfs files. +attribute sysfs_type; + +# All types use for debugfs files. +attribute debugfs_type; + +# Attribute used for all sdcards +attribute sdcard_type; + +# All types used for nodes/hosts. +attribute node_type; + +# All types used for network interfaces. +attribute netif_type; + +# All types used for network ports. +attribute port_type; + +# All types used for property service +# On change, update CHECK_PC_ASSERT_ATTRS +# definition in tools/checkfc.c. +attribute property_type; + +# All properties defined in core SELinux policy. Should not be +# used by device specific properties +attribute core_property_type; + +# All properties used to configure log filtering. +attribute log_property_type; + +# All service_manager types created by system_server +attribute system_server_service; + +# services which should be available to all but isolated apps +attribute app_api_service; + +# services which should be available to all ephemeral apps +attribute ephemeral_app_api_service; + +# services which export only system_api +attribute system_api_service; + +# All types used for services managed by servicemanager. +# On change, update CHECK_SC_ASSERT_ATTRS +# definition in tools/checkfc.c. +attribute service_manager_type; + +# All types used for services managed by hwservicemanager +attribute hwservice_manager_type; + +# All HwBinder services guaranteed to be passthrough. These services always run +# in the process of their clients, and thus operate with the same access as +# their clients. +attribute same_process_hwservice; + +# All HwBinder services guaranteed to be offered only by core domain components +attribute coredomain_hwservice; + +# All types used for services managed by vndservicemanager +attribute vndservice_manager_type; + + +# All domains that can override MLS restrictions. +# i.e. processes that can read up and write down. +attribute mlstrustedsubject; + +# All types that can override MLS restrictions. +# i.e. files that can be read by lower and written by higher +attribute mlstrustedobject; + +# All domains used for apps. +attribute appdomain; + +# All third party apps. +attribute untrusted_app_all; + +# All domains used for apps with network access. +attribute netdomain; + +# All domains used for apps with bluetooth access. +attribute bluetoothdomain; + +# All domains used for binder service domains. +attribute binderservicedomain; + +# update_engine related domains that need to apply an update and run +# postinstall. This includes the background daemon and the sideload tool from +# recovery for A/B devices. +attribute update_engine_common; + +# All core domains (as opposed to vendor/device-specific domains) +attribute coredomain; + +# All socket devices owned by core domain components +attribute coredomain_socket; + +# All vendor domains which violate the requirement of not using Binder +# TODO(b/35870313): Remove this once there are no violations +attribute binder_in_vendor_violators; + +# All vendor domains which violate the requirement of not using sockets for +# communicating with core components +# TODO(b/36577153): Remove this once there are no violations +attribute socket_between_core_and_vendor_violators; + +# All vendor domains which violate the requirement of not executing +# system processes +# TODO(b/36463595) +attribute vendor_executes_system_violators; + +# hwservices that are accessible from untrusted applications +# WARNING: Use of this attribute should be avoided unless +# absolutely necessary. It is a temporary allowance to aid the +# transition to treble and will be removed in a future platform +# version, requiring all hwservices that are labeled with this +# attribute to be submitted to AOSP in order to maintain their +# app-visibility. +attribute untrusted_app_visible_hwservice; + +# PDX services +attribute pdx_endpoint_dir_type; +attribute pdx_endpoint_socket_type; +attribute pdx_channel_socket_type; + +pdx_service_attributes(display_client) +pdx_service_attributes(display_manager) +pdx_service_attributes(display_screenshot) +pdx_service_attributes(display_vsync) +pdx_service_attributes(performance_client) +pdx_service_attributes(bufferhub_client) + +# All HAL servers +attribute halserverdomain; +# All HAL clients +attribute halclientdomain; + +# HALs +attribute hal_allocator; +attribute hal_allocator_client; +attribute hal_allocator_server; +attribute hal_audio; +attribute hal_audio_client; +attribute hal_audio_server; +attribute hal_bluetooth; +attribute hal_bluetooth_client; +attribute hal_bluetooth_server; +attribute hal_bootctl; +attribute hal_bootctl_client; +attribute hal_bootctl_server; +attribute hal_camera; +attribute hal_camera_client; +attribute hal_camera_server; +attribute hal_configstore; +attribute hal_configstore_client; +attribute hal_configstore_server; +attribute hal_contexthub; +attribute hal_contexthub_client; +attribute hal_contexthub_server; +attribute hal_drm; +attribute hal_drm_client; +attribute hal_drm_server; +attribute hal_dumpstate; +attribute hal_dumpstate_client; +attribute hal_dumpstate_server; +attribute hal_fingerprint; +attribute hal_fingerprint_client; +attribute hal_fingerprint_server; +attribute hal_gatekeeper; +attribute hal_gatekeeper_client; +attribute hal_gatekeeper_server; +attribute hal_gnss; +attribute hal_gnss_client; +attribute hal_gnss_server; +attribute hal_graphics_allocator; +attribute hal_graphics_allocator_client; +attribute hal_graphics_allocator_server; +attribute hal_graphics_composer; +attribute hal_graphics_composer_client; +attribute hal_graphics_composer_server; +attribute hal_health; +attribute hal_health_client; +attribute hal_health_server; +attribute hal_ir; +attribute hal_ir_client; +attribute hal_ir_server; +attribute hal_keymaster; +attribute hal_keymaster_client; +attribute hal_keymaster_server; +attribute hal_light; +attribute hal_light_client; +attribute hal_light_server; +attribute hal_memtrack; +attribute hal_memtrack_client; +attribute hal_memtrack_server; +attribute hal_nfc; +attribute hal_nfc_client; +attribute hal_nfc_server; +attribute hal_oemlock; +attribute hal_oemlock_client; +attribute hal_oemlock_server; +attribute hal_power; +attribute hal_power_client; +attribute hal_power_server; +attribute hal_sensors; +attribute hal_sensors_client; +attribute hal_sensors_server; +attribute hal_telephony; +attribute hal_telephony_client; +attribute hal_telephony_server; +attribute hal_tetheroffload; +attribute hal_tetheroffload_client; +attribute hal_tetheroffload_server; +attribute hal_thermal; +attribute hal_thermal_client; +attribute hal_thermal_server; +attribute hal_tv_cec; +attribute hal_tv_cec_client; +attribute hal_tv_cec_server; +attribute hal_tv_input; +attribute hal_tv_input_client; +attribute hal_tv_input_server; +attribute hal_usb; +attribute hal_usb_client; +attribute hal_usb_server; +attribute hal_vibrator; +attribute hal_vibrator_client; +attribute hal_vibrator_server; +attribute hal_vr; +attribute hal_vr_client; +attribute hal_vr_server; +attribute hal_weaver; +attribute hal_weaver_client; +attribute hal_weaver_server; +attribute hal_wifi; +attribute hal_wifi_client; +attribute hal_wifi_server; +attribute hal_wifi_keystore; +attribute hal_wifi_keystore_client; +attribute hal_wifi_keystore_server; +attribute hal_wifi_offload; +attribute hal_wifi_offload_client; +attribute hal_wifi_offload_server; +attribute hal_wifi_supplicant; +attribute hal_wifi_supplicant_client; +attribute hal_wifi_supplicant_server; + +# HwBinder services offered across the core-vendor boundary +# +# We annotate server domains with x_server to loosen the coupling between +# system and vendor images. For example, it should be possible to move a service +# from one core domain to another, without having to update the vendor image +# which contains clients of this service. + +attribute display_service_server; +attribute wifi_keystore_service_server; diff --git a/prebuilts/api/26.0/public/audioserver.te b/prebuilts/api/26.0/public/audioserver.te new file mode 100644 index 000000000..9a7285821 --- /dev/null +++ b/prebuilts/api/26.0/public/audioserver.te @@ -0,0 +1,2 @@ +# audioserver - audio services daemon +type audioserver, domain; diff --git a/prebuilts/api/26.0/public/blkid.te b/prebuilts/api/26.0/public/blkid.te new file mode 100644 index 000000000..dabe01452 --- /dev/null +++ b/prebuilts/api/26.0/public/blkid.te @@ -0,0 +1,2 @@ +# blkid called from vold +type blkid, domain; diff --git a/prebuilts/api/26.0/public/blkid_untrusted.te b/prebuilts/api/26.0/public/blkid_untrusted.te new file mode 100644 index 000000000..4be4c0cb2 --- /dev/null +++ b/prebuilts/api/26.0/public/blkid_untrusted.te @@ -0,0 +1,2 @@ +# blkid for untrusted block devices +type blkid_untrusted, domain; diff --git a/prebuilts/api/26.0/public/bluetooth.te b/prebuilts/api/26.0/public/bluetooth.te new file mode 100644 index 000000000..9b3442aa5 --- /dev/null +++ b/prebuilts/api/26.0/public/bluetooth.te @@ -0,0 +1,2 @@ +# bluetooth subsystem +type bluetooth, domain; diff --git a/prebuilts/api/26.0/public/bootanim.te b/prebuilts/api/26.0/public/bootanim.te new file mode 100644 index 000000000..e2584c3b4 --- /dev/null +++ b/prebuilts/api/26.0/public/bootanim.te @@ -0,0 +1,40 @@ +# bootanimation oneshot service +type bootanim, domain; +type bootanim_exec, exec_type, file_type; + +hal_client_domain(bootanim, hal_graphics_allocator) +hal_client_domain(bootanim, hal_graphics_composer) + +binder_use(bootanim) +binder_call(bootanim, surfaceflinger) +binder_call(bootanim, audioserver) + +hwbinder_use(bootanim) + +allow bootanim gpu_device:chr_file rw_file_perms; + +# /oem access +allow bootanim oemfs:dir search; +allow bootanim oemfs:file r_file_perms; + +allow bootanim audio_device:dir r_dir_perms; +allow bootanim audio_device:chr_file rw_file_perms; + +allow bootanim audioserver_service:service_manager find; +allow bootanim surfaceflinger_service:service_manager find; + +# Allow access to ion memory allocation device +allow bootanim ion_device:chr_file rw_file_perms; +allow bootanim hal_graphics_allocator:fd use; + +# Fences +allow bootanim hal_graphics_composer:fd use; + +# Read access to pseudo filesystems. +r_dir_file(bootanim, proc) +allow bootanim proc_meminfo:file r_file_perms; +r_dir_file(bootanim, sysfs) +r_dir_file(bootanim, cgroup) + +# System file accesses. +allow bootanim system_file:dir r_dir_perms; diff --git a/prebuilts/api/26.0/public/bootstat.te b/prebuilts/api/26.0/public/bootstat.te new file mode 100644 index 000000000..f5c7268e0 --- /dev/null +++ b/prebuilts/api/26.0/public/bootstat.te @@ -0,0 +1,15 @@ +# bootstat command +type bootstat, domain; +type bootstat_exec, exec_type, file_type; + +read_runtime_log_tags(bootstat) + +# Allow persistent storage in /data/misc/bootstat. +allow bootstat bootstat_data_file:dir rw_dir_perms; +allow bootstat bootstat_data_file:file create_file_perms; + +# Read access to pseudo filesystems (for /proc/uptime). +r_dir_file(bootstat, proc) + +# Collect metrics on boot time created by init +get_prop(bootstat, boottime_prop) diff --git a/prebuilts/api/26.0/public/bufferhubd.te b/prebuilts/api/26.0/public/bufferhubd.te new file mode 100644 index 000000000..274c2716b --- /dev/null +++ b/prebuilts/api/26.0/public/bufferhubd.te @@ -0,0 +1,20 @@ +# bufferhubd +type bufferhubd, domain, mlstrustedsubject; +type bufferhubd_exec, exec_type, file_type; + +hal_client_domain(bufferhubd, hal_graphics_allocator) + +pdx_server(bufferhubd, bufferhub_client) +pdx_client(bufferhubd, performance_client) + +# Access the GPU. +allow bufferhubd gpu_device:chr_file rw_file_perms; + +# Access /dev/ion +allow bufferhubd ion_device:chr_file r_file_perms; + +# Receive sync fence FDs from mediacodec. Note that mediacodec never directly +# connects to bufferhubd via PDX. Instead, a VR app acts as a bridge between +# those two: it talks to mediacodec via Binder and talks to bufferhubd via PDX. +# Thus, there is no need to use pdx_client macro. +allow bufferhubd mediacodec:fd use; diff --git a/prebuilts/api/26.0/public/cameraserver.te b/prebuilts/api/26.0/public/cameraserver.te new file mode 100644 index 000000000..0dd4a80ce --- /dev/null +++ b/prebuilts/api/26.0/public/cameraserver.te @@ -0,0 +1,49 @@ +# cameraserver - camera daemon +type cameraserver, domain; +type cameraserver_exec, exec_type, file_type; + +binder_use(cameraserver) +binder_call(cameraserver, binderservicedomain) +binder_call(cameraserver, appdomain) +binder_service(cameraserver) + +hal_client_domain(cameraserver, hal_camera) + +hal_client_domain(cameraserver, hal_graphics_allocator) + +allow cameraserver ion_device:chr_file rw_file_perms; + +# Talk with graphics composer fences +allow cameraserver hal_graphics_composer:fd use; + +add_service(cameraserver, cameraserver_service) +allow cameraserver appops_service:service_manager find; +allow cameraserver audioserver_service:service_manager find; +allow cameraserver batterystats_service:service_manager find; +allow cameraserver cameraproxy_service:service_manager find; +allow cameraserver mediaserver_service:service_manager find; +allow cameraserver processinfo_service:service_manager find; +allow cameraserver scheduling_policy_service:service_manager find; +allow cameraserver surfaceflinger_service:service_manager find; + +allow cameraserver hidl_token_hwservice:hwservice_manager find; + +### +### neverallow rules +### + +# cameraserver should never execute any executable without a +# domain transition +neverallow cameraserver { file_type fs_type }:file execute_no_trans; + +# The goal of the mediaserver split is to place media processing code into +# restrictive sandboxes with limited responsibilities and thus limited +# permissions. Example: Audioserver is only responsible for controlling audio +# hardware and processing audio content. Cameraserver does the same for camera +# hardware/content. Etc. +# +# Media processing code is inherently risky and thus should have limited +# permissions and be isolated from the rest of the system and network. +# Lengthier explanation here: +# https://android-developers.googleblog.com/2016/05/hardening-media-stack.html +neverallow cameraserver domain:{ tcp_socket udp_socket rawip_socket } *; diff --git a/prebuilts/api/26.0/public/charger.te b/prebuilts/api/26.0/public/charger.te new file mode 100644 index 000000000..4b20d1dd5 --- /dev/null +++ b/prebuilts/api/26.0/public/charger.te @@ -0,0 +1,41 @@ +# charger seclabel is specified in init.rc since +# it lives in the rootfs and has no unique file type. +type charger, domain; + +# Write to /dev/kmsg +allow charger kmsg_device:chr_file rw_file_perms; + +# Read access to pseudo filesystems. +r_dir_file(charger, sysfs_type) +r_dir_file(charger, rootfs) +r_dir_file(charger, cgroup) + +allow charger self:capability { sys_tty_config }; +allow charger self:capability sys_boot; + +wakelock_use(charger) + +allow charger self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; + +# Write to /sys/power/state +# TODO: Split into a separate type? +allow charger sysfs:file write; + +allow charger sysfs_batteryinfo:file r_file_perms; + +# Read /sys/fs/pstore/console-ramoops +# Don't worry about overly broad permissions for now, as there's +# only one file in /sys/fs/pstore +allow charger pstorefs:dir r_dir_perms; +allow charger pstorefs:file r_file_perms; + +allow charger graphics_device:dir r_dir_perms; +allow charger graphics_device:chr_file rw_file_perms; +allow charger input_device:dir r_dir_perms; +allow charger input_device:chr_file r_file_perms; +allow charger tty_device:chr_file rw_file_perms; +allow charger proc_sysrq:file rw_file_perms; + +# charger needs to tell init to continue the boot +# process when running in charger mode. +set_prop(charger, system_prop) diff --git a/prebuilts/api/26.0/public/clatd.te b/prebuilts/api/26.0/public/clatd.te new file mode 100644 index 000000000..212b76ede --- /dev/null +++ b/prebuilts/api/26.0/public/clatd.te @@ -0,0 +1,33 @@ +# 464xlat daemon +type clatd, domain; +type clatd_exec, exec_type, file_type; + +net_domain(clatd) + +r_dir_file(clatd, proc_net) + +# Access objects inherited from netd. +allow clatd netd:fd use; +allow clatd netd:fifo_file { read write }; +# TODO: Check whether some or all of these sockets should be close-on-exec. +allow clatd netd:netlink_kobject_uevent_socket { read write }; +allow clatd netd:netlink_nflog_socket { read write }; +allow clatd netd:netlink_route_socket { read write }; +allow clatd netd:udp_socket { read write }; +allow clatd netd:unix_stream_socket { read write }; +allow clatd netd:unix_dgram_socket { read write }; + +allow clatd self:capability { net_admin net_raw setuid setgid }; + +# clatd calls mmap(MAP_LOCKED) with a 1M buffer. MAP_LOCKED first checks +# capable(CAP_IPC_LOCK), and then checks to see the requested amount is +# under RLIMIT_MEMLOCK. If the latter check succeeds clatd won't have +# needed CAP_IPC_LOCK. But this is not guaranteed to succeed on all devices +# so we permit any requests we see from clatd asking for this capability. +# See https://android-review.googlesource.com/127940 and +# https://b.corp.google.com/issues/21736319 +allow clatd self:capability ipc_lock; + +allow clatd self:netlink_route_socket nlmsg_write; +allow clatd self:{ packet_socket rawip_socket tun_socket } create_socket_perms_no_ioctl; +allow clatd tun_device:chr_file rw_file_perms; diff --git a/prebuilts/api/26.0/public/cppreopts.te b/prebuilts/api/26.0/public/cppreopts.te new file mode 100644 index 000000000..8cbf80187 --- /dev/null +++ b/prebuilts/api/26.0/public/cppreopts.te @@ -0,0 +1,22 @@ +# cppreopts +# +# This command copies preopted files from the system_b partition to the data +# partition. This domain ensures that we are only copying into specific +# directories. + +type cppreopts, domain, mlstrustedsubject; +type cppreopts_exec, exec_type, file_type; + +# Allow cppreopts copy files into the dalvik-cache +allow cppreopts dalvikcache_data_file:dir { add_name remove_name search write }; +allow cppreopts dalvikcache_data_file:file { create getattr open read rename write }; + +# Allow cppreopts to execute itself using #!/system/bin/sh +allow cppreopts shell_exec:file rx_file_perms; + +# Allow us to run find on /postinstall +allow cppreopts system_file:dir { open read }; + +# Allow running the cp command using cppreopts permissions. Needed so we can +# write into dalvik-cache +allow cppreopts toolbox_exec:file rx_file_perms; diff --git a/prebuilts/api/26.0/public/crash_dump.te b/prebuilts/api/26.0/public/crash_dump.te new file mode 100644 index 000000000..ee617a171 --- /dev/null +++ b/prebuilts/api/26.0/public/crash_dump.te @@ -0,0 +1,60 @@ +type crash_dump, domain; +type crash_dump_exec, exec_type, file_type; + +allow crash_dump { + domain + -init + -crash_dump + -keystore + -logd +}:process { ptrace signal sigchld sigstop sigkill }; + +# crash_dump might inherit CAP_SYS_PTRACE from a privileged process, +# which will result in an audit log even when it's allowed to trace. +dontaudit crash_dump self:capability { sys_ptrace }; + +userdebug_or_eng(` + allow crash_dump logd:process { ptrace signal sigchld sigstop sigkill }; +') + +# Use inherited file descriptors +allow crash_dump domain:fd use; + +# Write to the IPC pipe inherited from crashing processes. +# Append to pipes given to us by processes requesting dumps (e.g. dumpstate) +allow crash_dump domain:fifo_file { write append }; + +r_dir_file(crash_dump, domain) +allow crash_dump exec_type:file r_file_perms; + +# Read /data/dalvik-cache. +allow crash_dump dalvikcache_data_file:dir { search getattr }; +allow crash_dump dalvikcache_data_file:file r_file_perms; + +# Read APK files. +r_dir_file(crash_dump, apk_data_file); + +# Read all /vendor +r_dir_file(crash_dump, { vendor_file same_process_hal_file }) + +# Talk to tombstoned +unix_socket_connect(crash_dump, tombstoned_crash, tombstoned) + +# Talk to ActivityManager. +unix_socket_connect(crash_dump, system_ndebug, system_server) + +# Append to ANR files. +allow crash_dump anr_data_file:file { append getattr }; + +# Append to tombstone files. +allow crash_dump tombstone_data_file:file { append getattr }; + +read_logd(crash_dump) + +### +### neverallow assertions +### + +# A domain transition must occur for crash_dump to get the privileges needed to trace the process. +# Do not allow the execution of crash_dump without a domain transition. +neverallow domain crash_dump_exec:file execute_no_trans; diff --git a/prebuilts/api/26.0/public/device.te b/prebuilts/api/26.0/public/device.te new file mode 100644 index 000000000..4a3bec91f --- /dev/null +++ b/prebuilts/api/26.0/public/device.te @@ -0,0 +1,103 @@ +# Device types +type device, dev_type, fs_type; +type alarm_device, dev_type, mlstrustedobject; +type ashmem_device, dev_type, mlstrustedobject; +type audio_device, dev_type; +type audio_timer_device, dev_type; +type audio_seq_device, dev_type; +type binder_device, dev_type, mlstrustedobject; +type hwbinder_device, dev_type, mlstrustedobject; +type vndbinder_device, dev_type; +type block_device, dev_type; +type camera_device, dev_type; +type dm_device, dev_type; +type keychord_device, dev_type; +type loop_control_device, dev_type; +type loop_device, dev_type; +type pmsg_device, dev_type, mlstrustedobject; +type radio_device, dev_type; +type ram_device, dev_type; +type rtc_device, dev_type; +type vold_device, dev_type; +type console_device, dev_type; +type cpuctl_device, dev_type; +type fscklogs, dev_type; +type full_device, dev_type; +# GPU (used by most UI apps) +type gpu_device, dev_type, mlstrustedobject; +type graphics_device, dev_type; +type hw_random_device, dev_type; +type input_device, dev_type; +type kmem_device, dev_type; +type port_device, dev_type; +type log_device, dev_type, mlstrustedobject; +type mtd_device, dev_type; +type mtp_device, dev_type, mlstrustedobject; +type nfc_device, dev_type; +type ptmx_device, dev_type, mlstrustedobject; +type kmsg_device, dev_type; +type null_device, dev_type, mlstrustedobject; +type random_device, dev_type, mlstrustedobject; +type sensors_device, dev_type; +type serial_device, dev_type; +type socket_device, dev_type; +type owntty_device, dev_type, mlstrustedobject; +type tty_device, dev_type; +type video_device, dev_type; +type vcs_device, dev_type; +type zero_device, dev_type, mlstrustedobject; +type fuse_device, dev_type, mlstrustedobject; +type iio_device, dev_type; +type ion_device, dev_type, mlstrustedobject; +type qtaguid_device, dev_type; +type watchdog_device, dev_type; +type uhid_device, dev_type; +type uio_device, dev_type; +type tun_device, dev_type, mlstrustedobject; +type usbaccessory_device, dev_type, mlstrustedobject; +type usb_device, dev_type, mlstrustedobject; +type properties_device, dev_type; +type properties_serial, dev_type; +type i2c_device, dev_type; + +# All devices have a uart for the hci +# attach service. The uart dev node +# varies per device. This type +# is used in per device policy +type hci_attach_dev, dev_type; + +# All devices have a rpmsg device for +# achieving remoteproc and rpmsg modules +type rpmsg_device, dev_type; + +# Partition layout block device +type root_block_device, dev_type; + +# factory reset protection block device +type frp_block_device, dev_type; + +# System block device mounted on /system. +type system_block_device, dev_type; + +# Recovery block device. +type recovery_block_device, dev_type; + +# boot block device. +type boot_block_device, dev_type; + +# Userdata block device mounted on /data. +type userdata_block_device, dev_type; + +# Cache block device mounted on /cache. +type cache_block_device, dev_type; + +# Block device for any swap partition. +type swap_block_device, dev_type; + +# Metadata block device used for encryption metadata. +# Assign this type to the partition specified by the encryptable= +# mount option in your fstab file in the entry for userdata. +type metadata_block_device, dev_type; + +# The 'misc' partition used by recovery and A/B. +type misc_block_device, dev_type; diff --git a/prebuilts/api/26.0/public/dex2oat.te b/prebuilts/api/26.0/public/dex2oat.te new file mode 100644 index 000000000..47f3bcb60 --- /dev/null +++ b/prebuilts/api/26.0/public/dex2oat.te @@ -0,0 +1,66 @@ +# dex2oat +type dex2oat, domain; +type dex2oat_exec, exec_type, file_type; + +r_dir_file(dex2oat, apk_data_file) +# Access to /vendor/app +r_dir_file(dex2oat, vendor_app_file) +# Access /vendor/framework +allow dex2oat vendor_framework_file:dir { getattr search }; +allow dex2oat vendor_framework_file:file { getattr open read }; + +allow dex2oat tmpfs:file { read getattr }; + +r_dir_file(dex2oat, dalvikcache_data_file) +allow dex2oat dalvikcache_data_file:file write; +# Read symlinks in /data/dalvik-cache. This is required for PIC mode boot images, where +# the oat file is symlinked to the original file in /system. +allow dex2oat dalvikcache_data_file:lnk_file read; +allow dex2oat installd:fd use; + +# Acquire advisory lock on /system/framework/arm/* +allow dex2oat system_file:file lock; + +# Read already open asec_apk_file file descriptors passed by installd. +# Also allow reading unlabeled files, to allow for upgrading forward +# locked APKs. +allow dex2oat asec_apk_file:file read; +allow dex2oat unlabeled:file read; +allow dex2oat oemfs:file read; +allow dex2oat apk_tmp_file:dir search; +allow dex2oat apk_tmp_file:file r_file_perms; +allow dex2oat user_profile_data_file:file { getattr read lock }; + +# Allow dex2oat to compile app's secondary dex files which were reported back to +# the framework. +allow dex2oat app_data_file:file { getattr read write lock }; + +################## +# A/B OTA Dexopt # +################## + +# Allow dex2oat to use file descriptors from otapreopt. +allow dex2oat postinstall_dexopt:fd use; + +allow dex2oat postinstall_file:dir { getattr search }; +allow dex2oat postinstall_file:filesystem getattr; +allow dex2oat postinstall_file:lnk_file read; + +# Allow dex2oat access to files in /data/ota. +allow dex2oat ota_data_file:dir ra_dir_perms; +allow dex2oat ota_data_file:file r_file_perms; + +# Create and read symlinks in /data/ota/dalvik-cache. This is required for PIC mode boot images, +# where the oat file is symlinked to the original file in /system. +allow dex2oat ota_data_file:lnk_file { create read }; + +# It would be nice to tie this down, but currently, because of how images are written, we can't +# pass file descriptors for the preopted boot image to dex2oat. So dex2oat needs to be able to +# create them itself (and make them world-readable). +allow dex2oat ota_data_file:file { create w_file_perms setattr }; + +############## +# Neverallow # +############## + +neverallow dex2oat app_data_file:notdevfile_class_set open; diff --git a/prebuilts/api/26.0/public/dhcp.te b/prebuilts/api/26.0/public/dhcp.te new file mode 100644 index 000000000..2b54b7f88 --- /dev/null +++ b/prebuilts/api/26.0/public/dhcp.te @@ -0,0 +1,30 @@ +type dhcp, domain; +type dhcp_exec, exec_type, file_type; + +net_domain(dhcp) + +allow dhcp cgroup:dir { create write add_name }; +allow dhcp self:capability { setgid setuid net_admin net_raw net_bind_service }; +allow dhcp self:packet_socket create_socket_perms_no_ioctl; +allow dhcp self:netlink_route_socket nlmsg_write; +allow dhcp shell_exec:file rx_file_perms; +allow dhcp system_file:file rx_file_perms; +not_full_treble(`allow dhcp vendor_file:file rx_file_perms;') + +# dhcpcd runs dhcpcd-hooks/*, which runs getprop / setprop (toolbox_exec) +allow dhcp toolbox_exec:file rx_file_perms; + +# For /proc/sys/net/ipv4/conf/*/promote_secondaries +allow dhcp proc_net:file write; + +set_prop(dhcp, dhcp_prop) +set_prop(dhcp, pan_result_prop) + +allow dhcp dhcp_data_file:dir create_dir_perms; +allow dhcp dhcp_data_file:file create_file_perms; + +# PAN connections +allow dhcp netd:fd use; +allow dhcp netd:fifo_file rw_file_perms; +allow dhcp netd:{ dgram_socket_class_set unix_stream_socket } { read write }; +allow dhcp netd:{ netlink_kobject_uevent_socket netlink_route_socket netlink_nflog_socket } { read write }; diff --git a/prebuilts/api/26.0/public/display_service_server.te b/prebuilts/api/26.0/public/display_service_server.te new file mode 100644 index 000000000..c5839fa54 --- /dev/null +++ b/prebuilts/api/26.0/public/display_service_server.te @@ -0,0 +1 @@ +add_hwservice(display_service_server, fwk_display_hwservice) diff --git a/prebuilts/api/26.0/public/dnsmasq.te b/prebuilts/api/26.0/public/dnsmasq.te new file mode 100644 index 000000000..ccac69a33 --- /dev/null +++ b/prebuilts/api/26.0/public/dnsmasq.te @@ -0,0 +1,25 @@ +# DNS, DHCP services +type dnsmasq, domain; +type dnsmasq_exec, exec_type, file_type; + +net_domain(dnsmasq) +allowxperm dnsmasq self:udp_socket ioctl priv_sock_ioctls; + +# TODO: Run with dhcp group to avoid need for dac_override. +allow dnsmasq self:capability dac_override; + +allow dnsmasq self:capability { net_admin net_raw net_bind_service setgid setuid }; + +allow dnsmasq dhcp_data_file:dir w_dir_perms; +allow dnsmasq dhcp_data_file:file create_file_perms; + +# Inherit and use open files from netd. +allow dnsmasq netd:fd use; +allow dnsmasq netd:fifo_file { read write }; +# TODO: Investigate whether these inherited sockets should be closed on exec. +allow dnsmasq netd:netlink_kobject_uevent_socket { read write }; +allow dnsmasq netd:netlink_nflog_socket { read write }; +allow dnsmasq netd:netlink_route_socket { read write }; +allow dnsmasq netd:unix_stream_socket { read write }; +allow dnsmasq netd:unix_dgram_socket { read write }; +allow dnsmasq netd:udp_socket { read write }; diff --git a/prebuilts/api/26.0/public/domain.te b/prebuilts/api/26.0/public/domain.te new file mode 100644 index 000000000..d2b370a21 --- /dev/null +++ b/prebuilts/api/26.0/public/domain.te @@ -0,0 +1,1028 @@ +# Rules for all domains. + +# Allow reaping by init. +allow domain init:process sigchld; + +# Intra-domain accesses. +allow domain self:process { + fork + sigchld + sigkill + sigstop + signull + signal + getsched + setsched + getsession + getpgid + setpgid + getcap + setcap + getattr + setrlimit +}; +allow domain self:fd use; +allow domain proc:dir r_dir_perms; +allow domain proc_net:dir search; +r_dir_file(domain, self) +allow domain self:{ fifo_file file } rw_file_perms; +allow domain self:unix_dgram_socket { create_socket_perms sendto }; +allow domain self:unix_stream_socket { create_stream_socket_perms connectto }; + +# Inherit or receive open files from others. +allow domain init:fd use; + +userdebug_or_eng(` + # Same as adbd rules above, except allow su to do the same thing + allow domain su:unix_stream_socket connectto; + allow domain su:fd use; + allow domain su:unix_stream_socket { getattr getopt read write shutdown }; + + allow { domain -init } su:binder { call transfer }; + allow { domain -init } su:fd use; + + # Running something like "pm dump com.android.bluetooth" requires + # fifo writes + allow domain su:fifo_file { write getattr }; + + # allow "gdbserver --attach" to work for su. + allow domain su:process sigchld; + + # Allow writing coredumps to /cores/* + allow domain coredump_file:file create_file_perms; + allow domain coredump_file:dir ra_dir_perms; +') + +# Root fs. +allow domain rootfs:dir search; +allow domain rootfs:lnk_file { read getattr }; + +# Device accesses. +allow domain device:dir search; +allow domain dev_type:lnk_file r_file_perms; +allow domain devpts:dir search; +allow domain socket_device:dir r_dir_perms; +allow domain owntty_device:chr_file rw_file_perms; +allow domain null_device:chr_file rw_file_perms; +allow domain zero_device:chr_file rw_file_perms; +allow domain ashmem_device:chr_file rw_file_perms; +# /dev/binder can be accessed by non-vendor domains and by apps +allow { + coredomain + appdomain + binder_in_vendor_violators # TODO(b/35870313): Remove once all violations are gone + -hwservicemanager +} binder_device:chr_file rw_file_perms; +# Devices which are not full TREBLE have fewer restrictions on access to /dev/binder +not_full_treble(`allow { domain -hwservicemanager -vndservicemanager } binder_device:chr_file rw_file_perms;') +allow { domain -servicemanager -vndservicemanager } hwbinder_device:chr_file rw_file_perms; +allow domain ptmx_device:chr_file rw_file_perms; +allow domain alarm_device:chr_file r_file_perms; +allow domain random_device:chr_file rw_file_perms; +allow domain properties_device:dir { search getattr }; +allow domain properties_serial:file r_file_perms; + +# For now, everyone can access core property files +# Device specific properties are not granted by default +get_prop(domain, core_property_type) +# Let everyone read log properties, so that liblog can avoid sending unloggable +# messages to logd. +get_prop(domain, log_property_type) +dontaudit domain property_type:file audit_access; +allow domain property_contexts_file:file r_file_perms; + +allow domain init:key search; +allow domain vold:key search; + +# logd access +write_logd(domain) + +# System file accesses. +allow domain system_file:dir { search getattr }; +allow domain system_file:file { execute read open getattr }; +allow domain system_file:lnk_file { getattr read }; + +# Make sure system/vendor split doesn not affect non-treble +# devices +not_full_treble(` + allow domain vendor_file_type:dir { search getattr }; + allow domain vendor_file_type:file { execute read open getattr }; + allow domain vendor_file_type:lnk_file { getattr read }; +') + +# All domains are allowed to open and read directories +# that contain HAL implementations (e.g. passthrough +# HALs require clients to have these permissions) +allow domain vendor_hal_file:dir r_dir_perms; + +# Everyone can read and execute all same process HALs +allow domain same_process_hal_file:dir r_dir_perms; +allow domain same_process_hal_file:file { execute read open getattr }; + +# Any process can load vndk-sp libraries, which are system libraries +# used by same process HALs +allow domain vndk_sp_file:dir r_dir_perms; +allow domain vndk_sp_file:file { execute read open getattr }; + +# All domains get access to /vendor/etc +allow domain vendor_configs_file:dir r_dir_perms; +allow domain vendor_configs_file:file { read open getattr }; + +full_treble_only(` + # Allow all domains to be able to follow /system/vendor symlink + allow domain vendor_file:lnk_file { getattr open read }; + + # This is required to be able to search & read /vendor/lib64 + # in order to lookup vendor libraries. The execute permission + # for coredomains is granted *only* for same process HALs + allow domain vendor_file:dir { getattr search }; + + # Allow reading and executing out of /vendor to all vendor domains + allow { domain -coredomain } vendor_file_type:dir r_dir_perms; + allow { domain -coredomain } vendor_file_type:file { read open getattr execute }; + allow { domain -coredomain } vendor_file_type:lnk_file { getattr read }; +') + +# read any sysfs symlinks +allow domain sysfs:lnk_file read; + +# libc references /data/misc/zoneinfo for timezone related information +# This directory is considered to be a VNDK-stable +r_dir_file(domain, zoneinfo_data_file) + +# Lots of processes access current CPU information +r_dir_file(domain, sysfs_devices_system_cpu) + +r_dir_file(domain, sysfs_usb); + +# files under /data. +not_full_treble(`allow domain system_data_file:dir getattr;') +allow { coredomain appdomain } system_data_file:dir getattr; +# /data has the label system_data_file. Vendor components need the search +# permission on system_data_file for path traversal to /data/vendor. +allow domain system_data_file:dir search; + +# required by the dynamic linker +allow domain proc:lnk_file { getattr read }; + +# /proc/cpuinfo +allow domain proc_cpuinfo:file r_file_perms; + +# jemalloc needs to read /proc/sys/vm/overcommit_memory +allow domain proc_overcommit_memory:file r_file_perms; + +# profiling needs to read /proc/sys/kernel/perf_event_max_sample_rate +allow domain proc_perf:file r_file_perms; + +# toybox loads libselinux which stats /sys/fs/selinux/ +allow domain selinuxfs:dir search; +allow domain selinuxfs:file getattr; +allow domain sysfs:dir search; +allow domain selinuxfs:filesystem getattr; + +# For /acct/uid/*/tasks. +allow domain cgroup:dir { search write }; +allow domain cgroup:file w_file_perms; + +# Almost all processes log tracing information to +# /sys/kernel/debug/tracing/trace_marker +# The reason behind this is documented in b/6513400 +allow domain debugfs:dir search; +allow domain debugfs_tracing:dir search; +allow domain debugfs_trace_marker:file w_file_perms; + +# Filesystem access. +allow domain fs_type:filesystem getattr; +allow domain fs_type:dir getattr; + +# Restrict all domains to a whitelist for common socket types. Additional +# ioctl commands may be added to individual domains, but this sets safe +# defaults for all processes. Note that granting this whitelist to domain does +# not grant the ioctl permission on these socket types. That must be granted +# separately. +allowxperm domain domain:{ rawip_socket tcp_socket udp_socket } + ioctl { unpriv_sock_ioctls unpriv_tty_ioctls }; +# default whitelist for unix sockets. +allowxperm domain domain:{ unix_dgram_socket unix_stream_socket } + ioctl unpriv_unix_sock_ioctls; + +# Restrict PTYs to only whitelisted ioctls. +# Note that granting this whitelist to domain does +# not grant the wider ioctl permission. That must be granted +# separately. +allowxperm domain devpts:chr_file ioctl unpriv_tty_ioctls; + +# Workaround for policy compiler being too aggressive and removing hwservice_manager_type +# when it's not explicitly used in allow rules +allow { domain -domain } hwservice_manager_type:hwservice_manager { add find }; +# Workaround for policy compiler being too aggressive and removing vndservice_manager_type +# when it's not explicitly used in allow rules +allow { domain -domain } vndservice_manager_type:service_manager { add find }; + +### +### neverallow rules +### + +# All socket ioctls must be restricted to a whitelist. +neverallowxperm domain domain:socket_class_set ioctl { 0 }; + +# TIOCSTI is only ever used for exploits. Block it. +# b/33073072, b/7530569 +# http://www.openwall.com/lists/oss-security/2016/09/26/14 +neverallowxperm * devpts:chr_file ioctl TIOCSTI; + +# Do not allow any domain other than init or recovery to create unlabeled files. +neverallow { domain -init -recovery } unlabeled:dir_file_class_set create; + +# Limit device node creation to these whitelisted domains. +neverallow { + domain + -kernel + -init + -ueventd + -vold +} self:capability mknod; + +# Limit raw I/O to these whitelisted domains. Do not apply to debug builds. +neverallow { + domain + userdebug_or_eng(`-domain') + -kernel + -init + -recovery + -ueventd + -healthd + -uncrypt + -tee +} self:capability sys_rawio; + +# No process can map low memory (< CONFIG_LSM_MMAP_MIN_ADDR). +neverallow * self:memprotect mmap_zero; + +# No domain needs mac_override as it is unused by SELinux. +neverallow * self:capability2 mac_override; + +# Only recovery needs mac_admin to set contexts not defined in current policy. +neverallow { domain -recovery } self:capability2 mac_admin; + +# Once the policy has been loaded there shall be none to modify the policy. +# It is sealed. +neverallow * kernel:security load_policy; + +# Only init prior to switching context should be able to set enforcing mode. +# init starts in kernel domain and switches to init domain via setcon in +# the init.rc, so the setenforce occurs while still in kernel. After +# switching domains, there is never any need to setenforce again by init. +neverallow * kernel:security setenforce; +neverallow { domain -kernel } kernel:security setcheckreqprot; + +# No booleans in AOSP policy, so no need to ever set them. +neverallow * kernel:security setbool; + +# Adjusting the AVC cache threshold. +# Not presently allowed to anything in policy, but possibly something +# that could be set from init.rc. +neverallow { domain -init } kernel:security setsecparam; + +# Only init, ueventd, shell and system_server should be able to access HW RNG +neverallow { + domain + -init + -shell # For CTS and is restricted to getattr in shell.te + -system_server + -ueventd +} hw_random_device:chr_file *; + +# Ensure that all entrypoint executables are in exec_type or postinstall_file. +neverallow * { file_type -exec_type -postinstall_file }:file entrypoint; + +# Ensure that nothing in userspace can access /dev/mem or /dev/kmem +neverallow { + domain + -shell # For CTS and is restricted to getattr in shell.te + -ueventd # Further restricted in ueventd.te +} kmem_device:chr_file *; +neverallow * kmem_device:chr_file ~{ create relabelto unlink setattr getattr }; + +#Ensure that nothing in userspace can access /dev/port +neverallow { + domain + -shell # Shell user should not have any abilities outside of getattr + -ueventd +} port_device:chr_file *; +neverallow * port_device:chr_file ~{ create relabelto unlink setattr getattr }; +# Only init should be able to configure kernel usermodehelpers or +# security-sensitive proc settings. +neverallow { domain -init } usermodehelper:file { append write }; +neverallow { domain -init } proc_security:file { append open read write }; + +# No domain should be allowed to ptrace init. +neverallow * init:process ptrace; + +# Init can't do anything with binder calls. If this neverallow rule is being +# triggered, it's probably due to a service with no SELinux domain. +neverallow * init:binder *; + +# Don't allow raw read/write/open access to block_device +# Rather force a relabel to a more specific type +neverallow { domain -kernel -init -recovery } block_device:blk_file { open read write }; + +# Do not allow renaming of block files or character files +# Ability to do so can lead to possible use in an exploit chain +# e.g. https://googleprojectzero.blogspot.com/2016/12/chrome-os-exploit-one-byte-overflow-and.html +neverallow * *:{ blk_file chr_file } rename; + +# Don't allow raw read/write/open access to generic devices. +# Rather force a relabel to a more specific type. +neverallow domain device:chr_file { open read write }; + +# Limit what domains can mount filesystems or change their mount flags. +# sdcard_type / vfat is exempt as a larger set of domains need +# this capability, including device-specific domains. +neverallow { domain -kernel -init -recovery -vold -zygote -update_engine -otapreopt_chroot } { fs_type -sdcard_type }:filesystem { mount remount relabelfrom relabelto }; + +# +# Assert that, to the extent possible, we're not loading executable content from +# outside the rootfs or /system partition except for a few whitelisted domains. +# +neverallow { + domain + -appdomain + with_asan(`-asan_extract') + -dumpstate + -shell + userdebug_or_eng(`-su') + -system_server + -webview_zygote + -zygote +} { + file_type + -system_file + -vendor_file_type + -exec_type + -postinstall_file +}:file execute; + +neverallow { + domain + -appdomain # for oemfs + -recovery # for /tmp/update_binary in tmpfs +} { fs_type -rootfs }:file execute; +# Files from cache should never be executed +neverallow domain { cache_file cache_backup_file cache_private_backup_file cache_recovery_file }:file execute; + +# Protect most domains from executing arbitrary content from /data. +neverallow { + domain + -appdomain +} { + data_file_type + -dalvikcache_data_file + -system_data_file # shared libs in apks + -apk_data_file +}:file no_x_file_perms; + +neverallow { domain userdebug_or_eng(`-shell') } nativetest_data_file:file no_x_file_perms; + +# Only the init property service should write to /data/property and /dev/__properties__ +neverallow { domain -init } property_data_file:dir no_w_dir_perms; +neverallow { domain -init } property_data_file:file { no_w_file_perms no_x_file_perms }; +neverallow { domain -init } property_type:file { no_w_file_perms no_x_file_perms }; +neverallow { domain -init } properties_device:file { no_w_file_perms no_x_file_perms }; +neverallow { domain -init } properties_serial:file { no_w_file_perms no_x_file_perms }; + +# Only recovery should be doing writes to /system & /vendor +neverallow { + domain + -recovery + with_asan(`-asan_extract') +} { + system_file + vendor_file_type + exec_type +}:dir_file_class_set { create write setattr relabelfrom append unlink link rename }; + +neverallow { domain -recovery -kernel with_asan(`-asan_extract') } { system_file vendor_file_type exec_type }:dir_file_class_set relabelto; + +# Don't allow mounting on top of /system files or directories +neverallow * exec_type:dir_file_class_set mounton; +neverallow { domain -init } { system_file vendor_file_type }:dir_file_class_set mounton; + +# Nothing should be writing to files in the rootfs. +neverallow * rootfs:file { create write setattr relabelto append unlink link rename }; + +# Restrict context mounts to specific types marked with +# the contextmount_type attribute. +neverallow * {fs_type -contextmount_type}:filesystem relabelto; + +# Ensure that context mount types are not writable, to ensure that +# the write to /system restriction above is not bypassed via context= +# mount to another type. +neverallow { domain -recovery } contextmount_type:dir_file_class_set + { create write setattr relabelfrom relabelto append unlink link rename }; + +# Do not allow service_manager add for default service labels. +# Instead domains should use a more specific type such as +# system_app_service rather than the generic type. +# New service_types are defined in {,hw,vnd}service.te and new mappings +# from service name to service_type are defined in {,hw,vnd}service_contexts. +neverallow * default_android_service:service_manager add; +neverallow * default_android_vndservice:service_manager { add find }; +neverallow * default_android_hwservice:hwservice_manager { add find }; + +# Looking up the base class/interface of all HwBinder services is a bad idea. +# hwservicemanager currently offer such lookups only to make it so that security +# decisions are expressed in SELinux policy. However, it's unclear whether this +# lookup has security implications. If it doesn't, hwservicemanager should be +# modified to not offer this lookup. +# This rule can be removed if hwservicemanager is modified to not permit these +# lookups. +neverallow * hidl_base_hwservice:hwservice_manager find; + +# Require that domains explicitly label unknown properties, and do not allow +# anyone but init to modify unknown properties. +neverallow { domain -init } default_prop:property_service set; +neverallow { domain -init } mmc_prop:property_service set; + +# Do not allow reading device's serial number from system properties except form +# a few whitelisted domains. +neverallow { + domain + -adbd + -dumpstate + -hal_drm + -init + -mediadrmserver + -recovery + -shell + -system_server +} serialno_prop:file r_file_perms; + +# Do not allow reading the last boot timestamp from system properties +neverallow { domain -init -system_server } firstboot_prop:file r_file_perms; + +neverallow { + domain + -init + -recovery + -system_server + -shell # Shell is further restricted in shell.te + -ueventd # Further restricted in ueventd.te +} frp_block_device:blk_file no_rw_file_perms; + +# The metadata block device is set aside for device encryption and +# verified boot metadata. It may be reset at will and should not +# be used by other domains. +neverallow { domain -init -recovery -vold } metadata_block_device:blk_file + { append link rename write open read ioctl lock }; + +# No domain other than recovery and update_engine can write to system partition(s). +neverallow { domain -recovery -update_engine } system_block_device:blk_file write; + +# No domains other than install_recovery or recovery can write to recovery. +neverallow { domain -install_recovery -recovery } recovery_block_device:blk_file write; + +# No domains other than a select few can access the misc_block_device. This +# block device is reserved for OTA use. +# Do not assert this rule on userdebug/eng builds, due to some devices using +# this partition for testing purposes. +neverallow { + domain + userdebug_or_eng(`-domain') # exclude debuggable builds + -hal_bootctl + -init + -uncrypt + -update_engine + -vold + -recovery + -ueventd +} misc_block_device:blk_file { append link relabelfrom rename write open read ioctl lock }; +neverallow hal_bootctl unlabeled:service_manager list; #TODO: b/62658302 + +# Only (hw|vnd|)servicemanager should be able to register with binder as the context manager +neverallow { domain -servicemanager -hwservicemanager -vndservicemanager } *:binder set_context_mgr; +# The service managers are only allowed to access their own device node +neverallow servicemanager hwbinder_device:chr_file no_rw_file_perms; +neverallow servicemanager vndbinder_device:chr_file no_rw_file_perms; +neverallow hwservicemanager binder_device:chr_file no_rw_file_perms; +neverallow hwservicemanager vndbinder_device:chr_file no_rw_file_perms; +neverallow vndservicemanager binder_device:chr_file no_rw_file_perms; +neverallow vndservicemanager hwbinder_device:chr_file no_rw_file_perms; + +# On full TREBLE devices, only core components and apps can use Binder and servicemanager. Non-core +# domain apps need this because Android framework offers many of its services to apps as Binder +# services. +full_treble_only(` + neverallow { + domain + -coredomain + -appdomain + -binder_in_vendor_violators # TODO(b/35870313): Remove once all violations are gone + } binder_device:chr_file rw_file_perms; + neverallow { + domain + -coredomain + -appdomain # restrictions for vendor apps are declared lower down + -binder_in_vendor_violators # TODO(b/35870313): Remove once all violations are gone + } service_manager_type:service_manager find; + # Vendor apps are permited to use only stable public services. If they were to use arbitrary + # services which can change any time framework/core is updated, breakage is likely. + neverallow { + appdomain + -coredomain + } { + service_manager_type + -app_api_service + -ephemeral_app_api_service + -audioserver_service # TODO(b/36783122) remove exemptions below once app_api_service is fixed + -cameraserver_service + -drmserver_service + -keystore_service + -mediacasserver_service + -mediadrmserver_service + -mediaextractor_service + -mediametrics_service + -mediaserver_service + -nfc_service + -radio_service + -surfaceflinger_service + -virtual_touchpad_service + -vr_hwc_service + -vr_manager_service + }:service_manager find; + neverallow { + domain + -coredomain + -appdomain + -binder_in_vendor_violators # TODO(b/35870313): Remove once all violations are gone + } servicemanager:binder { call transfer }; + neverallow binder_in_vendor_violators unlabeled:service_manager list ; #TODO: b/62658302 +') + +# On full TREBLE devices, only vendor components, shell, and su can use VendorBinder. +full_treble_only(` + neverallow { + coredomain + -shell + userdebug_or_eng(`-su') + -ueventd # uevent is granted create for this device, but we still neverallow I/O below + } vndbinder_device:chr_file rw_file_perms; + neverallow ueventd vndbinder_device:chr_file { read write append ioctl }; + neverallow { + coredomain + -shell + userdebug_or_eng(`-su') + } vndservice_manager_type:service_manager *; + neverallow { + coredomain + -shell + userdebug_or_eng(`-su') + } vndservicemanager:binder *; +') + +# On full TREBLE devices, socket communications between core components and vendor components are +# not permitted. +full_treble_only(` + # Most general rules first, more specific rules below. + + # Core domains are not permitted to initiate communications to vendor domain sockets. + # We are not restricting the use of already established sockets because it is fine for a process + # to obtain an already established socket via some public/official/stable API and then exchange + # data with its peer over that socket. The wire format in this scenario is dicatated by the API + # and thus does not break the core-vendor separation. + neverallow_establish_socket_comms({ + coredomain + -init + -adbd + }, { + domain + -coredomain + -socket_between_core_and_vendor_violators + }); + # Vendor domains are not permitted to initiate communications to core domain sockets + neverallow_establish_socket_comms({ + domain + -coredomain + -appdomain + -socket_between_core_and_vendor_violators + }, { + coredomain + -logd # Logging by writing to logd Unix domain socket is public API + -netd # netdomain needs this + -mdnsd # netdomain needs this + userdebug_or_eng(`-su') # communications with su are permitted only on userdebug or eng builds + -init + -incidentd # TODO(b/35870313): Remove incidentd from this list once vendor domains no longer declare Binder services + -tombstoned # TODO(b/36604251): Remove tombstoned from this list once mediacodec (OMX HAL) no longer declares Binder services + }); + neverallow socket_between_core_and_vendor_violators unlabeled:service_manager list ; #TODO: b/62658302 + + # Vendor domains (except netdomain) are not permitted to initiate communications to netd sockets + neverallow_establish_socket_comms({ + domain + -coredomain + -netdomain + -socket_between_core_and_vendor_violators + }, netd); + + # Vendor domains are not permitted to initiate create/open sockets owned by core domains + neverallow { + domain + -coredomain + -appdomain # appdomain restrictions below + -socket_between_core_and_vendor_violators + } { + coredomain_socket + core_data_file_type + unlabeled # used only by core domains + }:sock_file ~{ append getattr ioctl read write }; + neverallow { + appdomain + -coredomain + } { + coredomain_socket + unlabeled # used only by core domains + core_data_file_type + -app_data_file + -pdx_endpoint_socket_type # used by VR layer + -pdx_channel_socket_type # used by VR layer + }:sock_file ~{ append getattr ioctl read write }; + neverallow { + pdx_endpoint_socket_type + pdx_channel_socket_type + } unlabeled:service_manager list; #TODO: b/62658302 + + # Core domains are not permitted to create/open sockets owned by vendor domains + neverallow { + coredomain + -init + -ueventd + -socket_between_core_and_vendor_violators + } { + file_type + dev_type + -coredomain_socket + -core_data_file_type + -unlabeled + }:sock_file ~{ append getattr ioctl read write }; +') + +# On TREBLE devices, a limited set of files in /vendor are accessible to +# only a few whitelisted coredomains to keep system/vendor separation. +full_treble_only(` + # Limit access to /vendor/app + neverallow { + coredomain + -appdomain + -dex2oat + -idmap + -init + -installd + -postinstall_dexopt + -system_server + } vendor_app_file:dir { open read getattr search }; + + neverallow { + coredomain + -appdomain + -dex2oat + -idmap + -init + -installd + -postinstall_dexopt + -system_server + } vendor_app_file:{ file lnk_file } r_file_perms; + + # Limit access to /vendor/overlay + neverallow { + coredomain + -appdomain + -idmap + -init + -installd + -system_server + -zygote + } vendor_overlay_file:dir { getattr open read search }; + + neverallow { + coredomain + -appdomain + -idmap + -init + -installd + -system_server + -zygote + } vendor_overlay_file:{ file lnk_file } r_file_perms; + + # Non-vendor domains are not allowed to file execute shell + # from vendor + neverallow { + coredomain + -init + } vendor_shell_exec:file { execute execute_no_trans }; + + # Do not allow vendor components to execute files from system + # except for the ones whitelist here. + neverallow { + domain + -coredomain + -appdomain + -rild + -vendor_executes_system_violators + } { + exec_type + -vendor_file_type + -crash_dump_exec + -netutils_wrapper_exec + }:file { entrypoint execute execute_no_trans }; + neverallow vendor_executes_system_violators unlabeled:service_manager list; #TODO: b/62658302 +') + +# Only authorized processes should be writing to files in /data/dalvik-cache +neverallow { + domain + -init # TODO: limit init to relabelfrom for files + -zygote + -installd + -postinstall_dexopt + -cppreopts + -dex2oat + -otapreopt_slot +} dalvikcache_data_file:file no_w_file_perms; + +neverallow { + domain + -init + -installd + -postinstall_dexopt + -cppreopts + -dex2oat + -zygote + -otapreopt_slot +} dalvikcache_data_file:dir no_w_dir_perms; + +# Only system_server should be able to send commands via the zygote socket +neverallow { domain -zygote -system_server } zygote:unix_stream_socket connectto; +neverallow { domain -system_server } zygote_socket:sock_file write; + +neverallow { domain -system_server -webview_zygote } webview_zygote:unix_stream_socket connectto; +neverallow { domain -system_server } webview_zygote_socket:sock_file write; + +neverallow { + domain + -tombstoned + -crash_dump + -dumpstate + -system_server + + # Processes that can't exec crash_dump + -mediacodec + -mediaextractor +} tombstoned:unix_stream_socket connectto; +neverallow { + domain + -crash_dump + -mediacodec + -mediaextractor +} tombstoned_crash_socket:sock_file write; +neverallow { domain -dumpstate -system_server } tombstoned_intercept_socket:sock_file write; + +# Android does not support System V IPCs. +# +# The reason for this is due to the fact that, by design, they lead to global +# kernel resource leakage. +# +# For example, there is no way to automatically release a SysV semaphore +# allocated in the kernel when: +# +# - a buggy or malicious process exits +# - a non-buggy and non-malicious process crashes or is explicitly killed. +# +# Killing processes automatically to make room for new ones is an +# important part of Android's application lifecycle implementation. This means +# that, even assuming only non-buggy and non-malicious code, it is very likely +# that over time, the kernel global tables used to implement SysV IPCs will fill +# up. +neverallow * *:{ shm sem msg msgq } *; + +# Do not mount on top of symlinks, fifos, or sockets. +# Feature parity with Chromium LSM. +neverallow * { file_type fs_type dev_type }:{ lnk_file fifo_file sock_file } mounton; + +# Nobody should be able to execute su on user builds. +# On userdebug/eng builds, only dumpstate, shell, and +# su itself execute su. +neverallow { domain userdebug_or_eng(`-dumpstate -shell -su') } su_exec:file no_x_file_perms; + +# Do not allow the introduction of new execmod rules. Text relocations +# and modification of executable pages are unsafe. +# The only exceptions are for NDK text relocations associated with +# https://code.google.com/p/android/issues/detail?id=23203 +# which, long term, need to go away. +neverallow * { + file_type + -apk_data_file + -app_data_file + -asec_public_file +}:file execmod; + +# Do not allow making the stack or heap executable. +# We would also like to minimize execmem but it seems to be +# required by some device-specific service domains. +neverallow * self:process { execstack execheap }; + +# prohibit non-zygote spawned processes from using shared libraries +# with text relocations. b/20013628 . +neverallow { domain -untrusted_app_all } file_type:file execmod; + +neverallow { domain -init } proc:{ file dir } mounton; + +# Ensure that all types assigned to processes are included +# in the domain attribute, so that all allow and neverallow rules +# written on domain are applied to all processes. +# This is achieved by ensuring that it is impossible to transition +# from a domain to a non-domain type and vice versa. +# TODO - rework this: neverallow domain ~domain:process { transition dyntransition }; +neverallow ~domain domain:process { transition dyntransition }; + +# +# Only system_app and system_server should be creating or writing +# their files. The proper way to share files is to setup +# type transitions to a more specific type or assigning a type +# to its parent directory via a file_contexts entry. +# Example type transition: +# mydomain.te:file_type_auto_trans(mydomain, system_data_file, new_file_type) +# +neverallow { + domain + -system_server + -system_app + -init + -installd # for relabelfrom and unlink, check for this in explicit neverallow + with_asan(`-asan_extract') +} system_data_file:file no_w_file_perms; +# do not grant anything greater than r_file_perms and relabelfrom unlink +# to installd +neverallow installd system_data_file:file ~{ r_file_perms relabelfrom unlink }; + +# respect system_app sandboxes +neverallow { + domain + -appdomain # finer-grained rules for appdomain are listed below + -system_server #populate com.android.providers.settings/databases/settings.db. + -installd # creation of app sandbox +} system_app_data_file:dir_file_class_set { create unlink open }; +neverallow { + isolated_app + untrusted_app_all # finer-grained rules for appdomain are listed below + ephemeral_app + priv_app +} system_app_data_file:dir_file_class_set { create unlink open }; + + +# Services should respect app sandboxes +neverallow { + domain + -appdomain + -installd # creation of sandbox +} app_data_file:dir_file_class_set { create unlink }; + +# +# Only these domains should transition to shell domain. This domain is +# permissible for the "shell user". If you need a process to exec a shell +# script with differing privilege, define a domain and set up a transition. +# +neverallow { + domain + -adbd + -init + -runas + -zygote +} shell:process { transition dyntransition }; + +# Only domains spawned from zygote and runas may have the appdomain attribute. +neverallow { domain -runas -webview_zygote -zygote } { + appdomain -shell userdebug_or_eng(`-su') -bluetooth +}:process { transition dyntransition }; + +# Minimize read access to shell- or app-writable symlinks. +# This is to prevent malicious symlink attacks. +neverallow { + domain + -appdomain + -installd + -uncrypt # TODO: see if we can remove +} app_data_file:lnk_file read; + +neverallow { + domain + -shell + userdebug_or_eng(`-uncrypt') + -installd +} shell_data_file:lnk_file read; + +# In addition to the symlink reading restrictions above, restrict +# write access to shell owned directories. The /data/local/tmp +# directory is untrustworthy, and non-whitelisted domains should +# not be trusting any content in those directories. +neverallow { + domain + -adbd + -dumpstate + -installd + -init + -shell + -vold +} shell_data_file:dir no_w_dir_perms; + +neverallow { + domain + -adbd + -appdomain + -dumpstate + -init + -installd + -system_server # why? + userdebug_or_eng(`-uncrypt') +} shell_data_file:dir { open search }; + +# Same as above for /data/local/tmp files. We allow shell files +# to be passed around by file descriptor, but not directly opened. +neverallow { + domain + -adbd + -appdomain + -dumpstate + -installd + userdebug_or_eng(`-uncrypt') +} shell_data_file:file open; + + +# servicemanager and vndservicemanager are the only processes which handle the +# service_manager list request +neverallow * ~{ + servicemanager + vndservicemanager + }:service_manager list; + +# hwservicemanager is the only process which handles hw list requests +neverallow * ~{ + hwservicemanager + }:hwservice_manager list; + +# only service_manager_types can be added to service_manager +# TODO - rework this: neverallow * ~service_manager_type:service_manager { add find }; + +# Prevent assigning non property types to properties +# TODO - rework this: neverallow * ~property_type:property_service set; + +# Domain types should never be assigned to any files other +# than the /proc/pid files associated with a process. The +# executable file used to enter a domain should be labeled +# with its own _exec type, not with the domain type. +# Conventionally, this looks something like: +# $ cat mydaemon.te +# type mydaemon, domain; +# type mydaemon_exec, exec_type, file_type; +# init_daemon_domain(mydaemon) +# $ grep mydaemon file_contexts +# /system/bin/mydaemon -- u:object_r:mydaemon_exec:s0 +neverallow * domain:file { execute execute_no_trans entrypoint }; + +# Do not allow access to the generic debugfs label. This is too broad. +# Instead, if access to part of debugfs is desired, it should have a +# more specific label. +# TODO: fix system_server and dumpstate +neverallow { domain -init -system_server -dumpstate } debugfs:file no_rw_file_perms; + +# Profiles contain untrusted data and profman parses that. We should only run +# in from installd forked processes. +neverallow { + domain + -installd + -profman +} profman_exec:file no_x_file_perms; + +# Enforce restrictions on kernel module origin. +# Do not allow kernel module loading except from system, +# vendor, and boot partitions. +neverallow * ~{ system_file vendor_file rootfs }:system module_load; + +# Only allow filesystem caps to be set at build time or +# during upgrade by recovery. +neverallow { + domain + -recovery +} self:capability setfcap; + +# Enforce AT_SECURE for executing crash_dump. +neverallow domain crash_dump:process noatsecure; + +# Do not permit non-core domains to register HwBinder services which are +# guaranteed to be provided by core domains only. +neverallow ~coredomain coredomain_hwservice:hwservice_manager add; + +# Do not permit the registeration of HwBinder services which are guaranteed to +# be passthrough only (i.e., run in the process of their clients instead of a +# separate server process). +neverallow * same_process_hwservice:hwservice_manager add; diff --git a/prebuilts/api/26.0/public/drmserver.te b/prebuilts/api/26.0/public/drmserver.te new file mode 100644 index 000000000..f752c13ee --- /dev/null +++ b/prebuilts/api/26.0/public/drmserver.te @@ -0,0 +1,58 @@ +# drmserver - DRM service +type drmserver, domain; +type drmserver_exec, exec_type, file_type; + +typeattribute drmserver mlstrustedsubject; + +net_domain(drmserver) + +# Perform Binder IPC to system server. +binder_use(drmserver) +binder_call(drmserver, system_server) +binder_call(drmserver, appdomain) +binder_service(drmserver) +# Inherit or receive open files from system_server. +allow drmserver system_server:fd use; + +# Perform Binder IPC to mediaserver +binder_call(drmserver, mediaserver) + +allow drmserver sdcard_type:dir search; +allow drmserver drm_data_file:dir create_dir_perms; +allow drmserver drm_data_file:file create_file_perms; +allow drmserver tee_device:chr_file rw_file_perms; +allow drmserver app_data_file:file { read write getattr }; +allow drmserver sdcard_type:file { read write getattr }; +r_dir_file(drmserver, efs_file) + +type drmserver_socket, file_type; + +# /data/app/tlcd_sock socket file. +# Clearly, /data/app is the most logical place to create a socket. Not. +allow drmserver apk_data_file:dir rw_dir_perms; +allow drmserver drmserver_socket:sock_file create_file_perms; +# Delete old socket file if present. +allow drmserver apk_data_file:sock_file unlink; + +# After taking a video, drmserver looks at the video file. +r_dir_file(drmserver, media_rw_data_file) + +# Read resources from open apk files passed over Binder. +allow drmserver apk_data_file:file { read getattr }; +allow drmserver asec_apk_file:file { read getattr }; +allow drmserver ringtone_file:file { read getattr }; + +# Read /data/data/com.android.providers.telephony files passed over Binder. +allow drmserver radio_data_file:file { read getattr }; + +# /oem access +allow drmserver oemfs:dir search; +allow drmserver oemfs:file r_file_perms; + +add_service(drmserver, drmserver_service) +allow drmserver permission_service:service_manager find; + +selinux_check_access(drmserver) + +r_dir_file(drmserver, cgroup) +r_dir_file(drmserver, system_file) diff --git a/prebuilts/api/26.0/public/dumpstate.te b/prebuilts/api/26.0/public/dumpstate.te new file mode 100644 index 000000000..4f66ffb4a --- /dev/null +++ b/prebuilts/api/26.0/public/dumpstate.te @@ -0,0 +1,215 @@ +# dumpstate +type dumpstate, domain, mlstrustedsubject; +type dumpstate_exec, exec_type, file_type; + +net_domain(dumpstate) +binder_use(dumpstate) +wakelock_use(dumpstate) + +# Allow setting process priority, protect from OOM killer, and dropping +# privileges by switching UID / GID +allow dumpstate self:capability { setuid setgid sys_resource }; + +# Allow dumpstate to scan through /proc/pid for all processes +r_dir_file(dumpstate, domain) + +allow dumpstate self:capability { + # Send signals to processes + kill + # Run iptables + net_raw + net_admin +}; + +# Allow executing files on system, such as: +# /system/bin/toolbox +# /system/bin/logcat +# /system/bin/dumpsys +allow dumpstate system_file:file execute_no_trans; +not_full_treble(`allow dumpstate vendor_file:file execute_no_trans;') +allow dumpstate toolbox_exec:file rx_file_perms; + +# Create and write into /data/anr/ +allow dumpstate self:capability { dac_override chown fowner fsetid }; +allow dumpstate anr_data_file:dir rw_dir_perms; +allow dumpstate anr_data_file:file create_file_perms; + +# Allow reading /data/system/uiderrors.txt +# TODO: scope this down. +allow dumpstate system_data_file:file r_file_perms; + +# Read dmesg +allow dumpstate self:capability2 syslog; +allow dumpstate kernel:system syslog_read; + +# Read /sys/fs/pstore/console-ramoops +allow dumpstate pstorefs:dir r_dir_perms; +allow dumpstate pstorefs:file r_file_perms; + +# Get process attributes +allow dumpstate domain:process getattr; + +# Signal java processes to dump their stack +allow dumpstate { appdomain system_server }:process signal; + +# Signal native processes to dump their stack. +allow dumpstate { + # This list comes from native_processes_to_dump in dumpstate/utils.c + audioserver + cameraserver + drmserver + inputflinger + mediadrmserver + mediaextractor + mediaserver + sdcardd + surfaceflinger + + # This list comes from hal_interfaces_to_dump in dumpstate/utils.c + hal_audio_server + hal_bluetooth_server + hal_camera_server + hal_graphics_composer_server + hal_vr_server + mediacodec # TODO(b/36375899): hal_omx_server +}:process signal; + +# Connect to tombstoned to intercept dumps. +unix_socket_connect(dumpstate, tombstoned_intercept, tombstoned) + +# TODO: added to match above sysfs rule. Remove me? +allow dumpstate sysfs_usb:file w_file_perms; + +# Other random bits of data we want to collect +allow dumpstate qtaguid_proc:file r_file_perms; +allow dumpstate debugfs:file r_file_perms; +# df for /storage/emulated needs search +allow dumpstate { storage_file block_device }:dir { search getattr }; +allow dumpstate fuse_device:chr_file getattr; +allow dumpstate { dm_device cache_block_device }:blk_file getattr; + +# Read /dev/cpuctl and /dev/cpuset +r_dir_file(dumpstate, cgroup) + +# Allow dumpstate to make binder calls to any binder service +binder_call(dumpstate, binderservicedomain) +binder_call(dumpstate, { appdomain netd wificond }) + +hal_client_domain(dumpstate, hal_dumpstate) +hal_client_domain(dumpstate, hal_graphics_allocator) +# Vibrate the device after we are done collecting the bugreport +hal_client_domain(dumpstate, hal_vibrator) +# For passthrough mode: +allow dumpstate sysfs_vibrator:file { rw_file_perms getattr }; + +# Reading /proc/PID/maps of other processes +allow dumpstate self:capability sys_ptrace; + +# Allow the bugreport service to create a file in +# /data/data/com.android.shell/files/bugreports/bugreport +allow dumpstate shell_data_file:dir create_dir_perms; +allow dumpstate shell_data_file:file create_file_perms; + +# Run a shell. +allow dumpstate shell_exec:file rx_file_perms; + +# For running am and similar framework commands. +# Run /system/bin/app_process. +allow dumpstate zygote_exec:file rx_file_perms; +# Dalvik Compiler JIT. +allow dumpstate ashmem_device:chr_file execute; +allow dumpstate self:process execmem; +# For art. +allow dumpstate dalvikcache_data_file:dir { search getattr }; +allow dumpstate dalvikcache_data_file:file { r_file_perms execute }; +allow dumpstate dalvikcache_data_file:lnk_file r_file_perms; + +# For Bluetooth +allow dumpstate bluetooth_data_file:dir search; +allow dumpstate bluetooth_logs_data_file:dir r_dir_perms; +allow dumpstate bluetooth_logs_data_file:file r_file_perms; + +# Dumpstate calls screencap, which grabs a screenshot. Needs gpu access +allow dumpstate gpu_device:chr_file rw_file_perms; + +# logd access +read_logd(dumpstate) +control_logd(dumpstate) +read_runtime_log_tags(dumpstate) + +# Read /proc/net +allow dumpstate proc_net:file r_file_perms; + +# Read network state info files. +allow dumpstate net_data_file:dir search; +allow dumpstate net_data_file:file r_file_perms; + +# List sockets via ss. +allow dumpstate self:netlink_tcpdiag_socket { create_socket_perms_no_ioctl nlmsg_read }; + +# Access /data/tombstones. +allow dumpstate tombstone_data_file:dir r_dir_perms; +allow dumpstate tombstone_data_file:file r_file_perms; + +# Access /cache/recovery +allow dumpstate cache_recovery_file:dir r_dir_perms; +allow dumpstate cache_recovery_file:file r_file_perms; + +# Access /data/misc/recovery +allow dumpstate recovery_data_file:dir r_dir_perms; +allow dumpstate recovery_data_file:file r_file_perms; + +# Access /data/misc/profiles/{cur,ref}/ +userdebug_or_eng(` + allow dumpstate user_profile_data_file:dir r_dir_perms; + allow dumpstate user_profile_data_file:file r_file_perms; +') + +# Access /data/misc/logd +userdebug_or_eng(` + allow dumpstate misc_logd_file:dir r_dir_perms; + allow dumpstate misc_logd_file:file r_file_perms; +') + +allow dumpstate { service_manager_type -gatekeeper_service -dumpstate_service -incident_service -virtual_touchpad_service -vr_hwc_service }:service_manager find; +allow dumpstate servicemanager:service_manager list; +allow dumpstate hwservicemanager:hwservice_manager list; + +allow dumpstate devpts:chr_file rw_file_perms; + +# Set properties. +# dumpstate_prop is used to share state with the Shell app. +set_prop(dumpstate, dumpstate_prop) +# dumpstate_options_prop is used to pass extra command-line args. +set_prop(dumpstate, dumpstate_options_prop) + +# Read device's serial number from system properties +get_prop(dumpstate, serialno_prop) + +# Read state of logging-related properties +get_prop(dumpstate, device_logging_prop) + +# Access to /data/media. +# This should be removed if sdcardfs is modified to alter the secontext for its +# accesses to the underlying FS. +allow dumpstate media_rw_data_file:dir getattr; +allow dumpstate proc_interrupts:file r_file_perms; +allow dumpstate proc_zoneinfo:file r_file_perms; + +# Create a service for talking back to system_server +add_service(dumpstate, dumpstate_service) + +### +### neverallow rules +### + +# dumpstate has capability sys_ptrace, but should only use that capability for +# accessing sensitive /proc/PID files, never for using ptrace attach. +neverallow dumpstate *:process ptrace; + +# only system_server, dumpstate and shell can find the dumpstate service +neverallow { domain -system_server -shell -dumpstate } dumpstate_service:service_manager find; + +# Dumpstate should not be writing to any generically labeled sysfs files. +# Create a specific label for the file type +neverallow dumpstate sysfs:file no_w_file_perms; diff --git a/prebuilts/api/26.0/public/ephemeral_app.te b/prebuilts/api/26.0/public/ephemeral_app.te new file mode 100644 index 000000000..dc39a22b5 --- /dev/null +++ b/prebuilts/api/26.0/public/ephemeral_app.te @@ -0,0 +1,14 @@ +### +### Ephemeral apps. +### +### This file defines the security policy for apps with the ephemeral +### feature. +### +### The ephemeral_app domain is a reduced permissions sandbox allowing +### ephemeral applications to be safely installed and run. Non ephemeral +### applications may also opt-in to ephemeral to take advantage of the +### additional security features. +### +### PackageManager flags an app as ephemeral at install time. + +type ephemeral_app, domain; diff --git a/prebuilts/api/26.0/public/file.te b/prebuilts/api/26.0/public/file.te new file mode 100644 index 000000000..057af4133 --- /dev/null +++ b/prebuilts/api/26.0/public/file.te @@ -0,0 +1,337 @@ +# Filesystem types +type labeledfs, fs_type; +type pipefs, fs_type; +type sockfs, fs_type; +type rootfs, fs_type; +type proc, fs_type; +# Security-sensitive proc nodes that should not be writable to most. +type proc_security, fs_type; +type proc_drop_caches, fs_type; +type proc_overcommit_memory, fs_type; +# proc, sysfs, or other nodes that permit configuration of kernel usermodehelpers. +type usermodehelper, fs_type, sysfs_type; +type qtaguid_proc, fs_type, mlstrustedobject; +type proc_bluetooth_writable, fs_type; +type proc_cpuinfo, fs_type; +type proc_interrupts, fs_type; +type proc_iomem, fs_type; +type proc_meminfo, fs_type; +type proc_misc, fs_type; +type proc_modules, fs_type; +type proc_net, fs_type; +type proc_perf, fs_type; +type proc_stat, fs_type; +type proc_sysrq, fs_type; +type proc_timer, fs_type; +type proc_tty_drivers, fs_type; +type proc_uid_cputime_showstat, fs_type; +type proc_uid_cputime_removeuid, fs_type; +type proc_uid_io_stats, fs_type; +type proc_uid_procstat_set, fs_type; +type proc_zoneinfo, fs_type; +type selinuxfs, fs_type, mlstrustedobject; +type cgroup, fs_type, mlstrustedobject; +type sysfs, fs_type, sysfs_type, mlstrustedobject; +type sysfs_uio, sysfs_type, fs_type; +type sysfs_batteryinfo, fs_type, sysfs_type; +type sysfs_bluetooth_writable, fs_type, sysfs_type, mlstrustedobject; +type sysfs_leds, fs_type, sysfs_type; +type sysfs_hwrandom, fs_type, sysfs_type; +type sysfs_nfc_power_writable, fs_type, sysfs_type, mlstrustedobject; +type sysfs_wake_lock, fs_type, sysfs_type; +type sysfs_mac_address, fs_type, sysfs_type; +type sysfs_usb, sysfs_type, file_type, mlstrustedobject; +type configfs, fs_type; +# /sys/devices/system/cpu +type sysfs_devices_system_cpu, fs_type, sysfs_type; +# /sys/module/lowmemorykiller +type sysfs_lowmemorykiller, fs_type, sysfs_type; +# /sys/module/wlan/parameters/fwpath +type sysfs_wlan_fwpath, fs_type, sysfs_type; +type sysfs_vibrator, fs_type, sysfs_type; + +type sysfs_thermal, sysfs_type, fs_type; + +type sysfs_zram, fs_type, sysfs_type; +type sysfs_zram_uevent, fs_type, sysfs_type; +type inotify, fs_type, mlstrustedobject; +type devpts, fs_type, mlstrustedobject; +type tmpfs, fs_type; +type shm, fs_type; +type mqueue, fs_type; +type fuse, sdcard_type, fs_type, mlstrustedobject; +type sdcardfs, sdcard_type, fs_type, mlstrustedobject; +type vfat, sdcard_type, fs_type, mlstrustedobject; +type debugfs, fs_type; +type debugfs_mmc, fs_type, debugfs_type; +type debugfs_trace_marker, fs_type, debugfs_type, mlstrustedobject; +type debugfs_tracing, fs_type, debugfs_type; +type debugfs_tracing_instances, fs_type, debugfs_type; +type debugfs_wifi_tracing, fs_type, debugfs_type; +type tracing_shell_writable, fs_type, debugfs_type; +type tracing_shell_writable_debug, fs_type, debugfs_type; + +type pstorefs, fs_type; +type functionfs, fs_type, mlstrustedobject; +type oemfs, fs_type, contextmount_type; +type usbfs, fs_type; +type binfmt_miscfs, fs_type; +type app_fusefs, fs_type, contextmount_type; + +# File types +type unlabeled, file_type; + +# Default type for anything under /system. +type system_file, file_type; + +# Default type for directories search for +# HAL implementations +type vendor_hal_file, vendor_file_type, file_type; +# Default type for under /vendor or /system/vendor +type vendor_file, vendor_file_type, file_type; +# Default type for everything in /vendor/app +type vendor_app_file, vendor_file_type, file_type; +# Default type for everything under /vendor/etc/ +type vendor_configs_file, vendor_file_type, file_type; +# Default type for all *same process* HALs. +# e.g. libEGL_xxx.so, android.hardware.graphics.mapper@2.0-impl.so +type same_process_hal_file, vendor_file_type, file_type; +# Default type for vndk-sp libs. /vendor/lib/vndk-sp +type vndk_sp_file, vendor_file_type, file_type; +# Default type for everything in /vendor/framework +type vendor_framework_file, vendor_file_type, file_type; +# Default type for everything in /vendor/overlay +type vendor_overlay_file, vendor_file_type, file_type; + +# Speedup access for trusted applications to the runtime event tags +type runtime_event_log_tags_file, file_type; +# Type for /system/bin/logcat. +type logcat_exec, exec_type, file_type; +# /cores for coredumps on userdebug / eng builds +type coredump_file, file_type; +# Default type for anything under /data. +type system_data_file, file_type, data_file_type, core_data_file_type; +# Unencrypted data +type unencrypted_data_file, file_type, data_file_type, core_data_file_type; +# /data/.layout_version or other installd-created files that +# are created in a system_data_file directory. +type install_data_file, file_type, data_file_type, core_data_file_type; +# /data/drm - DRM plugin data +type drm_data_file, file_type, data_file_type, core_data_file_type; +# /data/adb - adb debugging files +type adb_data_file, file_type, data_file_type, core_data_file_type; +# /data/anr - ANR traces +type anr_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +# /data/tombstones - core dumps +type tombstone_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +# /data/app - user-installed apps +type apk_data_file, file_type, data_file_type, core_data_file_type; +type apk_tmp_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +# /data/app-private - forward-locked apps +type apk_private_data_file, file_type, data_file_type, core_data_file_type; +type apk_private_tmp_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +# /data/dalvik-cache +type dalvikcache_data_file, file_type, data_file_type, core_data_file_type; +# /data/ota +type ota_data_file, file_type, data_file_type, core_data_file_type; +# /data/ota_package +type ota_package_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +# /data/misc/profiles +type user_profile_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +# /data/misc/profman +type profman_dump_data_file, file_type, data_file_type, core_data_file_type; +# /data/resource-cache +type resourcecache_data_file, file_type, data_file_type, core_data_file_type; +# /data/local - writable by shell +type shell_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +# /data/property +type property_data_file, file_type, data_file_type, core_data_file_type; +# /data/bootchart +type bootchart_data_file, file_type, data_file_type, core_data_file_type; +# /data/system/heapdump +type heapdump_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +# /data/nativetest +type nativetest_data_file, file_type, data_file_type, core_data_file_type; +# /data/system_de/0/ringtones +type ringtone_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +# /data/preloads +type preloads_data_file, file_type, data_file_type, core_data_file_type; +# /data/preloads/media +type preloads_media_file, file_type, data_file_type, core_data_file_type; +# /data/misc/dhcp and /data/misc/dhcp-6.8.2 +type dhcp_data_file, file_type, data_file_type, core_data_file_type; + +# Mount locations managed by vold +type mnt_media_rw_file, file_type; +type mnt_user_file, file_type; +type mnt_expand_file, file_type; +type storage_file, file_type; + +# Label for storage dirs which are just mount stubs +type mnt_media_rw_stub_file, file_type; +type storage_stub_file, file_type; + +# /postinstall: Mount point used by update_engine to run postinstall. +type postinstall_mnt_dir, file_type; +# Files inside the /postinstall mountpoint are all labeled as postinstall_file. +type postinstall_file, file_type; + +# /data/misc subdirectories +type adb_keys_file, file_type, data_file_type, core_data_file_type; +type audio_data_file, file_type, data_file_type, core_data_file_type; +type audiohal_data_file, file_type, data_file_type, core_data_file_type; +type audioserver_data_file, file_type, data_file_type, core_data_file_type; +type bluetooth_data_file, file_type, data_file_type, core_data_file_type; +type bluetooth_logs_data_file, file_type, data_file_type, core_data_file_type; +type bootstat_data_file, file_type, data_file_type, core_data_file_type; +type boottrace_data_file, file_type, data_file_type, core_data_file_type; +type camera_data_file, file_type, data_file_type, core_data_file_type; +type gatekeeper_data_file, file_type, data_file_type, core_data_file_type; +type incident_data_file, file_type, data_file_type, core_data_file_type; +type keychain_data_file, file_type, data_file_type, core_data_file_type; +type keystore_data_file, file_type, data_file_type, core_data_file_type; +type media_data_file, file_type, data_file_type, core_data_file_type; +type media_rw_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +type misc_user_data_file, file_type, data_file_type, core_data_file_type; +type net_data_file, file_type, data_file_type, core_data_file_type; +type nfc_data_file, file_type, data_file_type, core_data_file_type; +type radio_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +type reboot_data_file, file_type, data_file_type, core_data_file_type; +type recovery_data_file, file_type, data_file_type, core_data_file_type; +type shared_relro_file, file_type, data_file_type, core_data_file_type; +type systemkeys_data_file, file_type, data_file_type, core_data_file_type; +type textclassifier_data_file, file_type, data_file_type, core_data_file_type; +type vpn_data_file, file_type, data_file_type, core_data_file_type; +type wifi_data_file, file_type, data_file_type, core_data_file_type; +type zoneinfo_data_file, file_type, data_file_type, core_data_file_type; +type vold_data_file, file_type, data_file_type, core_data_file_type; +type perfprofd_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +type tee_data_file, file_type, data_file_type; +type update_engine_data_file, file_type, data_file_type, core_data_file_type; +# /data/misc/trace for method traces on userdebug / eng builds +type method_trace_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; + +# /data/data subdirectories - app sandboxes +type app_data_file, file_type, data_file_type, core_data_file_type; +# /data/data subdirectory for system UID apps. +type system_app_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +# Compatibility with type name used in Android 4.3 and 4.4. +# Default type for anything under /cache +type cache_file, file_type, mlstrustedobject; +# Type for /cache/backup_stage/* (fd interchange with apps) +type cache_backup_file, file_type, mlstrustedobject; +# type for anything under /cache/backup (local transport storage) +type cache_private_backup_file, file_type; +# Type for anything under /cache/recovery +type cache_recovery_file, file_type, mlstrustedobject; +# Default type for anything under /efs +type efs_file, file_type; +# Type for wallpaper file. +type wallpaper_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +# Type for shortcut manager icon file. +type shortcut_manager_icons, file_type, data_file_type, core_data_file_type, mlstrustedobject; +# Type for user icon file. +type icon_file, file_type, data_file_type, core_data_file_type; +# /mnt/asec +type asec_apk_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +# Elements of asec files (/mnt/asec) that are world readable +type asec_public_file, file_type, data_file_type, core_data_file_type; +# /data/app-asec +type asec_image_file, file_type, data_file_type, core_data_file_type; +# /data/backup and /data/secure/backup +type backup_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; +# All devices have bluetooth efs files. But they +# vary per device, so this type is used in per +# device policy +type bluetooth_efs_file, file_type; +# Type for fingerprint template file +type fingerprintd_data_file, file_type, data_file_type, core_data_file_type; +# Type for appfuse file. +type app_fuse_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; + +# Socket types +type adbd_socket, file_type, coredomain_socket; +type bluetooth_socket, file_type, coredomain_socket; +type dnsproxyd_socket, file_type, coredomain_socket, mlstrustedobject; +type dumpstate_socket, file_type, coredomain_socket; +type fwmarkd_socket, file_type, coredomain_socket, mlstrustedobject; +type lmkd_socket, file_type, coredomain_socket; +type logd_socket, file_type, coredomain_socket, mlstrustedobject; +type logdr_socket, file_type, coredomain_socket, mlstrustedobject; +type logdw_socket, file_type, coredomain_socket, mlstrustedobject; +type mdns_socket, file_type, coredomain_socket; +type mdnsd_socket, file_type, coredomain_socket, mlstrustedobject; +type misc_logd_file, coredomain_socket, file_type; +type mtpd_socket, file_type, coredomain_socket; +type netd_socket, file_type, coredomain_socket; +type property_socket, file_type, coredomain_socket, mlstrustedobject; +type racoon_socket, file_type, coredomain_socket; +type rild_socket, file_type; +type rild_debug_socket, file_type; +type system_wpa_socket, file_type, coredomain_socket; +type system_ndebug_socket, file_type, coredomain_socket, mlstrustedobject; +type tombstoned_crash_socket, file_type, coredomain_socket, mlstrustedobject; +type tombstoned_intercept_socket, file_type, coredomain_socket; +type uncrypt_socket, file_type, coredomain_socket; +type vold_socket, file_type, coredomain_socket; +type webview_zygote_socket, file_type, coredomain_socket; +type wpa_socket, file_type; +type zygote_socket, file_type, coredomain_socket; +# UART (for GPS) control proc file +type gps_control, file_type; + +# PDX endpoint types +type pdx_display_dir, pdx_endpoint_dir_type, file_type; +type pdx_performance_dir, pdx_endpoint_dir_type, file_type; +type pdx_bufferhub_dir, pdx_endpoint_dir_type, file_type; + +pdx_service_socket_types(display_client, pdx_display_dir) +pdx_service_socket_types(display_manager, pdx_display_dir) +pdx_service_socket_types(display_screenshot, pdx_display_dir) +pdx_service_socket_types(display_vsync, pdx_display_dir) +pdx_service_socket_types(performance_client, pdx_performance_dir) +pdx_service_socket_types(bufferhub_client, pdx_bufferhub_dir) + +# file_contexts files +type file_contexts_file, file_type; + +# mac_permissions file +type mac_perms_file, file_type; + +# property_contexts file +type property_contexts_file, file_type; + +# seapp_contexts file +type seapp_contexts_file, file_type; + +# sepolicy files binary and others +type sepolicy_file, file_type; + +# service_contexts file +type service_contexts_file, file_type; + +# hwservice_contexts file +type hwservice_contexts_file, file_type; + +# vndservice_contexts file +type vndservice_contexts_file, file_type; + +# Allow files to be created in their appropriate filesystems. +allow fs_type self:filesystem associate; +allow sysfs_type sysfs:filesystem associate; +allow debugfs_type { debugfs debugfs_tracing }:filesystem associate; +allow file_type labeledfs:filesystem associate; +allow file_type tmpfs:filesystem associate; +allow file_type rootfs:filesystem associate; +allow dev_type tmpfs:filesystem associate; +allow app_fuse_file app_fusefs:filesystem associate; +allow postinstall_file self:filesystem associate; + +# It's a bug to assign the file_type attribute and fs_type attribute +# to any type. Do not allow it. +# +# For example, the following is a bug: +# type apk_data_file, file_type, data_file_type, fs_type; +# Should be: +# type apk_data_file, file_type, data_file_type; +neverallow fs_type file_type:filesystem associate; diff --git a/prebuilts/api/26.0/public/fingerprintd.te b/prebuilts/api/26.0/public/fingerprintd.te new file mode 100644 index 000000000..5dd18a352 --- /dev/null +++ b/prebuilts/api/26.0/public/fingerprintd.te @@ -0,0 +1,28 @@ +type fingerprintd, domain; +type fingerprintd_exec, exec_type, file_type; + +binder_use(fingerprintd) + +# Scan through /system/lib64/hw looking for installed HALs +allow fingerprintd system_file:dir r_dir_perms; + +# need to find KeyStore and add self +add_service(fingerprintd, fingerprintd_service) + +# allow HAL module to read dir contents +allow fingerprintd fingerprintd_data_file:file { create_file_perms }; + +# allow HAL module to read/write/unlink contents of this dir +allow fingerprintd fingerprintd_data_file:dir rw_dir_perms; + +# Need to add auth tokens to KeyStore +use_keystore(fingerprintd) +allow fingerprintd keystore:keystore_key { add_auth }; + +# For permissions checking +binder_call(fingerprintd, system_server); +allow fingerprintd permission_service:service_manager find; + +r_dir_file(fingerprintd, cgroup) +r_dir_file(fingerprintd, sysfs_type) +allow fingerprintd ion_device:chr_file r_file_perms; diff --git a/prebuilts/api/26.0/public/fsck.te b/prebuilts/api/26.0/public/fsck.te new file mode 100644 index 000000000..b682a877f --- /dev/null +++ b/prebuilts/api/26.0/public/fsck.te @@ -0,0 +1,55 @@ +# Any fsck program run by init +type fsck, domain; +type fsck_exec, exec_type, file_type; + +# /dev/__null__ created by init prior to policy load, +# open fd inherited by fsck. +allow fsck tmpfs:chr_file { read write ioctl }; + +# Inherit and use pty created by android_fork_execvp_ext(). +allow fsck devpts:chr_file { read write ioctl getattr }; + +# Allow stdin/out back to vold +allow fsck vold:fd use; +allow fsck vold:fifo_file { read write getattr }; + +# Run fsck on certain block devices +allow fsck block_device:dir search; +allow fsck userdata_block_device:blk_file rw_file_perms; +allow fsck cache_block_device:blk_file rw_file_perms; +allow fsck dm_device:blk_file rw_file_perms; + +# To determine if it is safe to run fsck on a filesystem, e2fsck +# must first determine if the filesystem is mounted. To do that, +# e2fsck scans through /proc/mounts and collects all the mounted +# block devices. With that information, it runs stat() on each block +# device, comparing the major and minor numbers to the filesystem +# passed in on the command line. If there is a match, then the filesystem +# is currently mounted and running fsck is dangerous. +# Allow stat access to all block devices so that fsck can compare +# major/minor values. +allow fsck dev_type:blk_file getattr; + +r_dir_file(fsck, proc) +allow fsck rootfs:dir r_dir_perms; + +### +### neverallow rules +### + +# fsck should never be run on these block devices +neverallow fsck { + boot_block_device + frp_block_device + metadata_block_device + recovery_block_device + root_block_device + swap_block_device + system_block_device + vold_device +}:blk_file no_rw_file_perms; + +# Only allow entry from init or vold via fsck binaries +neverallow { domain -init -vold } fsck:process transition; +neverallow * fsck:process dyntransition; +neverallow fsck { file_type fs_type -fsck_exec }:file entrypoint; diff --git a/prebuilts/api/26.0/public/fsck_untrusted.te b/prebuilts/api/26.0/public/fsck_untrusted.te new file mode 100644 index 000000000..e2aceb87b --- /dev/null +++ b/prebuilts/api/26.0/public/fsck_untrusted.te @@ -0,0 +1,49 @@ +# Any fsck program run on untrusted block devices +type fsck_untrusted, domain; + +# Inherit and use pty created by android_fork_execvp_ext(). +allow fsck_untrusted devpts:chr_file { read write ioctl getattr }; + +# Allow stdin/out back to vold +allow fsck_untrusted vold:fd use; +allow fsck_untrusted vold:fifo_file { read write getattr }; + +# Run fsck on vold block devices +allow fsck_untrusted block_device:dir search; +allow fsck_untrusted vold_device:blk_file rw_file_perms; + +r_dir_file(fsck_untrusted, proc) + +# To determine if it is safe to run fsck on a filesystem, e2fsck +# must first determine if the filesystem is mounted. To do that, +# e2fsck scans through /proc/mounts and collects all the mounted +# block devices. With that information, it runs stat() on each block +# device, comparing the major and minor numbers to the filesystem +# passed in on the command line. If there is a match, then the filesystem +# is currently mounted and running fsck is dangerous. +# Allow stat access to all block devices so that fsck can compare +# major/minor values. +allow fsck_untrusted dev_type:blk_file getattr; + +### +### neverallow rules +### + +# Untrusted fsck should never be run on block devices holding sensitive data +neverallow fsck_untrusted { + boot_block_device + frp_block_device + metadata_block_device + recovery_block_device + root_block_device + swap_block_device + system_block_device + userdata_block_device + cache_block_device + dm_device +}:blk_file no_rw_file_perms; + +# Only allow entry from vold via fsck binaries +neverallow { domain -vold } fsck_untrusted:process transition; +neverallow * fsck_untrusted:process dyntransition; +neverallow fsck_untrusted { file_type fs_type -fsck_exec }:file entrypoint; diff --git a/prebuilts/api/26.0/public/gatekeeperd.te b/prebuilts/api/26.0/public/gatekeeperd.te new file mode 100644 index 000000000..ff369567b --- /dev/null +++ b/prebuilts/api/26.0/public/gatekeeperd.te @@ -0,0 +1,42 @@ +type gatekeeperd, domain; +type gatekeeperd_exec, exec_type, file_type; + +# gatekeeperd +binder_service(gatekeeperd) +binder_use(gatekeeperd) + +### Rules needed when Gatekeeper HAL runs inside gatekeeperd process. +### These rules should eventually be granted only when needed. +allow gatekeeperd tee_device:chr_file rw_file_perms; +allow gatekeeperd ion_device:chr_file r_file_perms; +# Load HAL implementation +allow gatekeeperd system_file:dir r_dir_perms; +### + +### Rules needed when Gatekeeper HAL runs outside of gatekeeperd process. +### These rules should eventually be granted only when needed. +hal_client_domain(gatekeeperd, hal_gatekeeper) +### + +# need to find KeyStore and add self +add_service(gatekeeperd, gatekeeper_service) + +# Need to add auth tokens to KeyStore +use_keystore(gatekeeperd) +allow gatekeeperd keystore:keystore_key { add_auth }; + +# For permissions checking +allow gatekeeperd system_server:binder call; +allow gatekeeperd permission_service:service_manager find; + +# For parent user ID lookup +allow gatekeeperd user_service:service_manager find; + +# for SID file access +allow gatekeeperd gatekeeper_data_file:dir rw_dir_perms; +allow gatekeeperd gatekeeper_data_file:file create_file_perms; + +# For hardware properties retrieval +allow gatekeeperd hardware_properties_service:service_manager find; + +r_dir_file(gatekeeperd, cgroup) diff --git a/prebuilts/api/26.0/public/global_macros b/prebuilts/api/26.0/public/global_macros new file mode 100644 index 000000000..a61ffbc42 --- /dev/null +++ b/prebuilts/api/26.0/public/global_macros @@ -0,0 +1,48 @@ +##################################### +# Common groupings of object classes. +# +define(`capability_class_set', `{ capability capability2 }') + +define(`devfile_class_set', `{ chr_file blk_file }') +define(`notdevfile_class_set', `{ file lnk_file sock_file fifo_file }') +define(`file_class_set', `{ devfile_class_set notdevfile_class_set }') +define(`dir_file_class_set', `{ dir file_class_set }') + +define(`socket_class_set', `{ socket tcp_socket udp_socket rawip_socket netlink_socket packet_socket key_socket unix_stream_socket unix_dgram_socket appletalk_socket netlink_route_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket sctp_socket icmp_socket ax25_socket ipx_socket netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket }') +define(`dgram_socket_class_set', `{ udp_socket unix_dgram_socket }') +define(`stream_socket_class_set', `{ tcp_socket unix_stream_socket }') +define(`unpriv_socket_class_set', `{ tcp_socket udp_socket unix_stream_socket unix_dgram_socket }') + +define(`ipc_class_set', `{ sem msgq shm ipc }') + +##################################### +# Common groupings of permissions. +# +define(`x_file_perms', `{ getattr execute execute_no_trans }') +define(`r_file_perms', `{ getattr open read ioctl lock }') +define(`w_file_perms', `{ open append write lock }') +define(`rx_file_perms', `{ r_file_perms x_file_perms }') +define(`ra_file_perms', `{ r_file_perms append }') +define(`rw_file_perms', `{ r_file_perms w_file_perms }') +define(`rwx_file_perms', `{ rw_file_perms x_file_perms }') +define(`create_file_perms', `{ create rename setattr unlink rw_file_perms }') + +define(`r_dir_perms', `{ open getattr read search ioctl lock }') +define(`w_dir_perms', `{ open search write add_name remove_name lock }') +define(`ra_dir_perms', `{ r_dir_perms add_name write }') +define(`rw_dir_perms', `{ r_dir_perms w_dir_perms }') +define(`create_dir_perms', `{ create reparent rename rmdir setattr rw_dir_perms }') + +define(`r_ipc_perms', `{ getattr read associate unix_read }') +define(`w_ipc_perms', `{ write unix_write }') +define(`rw_ipc_perms', `{ r_ipc_perms w_ipc_perms }') +define(`create_ipc_perms', `{ create setattr destroy rw_ipc_perms }') + +##################################### +# Common socket permission sets. +define(`rw_socket_perms', `{ ioctl read getattr write setattr lock append bind connect getopt setopt shutdown }') +define(`rw_socket_perms_no_ioctl', `{ read getattr write setattr lock append bind connect getopt setopt shutdown }') +define(`create_socket_perms', `{ create rw_socket_perms }') +define(`create_socket_perms_no_ioctl', `{ create rw_socket_perms_no_ioctl }') +define(`rw_stream_socket_perms', `{ rw_socket_perms listen accept }') +define(`create_stream_socket_perms', `{ create rw_stream_socket_perms }') diff --git a/prebuilts/api/26.0/public/hal_allocator.te b/prebuilts/api/26.0/public/hal_allocator.te new file mode 100644 index 000000000..646cebdeb --- /dev/null +++ b/prebuilts/api/26.0/public/hal_allocator.te @@ -0,0 +1,6 @@ +# HwBinder IPC from client to server +binder_call(hal_allocator_client, hal_allocator_server) + +add_hwservice(hal_allocator_server, hidl_allocator_hwservice) +allow hal_allocator_client hidl_allocator_hwservice:hwservice_manager find; +allow hal_allocator_client hidl_memory_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/public/hal_audio.te b/prebuilts/api/26.0/public/hal_audio.te new file mode 100644 index 000000000..33330bf6b --- /dev/null +++ b/prebuilts/api/26.0/public/hal_audio.te @@ -0,0 +1,38 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_audio_client, hal_audio_server) +binder_call(hal_audio_server, hal_audio_client) + +add_hwservice(hal_audio_server, hal_audio_hwservice) +allow hal_audio_client hal_audio_hwservice:hwservice_manager find; + +allow hal_audio ion_device:chr_file r_file_perms; + +userdebug_or_eng(` + # used for pcm capture for debug. + allow hal_audio audiohal_data_file:dir create_dir_perms; + allow hal_audio audiohal_data_file:file create_file_perms; +') + +r_dir_file(hal_audio, proc) +allow hal_audio audio_device:dir r_dir_perms; +allow hal_audio audio_device:chr_file rw_file_perms; + +# Needed to provide debug dump output via dumpsys' pipes. +allow hal_audio shell:fd use; +allow hal_audio shell:fifo_file write; +allow hal_audio dumpstate:fd use; +allow hal_audio dumpstate:fifo_file write; + +### +### neverallow rules +### + +# Should never execute any executable without a domain transition +neverallow hal_audio { file_type fs_type }:file execute_no_trans; + +# Should never need network access. +# Disallow network sockets. +neverallow hal_audio domain:{ tcp_socket udp_socket rawip_socket } *; + +# Only audio HAL may directly access the audio hardware +neverallow { halserverdomain -hal_audio_server } audio_device:chr_file *; diff --git a/prebuilts/api/26.0/public/hal_bluetooth.te b/prebuilts/api/26.0/public/hal_bluetooth.te new file mode 100644 index 000000000..2394e2ebc --- /dev/null +++ b/prebuilts/api/26.0/public/hal_bluetooth.te @@ -0,0 +1,30 @@ +# HwBinder IPC from clients into server, and callbacks +binder_call(hal_bluetooth_client, hal_bluetooth_server) +binder_call(hal_bluetooth_server, hal_bluetooth_client) + +add_hwservice(hal_bluetooth_server, hal_bluetooth_hwservice) +allow hal_bluetooth_client hal_bluetooth_hwservice:hwservice_manager find; + +wakelock_use(hal_bluetooth); + +# The HAL toggles rfkill to power the chip off/on. +allow hal_bluetooth self:capability net_admin; + +# bluetooth factory file accesses. +r_dir_file(hal_bluetooth, bluetooth_efs_file) + +allow hal_bluetooth { uhid_device hci_attach_dev }:chr_file rw_file_perms; + +# sysfs access. +r_dir_file(hal_bluetooth, sysfs_type) +allow hal_bluetooth sysfs_bluetooth_writable:file rw_file_perms; +allow hal_bluetooth self:capability2 wake_alarm; + +# Allow write access to bluetooth-specific properties +set_prop(hal_bluetooth, bluetooth_prop) + +# /proc access (bluesleep etc.). +allow hal_bluetooth proc_bluetooth_writable:file rw_file_perms; + +# allow to run with real-time scheduling policy +allow hal_bluetooth self:capability sys_nice; diff --git a/prebuilts/api/26.0/public/hal_bootctl.te b/prebuilts/api/26.0/public/hal_bootctl.te new file mode 100644 index 000000000..8b240b1ce --- /dev/null +++ b/prebuilts/api/26.0/public/hal_bootctl.te @@ -0,0 +1,6 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_bootctl_client, hal_bootctl_server) +binder_call(hal_bootctl_server, hal_bootctl_client) + +add_hwservice(hal_bootctl_server, hal_bootctl_hwservice) +allow hal_bootctl_client hal_bootctl_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/public/hal_camera.te b/prebuilts/api/26.0/public/hal_camera.te new file mode 100644 index 000000000..413a057bc --- /dev/null +++ b/prebuilts/api/26.0/public/hal_camera.te @@ -0,0 +1,36 @@ +# HwBinder IPC from clients to server and callbacks +binder_call(hal_camera_client, hal_camera_server) +binder_call(hal_camera_server, hal_camera_client) + +add_hwservice(hal_camera_server, hal_camera_hwservice) +allow hal_camera_client hal_camera_hwservice:hwservice_manager find; + +# access /data/misc/camera +allow hal_camera camera_data_file:dir create_dir_perms; +allow hal_camera camera_data_file:file create_file_perms; + +allow hal_camera video_device:dir r_dir_perms; +allow hal_camera video_device:chr_file rw_file_perms; +allow hal_camera camera_device:chr_file rw_file_perms; +allow hal_camera ion_device:chr_file rw_file_perms; +# Both the client and the server need to use the graphics allocator +allow { hal_camera_client hal_camera_server } hal_graphics_allocator:fd use; + +# Allow hal_camera to use fd from app,gralloc,and ashmem HAL +allow hal_camera { appdomain -isolated_app }:fd use; +allow hal_camera surfaceflinger:fd use; +allow hal_camera hal_allocator_server:fd use; + +### +### neverallow rules +### + +# hal_camera should never execute any executable without a +# domain transition +neverallow hal_camera { file_type fs_type }:file execute_no_trans; + +# hal_camera should never need network access. Disallow network sockets. +neverallow hal_camera domain:{ tcp_socket udp_socket rawip_socket } *; + +# Only camera HAL may directly access the camera hardware +neverallow { halserverdomain -hal_camera_server } camera_device:chr_file *; diff --git a/prebuilts/api/26.0/public/hal_configstore.te b/prebuilts/api/26.0/public/hal_configstore.te new file mode 100644 index 000000000..4bf6cfd52 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_configstore.te @@ -0,0 +1,7 @@ +# HwBinder IPC from client to server +binder_call(hal_configstore_client, hal_configstore_server) + +add_hwservice(hal_configstore_server, hal_configstore_ISurfaceFlingerConfigs) +# As opposed to the rules of most other HALs, the different services exposed by +# this HAL should be restricted to different clients. Thus, the allow rules for +# clients are defined in the .te files of the clients. diff --git a/prebuilts/api/26.0/public/hal_contexthub.te b/prebuilts/api/26.0/public/hal_contexthub.te new file mode 100644 index 000000000..f11bfc816 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_contexthub.te @@ -0,0 +1,6 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_contexthub_client, hal_contexthub_server) +binder_call(hal_contexthub_server, hal_contexthub_client) + +add_hwservice(hal_contexthub_server, hal_contexthub_hwservice) +allow hal_contexthub_client hal_contexthub_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/public/hal_drm.te b/prebuilts/api/26.0/public/hal_drm.te new file mode 100644 index 000000000..5a6bf5c74 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_drm.te @@ -0,0 +1,60 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_drm_client, hal_drm_server) +binder_call(hal_drm_server, hal_drm_client) + +add_hwservice(hal_drm_server, hal_drm_hwservice) +allow hal_drm_client hal_drm_hwservice:hwservice_manager find; + +allow hal_drm hidl_memory_hwservice:hwservice_manager find; + +# Required by Widevine DRM (b/22990512) +allow hal_drm self:process execmem; + +# Permit reading device's serial number from system properties +get_prop(hal_drm, serialno_prop) + +# System file accesses +allow hal_drm system_file:dir r_dir_perms; +allow hal_drm system_file:file r_file_perms; +allow hal_drm system_file:lnk_file r_file_perms; + +# Read files already opened under /data +allow hal_drm system_data_file:dir { search getattr }; +allow hal_drm system_data_file:file { getattr read }; +allow hal_drm system_data_file:lnk_file r_file_perms; + +# Read access to pseudo filesystems +r_dir_file(hal_drm, cgroup) +allow hal_drm cgroup:dir { search write }; +allow hal_drm cgroup:file w_file_perms; + +# Allow access to ion memory allocation device +allow hal_drm ion_device:chr_file rw_file_perms; +allow hal_drm hal_graphics_allocator:fd use; + +# Allow access to fds allocated by mediaserver +allow hal_drm mediaserver:fd use; + +# Allow access to app_data and media_data_files +allow hal_drm media_data_file:dir create_dir_perms; +allow hal_drm media_data_file:file create_file_perms; +allow hal_drm media_data_file:file { getattr read }; + +allow hal_drm sysfs:file r_file_perms; + +allow hal_drm tee_device:chr_file rw_file_perms; + +# only allow unprivileged socket ioctl commands +allowxperm hal_drm self:{ rawip_socket tcp_socket udp_socket } + ioctl { unpriv_sock_ioctls unpriv_tty_ioctls }; + +### +### neverallow rules +### + +# hal_drm should never execute any executable without a +# domain transition +neverallow hal_drm { file_type fs_type }:file execute_no_trans; + +# do not allow privileged socket ioctl commands +neverallowxperm hal_drm domain:{ rawip_socket tcp_socket udp_socket } ioctl priv_sock_ioctls; diff --git a/prebuilts/api/26.0/public/hal_dumpstate.te b/prebuilts/api/26.0/public/hal_dumpstate.te new file mode 100644 index 000000000..2853567e0 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_dumpstate.te @@ -0,0 +1,11 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_dumpstate_client, hal_dumpstate_server) +binder_call(hal_dumpstate_server, hal_dumpstate_client) + +add_hwservice(hal_dumpstate_server, hal_dumpstate_hwservice) +allow hal_dumpstate_client hal_dumpstate_hwservice:hwservice_manager find; + +# write bug reports in /data/data/com.android.shell/files/bugreports/bugreport +allow hal_dumpstate shell_data_file:file write; +# allow reading /proc/interrupts for all hal impls +allow hal_dumpstate proc_interrupts:file r_file_perms; diff --git a/prebuilts/api/26.0/public/hal_fingerprint.te b/prebuilts/api/26.0/public/hal_fingerprint.te new file mode 100644 index 000000000..bef9f556e --- /dev/null +++ b/prebuilts/api/26.0/public/hal_fingerprint.te @@ -0,0 +1,18 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_fingerprint_client, hal_fingerprint_server) +binder_call(hal_fingerprint_server, hal_fingerprint_client) + +add_hwservice(hal_fingerprint_server, hal_fingerprint_hwservice) +allow hal_fingerprint_client hal_fingerprint_hwservice:hwservice_manager find; + +# allow HAL module to read dir contents +allow hal_fingerprint fingerprintd_data_file:file create_file_perms; + +# allow HAL module to read/write/unlink contents of this dir +allow hal_fingerprint fingerprintd_data_file:dir rw_dir_perms; + +# For memory allocation +allow hal_fingerprint ion_device:chr_file r_file_perms; + +r_dir_file(hal_fingerprint, cgroup) +r_dir_file(hal_fingerprint, sysfs) diff --git a/prebuilts/api/26.0/public/hal_gatekeeper.te b/prebuilts/api/26.0/public/hal_gatekeeper.te new file mode 100644 index 000000000..123acf567 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_gatekeeper.te @@ -0,0 +1,8 @@ +binder_call(hal_gatekeeper_client, hal_gatekeeper_server) + +add_hwservice(hal_gatekeeper_server, hal_gatekeeper_hwservice) +allow hal_gatekeeper_client hal_gatekeeper_hwservice:hwservice_manager find; + +# TEE access. +allow hal_gatekeeper tee_device:chr_file rw_file_perms; +allow hal_gatekeeper ion_device:chr_file r_file_perms; diff --git a/prebuilts/api/26.0/public/hal_gnss.te b/prebuilts/api/26.0/public/hal_gnss.te new file mode 100644 index 000000000..b59cd1d5a --- /dev/null +++ b/prebuilts/api/26.0/public/hal_gnss.te @@ -0,0 +1,6 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_gnss_client, hal_gnss_server) +binder_call(hal_gnss_server, hal_gnss_client) + +add_hwservice(hal_gnss_server, hal_gnss_hwservice) +allow hal_gnss_client hal_gnss_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/public/hal_graphics_allocator.te b/prebuilts/api/26.0/public/hal_graphics_allocator.te new file mode 100644 index 000000000..f56e8f6d7 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_graphics_allocator.te @@ -0,0 +1,13 @@ +# HwBinder IPC from client to server +binder_call(hal_graphics_allocator_client, hal_graphics_allocator_server) + +add_hwservice(hal_graphics_allocator_server, hal_graphics_allocator_hwservice) +allow hal_graphics_allocator_client hal_graphics_allocator_hwservice:hwservice_manager find; +allow hal_graphics_allocator_client hal_graphics_mapper_hwservice:hwservice_manager find; + +# GPU device access +allow hal_graphics_allocator gpu_device:chr_file rw_file_perms; +allow hal_graphics_allocator ion_device:chr_file r_file_perms; + +# allow to run with real-time scheduling policy +allow hal_graphics_allocator self:capability sys_nice; diff --git a/prebuilts/api/26.0/public/hal_graphics_composer.te b/prebuilts/api/26.0/public/hal_graphics_composer.te new file mode 100644 index 000000000..287037c6e --- /dev/null +++ b/prebuilts/api/26.0/public/hal_graphics_composer.te @@ -0,0 +1,26 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_graphics_composer_client, hal_graphics_composer_server) +binder_call(hal_graphics_composer_server, hal_graphics_composer_client) + +add_hwservice(hal_graphics_composer_server, hal_graphics_composer_hwservice) +allow hal_graphics_composer_client hal_graphics_composer_hwservice:hwservice_manager find; + +# Coordinate with hal_graphics_mapper +allow hal_graphics_composer_server hal_graphics_mapper_hwservice:hwservice_manager find; + +# GPU device access +allow hal_graphics_composer gpu_device:chr_file rw_file_perms; +allow hal_graphics_composer ion_device:chr_file r_file_perms; +allow hal_graphics_composer hal_graphics_allocator:fd use; + +# Access /dev/graphics/fb0. +allow hal_graphics_composer graphics_device:dir search; +allow hal_graphics_composer graphics_device:chr_file rw_file_perms; + +# Fences +allow hal_graphics_composer system_server:fd use; +allow hal_graphics_composer bootanim:fd use; +allow hal_graphics_composer appdomain:fd use; + +# allow self to set SCHED_FIFO +allow hal_graphics_composer self:capability sys_nice; diff --git a/prebuilts/api/26.0/public/hal_health.te b/prebuilts/api/26.0/public/hal_health.te new file mode 100644 index 000000000..c19c5f1d7 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_health.te @@ -0,0 +1,11 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_health_client, hal_health_server) +binder_call(hal_health_server, hal_health_client) + +add_hwservice(hal_health_server, hal_health_hwservice) +allow hal_health_client hal_health_hwservice:hwservice_manager find; + +# Read access to system files for HALs in +# /{system,vendor,odm}/lib[64]/hw/ in order +# to be able to open the hal implementation .so files +r_dir_file(hal_health, system_file) diff --git a/prebuilts/api/26.0/public/hal_ir.te b/prebuilts/api/26.0/public/hal_ir.te new file mode 100644 index 000000000..b1bfdd804 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_ir.te @@ -0,0 +1,6 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_ir_client, hal_ir_server) +binder_call(hal_ir_server, hal_ir_client) + +add_hwservice(hal_ir_server, hal_ir_hwservice) +allow hal_ir_client hal_ir_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/public/hal_keymaster.te b/prebuilts/api/26.0/public/hal_keymaster.te new file mode 100644 index 000000000..dc5f6d01d --- /dev/null +++ b/prebuilts/api/26.0/public/hal_keymaster.te @@ -0,0 +1,8 @@ +# HwBinder IPC from client to server +binder_call(hal_keymaster_client, hal_keymaster_server) + +add_hwservice(hal_keymaster_server, hal_keymaster_hwservice) +allow hal_keymaster_client hal_keymaster_hwservice:hwservice_manager find; + +allow hal_keymaster tee_device:chr_file rw_file_perms; +allow hal_keymaster ion_device:chr_file r_file_perms; diff --git a/prebuilts/api/26.0/public/hal_light.te b/prebuilts/api/26.0/public/hal_light.te new file mode 100644 index 000000000..5b93dd115 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_light.te @@ -0,0 +1,10 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_light_client, hal_light_server) +binder_call(hal_light_server, hal_light_client) + +add_hwservice(hal_light_server, hal_light_hwservice) +allow hal_light_client hal_light_hwservice:hwservice_manager find; + +allow hal_light sysfs_leds:lnk_file read; +allow hal_light sysfs_leds:file rw_file_perms; +allow hal_light sysfs_leds:dir r_dir_perms; diff --git a/prebuilts/api/26.0/public/hal_memtrack.te b/prebuilts/api/26.0/public/hal_memtrack.te new file mode 100644 index 000000000..b2cc9cd1e --- /dev/null +++ b/prebuilts/api/26.0/public/hal_memtrack.te @@ -0,0 +1,5 @@ +# HwBinder IPC from client to server +binder_call(hal_memtrack_client, hal_memtrack_server) + +add_hwservice(hal_memtrack_server, hal_memtrack_hwservice) +allow hal_memtrack_client hal_memtrack_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/public/hal_neverallows.te b/prebuilts/api/26.0/public/hal_neverallows.te new file mode 100644 index 000000000..fc2b5f630 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_neverallows.te @@ -0,0 +1,53 @@ +# only HALs responsible for network hardware should have privileged +# network capabilities +neverallow { + halserverdomain + -hal_bluetooth_server + -hal_wifi_server + -hal_wifi_supplicant_server + -rild +} self:capability { net_admin net_raw }; + +# Unless a HAL's job is to communicate over the network, or control network +# hardware, it should not be using network sockets. +neverallow { + halserverdomain + -hal_tetheroffload_server + -hal_wifi_server + -hal_wifi_supplicant_server + -rild +} domain:{ tcp_socket udp_socket rawip_socket } *; +neverallow hal_tetheroffload_server unlabeled:service_manager list; #TODO: b/62658302 + +### +# HALs are defined as an attribute and so a given domain could hypothetically +# have multiple HALs in it (or even all of them) with the subsequent policy of +# the domain comprised of the union of all the HALs. +# +# This is a problem because +# 1) Security sensitive components should only be accessed by specific HALs. +# 2) hwbinder_call and the restrictions it provides cannot be reasoned about in +# the platform. +# 3) The platform cannot reason about defense in depth if there are +# monolithic domains etc. +# +# As an example, hal_keymaster and hal_gatekeeper can access the TEE and while +# its OK for them to share a process its not OK with them to share processes +# with other hals. +# +# The following neverallow rules, in conjuntion with CTS tests, assert that +# these security principles are adhered to. +# +# Do not allow a hal to exec another process without a domain transition. +# TODO remove exemptions. +neverallow { + halserverdomain + -hal_dumpstate_server + -rild +} { file_type fs_type }:file execute_no_trans; +# Do not allow a process other than init to transition into a HAL domain. +neverallow { domain -init } halserverdomain:process transition; +# Only allow transitioning to a domain by running its executable. Do not +# allow transitioning into a HAL domain by use of seclabel in an +# init.*.rc script. +neverallow * halserverdomain:process dyntransition; diff --git a/prebuilts/api/26.0/public/hal_nfc.te b/prebuilts/api/26.0/public/hal_nfc.te new file mode 100644 index 000000000..a027c48be --- /dev/null +++ b/prebuilts/api/26.0/public/hal_nfc.te @@ -0,0 +1,16 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_nfc_client, hal_nfc_server) +binder_call(hal_nfc_server, hal_nfc_client) + +add_hwservice(hal_nfc_server, hal_nfc_hwservice) +allow hal_nfc_client hal_nfc_hwservice:hwservice_manager find; + +# Set NFC properties (used by bcm2079x HAL). +set_prop(hal_nfc, nfc_prop) + +# NFC device access. +allow hal_nfc nfc_device:chr_file rw_file_perms; + +# Data file accesses. +allow hal_nfc nfc_data_file:dir create_dir_perms; +allow hal_nfc nfc_data_file:{ file lnk_file fifo_file } create_file_perms; diff --git a/prebuilts/api/26.0/public/hal_oemlock.te b/prebuilts/api/26.0/public/hal_oemlock.te new file mode 100644 index 000000000..3fb5a1871 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_oemlock.te @@ -0,0 +1,5 @@ +# HwBinder IPC from client to server +binder_call(hal_oemlock_client, hal_oemlock_server) + +add_hwservice(hal_oemlock_server, hal_oemlock_hwservice) +allow hal_oemlock_client hal_oemlock_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/public/hal_power.te b/prebuilts/api/26.0/public/hal_power.te new file mode 100644 index 000000000..fcba3d25d --- /dev/null +++ b/prebuilts/api/26.0/public/hal_power.te @@ -0,0 +1,6 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_power_client, hal_power_server) +binder_call(hal_power_server, hal_power_client) + +add_hwservice(hal_power_server, hal_power_hwservice) +allow hal_power_client hal_power_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/public/hal_sensors.te b/prebuilts/api/26.0/public/hal_sensors.te new file mode 100644 index 000000000..068c93b8c --- /dev/null +++ b/prebuilts/api/26.0/public/hal_sensors.te @@ -0,0 +1,15 @@ +# HwBinder IPC from client to server +binder_call(hal_sensors_client, hal_sensors_server) + +add_hwservice(hal_sensors_server, hal_sensors_hwservice) +allow hal_sensors_client hal_sensors_hwservice:hwservice_manager find; + +# Allow sensor hals to access ashmem memory allocated by apps +allow hal_sensors { appdomain -isolated_app }:fd use; + +# Allow sensor hals to access ashmem memory allocated by android.hidl.allocator +# fd is passed in from framework sensorservice HAL. +allow hal_sensors hal_allocator:fd use; + +# allow to run with real-time scheduling policy +allow hal_sensors self:capability sys_nice; diff --git a/prebuilts/api/26.0/public/hal_telephony.te b/prebuilts/api/26.0/public/hal_telephony.te new file mode 100644 index 000000000..41cfd4bf3 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_telephony.te @@ -0,0 +1,7 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_telephony_client, hal_telephony_server) +binder_call(hal_telephony_server, hal_telephony_client) + +add_hwservice(hal_telephony_server, hal_telephony_hwservice) +allow hal_telephony_client hal_telephony_hwservice:hwservice_manager find; + diff --git a/prebuilts/api/26.0/public/hal_tetheroffload.te b/prebuilts/api/26.0/public/hal_tetheroffload.te new file mode 100644 index 000000000..a4c21fcdf --- /dev/null +++ b/prebuilts/api/26.0/public/hal_tetheroffload.te @@ -0,0 +1,3 @@ +## HwBinder IPC from client to server, and callbacks +binder_call(hal_tetheroffload_client, hal_tetheroffload_server) +binder_call(hal_tetheroffload_server, hal_tetheroffload_client) diff --git a/prebuilts/api/26.0/public/hal_thermal.te b/prebuilts/api/26.0/public/hal_thermal.te new file mode 100644 index 000000000..b1764f114 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_thermal.te @@ -0,0 +1,6 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_thermal_client, hal_thermal_server) +binder_call(hal_thermal_server, hal_thermal_client) + +add_hwservice(hal_thermal_server, hal_thermal_hwservice) +allow hal_thermal_client hal_thermal_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/public/hal_tv_cec.te b/prebuilts/api/26.0/public/hal_tv_cec.te new file mode 100644 index 000000000..7719cae92 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_tv_cec.te @@ -0,0 +1,6 @@ +# HwBinder IPC from clients into server, and callbacks +binder_call(hal_tv_cec_client, hal_tv_cec_server) +binder_call(hal_tv_cec_server, hal_tv_cec_client) + +add_hwservice(hal_tv_cec_server, hal_tv_cec_hwservice) +allow hal_tv_cec_client hal_tv_cec_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/public/hal_tv_input.te b/prebuilts/api/26.0/public/hal_tv_input.te new file mode 100644 index 000000000..31a006740 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_tv_input.te @@ -0,0 +1,6 @@ +# HwBinder IPC from clients into server, and callbacks +binder_call(hal_tv_input_client, hal_tv_input_server) +binder_call(hal_tv_input_server, hal_tv_input_client) + +add_hwservice(hal_tv_input_server, hal_tv_input_hwservice) +allow hal_tv_input_client hal_tv_input_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/public/hal_usb.te b/prebuilts/api/26.0/public/hal_usb.te new file mode 100644 index 000000000..9cfd5165d --- /dev/null +++ b/prebuilts/api/26.0/public/hal_usb.te @@ -0,0 +1,18 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_usb_client, hal_usb_server) +binder_call(hal_usb_server, hal_usb_client) + +add_hwservice(hal_usb_server, hal_usb_hwservice) +allow hal_usb_client hal_usb_hwservice:hwservice_manager find; + +allow hal_usb self:netlink_kobject_uevent_socket create; +allow hal_usb self:netlink_kobject_uevent_socket setopt; +allow hal_usb self:netlink_kobject_uevent_socket bind; +allow hal_usb self:netlink_kobject_uevent_socket read; +allow hal_usb sysfs:dir open; +allow hal_usb sysfs:dir read; +allow hal_usb sysfs:file read; +allow hal_usb sysfs:file open; +allow hal_usb sysfs:file write; +allow hal_usb sysfs:file getattr; + diff --git a/prebuilts/api/26.0/public/hal_vibrator.te b/prebuilts/api/26.0/public/hal_vibrator.te new file mode 100644 index 000000000..c8612d77a --- /dev/null +++ b/prebuilts/api/26.0/public/hal_vibrator.te @@ -0,0 +1,8 @@ +# HwBinder IPC from client to server +binder_call(hal_vibrator_client, hal_vibrator_server) + +add_hwservice(hal_vibrator_server, hal_vibrator_hwservice) +allow hal_vibrator_client hal_vibrator_hwservice:hwservice_manager find; + +# vibrator sysfs rw access +allow hal_vibrator sysfs_vibrator:file rw_file_perms; diff --git a/prebuilts/api/26.0/public/hal_vr.te b/prebuilts/api/26.0/public/hal_vr.te new file mode 100644 index 000000000..3cb392d14 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_vr.te @@ -0,0 +1,6 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_vr_client, hal_vr_server) +binder_call(hal_vr_server, hal_vr_client) + +add_hwservice(hal_vr_server, hal_vr_hwservice) +allow hal_vr_client hal_vr_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/public/hal_weaver.te b/prebuilts/api/26.0/public/hal_weaver.te new file mode 100644 index 000000000..b80ba292c --- /dev/null +++ b/prebuilts/api/26.0/public/hal_weaver.te @@ -0,0 +1,5 @@ +# HwBinder IPC from client to server +binder_call(hal_weaver_client, hal_weaver_server) + +add_hwservice(hal_weaver_server, hal_weaver_hwservice) +allow hal_weaver_client hal_weaver_hwservice:hwservice_manager find; diff --git a/prebuilts/api/26.0/public/hal_wifi.te b/prebuilts/api/26.0/public/hal_wifi.te new file mode 100644 index 000000000..5e0b9bc49 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_wifi.te @@ -0,0 +1,23 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_wifi_client, hal_wifi_server) +binder_call(hal_wifi_server, hal_wifi_client) + +add_hwservice(hal_wifi_server, hal_wifi_hwservice) +allow hal_wifi_client hal_wifi_hwservice:hwservice_manager find; + +r_dir_file(hal_wifi, proc_net) +r_dir_file(hal_wifi, sysfs_type) + +set_prop(hal_wifi, wifi_prop) + +# allow hal wifi set interfaces up and down +allow hal_wifi self:udp_socket create_socket_perms; +allowxperm hal_wifi self:udp_socket ioctl { SIOCSIFFLAGS }; + +allow hal_wifi self:capability { net_admin net_raw }; +# allow hal_wifi to speak to nl80211 in the kernel +allow hal_wifi self:netlink_socket create_socket_perms_no_ioctl; +# newer kernels (e.g. 4.4 but not 4.1) have a new class for sockets +allow hal_wifi self:netlink_generic_socket create_socket_perms_no_ioctl; +# hal_wifi writes firmware paths to this file. +allow hal_wifi sysfs_wlan_fwpath:file { w_file_perms }; diff --git a/prebuilts/api/26.0/public/hal_wifi_offload.te b/prebuilts/api/26.0/public/hal_wifi_offload.te new file mode 100644 index 000000000..dac5171b1 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_wifi_offload.te @@ -0,0 +1,6 @@ +## HwBinder IPC from client to server, and callbacks +binder_call(hal_wifi_offload_client, hal_wifi_offload_server) +binder_call(hal_wifi_offload_server, hal_wifi_offload_client) + +r_dir_file(hal_wifi_offload, proc_net) +r_dir_file(hal_wifi_offload, sysfs_type) diff --git a/prebuilts/api/26.0/public/hal_wifi_supplicant.te b/prebuilts/api/26.0/public/hal_wifi_supplicant.te new file mode 100644 index 000000000..0f2540e40 --- /dev/null +++ b/prebuilts/api/26.0/public/hal_wifi_supplicant.te @@ -0,0 +1,41 @@ +# HwBinder IPC from client to server +binder_call(hal_wifi_supplicant_client, hal_wifi_supplicant_server) +binder_call(hal_wifi_supplicant_server, hal_wifi_supplicant_client) + +add_hwservice(hal_wifi_supplicant_server, hal_wifi_supplicant_hwservice) +allow hal_wifi_supplicant_client hal_wifi_supplicant_hwservice:hwservice_manager find; + +# in addition to ioctls whitelisted for all domains, grant hal_wifi_supplicant priv_sock_ioctls. +allowxperm hal_wifi_supplicant self:udp_socket ioctl priv_sock_ioctls; + +r_dir_file(hal_wifi_supplicant, sysfs_type) +r_dir_file(hal_wifi_supplicant, proc_net) + +allow hal_wifi_supplicant kernel:system module_request; +allow hal_wifi_supplicant self:capability { setuid net_admin setgid net_raw }; +allow hal_wifi_supplicant cgroup:dir create_dir_perms; +allow hal_wifi_supplicant self:netlink_route_socket nlmsg_write; +allow hal_wifi_supplicant self:netlink_socket create_socket_perms_no_ioctl; +allow hal_wifi_supplicant self:netlink_generic_socket create_socket_perms_no_ioctl; +allow hal_wifi_supplicant self:packet_socket create_socket_perms; +allowxperm hal_wifi_supplicant self:packet_socket ioctl { unpriv_sock_ioctls priv_sock_ioctls unpriv_tty_ioctls }; +allow hal_wifi_supplicant wifi_data_file:dir create_dir_perms; +allow hal_wifi_supplicant wifi_data_file:file create_file_perms; + +# Create a socket for receiving info from wpa +allow hal_wifi_supplicant wpa_socket:dir create_dir_perms; +allow hal_wifi_supplicant wpa_socket:sock_file create_file_perms; + +# Allow wpa_cli to work. wpa_cli creates a socket in +# /data/misc/wifi/sockets which hal_wifi_supplicant supplicant communicates with. +userdebug_or_eng(` + unix_socket_send(hal_wifi_supplicant, wpa, su) +') + +### +### neverallow rules +### + +# wpa_supplicant should not trust any data from sdcards +neverallow hal_wifi_supplicant_server sdcard_type:dir ~getattr; +neverallow hal_wifi_supplicant_server sdcard_type:file *; diff --git a/prebuilts/api/26.0/public/healthd.te b/prebuilts/api/26.0/public/healthd.te new file mode 100644 index 000000000..c0a7bec7b --- /dev/null +++ b/prebuilts/api/26.0/public/healthd.te @@ -0,0 +1,63 @@ +# healthd - battery/charger monitoring service daemon +type healthd, domain; +type healthd_exec, exec_type, file_type; + +# Write to /dev/kmsg +allow healthd kmsg_device:chr_file rw_file_perms; + +# Read access to pseudo filesystems. +r_dir_file(healthd, sysfs_type) +r_dir_file(healthd, rootfs) +r_dir_file(healthd, cgroup) + +# Read access to system files for passthrough HALs in +# /{system,vendor,odm}/lib[64]/hw/ +r_dir_file(healthd, system_file) + +allow healthd self:capability { sys_tty_config }; +allow healthd self:capability sys_boot; + +allow healthd self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; + +wakelock_use(healthd) + +binder_use(healthd) +binder_service(healthd) +binder_call(healthd, system_server) +hal_client_domain(healthd, hal_health) + +# Write to state file. +# TODO: Split into a separate type? +allow healthd sysfs:file write; + +# TODO: added to match above sysfs rule. Remove me? +allow healthd sysfs_usb:file write; + +allow healthd sysfs_batteryinfo:file r_file_perms; + +r_dir_file(healthd, sysfs_type) + +### +### healthd: charger mode +### + +# Read /sys/fs/pstore/console-ramoops +# Don't worry about overly broad permissions for now, as there's +# only one file in /sys/fs/pstore +allow healthd pstorefs:dir r_dir_perms; +allow healthd pstorefs:file r_file_perms; + +allow healthd graphics_device:dir r_dir_perms; +allow healthd graphics_device:chr_file rw_file_perms; +allow healthd input_device:dir r_dir_perms; +allow healthd input_device:chr_file r_file_perms; +allow healthd tty_device:chr_file rw_file_perms; +allow healthd ashmem_device:chr_file execute; +allow healthd self:process execmem; +allow healthd proc_sysrq:file rw_file_perms; + +add_service(healthd, batteryproperties_service) + +# Healthd needs to tell init to continue the boot +# process when running in charger mode. +set_prop(healthd, system_prop) diff --git a/prebuilts/api/26.0/public/hwservice.te b/prebuilts/api/26.0/public/hwservice.te new file mode 100644 index 000000000..65c52a23b --- /dev/null +++ b/prebuilts/api/26.0/public/hwservice.te @@ -0,0 +1,45 @@ +type default_android_hwservice, hwservice_manager_type; +type fwk_display_hwservice, hwservice_manager_type, coredomain_hwservice; +type fwk_scheduler_hwservice, hwservice_manager_type, coredomain_hwservice; +type fwk_sensor_hwservice, hwservice_manager_type, coredomain_hwservice; +type hal_audio_hwservice, hwservice_manager_type; +type hal_bluetooth_hwservice, hwservice_manager_type; +type hal_bootctl_hwservice, hwservice_manager_type; +type hal_camera_hwservice, hwservice_manager_type; +type hal_configstore_ISurfaceFlingerConfigs, hwservice_manager_type; +type hal_contexthub_hwservice, hwservice_manager_type; +type hal_drm_hwservice, hwservice_manager_type; +type hal_dumpstate_hwservice, hwservice_manager_type; +type hal_fingerprint_hwservice, hwservice_manager_type; +type hal_gatekeeper_hwservice, hwservice_manager_type; +type hal_gnss_hwservice, hwservice_manager_type; +type hal_graphics_allocator_hwservice, hwservice_manager_type; +type hal_graphics_composer_hwservice, hwservice_manager_type; +type hal_graphics_mapper_hwservice, hwservice_manager_type, same_process_hwservice; +type hal_health_hwservice, hwservice_manager_type; +type hal_ir_hwservice, hwservice_manager_type; +type hal_keymaster_hwservice, hwservice_manager_type; +type hal_light_hwservice, hwservice_manager_type; +type hal_memtrack_hwservice, hwservice_manager_type; +type hal_nfc_hwservice, hwservice_manager_type; +type hal_oemlock_hwservice, hwservice_manager_type; +type hal_omx_hwservice, hwservice_manager_type; +type hal_power_hwservice, hwservice_manager_type; +type hal_renderscript_hwservice, hwservice_manager_type, same_process_hwservice; +type hal_sensors_hwservice, hwservice_manager_type; +type hal_telephony_hwservice, hwservice_manager_type; +type hal_thermal_hwservice, hwservice_manager_type; +type hal_tv_cec_hwservice, hwservice_manager_type; +type hal_tv_input_hwservice, hwservice_manager_type; +type hal_usb_hwservice, hwservice_manager_type; +type hal_vibrator_hwservice, hwservice_manager_type; +type hal_vr_hwservice, hwservice_manager_type; +type hal_weaver_hwservice, hwservice_manager_type; +type hal_wifi_hwservice, hwservice_manager_type; +type hal_wifi_supplicant_hwservice, hwservice_manager_type; +type hidl_allocator_hwservice, hwservice_manager_type, coredomain_hwservice; +type hidl_base_hwservice, hwservice_manager_type; +type hidl_manager_hwservice, hwservice_manager_type, coredomain_hwservice; +type hidl_memory_hwservice, hwservice_manager_type, coredomain_hwservice; +type hidl_token_hwservice, hwservice_manager_type, coredomain_hwservice; +type system_wifi_keystore_hwservice, hwservice_manager_type, coredomain_hwservice; diff --git a/prebuilts/api/26.0/public/hwservicemanager.te b/prebuilts/api/26.0/public/hwservicemanager.te new file mode 100644 index 000000000..1ffd2a67e --- /dev/null +++ b/prebuilts/api/26.0/public/hwservicemanager.te @@ -0,0 +1,22 @@ +# hwservicemanager - the Binder context manager for HAL services +type hwservicemanager, domain, mlstrustedsubject; +type hwservicemanager_exec, exec_type, file_type; + +# Note that we do not use the binder_* macros here. +# hwservicemanager provides name service (aka context manager) +# for hwbinder. +# Additionally, it initiates binder IPC calls to +# clients who request service notifications. The permission +# to do this is granted in the hwbinder_use macro. +allow hwservicemanager self:binder set_context_mgr; + +set_prop(hwservicemanager, hwservicemanager_prop) + +# Scan through /system/lib64/hw looking for installed HALs +allow hwservicemanager system_file:dir r_dir_perms; + +# Read hwservice_contexts +allow hwservicemanager hwservice_contexts_file:file r_file_perms; + +# Check SELinux permissions. +selinux_check_access(hwservicemanager) diff --git a/prebuilts/api/26.0/public/idmap.te b/prebuilts/api/26.0/public/idmap.te new file mode 100644 index 000000000..1c32f8fd5 --- /dev/null +++ b/prebuilts/api/26.0/public/idmap.te @@ -0,0 +1,17 @@ +# idmap, when executed by installd +type idmap, domain; +type idmap_exec, exec_type, file_type; + +# Use open file to /data/resource-cache file inherited from installd. +allow idmap installd:fd use; +allow idmap resourcecache_data_file:file { getattr read write }; + +# Open and read from target and overlay apk files passed by argument. +allow idmap apk_data_file:file r_file_perms; +allow idmap apk_data_file:dir search; + +# Allow apps access to /vendor/app +r_dir_file(idmap, vendor_app_file) + +# Allow apps access to /vendor/overlay +r_dir_file(idmap, vendor_overlay_file) diff --git a/prebuilts/api/26.0/public/incident.te b/prebuilts/api/26.0/public/incident.te new file mode 100644 index 000000000..ce57bf650 --- /dev/null +++ b/prebuilts/api/26.0/public/incident.te @@ -0,0 +1,8 @@ +# The incident command is used to call into the incidentd service to +# take an incident report (binary, shared bugreport), download incident +# reports that have already been taken, and monitor for new ones. +# It doesn't do anything else. + +# incident +type incident, domain; + diff --git a/prebuilts/api/26.0/public/incidentd.te b/prebuilts/api/26.0/public/incidentd.te new file mode 100644 index 000000000..b03249c88 --- /dev/null +++ b/prebuilts/api/26.0/public/incidentd.te @@ -0,0 +1,3 @@ +# incidentd +type incidentd, domain; + diff --git a/prebuilts/api/26.0/public/init.te b/prebuilts/api/26.0/public/init.te new file mode 100644 index 000000000..6d43ef463 --- /dev/null +++ b/prebuilts/api/26.0/public/init.te @@ -0,0 +1,429 @@ +# init is its own domain. +type init, domain, mlstrustedsubject; + +# The init domain is entered by execing init. +type init_exec, exec_type, file_type; + +# /dev/__null__ node created by init. +allow init tmpfs:chr_file { create setattr unlink rw_file_perms }; + +# +# init direct restorecon calls. +# +# /dev/kmsg +allow init tmpfs:chr_file relabelfrom; +allow init kmsg_device:chr_file { write relabelto }; +# /dev/__properties__ +allow init properties_device:dir relabelto; +allow init properties_serial:file { write relabelto }; +allow init property_type:file { create_file_perms relabelto }; +# /dev/event-log-tags +allow init device:file relabelfrom; +allow init runtime_event_log_tags_file:file { open write setattr relabelto }; +# /dev/socket +allow init { device socket_device }:dir relabelto; +# /dev/random, /dev/urandom +allow init random_device:chr_file relabelto; +# /dev/device-mapper, /dev/block(/.*)? +allow init tmpfs:{ chr_file blk_file } relabelfrom; +allow init tmpfs:blk_file getattr; +allow init block_device:{ dir blk_file lnk_file } relabelto; +allow init dm_device:{ chr_file blk_file } relabelto; +allow init kernel:fd use; +# restorecon for early mount device symlinks +allow init tmpfs:lnk_file { getattr read relabelfrom }; +allow init system_block_device:{ blk_file lnk_file } relabelto; + +# setrlimit +allow init self:capability sys_resource; + +# Remove /dev/.booting, created before initial policy load or restorecon /dev. +allow init tmpfs:file unlink; + +# Access pty created for fsck. +allow init devpts:chr_file { read write open }; + +# Create /dev/fscklogs files. +allow init fscklogs:file create_file_perms; + +# Access /dev/__null__ node created prior to initial policy load. +allow init tmpfs:chr_file write; + +# Access /dev/console. +allow init console_device:chr_file rw_file_perms; + +# Access /dev/tty0. +allow init tty_device:chr_file rw_file_perms; + +# Call mount(2). +allow init self:capability sys_admin; + +# Create and mount on directories in /. +allow init rootfs:dir create_dir_perms; +allow init { rootfs cache_file cgroup storage_file system_data_file system_file vendor_file postinstall_mnt_dir }:dir mounton; + +# Mount on /dev/usb-ffs/adb. +allow init device:dir mounton; + +# Create and remove symlinks in /. +allow init rootfs:lnk_file { create unlink }; + +# Mount debugfs on /sys/kernel/debug. +allow init sysfs:dir mounton; + +# Create cgroups mount points in tmpfs and mount cgroups on them. +allow init tmpfs:dir create_dir_perms; +allow init tmpfs:dir mounton; +allow init cgroup:dir create_dir_perms; +r_dir_file(init, cgroup) +allow init cpuctl_device:dir { create mounton }; + +# /config +allow init configfs:dir mounton; +allow init configfs:dir create_dir_perms; + +# Use tmpfs as /data, used for booting when /data is encrypted +allow init tmpfs:dir relabelfrom; + +# Create directories under /dev/cpuctl after chowning it to system. +allow init self:capability dac_override; + +# Set system clock. +allow init self:capability sys_time; + +allow init self:capability { sys_rawio mknod }; + +# Mounting filesystems from block devices. +allow init dev_type:blk_file r_file_perms; + +# Mounting filesystems. +# Only allow relabelto for types used in context= mount options, +# which should all be assigned the contextmount_type attribute. +# This can be done in device-specific policy via type or typeattribute +# declarations. +allow init fs_type:filesystem ~relabelto; +allow init unlabeled:filesystem ~relabelto; +allow init contextmount_type:filesystem relabelto; + +# Allow read-only access to context= mounted filesystems. +allow init contextmount_type:dir r_dir_perms; +allow init contextmount_type:notdevfile_class_set r_file_perms; + +# restorecon /adb_keys or any other rootfs files and directories to a more +# specific type. +allow init rootfs:{ dir file } relabelfrom; + +# mkdir, symlink, write, rm/rmdir, chown/chmod, restorecon/restorecon_recursive from init.rc files. +# chown/chmod require open+read+setattr required for open()+fchown/fchmod(). +# system/core/init.rc requires at least cache_file and data_file_type. +# init..rc files often include device-specific types, so +# we just allow all file types except /system files here. +allow init self:capability { chown fowner fsetid }; + +allow init { + file_type + -app_data_file + -exec_type + -misc_logd_file + -system_app_data_file + -system_file + -vendor_file_type +}:dir { create search getattr open read setattr ioctl }; + +allow init { + file_type + -app_data_file + -exec_type + -keystore_data_file + -misc_logd_file + -shell_data_file + -system_app_data_file + -system_file + -vendor_file_type + -vold_data_file +}:dir { write add_name remove_name rmdir relabelfrom }; + +allow init { + file_type + -app_data_file + -runtime_event_log_tags_file + -exec_type + -keystore_data_file + -misc_logd_file + -shell_data_file + -system_app_data_file + -system_file + -vendor_file_type + -vold_data_file +}:file { create getattr open read write setattr relabelfrom unlink }; + +allow init { + file_type + -app_data_file + -exec_type + -keystore_data_file + -misc_logd_file + -shell_data_file + -system_app_data_file + -system_file + -vendor_file_type + -vold_data_file +}:{ sock_file fifo_file } { create getattr open read setattr relabelfrom unlink }; + +allow init { + file_type + -app_data_file + -exec_type + -keystore_data_file + -misc_logd_file + -shell_data_file + -system_app_data_file + -system_file + -vendor_file_type + -vold_data_file +}:lnk_file { create getattr setattr relabelfrom unlink }; + +allow init cache_file:lnk_file r_file_perms; + +allow init { file_type -system_file -vendor_file_type -exec_type }:dir_file_class_set relabelto; +allow init { sysfs debugfs debugfs_tracing }:{ dir file lnk_file } { getattr relabelfrom }; +allow init { sysfs_type debugfs_type }:{ dir file lnk_file } { relabelto getattr }; +allow init dev_type:dir create_dir_perms; +allow init dev_type:lnk_file create; + +# Disable tracing by writing to /sys/kernel/debug/tracing/tracing_on +allow init tracing_shell_writable:file w_file_perms; + +# Setup and control wifi event tracing (see wifi-events.rc) +allow init debugfs_tracing_instances:dir create_dir_perms; +allow init debugfs_tracing_instances:file w_file_perms; +allow init debugfs_wifi_tracing:file w_file_perms; + +# chown/chmod on pseudo files. +allow init { fs_type -contextmount_type -sdcard_type -rootfs }:file { open read setattr }; +allow init { fs_type -contextmount_type -sdcard_type -rootfs }:dir { open read setattr search }; + +# init should not be able to read or open generic devices +# TODO: auditing to see if this can be deleted entirely +allow init { + dev_type + -kmem_device + -port_device + -device + -vndbinder_device + }:chr_file { read open }; +auditallow init { + dev_type + -alarm_device + -ashmem_device + -binder_device + -console_device + -device + -devpts + -dm_device + -hwbinder_device + -hw_random_device + -keychord_device + -kmem_device + -kmsg_device + -null_device + -owntty_device + -port_device + -ptmx_device + -random_device + -zero_device +}:chr_file { read open }; + +# chown/chmod on devices. +allow init { dev_type -kmem_device -port_device }:chr_file setattr; + +# Unlabeled file access for upgrades from 4.2. +allow init unlabeled:dir { create_dir_perms relabelfrom }; +allow init unlabeled:notdevfile_class_set { create_file_perms relabelfrom }; + +# Any operation that can modify the kernel ring buffer, e.g. clear +# or a read that consumes the messages that were read. +allow init kernel:system syslog_mod; +allow init self:capability2 syslog; + +# Set usermodehelpers and /proc security settings. +allow init usermodehelper:file rw_file_perms; +allow init proc_security:file rw_file_perms; + +# Write to /proc/sys/kernel/panic_on_oops. +r_dir_file(init, proc) +allow init proc:file w_file_perms; + +# Write to /proc/sys/net/ping_group_range and other /proc/sys/net files. +r_dir_file(init, proc_net) +allow init proc_net:file w_file_perms; +allow init self:capability net_admin; + +# Write to /proc/sysrq-trigger. +allow init proc_sysrq:file w_file_perms; + +# Read /proc/stat for bootchart. +allow init proc_stat:file r_file_perms; + +# Reboot. +allow init self:capability sys_boot; + +# Write to sysfs nodes. +allow init sysfs_type:dir r_dir_perms; +allow init sysfs_type:lnk_file read; +allow init sysfs_type:file rw_file_perms; + +# Init will create /data/misc/logd when the property persist.logd.logpersistd is "logcatd". +# Init will also walk through the directory as part of a recursive restorecon. +allow init misc_logd_file:dir { add_name open create read getattr setattr search write }; +allow init misc_logd_file:file { open create getattr setattr write }; + +# Support "adb shell stop" +allow init self:capability kill; +allow init domain:process { sigkill signal }; + +# Init creates keystore's directory on boot, and walks through +# the directory as part of a recursive restorecon. +allow init keystore_data_file:dir { open create read getattr setattr search }; +allow init keystore_data_file:file { getattr }; + +# Init creates vold's directory on boot, and walks through +# the directory as part of a recursive restorecon. +allow init vold_data_file:dir { open create read getattr setattr search }; +allow init vold_data_file:file { getattr }; + +# Init creates /data/local/tmp at boot +allow init shell_data_file:dir { open create read getattr setattr search }; +allow init shell_data_file:file { getattr }; + +# Set UID, GID, and adjust capability bounding set for services. +allow init self:capability { setuid setgid setpcap }; + +# For bootchart to read the /proc/$pid/cmdline file of each process, +# we need to have following line to allow init to have access +# to different domains. +r_dir_file(init, domain) + +# Use setexeccon(), setfscreatecon(), and setsockcreatecon(). +# setexec is for services with seclabel options. +# setfscreate is for labeling directories and socket files. +# setsockcreate is for labeling local/unix domain sockets. +allow init self:process { setexec setfscreate setsockcreate }; + +# Get file context +allow init file_contexts_file:file r_file_perms; + +# sepolicy access +allow init sepolicy_file:file r_file_perms; + +# Perform SELinux access checks on setting properties. +selinux_check_access(init) + +# Ask the kernel for the new context on services to label their sockets. +allow init kernel:security compute_create; + +# Create sockets for the services. +allow init domain:unix_stream_socket { create bind }; +allow init domain:unix_dgram_socket { create bind }; + +# Create /data/property and files within it. +allow init property_data_file:dir create_dir_perms; +allow init property_data_file:file create_file_perms; + +# Set any property. +allow init property_type:property_service set; + +# Send an SELinux userspace denial to the kernel audit subsystem, +# so it can be picked up and processed by logd. These denials are +# generated when an attempt to set a property is denied by policy. +allow init self:netlink_audit_socket { create_socket_perms_no_ioctl nlmsg_relay }; +allow init self:capability audit_write; + +# Run "ifup lo" to bring up the localhost interface +allow init self:udp_socket { create ioctl }; +# in addition to unpriv ioctls granted to all domains, init also needs: +allowxperm init self:udp_socket ioctl SIOCSIFFLAGS; +allow init self:capability net_raw; + +# This line seems suspect, as it should not really need to +# set scheduling parameters for a kernel domain task. +allow init kernel:process setsched; + +# swapon() needs write access to swap device +# system/core/fs_mgr/fs_mgr.c - fs_mgr_swapon_all +allow init swap_block_device:blk_file rw_file_perms; + +# Read from /dev/hw_random if present. +# system/core/init/init.c - mix_hwrng_into_linux_rng_action +allow init hw_random_device:chr_file r_file_perms; + +# Create and access /dev files without a specific type, +# e.g. /dev/.coldboot_done, /dev/.booting +# TODO: Move these files into their own type unless they are +# only ever accessed by init. +allow init device:file create_file_perms; + +# keychord configuration +allow init self:capability sys_tty_config; +allow init keychord_device:chr_file rw_file_perms; + +# Access device mapper for setting up dm-verity +allow init dm_device:chr_file rw_file_perms; +allow init dm_device:blk_file rw_file_perms; + +# Access metadata block device for storing dm-verity state +allow init metadata_block_device:blk_file rw_file_perms; + +# Read /sys/fs/pstore/console-ramoops to detect restarts caused +# by dm-verity detecting corrupted blocks +allow init pstorefs:dir search; +allow init pstorefs:file r_file_perms; +allow init kernel:system syslog_read; + +# linux keyring configuration +allow init init:key { write search setattr }; + +# Allow init to create /data/unencrypted +allow init unencrypted_data_file:dir create_dir_perms; + +# Allow init to write to /proc/sys/vm/overcommit_memory +allow init proc_overcommit_memory:file { write }; + +unix_socket_connect(init, vold, vold) + +# Raw writes to misc block device +allow init misc_block_device:blk_file w_file_perms; + +r_dir_file(init, system_file) +r_dir_file(init, vendor_file_type) +allow init proc_meminfo:file r_file_perms; + +allow init system_data_file:file { getattr read }; +allow init system_data_file:lnk_file r_file_perms; + +# For init to be able to run shell scripts from vendor +allow init vendor_shell_exec:file execute; + +### +### neverallow rules +### + +# The init domain is only entered via an exec based transition from the +# kernel domain, never via setcon(). +neverallow domain init:process dyntransition; +neverallow { domain -kernel } init:process transition; +neverallow init { file_type fs_type -init_exec }:file entrypoint; + +# Never read/follow symlinks created by shell or untrusted apps. +neverallow init shell_data_file:lnk_file read; +neverallow init app_data_file:lnk_file read; + +# init should never execute a program without changing to another domain. +neverallow init { file_type fs_type }:file execute_no_trans; + +# Init never adds or uses services via service_manager. +neverallow init service_manager_type:service_manager { add find }; +neverallow init servicemanager:service_manager list; + +# Init should not be creating subdirectories in /data/local/tmp +neverallow init shell_data_file:dir { write add_name remove_name }; diff --git a/prebuilts/api/26.0/public/inputflinger.te b/prebuilts/api/26.0/public/inputflinger.te new file mode 100644 index 000000000..e5f12a0c1 --- /dev/null +++ b/prebuilts/api/26.0/public/inputflinger.te @@ -0,0 +1,16 @@ +# inputflinger +type inputflinger, domain; +type inputflinger_exec, exec_type, file_type; + +binder_use(inputflinger) +binder_service(inputflinger) + +binder_call(inputflinger, system_server) + +wakelock_use(inputflinger) + +add_service(inputflinger, inputflinger_service) +allow inputflinger input_device:dir r_dir_perms; +allow inputflinger input_device:chr_file rw_file_perms; + +r_dir_file(inputflinger, cgroup) diff --git a/prebuilts/api/26.0/public/install_recovery.te b/prebuilts/api/26.0/public/install_recovery.te new file mode 100644 index 000000000..21156634d --- /dev/null +++ b/prebuilts/api/26.0/public/install_recovery.te @@ -0,0 +1,27 @@ +# service flash_recovery in init.rc +type install_recovery, domain; +type install_recovery_exec, exec_type, file_type; + +allow install_recovery self:capability dac_override; + +# /system/bin/install-recovery.sh is a shell script. +# Needs to execute /system/bin/sh +allow install_recovery shell_exec:file rx_file_perms; + +# Execute /system/bin/applypatch +allow install_recovery system_file:file rx_file_perms; +not_full_treble(`allow install_recovery vendor_file:file rx_file_perms;') + +allow install_recovery toolbox_exec:file rx_file_perms; + +# Update the recovery block device based off a diff of the boot block device +allow install_recovery block_device:dir search; +allow install_recovery boot_block_device:blk_file r_file_perms; +allow install_recovery recovery_block_device:blk_file rw_file_perms; + +# Create and delete /cache/saved.file +allow install_recovery cache_file:dir rw_dir_perms; +allow install_recovery cache_file:file create_file_perms; + +# Write to /proc/sys/vm/drop_caches +allow install_recovery proc_drop_caches:file w_file_perms; diff --git a/prebuilts/api/26.0/public/installd.te b/prebuilts/api/26.0/public/installd.te new file mode 100644 index 000000000..939a4810a --- /dev/null +++ b/prebuilts/api/26.0/public/installd.te @@ -0,0 +1,159 @@ +# installer daemon +type installd, domain; +type installd_exec, exec_type, file_type; +typeattribute installd mlstrustedsubject; +allow installd self:capability { chown dac_override fowner fsetid setgid setuid sys_admin }; + +# Allow labeling of files under /data/app/com.example/oat/ +allow installd dalvikcache_data_file:dir relabelto; +allow installd dalvikcache_data_file:file { relabelto link }; + +# Allow movement of APK files between volumes +allow installd apk_data_file:dir { create_dir_perms relabelfrom }; +allow installd apk_data_file:file { create_file_perms relabelfrom link }; +allow installd apk_data_file:lnk_file { create r_file_perms unlink }; + +allow installd asec_apk_file:file r_file_perms; +allow installd apk_tmp_file:file { r_file_perms unlink }; +allow installd apk_tmp_file:dir { relabelfrom create_dir_perms }; +allow installd oemfs:dir r_dir_perms; +allow installd oemfs:file r_file_perms; +allow installd cgroup:dir create_dir_perms; +allow installd cgroup:{ file lnk_file } create_file_perms; +allow installd mnt_expand_file:dir { search getattr }; +# Check validity of SELinux context before use. +selinux_check_context(installd) + +r_dir_file(installd, rootfs) +# Scan through APKs in /system/app and /system/priv-app +r_dir_file(installd, system_file) +# Scan through APKs in /vendor/app +r_dir_file(installd, vendor_app_file) +# Scan through Runtime Resource Overlay APKs in /vendor/overlay +r_dir_file(installd, vendor_overlay_file) +# Get file context +allow installd file_contexts_file:file r_file_perms; +# Get seapp_context +allow installd seapp_contexts_file:file r_file_perms; + +# Search /data/app-asec and stat files in it. +allow installd asec_image_file:dir search; +allow installd asec_image_file:file getattr; + +# Create /data/user and /data/user/0 if necessary. +# Also required to initially create /data/data subdirectories +# and lib symlinks before the setfilecon call. May want to +# move symlink creation after setfilecon in installd. +allow installd system_data_file:dir create_dir_perms; +allow installd system_data_file:lnk_file { create setattr unlink }; + +# Upgrade /data/media for multi-user if necessary. +allow installd media_rw_data_file:dir create_dir_perms; +allow installd media_rw_data_file:file { getattr unlink }; +# restorecon new /data/media directory. +allow installd system_data_file:dir relabelfrom; +allow installd media_rw_data_file:dir relabelto; + +# Delete /data/media files through sdcardfs, instead of going behind its back +allow installd tmpfs:dir r_dir_perms; +allow installd storage_file:dir search; +allow installd sdcardfs:dir { search open read write remove_name getattr rmdir }; +allow installd sdcardfs:file { getattr unlink }; + +# Upgrade /data/misc/keychain for multi-user if necessary. +allow installd misc_user_data_file:dir create_dir_perms; +allow installd misc_user_data_file:file create_file_perms; +allow installd keychain_data_file:dir create_dir_perms; +allow installd keychain_data_file:file {r_file_perms unlink}; + +# Create /data/.layout_version.* file +allow installd install_data_file:file create_file_perms; + +# Create files under /data/dalvik-cache. +allow installd dalvikcache_data_file:dir create_dir_perms; +allow installd dalvikcache_data_file:file create_file_perms; +allow installd dalvikcache_data_file:lnk_file getattr; + +# Create files under /data/resource-cache. +allow installd resourcecache_data_file:dir rw_dir_perms; +allow installd resourcecache_data_file:file create_file_perms; + +# Upgrade from unlabeled userdata. +# Just need enough to remove and/or relabel it. +allow installd unlabeled:dir { getattr search relabelfrom rw_dir_perms rmdir }; +allow installd unlabeled:notdevfile_class_set { getattr relabelfrom rename unlink setattr }; +# Read pkg.apk file for input during dexopt. +allow installd unlabeled:file r_file_perms; + +# Upgrade from before system_app_data_file was used for system UID apps. +# Just need enough to relabel it and to unlink removed package files. +# Directory access covered by earlier rule above. +allow installd system_data_file:notdevfile_class_set { getattr relabelfrom unlink }; + +# Manage /data/data subdirectories, including initially labeling them +# upon creation via setfilecon or running restorecon_recursive, +# setting owner/mode, creating symlinks within them, and deleting them +# upon package uninstall. +# Types extracted from seapp_contexts type= fields. +allow installd { + system_app_data_file + bluetooth_data_file + nfc_data_file + radio_data_file + shell_data_file + app_data_file +}:dir { create_dir_perms relabelfrom relabelto }; + +allow installd { + system_app_data_file + bluetooth_data_file + nfc_data_file + radio_data_file + shell_data_file + app_data_file +}:notdevfile_class_set { create_file_perms relabelfrom relabelto }; + +# Similar for the files under /data/misc/profiles/ +allow installd user_profile_data_file:dir create_dir_perms; +allow installd user_profile_data_file:file create_file_perms; +allow installd user_profile_data_file:dir rmdir; +allow installd user_profile_data_file:file unlink; + +# Files created/updated by profman dumps. +allow installd profman_dump_data_file:dir { search add_name write }; +allow installd profman_dump_data_file:file { create setattr open write }; + +# Create and use pty created by android_fork_execvp(). +allow installd devpts:chr_file rw_file_perms; + +# execute toybox for app relocation +allow installd toolbox_exec:file rx_file_perms; + +# Allow installd to publish a binder service and make binder calls. +binder_use(installd) +add_service(installd, installd_service) +allow installd dumpstate:fifo_file { getattr write }; + +# Allow installd to call into the system server so it can check permissions. +binder_call(installd, system_server) +allow installd permission_service:service_manager find; + +# Allow installd to read and write quotas +allow installd block_device:dir { search }; +allow installd labeledfs:filesystem { quotaget quotamod }; + +# Allow installd to delete from /data/preloads when trimming data caches +# TODO b/34690396 Remove when time-based purge policy for preloads is implemented in system_server +allow installd preloads_data_file:file { r_file_perms unlink }; +allow installd preloads_data_file:dir { r_dir_perms write remove_name rmdir }; +allow installd preloads_media_file:file { r_file_perms unlink }; +allow installd preloads_media_file:dir { r_dir_perms write remove_name rmdir }; + +### +### Neverallow rules +### + +# only system_server, installd and dumpstate may interact with installd over binder +neverallow { domain -system_server -dumpstate -installd } installd_service:service_manager find; +neverallow { domain -system_server -dumpstate } installd:binder call; +neverallow installd { domain -system_server -servicemanager userdebug_or_eng(`-su') }:binder call; diff --git a/prebuilts/api/26.0/public/ioctl_defines b/prebuilts/api/26.0/public/ioctl_defines new file mode 100644 index 000000000..a1cd0b9a0 --- /dev/null +++ b/prebuilts/api/26.0/public/ioctl_defines @@ -0,0 +1,2694 @@ +define(`FIBMAP', `0x00000001') +define(`FIGETBSZ', `0x00000002') +define(`FDCLRPRM', `0x00000241') +define(`FDMSGON', `0x00000245') +define(`FDMSGOFF', `0x00000246') +define(`FDFMTBEG', `0x00000247') +define(`FDFMTEND', `0x00000249') +define(`FDSETEMSGTRESH', `0x0000024a') +define(`FDFLUSH', `0x0000024b') +define(`FDRESET', `0x00000254') +define(`FDWERRORCLR', `0x00000256') +define(`FDRAWCMD', `0x00000258') +define(`FDTWADDLE', `0x00000259') +define(`FDEJECT', `0x0000025a') +define(`HDIO_GETGEO', `0x00000301') +define(`HDIO_GET_UNMASKINTR', `0x00000302') +define(`HDIO_GET_MULTCOUNT', `0x00000304') +define(`HDIO_GET_QDMA', `0x00000305') +define(`HDIO_SET_XFER', `0x00000306') +define(`HDIO_OBSOLETE_IDENTITY', `0x00000307') +define(`HDIO_GET_KEEPSETTINGS', `0x00000308') +define(`HDIO_GET_32BIT', `0x00000309') +define(`HDIO_GET_NOWERR', `0x0000030a') +define(`HDIO_GET_DMA', `0x0000030b') +define(`HDIO_GET_NICE', `0x0000030c') +define(`HDIO_GET_IDENTITY', `0x0000030d') +define(`HDIO_GET_WCACHE', `0x0000030e') +define(`HDIO_GET_ACOUSTIC', `0x0000030f') +define(`HDIO_GET_ADDRESS', `0x00000310') +define(`HDIO_GET_BUSSTATE', `0x0000031a') +define(`HDIO_TRISTATE_HWIF', `0x0000031b') +define(`HDIO_DRIVE_RESET', `0x0000031c') +define(`HDIO_DRIVE_TASKFILE', `0x0000031d') +define(`HDIO_DRIVE_TASK', `0x0000031e') +define(`HDIO_DRIVE_CMD', `0x0000031f') +define(`HDIO_SET_MULTCOUNT', `0x00000321') +define(`HDIO_SET_UNMASKINTR', `0x00000322') +define(`HDIO_SET_KEEPSETTINGS', `0x00000323') +define(`HDIO_SET_32BIT', `0x00000324') +define(`HDIO_SET_NOWERR', `0x00000325') +define(`HDIO_SET_DMA', `0x00000326') +define(`HDIO_SET_PIO_MODE', `0x00000327') +define(`HDIO_SCAN_HWIF', `0x00000328') +define(`HDIO_SET_NICE', `0x00000329') +define(`HDIO_UNREGISTER_HWIF', `0x0000032a') +define(`HDIO_SET_WCACHE', `0x0000032b') +define(`HDIO_SET_ACOUSTIC', `0x0000032c') +define(`HDIO_SET_BUSSTATE', `0x0000032d') +define(`HDIO_SET_QDMA', `0x0000032e') +define(`HDIO_SET_ADDRESS', `0x0000032f') +define(`IOCTL_VMCI_VERSION', `0x0000079f') +define(`IOCTL_VMCI_INIT_CONTEXT', `0x000007a0') +define(`IOCTL_VMCI_QUEUEPAIR_SETVA', `0x000007a4') +define(`IOCTL_VMCI_NOTIFY_RESOURCE', `0x000007a5') +define(`IOCTL_VMCI_NOTIFICATIONS_RECEIVE', `0x000007a6') +define(`IOCTL_VMCI_VERSION2', `0x000007a7') +define(`IOCTL_VMCI_QUEUEPAIR_ALLOC', `0x000007a8') +define(`IOCTL_VMCI_QUEUEPAIR_SETPAGEFILE', `0x000007a9') +define(`IOCTL_VMCI_QUEUEPAIR_DETACH', `0x000007aa') +define(`IOCTL_VMCI_DATAGRAM_SEND', `0x000007ab') +define(`IOCTL_VMCI_DATAGRAM_RECEIVE', `0x000007ac') +define(`IOCTL_VMCI_CTX_ADD_NOTIFICATION', `0x000007af') +define(`IOCTL_VMCI_CTX_REMOVE_NOTIFICATION', `0x000007b0') +define(`IOCTL_VMCI_CTX_GET_CPT_STATE', `0x000007b1') +define(`IOCTL_VMCI_CTX_SET_CPT_STATE', `0x000007b2') +define(`IOCTL_VMCI_GET_CONTEXT_ID', `0x000007b3') +define(`IOCTL_VMCI_SOCKETS_VERSION', `0x000007b4') +define(`IOCTL_VMCI_SOCKETS_GET_AF_VALUE', `0x000007b8') +define(`IOCTL_VMCI_SOCKETS_GET_LOCAL_CID', `0x000007b9') +define(`IOCTL_VM_SOCKETS_GET_LOCAL_CID', `0x000007b9') +define(`IOCTL_VMCI_SET_NOTIFY', `0x000007cb') +define(`RAID_AUTORUN', `0x00000914') +define(`CLEAR_ARRAY', `0x00000920') +define(`HOT_REMOVE_DISK', `0x00000922') +define(`SET_DISK_INFO', `0x00000924') +define(`WRITE_RAID_INFO', `0x00000925') +define(`UNPROTECT_ARRAY', `0x00000926') +define(`PROTECT_ARRAY', `0x00000927') +define(`HOT_ADD_DISK', `0x00000928') +define(`SET_DISK_FAULTY', `0x00000929') +define(`HOT_GENERATE_ERROR', `0x0000092a') +define(`STOP_ARRAY', `0x00000932') +define(`STOP_ARRAY_RO', `0x00000933') +define(`RESTART_ARRAY_RW', `0x00000934') +define(`BLKROSET', `0x0000125d') +define(`BLKROGET', `0x0000125e') +define(`BLKRRPART', `0x0000125f') +define(`BLKGETSIZE', `0x00001260') +define(`BLKFLSBUF', `0x00001261') +define(`BLKRASET', `0x00001262') +define(`BLKRAGET', `0x00001263') +define(`BLKFRASET', `0x00001264') +define(`BLKFRAGET', `0x00001265') +define(`BLKSECTSET', `0x00001266') +define(`BLKSECTGET', `0x00001267') +define(`BLKSSZGET', `0x00001268') +define(`BLKPG', `0x00001269') +define(`BLKTRACESTART', `0x00001274') +define(`BLKTRACESTOP', `0x00001275') +define(`BLKTRACETEARDOWN', `0x00001276') +define(`BLKDISCARD', `0x00001277') +define(`BLKIOMIN', `0x00001278') +define(`BLKIOOPT', `0x00001279') +define(`BLKALIGNOFF', `0x0000127a') +define(`BLKPBSZGET', `0x0000127b') +define(`BLKDISCARDZEROES', `0x0000127c') +define(`BLKSECDISCARD', `0x0000127d') +define(`BLKROTATIONAL', `0x0000127e') +define(`BLKZEROOUT', `0x0000127f') +define(`IB_USER_MAD_ENABLE_PKEY', `0x00001b03') +define(`SG_SET_TIMEOUT', `0x00002201') +define(`SG_GET_TIMEOUT', `0x00002202') +define(`SG_EMULATED_HOST', `0x00002203') +define(`SG_SET_TRANSFORM', `0x00002204') +define(`SG_GET_TRANSFORM', `0x00002205') +define(`SG_GET_COMMAND_Q', `0x00002270') +define(`SG_SET_COMMAND_Q', `0x00002271') +define(`SG_GET_RESERVED_SIZE', `0x00002272') +define(`SG_SET_RESERVED_SIZE', `0x00002275') +define(`SG_GET_SCSI_ID', `0x00002276') +define(`SG_SET_FORCE_LOW_DMA', `0x00002279') +define(`SG_GET_LOW_DMA', `0x0000227a') +define(`SG_SET_FORCE_PACK_ID', `0x0000227b') +define(`SG_GET_PACK_ID', `0x0000227c') +define(`SG_GET_NUM_WAITING', `0x0000227d') +define(`SG_SET_DEBUG', `0x0000227e') +define(`SG_GET_SG_TABLESIZE', `0x0000227f') +define(`SG_GET_VERSION_NUM', `0x00002282') +define(`SG_NEXT_CMD_LEN', `0x00002283') +define(`SG_SCSI_RESET', `0x00002284') +define(`SG_IO', `0x00002285') +define(`SG_GET_REQUEST_TABLE', `0x00002286') +define(`SG_SET_KEEP_ORPHAN', `0x00002287') +define(`SG_GET_KEEP_ORPHAN', `0x00002288') +define(`SG_GET_ACCESS_COUNT', `0x00002289') +define(`FW_CDEV_IOC_GET_SPEED', `0x00002311') +define(`PERF_EVENT_IOC_ENABLE', `0x00002400') +define(`PERF_EVENT_IOC_DISABLE', `0x00002401') +define(`PERF_EVENT_IOC_REFRESH', `0x00002402') +define(`PERF_EVENT_IOC_RESET', `0x00002403') +define(`PERF_EVENT_IOC_SET_OUTPUT', `0x00002405') +define(`SNAPSHOT_FREEZE', `0x00003301') +define(`SNAPSHOT_UNFREEZE', `0x00003302') +define(`SNAPSHOT_ATOMIC_RESTORE', `0x00003304') +define(`SNAPSHOT_FREE', `0x00003305') +define(`SNAPSHOT_FREE_SWAP_PAGES', `0x00003309') +define(`SNAPSHOT_S2RAM', `0x0000330b') +define(`SNAPSHOT_PLATFORM_SUPPORT', `0x0000330f') +define(`SNAPSHOT_POWER_OFF', `0x00003310') +define(`SNAPSHOT_PREF_IMAGE_SIZE', `0x00003312') +define(`VFIO_GET_API_VERSION', `0x00003b64') +define(`VFIO_CHECK_EXTENSION', `0x00003b65') +define(`VFIO_SET_IOMMU', `0x00003b66') +define(`VFIO_GROUP_GET_STATUS', `0x00003b67') +define(`VFIO_GROUP_SET_CONTAINER', `0x00003b68') +define(`VFIO_GROUP_UNSET_CONTAINER', `0x00003b69') +define(`VFIO_GROUP_GET_DEVICE_FD', `0x00003b6a') +define(`VFIO_DEVICE_GET_INFO', `0x00003b6b') +define(`VFIO_DEVICE_GET_REGION_INFO', `0x00003b6c') +define(`VFIO_DEVICE_GET_IRQ_INFO', `0x00003b6d') +define(`VFIO_DEVICE_SET_IRQS', `0x00003b6e') +define(`VFIO_DEVICE_RESET', `0x00003b6f') +define(`VFIO_DEVICE_GET_PCI_HOT_RESET_INFO', `0x00003b70') +define(`VFIO_IOMMU_GET_INFO', `0x00003b70') +define(`VFIO_IOMMU_SPAPR_TCE_GET_INFO', `0x00003b70') +define(`VFIO_DEVICE_PCI_HOT_RESET', `0x00003b71') +define(`VFIO_IOMMU_MAP_DMA', `0x00003b71') +define(`VFIO_IOMMU_UNMAP_DMA', `0x00003b72') +define(`VFIO_IOMMU_ENABLE', `0x00003b73') +define(`VFIO_IOMMU_DISABLE', `0x00003b74') +define(`VFIO_EEH_PE_OP', `0x00003b79') +define(`AGPIOC_ACQUIRE', `0x00004101') +define(`APM_IOC_STANDBY', `0x00004101') +define(`AGPIOC_RELEASE', `0x00004102') +define(`APM_IOC_SUSPEND', `0x00004102') +define(`AGPIOC_CHIPSET_FLUSH', `0x0000410a') +define(`SNDRV_PCM_IOCTL_HW_FREE', `0x00004112') +define(`SNDRV_PCM_IOCTL_HWSYNC', `0x00004122') +define(`SNDRV_PCM_IOCTL_PREPARE', `0x00004140') +define(`SNDRV_PCM_IOCTL_RESET', `0x00004141') +define(`SNDRV_PCM_IOCTL_START', `0x00004142') +define(`SNDRV_PCM_IOCTL_DROP', `0x00004143') +define(`SNDRV_PCM_IOCTL_DRAIN', `0x00004144') +define(`SNDRV_PCM_IOCTL_RESUME', `0x00004147') +define(`SNDRV_PCM_IOCTL_XRUN', `0x00004148') +define(`SNDRV_PCM_IOCTL_UNLINK', `0x00004161') +define(`IOCTL_XENBUS_BACKEND_EVTCHN', `0x00004200') +define(`PMU_IOC_SLEEP', `0x00004200') +define(`IOCTL_XENBUS_BACKEND_SETUP', `0x00004201') +define(`CCISS_REVALIDVOLS', `0x0000420a') +define(`CCISS_DEREGDISK', `0x0000420c') +define(`CCISS_REGNEWD', `0x0000420e') +define(`CCISS_RESCANDISK', `0x00004210') +define(`SNDCTL_COPR_RESET', `0x00004300') +define(`SNDRV_COMPRESS_PAUSE', `0x00004330') +define(`SNDRV_COMPRESS_RESUME', `0x00004331') +define(`SNDRV_COMPRESS_START', `0x00004332') +define(`SNDRV_COMPRESS_STOP', `0x00004333') +define(`SNDRV_COMPRESS_DRAIN', `0x00004334') +define(`SNDRV_COMPRESS_NEXT_TRACK', `0x00004335') +define(`SNDRV_COMPRESS_PARTIAL_DRAIN', `0x00004336') +define(`IOCTL_EVTCHN_RESET', `0x00004505') +define(`FBIOGET_VSCREENINFO', `0x00004600') +define(`FBIOPUT_VSCREENINFO', `0x00004601') +define(`FBIOGET_FSCREENINFO', `0x00004602') +define(`FBIOGETCMAP', `0x00004604') +define(`FBIOPUTCMAP', `0x00004605') +define(`FBIOPAN_DISPLAY', `0x00004606') +define(`FBIOGET_CON2FBMAP', `0x0000460f') +define(`FBIOPUT_CON2FBMAP', `0x00004610') +define(`FBIOBLANK', `0x00004611') +define(`FBIO_ALLOC', `0x00004613') +define(`FBIO_FREE', `0x00004614') +define(`FBIOGET_GLYPH', `0x00004615') +define(`FBIOGET_HWCINFO', `0x00004616') +define(`FBIOPUT_MODEINFO', `0x00004617') +define(`FBIOGET_DISPINFO', `0x00004618') +define(`FBIO_WAITEVENT', `0x00004688') +define(`GSMIOC_DISABLE_NET', `0x00004703') +define(`HIDIOCAPPLICATION', `0x00004802') +define(`HIDIOCINITREPORT', `0x00004805') +define(`SNDRV_SB_CSP_IOCTL_UNLOAD_CODE', `0x00004812') +define(`SNDRV_SB_CSP_IOCTL_STOP', `0x00004814') +define(`SNDRV_SB_CSP_IOCTL_PAUSE', `0x00004815') +define(`SNDRV_SB_CSP_IOCTL_RESTART', `0x00004816') +define(`SNDRV_DM_FM_IOCTL_RESET', `0x00004821') +define(`SNDRV_DM_FM_IOCTL_CLEAR_PATCHES', `0x00004840') +define(`SNDRV_EMU10K1_IOCTL_STOP', `0x00004880') +define(`SNDRV_EMU10K1_IOCTL_CONTINUE', `0x00004881') +define(`SNDRV_EMU10K1_IOCTL_ZERO_TRAM_COUNTER', `0x00004882') +define(`SNDRV_EMUX_IOCTL_RESET_SAMPLES', `0x00004882') +define(`SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES', `0x00004883') +define(`SNDRV_FIREWIRE_IOCTL_LOCK', `0x000048f9') +define(`SNDRV_FIREWIRE_IOCTL_UNLOCK', `0x000048fa') +define(`IIOCNETAIF', `0x00004901') +define(`IIOCNETDIF', `0x00004902') +define(`IIOCNETSCF', `0x00004903') +define(`IIOCNETGCF', `0x00004904') +define(`IIOCNETANM', `0x00004905') +define(`IIOCNETDNM', `0x00004906') +define(`IIOCNETGNM', `0x00004907') +define(`IIOCGETSET', `0x00004908') +define(`IIOCSETSET', `0x00004909') +define(`IIOCSETVER', `0x0000490a') +define(`IIOCNETHUP', `0x0000490b') +define(`IIOCSETGST', `0x0000490c') +define(`IIOCSETBRJ', `0x0000490d') +define(`IIOCSIGPRF', `0x0000490e') +define(`IIOCGETPRF', `0x0000490f') +define(`IIOCSETPRF', `0x00004910') +define(`IIOCGETMAP', `0x00004911') +define(`IIOCSETMAP', `0x00004912') +define(`IIOCNETASL', `0x00004913') +define(`IIOCNETDIL', `0x00004914') +define(`IIOCGETCPS', `0x00004915') +define(`IIOCGETDVR', `0x00004916') +define(`IIOCNETLCR', `0x00004917') +define(`IIOCNETDWRSET', `0x00004918') +define(`IIOCNETALN', `0x00004920') +define(`IIOCNETDLN', `0x00004921') +define(`IIOCNETGPN', `0x00004922') +define(`IIOCDBGVAR', `0x0000497f') +define(`IIOCDRVCTL', `0x00004980') +define(`ION_IOC_TEST_SET_FD', `0x000049f0') +define(`KIOCSOUND', `0x00004b2f') +define(`KDMKTONE', `0x00004b30') +define(`KDGETLED', `0x00004b31') +define(`KDSETLED', `0x00004b32') +define(`KDGKBTYPE', `0x00004b33') +define(`KDADDIO', `0x00004b34') +define(`KDDELIO', `0x00004b35') +define(`KDENABIO', `0x00004b36') +define(`KDDISABIO', `0x00004b37') +define(`KDSETMODE', `0x00004b3a') +define(`KDGETMODE', `0x00004b3b') +define(`KDMAPDISP', `0x00004b3c') +define(`KDUNMAPDISP', `0x00004b3d') +define(`GIO_SCRNMAP', `0x00004b40') +define(`PIO_SCRNMAP', `0x00004b41') +define(`KDGKBMODE', `0x00004b44') +define(`KDSKBMODE', `0x00004b45') +define(`KDGKBENT', `0x00004b46') +define(`KDSKBENT', `0x00004b47') +define(`KDGKBSENT', `0x00004b48') +define(`KDSKBSENT', `0x00004b49') +define(`KDGKBDIACR', `0x00004b4a') +define(`KDSKBDIACR', `0x00004b4b') +define(`KDGETKEYCODE', `0x00004b4c') +define(`KDSETKEYCODE', `0x00004b4d') +define(`KDSIGACCEPT', `0x00004b4e') +define(`KDKBDREP', `0x00004b52') +define(`GIO_FONT', `0x00004b60') +define(`PIO_FONT', `0x00004b61') +define(`KDGKBMETA', `0x00004b62') +define(`KDSKBMETA', `0x00004b63') +define(`KDGKBLED', `0x00004b64') +define(`KDSKBLED', `0x00004b65') +define(`GIO_UNIMAP', `0x00004b66') +define(`PIO_UNIMAP', `0x00004b67') +define(`PIO_UNIMAPCLR', `0x00004b68') +define(`GIO_UNISCRNMAP', `0x00004b69') +define(`PIO_UNISCRNMAP', `0x00004b6a') +define(`GIO_FONTX', `0x00004b6b') +define(`PIO_FONTX', `0x00004b6c') +define(`PIO_FONTRESET', `0x00004b6d') +define(`GIO_CMAP', `0x00004b70') +define(`PIO_CMAP', `0x00004b71') +define(`KDFONTOP', `0x00004b72') +define(`KDGKBDIACRUC', `0x00004bfa') +define(`KDSKBDIACRUC', `0x00004bfb') +define(`LOOP_SET_FD', `0x00004c00') +define(`LOOP_CLR_FD', `0x00004c01') +define(`LOOP_SET_STATUS', `0x00004c02') +define(`LOOP_GET_STATUS', `0x00004c03') +define(`LOOP_SET_STATUS64', `0x00004c04') +define(`LOOP_GET_STATUS64', `0x00004c05') +define(`LOOP_CHANGE_FD', `0x00004c06') +define(`LOOP_SET_CAPACITY', `0x00004c07') +define(`LOOP_CTL_ADD', `0x00004c80') +define(`LOOP_CTL_REMOVE', `0x00004c81') +define(`LOOP_CTL_GET_FREE', `0x00004c82') +define(`MTDFILEMODE', `0x00004d13') +define(`NVME_IOCTL_ID', `0x00004e40') +define(`UBI_IOCVOLRMBLK', `0x00004f08') +define(`OMAPFB_SYNC_GFX', `0x00004f25') +define(`OMAPFB_VSYNC', `0x00004f26') +define(`OMAPFB_WAITFORVSYNC', `0x00004f39') +define(`OMAPFB_WAITFORGO', `0x00004f3c') +define(`SNDCTL_DSP_RESET', `0x00005000') +define(`SNDCTL_DSP_SYNC', `0x00005001') +define(`SNDCTL_DSP_POST', `0x00005008') +define(`SNDCTL_DSP_NONBLOCK', `0x0000500e') +define(`SNDCTL_DSP_SETSYNCRO', `0x00005015') +define(`SNDCTL_DSP_SETDUPLEX', `0x00005016') +define(`SNDCTL_SEQ_RESET', `0x00005100') +define(`SNDCTL_SEQ_SYNC', `0x00005101') +define(`SNDCTL_SEQ_PANIC', `0x00005111') +define(`RFKILL_IOCTL_NOINPUT', `0x00005201') +define(`RNDZAPENTCNT', `0x00005204') +define(`RNDCLEARPOOL', `0x00005206') +define(`CDROMPAUSE', `0x00005301') +define(`CDROMRESUME', `0x00005302') +define(`CDROMPLAYMSF', `0x00005303') +define(`CDROMPLAYTRKIND', `0x00005304') +define(`CDROMREADTOCHDR', `0x00005305') +define(`CDROMREADTOCENTRY', `0x00005306') +define(`CDROMSTOP', `0x00005307') +define(`CDROMSTART', `0x00005308') +define(`CDROMEJECT', `0x00005309') +define(`CDROMVOLCTRL', `0x0000530a') +define(`CDROMSUBCHNL', `0x0000530b') +define(`CDROMREADMODE2', `0x0000530c') +define(`CDROMREADMODE1', `0x0000530d') +define(`CDROMREADAUDIO', `0x0000530e') +define(`CDROMEJECT_SW', `0x0000530f') +define(`CDROMMULTISESSION', `0x00005310') +define(`CDROM_GET_MCN', `0x00005311') +define(`CDROMRESET', `0x00005312') +define(`CDROMVOLREAD', `0x00005313') +define(`CDROMREADRAW', `0x00005314') +define(`CDROMREADCOOKED', `0x00005315') +define(`CDROMSEEK', `0x00005316') +define(`CDROMPLAYBLK', `0x00005317') +define(`CDROMREADALL', `0x00005318') +define(`CDROMCLOSETRAY', `0x00005319') +define(`CDROMGETSPINDOWN', `0x0000531d') +define(`CDROMSETSPINDOWN', `0x0000531e') +define(`CDROM_SET_OPTIONS', `0x00005320') +define(`CDROM_CLEAR_OPTIONS', `0x00005321') +define(`CDROM_SELECT_SPEED', `0x00005322') +define(`CDROM_SELECT_DISC', `0x00005323') +define(`CDROM_MEDIA_CHANGED', `0x00005325') +define(`CDROM_DRIVE_STATUS', `0x00005326') +define(`CDROM_DISC_STATUS', `0x00005327') +define(`CDROM_CHANGER_NSLOTS', `0x00005328') +define(`CDROM_LOCKDOOR', `0x00005329') +define(`CDROM_DEBUG', `0x00005330') +define(`CDROM_GET_CAPABILITY', `0x00005331') +define(`SCSI_IOCTL_DOORLOCK', `0x00005380') +define(`SCSI_IOCTL_DOORUNLOCK', `0x00005381') +define(`CDROMAUDIOBUFSIZ', `0x00005382') +define(`SCSI_IOCTL_GET_IDLUN', `0x00005382') +define(`SCSI_IOCTL_PROBE_HOST', `0x00005385') +define(`SCSI_IOCTL_GET_BUS_NUMBER', `0x00005386') +define(`SCSI_IOCTL_GET_PCI', `0x00005387') +define(`DVD_READ_STRUCT', `0x00005390') +define(`DVD_WRITE_STRUCT', `0x00005391') +define(`DVD_AUTH', `0x00005392') +define(`CDROM_SEND_PACKET', `0x00005393') +define(`CDROM_NEXT_WRITABLE', `0x00005394') +define(`CDROM_LAST_WRITTEN', `0x00005395') +define(`TCGETS', ifelse(target_arch, mips, 0x0000540d, 0x00005401)) +define(`SNDCTL_TMR_START', `0x00005402') +define(`TCSETS', `0x00005402') +define(`SNDCTL_TMR_STOP', `0x00005403') +define(`TCSETSW', `0x00005403') +define(`SNDCTL_TMR_CONTINUE', `0x00005404') +define(`TCSETSF', `0x00005404') +define(`TCGETA', `0x00005405') +define(`TCSETA', `0x00005406') +define(`TCSETAW', `0x00005407') +define(`TCSETAF', `0x00005408') +define(`TCSBRK', `0x00005409') +define(`TCXONC', `0x0000540a') +define(`TCFLSH', `0x0000540b') +define(`TIOCEXCL', `0x0000540c') +define(`TIOCNXCL', `0x0000540d') +define(`TIOCSCTTY', `0x0000540e') +define(`TIOCGPGRP', `0x0000540f') +define(`TIOCSPGRP', `0x00005410') +define(`TIOCOUTQ', ifelse(target_arch, mips, 0x00007472, 0x00005411)) +define(`TIOCSTI', `0x00005412') +define(`TIOCGWINSZ', ifelse(target_arch, mips, 0x80087468, 0x00005413)) +define(`TIOCSWINSZ', ifelse(target_arch, mips, 0x40087467, 0x00005414)) +define(`TIOCMGET', `0x00005415') +define(`TIOCMBIS', `0x00005416') +define(`TIOCMBIC', `0x00005417') +define(`TIOCMSET', `0x00005418') +define(`TIOCGSOFTCAR', `0x00005419') +define(`TIOCSSOFTCAR', `0x0000541a') +define(`FIONREAD', ifelse(target_arch, mips, 0x0000467f, 0x0000541b)) +define(`TIOCLINUX', `0x0000541c') +define(`TIOCCONS', `0x0000541d') +define(`TIOCGSERIAL', `0x0000541e') +define(`TIOCSSERIAL', `0x0000541f') +define(`TIOCPKT', `0x00005420') +define(`FIONBIO', `0x00005421') +define(`TIOCNOTTY', `0x00005422') +define(`TIOCSETD', `0x00005423') +define(`TIOCGETD', `0x00005424') +define(`TCSBRKP', `0x00005425') +define(`TIOCSBRK', `0x00005427') +define(`TIOCCBRK', `0x00005428') +define(`TIOCGSID', `0x00005429') +define(`TIOCGRS485', `0x0000542e') +define(`TIOCSRS485', `0x0000542f') +define(`TCGETX', `0x00005432') +define(`TCSETX', `0x00005433') +define(`TCSETXF', `0x00005434') +define(`TCSETXW', `0x00005435') +define(`TIOCVHANGUP', `0x00005437') +define(`FIONCLEX', `0x00005450') +define(`FIOCLEX', ifelse(target_arch, mips, 0x00006601, 0x00005451)) +define(`FIOASYNC', `0x00005452') +define(`TIOCSERCONFIG', `0x00005453') +define(`TIOCSERGWILD', `0x00005454') +define(`TIOCSERSWILD', `0x00005455') +define(`TIOCGLCKTRMIOS', `0x00005456') +define(`TIOCSLCKTRMIOS', `0x00005457') +define(`TIOCSERGSTRUCT', `0x00005458') +define(`TIOCSERGETLSR', `0x00005459') +define(`TIOCSERGETMULTI', `0x0000545a') +define(`TIOCSERSETMULTI', `0x0000545b') +define(`TIOCMIWAIT', `0x0000545c') +define(`TIOCGICOUNT', `0x0000545d') +define(`FIOQSIZE', `0x00005460') +define(`SNDRV_TIMER_IOCTL_START', `0x000054a0') +define(`SNDRV_TIMER_IOCTL_STOP', `0x000054a1') +define(`SNDRV_TIMER_IOCTL_CONTINUE', `0x000054a2') +define(`SNDRV_TIMER_IOCTL_PAUSE', `0x000054a3') +define(`UI_DEV_CREATE', `0x00005501') +define(`UI_DEV_DESTROY', `0x00005502') +define(`USBDEVFS_DISCARDURB', `0x0000550b') +define(`USBDEVFS_RESET', `0x00005514') +define(`USBDEVFS_DISCONNECT', `0x00005516') +define(`USBDEVFS_CONNECT', `0x00005517') +define(`VT_OPENQRY', `0x00005600') +define(`VIDIOC_RESERVED', `0x00005601') +define(`VT_GETMODE', `0x00005601') +define(`VT_SETMODE', `0x00005602') +define(`VT_GETSTATE', `0x00005603') +define(`VT_SENDSIG', `0x00005604') +define(`VT_RELDISP', `0x00005605') +define(`VT_ACTIVATE', `0x00005606') +define(`VT_WAITACTIVE', `0x00005607') +define(`VT_DISALLOCATE', `0x00005608') +define(`VT_RESIZE', `0x00005609') +define(`VT_RESIZEX', `0x0000560a') +define(`VT_LOCKSWITCH', `0x0000560b') +define(`VT_UNLOCKSWITCH', `0x0000560c') +define(`VT_GETHIFONTMASK', `0x0000560d') +define(`VT_WAITEVENT', `0x0000560e') +define(`VT_SETACTIVATE', `0x0000560f') +define(`VIDIOC_LOG_STATUS', `0x00005646') +define(`ADV7842_CMD_RAM_TEST', `0x000056c0') +define(`USBTMC_IOCTL_INDICATOR_PULSE', `0x00005b01') +define(`USBTMC_IOCTL_CLEAR', `0x00005b02') +define(`USBTMC_IOCTL_ABORT_BULK_OUT', `0x00005b03') +define(`USBTMC_IOCTL_ABORT_BULK_IN', `0x00005b04') +define(`USBTMC_IOCTL_CLEAR_OUT_HALT', `0x00005b06') +define(`USBTMC_IOCTL_CLEAR_IN_HALT', `0x00005b07') +define(`ANDROID_ALARM_WAIT', `0x00006101') +define(`NS_ADJBUFLEV', `0x00006163') +define(`SIOCSIFATMTCP', `0x00006180') +define(`ATMTCP_CREATE', `0x0000618e') +define(`ATMTCP_REMOVE', `0x0000618f') +define(`ATMLEC_CTRL', `0x000061d0') +define(`ATMLEC_DATA', `0x000061d1') +define(`ATMLEC_MCAST', `0x000061d2') +define(`ATMMPC_CTRL', `0x000061d8') +define(`ATMMPC_DATA', `0x000061d9') +define(`SIOCMKCLIP', `0x000061e0') +define(`ATMARPD_CTRL', `0x000061e1') +define(`ATMARP_MKIP', `0x000061e2') +define(`ATMARP_SETENTRY', `0x000061e3') +define(`ATMARP_ENCAP', `0x000061e5') +define(`ATMSIGD_CTRL', `0x000061f0') +define(`BT819_FIFO_RESET_LOW', `0x00006200') +define(`BT819_FIFO_RESET_HIGH', `0x00006201') +define(`CM_IOCSRDR', `0x00006303') +define(`CM_IOCARDOFF', `0x00006304') +define(`BC_REGISTER_LOOPER', `0x0000630b') +define(`BC_ENTER_LOOPER', `0x0000630c') +define(`BC_EXIT_LOOPER', `0x0000630d') +define(`CHIOINITELEM', `0x00006311') +define(`DRM_IOCTL_SET_MASTER', `0x0000641e') +define(`DRM_IOCTL_DROP_MASTER', `0x0000641f') +define(`DRM_IOCTL_AGP_ACQUIRE', `0x00006430') +define(`DRM_IOCTL_AGP_RELEASE', `0x00006431') +define(`DRM_IOCTL_I915_FLUSH', `0x00006441') +define(`DRM_IOCTL_R128_CCE_START', `0x00006441') +define(`DRM_IOCTL_RADEON_CP_START', `0x00006441') +define(`DRM_IOCTL_I915_FLIP', `0x00006442') +define(`DRM_IOCTL_MGA_RESET', `0x00006442') +define(`DRM_IOCTL_I810_FLUSH', `0x00006443') +define(`DRM_IOCTL_MGA_SWAP', `0x00006443') +define(`DRM_IOCTL_R128_CCE_RESET', `0x00006443') +define(`DRM_IOCTL_RADEON_CP_RESET', `0x00006443') +define(`DRM_IOCTL_I810_GETAGE', `0x00006444') +define(`DRM_IOCTL_R128_CCE_IDLE', `0x00006444') +define(`DRM_IOCTL_RADEON_CP_IDLE', `0x00006444') +define(`DRM_IOCTL_RADEON_RESET', `0x00006445') +define(`DRM_IOCTL_I810_SWAP', `0x00006446') +define(`DRM_IOCTL_R128_RESET', `0x00006446') +define(`DRM_IOCTL_R128_SWAP', `0x00006447') +define(`DRM_IOCTL_RADEON_SWAP', `0x00006447') +define(`DRM_IOCTL_I810_DOCOPY', `0x00006448') +define(`DRM_IOCTL_VIA_FLUSH', `0x00006449') +define(`DRM_IOCTL_I810_FSTATUS', `0x0000644a') +define(`DRM_IOCTL_I810_OV0FLIP', `0x0000644b') +define(`DRM_IOCTL_I810_RSTATUS', `0x0000644d') +define(`DRM_IOCTL_I810_FLIP', `0x0000644e') +define(`DRM_IOCTL_RADEON_FLIP', `0x00006452') +define(`DRM_IOCTL_R128_FLIP', `0x00006453') +define(`DRM_IOCTL_I915_GEM_THROTTLE', `0x00006458') +define(`DRM_IOCTL_RADEON_CP_RESUME', `0x00006458') +define(`DRM_IOCTL_I915_GEM_ENTERVT', `0x00006459') +define(`DRM_IOCTL_I915_GEM_LEAVEVT', `0x0000645a') +define(`S5P_FIMC_TX_END_NOTIFY', `0x00006500') +define(`FUNCTIONFS_FIFO_STATUS', `0x00006701') +define(`GADGETFS_FIFO_STATUS', `0x00006701') +define(`FUNCTIONFS_FIFO_FLUSH', `0x00006702') +define(`GADGETFS_FIFO_FLUSH', `0x00006702') +define(`FUNCTIONFS_CLEAR_HALT', `0x00006703') +define(`GADGETFS_CLEAR_HALT', `0x00006703') +define(`FUNCTIONFS_INTERFACE_REVMAP', `0x00006780') +define(`FUNCTIONFS_ENDPOINT_REVMAP', `0x00006781') +define(`HPET_IE_ON', `0x00006801') +define(`HPET_IE_OFF', `0x00006802') +define(`HPET_EPI', `0x00006804') +define(`HPET_DPI', `0x00006805') +define(`LIRC_NOTIFY_DECODE', `0x00006920') +define(`LIRC_SETUP_START', `0x00006921') +define(`LIRC_SETUP_END', `0x00006922') +define(`KYRO_IOCTL_OVERLAY_CREATE', `0x00006b00') +define(`KYRO_IOCTL_OVERLAY_VIEWPORT_SET', `0x00006b01') +define(`KYRO_IOCTL_SET_VIDEO_MODE', `0x00006b02') +define(`KYRO_IOCTL_UVSTRIDE', `0x00006b03') +define(`KYRO_IOCTL_OVERLAY_OFFSET', `0x00006b04') +define(`KYRO_IOCTL_STRIDE', `0x00006b05') +define(`HSC_RESET', `0x00006b10') +define(`HSC_SET_PM', `0x00006b11') +define(`HSC_SEND_BREAK', `0x00006b12') +define(`MMTIMER_GETOFFSET', `0x00006d00') +define(`MGSL_IOCSTXIDLE', `0x00006d02') +define(`MGSL_IOCGTXIDLE', `0x00006d03') +define(`MGSL_IOCTXENABLE', `0x00006d04') +define(`MMTIMER_GETBITS', `0x00006d04') +define(`MGSL_IOCRXENABLE', `0x00006d05') +define(`MGSL_IOCTXABORT', `0x00006d06') +define(`MMTIMER_MMAPAVAIL', `0x00006d06') +define(`MGSL_IOCGSTATS', `0x00006d07') +define(`MGSL_IOCLOOPTXDONE', `0x00006d09') +define(`MGSL_IOCSIF', `0x00006d0a') +define(`MGSL_IOCGIF', `0x00006d0b') +define(`MGSL_IOCCLRMODCOUNT', `0x00006d0f') +define(`MGSL_IOCSXSYNC', `0x00006d13') +define(`MGSL_IOCGXSYNC', `0x00006d14') +define(`MGSL_IOCSXCTRL', `0x00006d15') +define(`MGSL_IOCGXCTRL', `0x00006d16') +define(`NCP_IOC_CONN_LOGGED_IN', `0x00006e03') +define(`AUDIO_STOP', `0x00006f01') +define(`AUDIO_PLAY', `0x00006f02') +define(`AUDIO_PAUSE', `0x00006f03') +define(`AUDIO_CONTINUE', `0x00006f04') +define(`AUDIO_SELECT_SOURCE', `0x00006f05') +define(`AUDIO_SET_MUTE', `0x00006f06') +define(`AUDIO_SET_AV_SYNC', `0x00006f07') +define(`AUDIO_SET_BYPASS_MODE', `0x00006f08') +define(`AUDIO_CHANNEL_SELECT', `0x00006f09') +define(`AUDIO_CLEAR_BUFFER', `0x00006f0c') +define(`AUDIO_SET_ID', `0x00006f0d') +define(`AUDIO_SET_STREAMTYPE', `0x00006f0f') +define(`AUDIO_SET_EXT_ID', `0x00006f10') +define(`AUDIO_BILINGUAL_CHANNEL_SELECT', `0x00006f14') +define(`VIDEO_STOP', `0x00006f15') +define(`VIDEO_PLAY', `0x00006f16') +define(`VIDEO_FREEZE', `0x00006f17') +define(`VIDEO_CONTINUE', `0x00006f18') +define(`VIDEO_SELECT_SOURCE', `0x00006f19') +define(`VIDEO_SET_BLANK', `0x00006f1a') +define(`VIDEO_SET_DISPLAY_FORMAT', `0x00006f1d') +define(`VIDEO_FAST_FORWARD', `0x00006f1f') +define(`VIDEO_SLOWMOTION', `0x00006f20') +define(`VIDEO_CLEAR_BUFFER', `0x00006f22') +define(`VIDEO_SET_ID', `0x00006f23') +define(`VIDEO_SET_STREAMTYPE', `0x00006f24') +define(`VIDEO_SET_FORMAT', `0x00006f25') +define(`VIDEO_SET_SYSTEM', `0x00006f26') +define(`DMX_START', `0x00006f29') +define(`DMX_STOP', `0x00006f2a') +define(`DMX_SET_BUFFER_SIZE', `0x00006f2d') +define(`NET_REMOVE_IF', `0x00006f35') +define(`VIDEO_SET_ATTRIBUTES', `0x00006f35') +define(`FE_DISEQC_RESET_OVERLOAD', `0x00006f3e') +define(`FE_DISEQC_SEND_BURST', `0x00006f41') +define(`FE_SET_TONE', `0x00006f42') +define(`FE_SET_VOLTAGE', `0x00006f43') +define(`FE_ENABLE_HIGH_LNB_VOLTAGE', `0x00006f44') +define(`FE_DISHNETWORK_SEND_LEGACY_CMD', `0x00006f50') +define(`FE_SET_FRONTEND_TUNE_MODE', `0x00006f51') +define(`CA_RESET', `0x00006f80') +define(`RTC_AIE_ON', `0x00007001') +define(`RTC_AIE_OFF', `0x00007002') +define(`RTC_UIE_ON', `0x00007003') +define(`PHN_NOT_OH', `0x00007004') +define(`RTC_UIE_OFF', `0x00007004') +define(`RTC_PIE_ON', `0x00007005') +define(`RTC_PIE_OFF', `0x00007006') +define(`RTC_WIE_ON', `0x0000700f') +define(`RTC_WIE_OFF', `0x00007010') +define(`RTC_VL_CLR', `0x00007014') +define(`NVRAM_INIT', `0x00007040') +define(`NVRAM_SETCKS', `0x00007041') +define(`PPCLAIM', `0x0000708b') +define(`PPRELEASE', `0x0000708c') +define(`PPYIELD', `0x0000708d') +define(`PPEXCL', `0x0000708f') +define(`PHONE_CAPABILITIES', `0x00007180') +define(`PHONE_RING', `0x00007183') +define(`PHONE_HOOKSTATE', `0x00007184') +define(`OLD_PHONE_RING_START', `0x00007187') +define(`PHONE_RING_STOP', `0x00007188') +define(`PHONE_REC_START', `0x0000718a') +define(`PHONE_REC_STOP', `0x0000718b') +define(`PHONE_REC_LEVEL', `0x0000718f') +define(`PHONE_PLAY_START', `0x00007191') +define(`PHONE_PLAY_STOP', `0x00007192') +define(`PHONE_PLAY_LEVEL', `0x00007195') +define(`PHONE_GET_TONE_ON_TIME', `0x0000719e') +define(`PHONE_GET_TONE_OFF_TIME', `0x0000719f') +define(`PHONE_GET_TONE_STATE', `0x000071a0') +define(`PHONE_BUSY', `0x000071a1') +define(`PHONE_RINGBACK', `0x000071a2') +define(`PHONE_DIALTONE', `0x000071a3') +define(`PHONE_CPT_STOP', `0x000071a4') +define(`PHONE_PSTN_GET_STATE', `0x000071a5') +define(`PHONE_PSTN_LINETEST', `0x000071a8') +define(`IXJCTL_DSP_RESET', `0x000071c0') +define(`IXJCTL_DSP_IDLE', `0x000071c5') +define(`IXJCTL_TESTRAM', `0x000071c6') +define(`IXJCTL_AEC_STOP', `0x000071cc') +define(`IXJCTL_AEC_GET_LEVEL', `0x000071cd') +define(`IXJCTL_PSTN_LINETEST', `0x000071d3') +define(`IXJCTL_PLAY_CID', `0x000071d7') +define(`IXJCTL_DRYBUFFER_CLEAR', `0x000071e7') +define(`BR_OK', `0x00007201') +define(`BR_DEAD_REPLY', `0x00007205') +define(`BR_TRANSACTION_COMPLETE', `0x00007206') +define(`BR_NOOP', `0x0000720c') +define(`BR_SPAWN_LOOPER', `0x0000720d') +define(`BR_FINISHED', `0x0000720e') +define(`BR_FAILED_REPLY', `0x00007211') +define(`MEYEIOC_STILLCAPT', `0x000076c4') +define(`ASHMEM_GET_SIZE', `0x00007704') +define(`ASHMEM_GET_PROT_MASK', `0x00007706') +define(`ASHMEM_GET_PIN_STATUS', `0x00007709') +define(`ASHMEM_PURGE_ALL_CACHES', `0x0000770a') +define(`FIOSETOWN', `0x00008901') +define(`SIOCSPGRP', `0x00008902') +define(`FIOGETOWN', `0x00008903') +define(`SIOCGPGRP', `0x00008904') +define(`SIOCATMARK', `0x00008905') +define(`SIOCGSTAMP', `0x00008906') +define(`SIOCGSTAMPNS', `0x00008907') +define(`SIOCADDRT', `0x0000890b') +define(`SIOCDELRT', `0x0000890c') +define(`SIOCRTMSG', `0x0000890d') +define(`SIOCGIFNAME', `0x00008910') +define(`SIOCSIFLINK', `0x00008911') +define(`SIOCGIFCONF', `0x00008912') +define(`SIOCGIFFLAGS', `0x00008913') +define(`SIOCSIFFLAGS', `0x00008914') +define(`SIOCGIFADDR', `0x00008915') +define(`SIOCSIFADDR', `0x00008916') +define(`SIOCGIFDSTADDR', `0x00008917') +define(`SIOCSIFDSTADDR', `0x00008918') +define(`SIOCGIFBRDADDR', `0x00008919') +define(`SIOCSIFBRDADDR', `0x0000891a') +define(`SIOCGIFNETMASK', `0x0000891b') +define(`SIOCSIFNETMASK', `0x0000891c') +define(`SIOCGIFMETRIC', `0x0000891d') +define(`SIOCSIFMETRIC', `0x0000891e') +define(`SIOCGIFMEM', `0x0000891f') +define(`SIOCSIFMEM', `0x00008920') +define(`SIOCGIFMTU', `0x00008921') +define(`SIOCSIFMTU', `0x00008922') +define(`SIOCSIFNAME', `0x00008923') +define(`SIOCSIFHWADDR', `0x00008924') +define(`SIOCGIFENCAP', `0x00008925') +define(`SIOCSIFENCAP', `0x00008926') +define(`SIOCGIFHWADDR', `0x00008927') +define(`SIOCGIFSLAVE', `0x00008929') +define(`SIOCSIFSLAVE', `0x00008930') +define(`SIOCADDMULTI', `0x00008931') +define(`SIOCDELMULTI', `0x00008932') +define(`SIOCGIFINDEX', `0x00008933') +define(`SIOCSIFPFLAGS', `0x00008934') +define(`SIOCGIFPFLAGS', `0x00008935') +define(`SIOCDIFADDR', `0x00008936') +define(`SIOCSIFHWBROADCAST', `0x00008937') +define(`SIOCGIFCOUNT', `0x00008938') +define(`SIOCKILLADDR', `0x00008939') +define(`SIOCGIFBR', `0x00008940') +define(`SIOCSIFBR', `0x00008941') +define(`SIOCGIFTXQLEN', `0x00008942') +define(`SIOCSIFTXQLEN', `0x00008943') +define(`SIOCETHTOOL', `0x00008946') +define(`SIOCGMIIPHY', `0x00008947') +define(`SIOCGMIIREG', `0x00008948') +define(`SIOCSMIIREG', `0x00008949') +define(`SIOCWANDEV', `0x0000894a') +define(`SIOCOUTQNSD', `0x0000894b') +define(`SIOCDARP', `0x00008953') +define(`SIOCGARP', `0x00008954') +define(`SIOCSARP', `0x00008955') +define(`SIOCDRARP', `0x00008960') +define(`SIOCGRARP', `0x00008961') +define(`SIOCSRARP', `0x00008962') +define(`SIOCGIFMAP', `0x00008970') +define(`SIOCSIFMAP', `0x00008971') +define(`SIOCADDDLCI', `0x00008980') +define(`SIOCDELDLCI', `0x00008981') +define(`SIOCGIFVLAN', `0x00008982') +define(`SIOCSIFVLAN', `0x00008983') +define(`SIOCBONDENSLAVE', `0x00008990') +define(`SIOCBONDRELEASE', `0x00008991') +define(`SIOCBONDSETHWADDR', `0x00008992') +define(`SIOCBONDSLAVEINFOQUERY', `0x00008993') +define(`SIOCBONDINFOQUERY', `0x00008994') +define(`SIOCBONDCHANGEACTIVE', `0x00008995') +define(`SIOCBRADDBR', `0x000089a0') +define(`SIOCBRDELBR', `0x000089a1') +define(`SIOCBRADDIF', `0x000089a2') +define(`SIOCBRDELIF', `0x000089a3') +define(`SIOCSHWTSTAMP', `0x000089b0') +define(`SIOCGHWTSTAMP', `0x000089b1') +define(`SIOCPROTOPRIVATE', `0x000089e0') +define(`SIOCPROTOPRIVATE_1', `0x000089e1') +define(`SIOCPROTOPRIVATE_2', `0x000089e2') +define(`SIOCPROTOPRIVATE_3', `0x000089e3') +define(`SIOCPROTOPRIVATE_4', `0x000089e4') +define(`SIOCPROTOPRIVATE_5', `0x000089e5') +define(`SIOCPROTOPRIVATE_6', `0x000089e6') +define(`SIOCPROTOPRIVATE_7', `0x000089e7') +define(`SIOCPROTOPRIVATE_8', `0x000089e8') +define(`SIOCPROTOPRIVATE_9', `0x000089e9') +define(`SIOCPROTOPRIVATE_A', `0x000089ea') +define(`SIOCPROTOPRIVATE_B', `0x000089eb') +define(`SIOCPROTOPRIVATE_C', `0x000089ec') +define(`SIOCPROTOPRIVATE_D', `0x000089ed') +define(`SIOCPROTOPRIVATE_E', `0x000089ee') +define(`SIOCPROTOPRIVLAST', `0x000089ef') +define(`SIOCDEVPRIVATE', `0x000089f0') +define(`SIOCDEVPRIVATE_1', `0x000089f1') +define(`SIOCDEVPRIVATE_2', `0x000089f2') +define(`SIOCDEVPRIVATE_3', `0x000089f3') +define(`SIOCDEVPRIVATE_4', `0x000089f4') +define(`SIOCDEVPRIVATE_5', `0x000089f5') +define(`SIOCDEVPRIVATE_6', `0x000089f6') +define(`SIOCDEVPRIVATE_7', `0x000089f7') +define(`SIOCDEVPRIVATE_8', `0x000089f8') +define(`SIOCDEVPRIVATE_9', `0x000089f9') +define(`SIOCDEVPRIVATE_A', `0x000089fa') +define(`SIOCDEVPRIVATE_B', `0x000089fb') +define(`SIOCDEVPRIVATE_C', `0x000089fc') +define(`SIOCDEVPRIVATE_D', `0x000089fd') +define(`SIOCDEVPRIVATE_E', `0x000089fe') +define(`SIOCDEVPRIVLAST', `0x000089ff') +define(`SIOCIWFIRST', `0x00008b00') +define(`SIOCSIWCOMMIT', `0x00008b00') +define(`SIOCGIWNAME', `0x00008b01') +define(`SIOCSIWNWID', `0x00008b02') +define(`SIOCGIWNWID', `0x00008b03') +define(`SIOCSIWFREQ', `0x00008b04') +define(`SIOCGIWFREQ', `0x00008b05') +define(`SIOCSIWMODE', `0x00008b06') +define(`SIOCGIWMODE', `0x00008b07') +define(`SIOCSIWSENS', `0x00008b08') +define(`SIOCGIWSENS', `0x00008b09') +define(`SIOCSIWRANGE', `0x00008b0a') +define(`SIOCGIWRANGE', `0x00008b0b') +define(`SIOCSIWPRIV', `0x00008b0c') +define(`SIOCGIWPRIV', `0x00008b0d') +define(`SIOCSIWSTATS', `0x00008b0e') +define(`SIOCGIWSTATS', `0x00008b0f') +define(`SIOCSIWSPY', `0x00008b10') +define(`SIOCGIWSPY', `0x00008b11') +define(`SIOCSIWTHRSPY', `0x00008b12') +define(`SIOCGIWTHRSPY', `0x00008b13') +define(`SIOCSIWAP', `0x00008b14') +define(`SIOCGIWAP', `0x00008b15') +define(`SIOCSIWMLME', `0x00008b16') +define(`SIOCGIWAPLIST', `0x00008b17') +define(`SIOCSIWSCAN', `0x00008b18') +define(`SIOCGIWSCAN', `0x00008b19') +define(`SIOCSIWESSID', `0x00008b1a') +define(`SIOCGIWESSID', `0x00008b1b') +define(`SIOCSIWNICKN', `0x00008b1c') +define(`SIOCGIWNICKN', `0x00008b1d') +define(`SIOCSIWRATE', `0x00008b20') +define(`SIOCGIWRATE', `0x00008b21') +define(`SIOCSIWRTS', `0x00008b22') +define(`SIOCGIWRTS', `0x00008b23') +define(`SIOCSIWFRAG', `0x00008b24') +define(`SIOCGIWFRAG', `0x00008b25') +define(`SIOCSIWTXPOW', `0x00008b26') +define(`SIOCGIWTXPOW', `0x00008b27') +define(`SIOCSIWRETRY', `0x00008b28') +define(`SIOCGIWRETRY', `0x00008b29') +define(`SIOCSIWENCODE', `0x00008b2a') +define(`SIOCGIWENCODE', `0x00008b2b') +define(`SIOCSIWPOWER', `0x00008b2c') +define(`SIOCGIWPOWER', `0x00008b2d') +define(`SIOCSIWGENIE', `0x00008b30') +define(`SIOCGIWGENIE', `0x00008b31') +define(`SIOCSIWAUTH', `0x00008b32') +define(`SIOCGIWAUTH', `0x00008b33') +define(`SIOCSIWENCODEEXT', `0x00008b34') +define(`SIOCGIWENCODEEXT', `0x00008b35') +define(`SIOCSIWPMKSA', `0x00008b36') +define(`SIOCIWFIRSTPRIV', `0x00008be0') +define(`SIOCIWFIRSTPRIV_01', `0x00008be1') +define(`SIOCIWFIRSTPRIV_02', `0x00008be2') +define(`SIOCIWFIRSTPRIV_03', `0x00008be3') +define(`SIOCIWFIRSTPRIV_04', `0x00008be4') +define(`SIOCIWFIRSTPRIV_05', `0x00008be5') +define(`SIOCIWFIRSTPRIV_06', `0x00008be6') +define(`SIOCIWFIRSTPRIV_07', `0x00008be7') +define(`SIOCIWFIRSTPRIV_08', `0x00008be8') +define(`SIOCIWFIRSTPRIV_09', `0x00008be9') +define(`SIOCIWFIRSTPRIV_0A', `0x00008bea') +define(`SIOCIWFIRSTPRIV_0B', `0x00008beb') +define(`SIOCIWFIRSTPRIV_0C', `0x00008bec') +define(`SIOCIWFIRSTPRIV_0D', `0x00008bed') +define(`SIOCIWFIRSTPRIV_0E', `0x00008bee') +define(`SIOCIWFIRSTPRIV_0F', `0x00008bef') +define(`SIOCIWFIRSTPRIV_10', `0x00008bf0') +define(`SIOCIWFIRSTPRIV_11', `0x00008bf1') +define(`SIOCIWFIRSTPRIV_12', `0x00008bf2') +define(`SIOCIWFIRSTPRIV_13', `0x00008bf3') +define(`SIOCIWFIRSTPRIV_14', `0x00008bf4') +define(`SIOCIWFIRSTPRIV_15', `0x00008bf5') +define(`SIOCIWFIRSTPRIV_16', `0x00008bf6') +define(`SIOCIWFIRSTPRIV_17', `0x00008bf7') +define(`SIOCIWFIRSTPRIV_18', `0x00008bf8') +define(`SIOCIWFIRSTPRIV_19', `0x00008bf9') +define(`SIOCIWFIRSTPRIV_1A', `0x00008bfa') +define(`SIOCIWFIRSTPRIV_1B', `0x00008bfb') +define(`SIOCIWFIRSTPRIV_1C', `0x00008bfc') +define(`SIOCIWFIRSTPRIV_1D', `0x00008bfd') +define(`SIOCIWFIRSTPRIV_1E', `0x00008bfe') +define(`SIOCIWLASTPRIV', `0x00008bff') +define(`AUTOFS_IOC_READY', `0x00009360') +define(`AUTOFS_IOC_FAIL', `0x00009361') +define(`AUTOFS_IOC_CATATONIC', `0x00009362') +define(`BTRFS_IOC_TRANS_START', `0x00009406') +define(`BTRFS_IOC_TRANS_END', `0x00009407') +define(`BTRFS_IOC_SYNC', `0x00009408') +define(`BTRFS_IOC_SCRUB_CANCEL', `0x0000941c') +define(`BTRFS_IOC_QUOTA_RESCAN_WAIT', `0x0000942e') +define(`NBD_SET_SOCK', `0x0000ab00') +define(`NBD_SET_BLKSIZE', `0x0000ab01') +define(`NBD_SET_SIZE', `0x0000ab02') +define(`NBD_DO_IT', `0x0000ab03') +define(`NBD_CLEAR_SOCK', `0x0000ab04') +define(`NBD_CLEAR_QUE', `0x0000ab05') +define(`NBD_PRINT_DEBUG', `0x0000ab06') +define(`NBD_SET_SIZE_BLOCKS', `0x0000ab07') +define(`NBD_DISCONNECT', `0x0000ab08') +define(`NBD_SET_TIMEOUT', `0x0000ab09') +define(`NBD_SET_FLAGS', `0x0000ab0a') +define(`RAW_SETBIND', `0x0000ac00') +define(`RAW_GETBIND', `0x0000ac01') +define(`KVM_GET_API_VERSION', `0x0000ae00') +define(`KVM_CREATE_VM', `0x0000ae01') +define(`LOGGER_GET_LOG_BUF_SIZE', `0x0000ae01') +define(`LOGGER_GET_LOG_LEN', `0x0000ae02') +define(`KVM_CHECK_EXTENSION', `0x0000ae03') +define(`LOGGER_GET_NEXT_ENTRY_LEN', `0x0000ae03') +define(`KVM_GET_VCPU_MMAP_SIZE', `0x0000ae04') +define(`LOGGER_FLUSH_LOG', `0x0000ae04') +define(`LOGGER_GET_VERSION', `0x0000ae05') +define(`KVM_S390_ENABLE_SIE', `0x0000ae06') +define(`LOGGER_SET_VERSION', `0x0000ae06') +define(`KVM_CREATE_VCPU', `0x0000ae41') +define(`KVM_SET_NR_MMU_PAGES', `0x0000ae44') +define(`KVM_GET_NR_MMU_PAGES', `0x0000ae45') +define(`KVM_SET_TSS_ADDR', `0x0000ae47') +define(`KVM_CREATE_IRQCHIP', `0x0000ae60') +define(`KVM_CREATE_PIT', `0x0000ae64') +define(`KVM_REINJECT_CONTROL', `0x0000ae71') +define(`KVM_SET_BOOT_CPU_ID', `0x0000ae78') +define(`KVM_RUN', `0x0000ae80') +define(`KVM_S390_INITIAL_RESET', `0x0000ae97') +define(`KVM_NMI', `0x0000ae9a') +define(`KVM_SET_TSC_KHZ', `0x0000aea2') +define(`KVM_GET_TSC_KHZ', `0x0000aea3') +define(`KVM_KVMCLOCK_CTRL', `0x0000aead') +define(`VHOST_SET_OWNER', `0x0000af01') +define(`VHOST_RESET_OWNER', `0x0000af02') +define(`PPPOEIOCDFWD', `0x0000b101') +define(`IOCTL_EVTCHN_BIND_VIRQ', `0x00044500') +define(`IOCTL_EVTCHN_BIND_UNBOUND_PORT', `0x00044502') +define(`IOCTL_EVTCHN_UNBIND', `0x00044503') +define(`IOCTL_EVTCHN_NOTIFY', `0x00044504') +define(`IOCTL_EVTCHN_BIND_INTERDOMAIN', `0x00084501') +define(`SNDRV_SEQ_IOCTL_SET_QUEUE_OWNER', `0x40005344') +define(`MFB_SET_ALPHA', `0x40014d00') +define(`MFB_SET_GAMMA', `0x40014d01') +define(`MFB_SET_BRIGHTNESS', `0x40014d03') +define(`SPI_IOC_WR_MODE', `0x40016b01') +define(`SPI_IOC_WR_LSB_FIRST', `0x40016b02') +define(`SPI_IOC_WR_BITS_PER_WORD', `0x40016b03') +define(`PPWCONTROL', `0x40017084') +define(`PPWDATA', `0x40017086') +define(`PPWCTLONIRQ', `0x40017092') +define(`PHONE_MAXRINGS', `0x40017185') +define(`PHONE_PLAY_TONE', `0x4001719b') +define(`SONYPI_IOCSBRT', `0x40017600') +define(`SONYPI_IOCSBLUE', `0x40017609') +define(`SONYPI_IOCSFAN', `0x4001760b') +define(`ATM_SETBACKEND', `0x400261f2') +define(`ATM_NEWBACKENDIF', `0x400261f3') +define(`NCP_IOC_GETMOUNTUID', `0x40026e02') +define(`AUDIO_SET_ATTRIBUTES', `0x40026f11') +define(`DMX_ADD_PID', `0x40026f33') +define(`DMX_REMOVE_PID', `0x40026f34') +define(`PPFCONTROL', `0x4002708e') +define(`PHONE_RING_CADENCE', `0x40027186') +define(`SET_BITMAP_FILE', `0x4004092b') +define(`IB_USER_MAD_UNREGISTER_AGENT', `0x40041b02') +define(`FW_CDEV_IOC_DEALLOCATE', `0x40042303') +define(`FW_CDEV_IOC_INITIATE_BUS_RESET', `0x40042305') +define(`FW_CDEV_IOC_REMOVE_DESCRIPTOR', `0x40042307') +define(`FW_CDEV_IOC_STOP_ISO', `0x4004230b') +define(`FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE', `0x4004230e') +define(`FW_CDEV_IOC_FLUSH_ISO', `0x40042318') +define(`BLKI2OSRSTRAT', `0x40043203') +define(`BLKI2OSWSTRAT', `0x40043204') +define(`SNAPSHOT_CREATE_IMAGE', `0x40043311') +define(`PTP_ENABLE_PPS', `0x40043d04') +define(`SYNC_IOC_WAIT', `0x40043e00') +define(`SNDRV_PCM_IOCTL_TSTAMP', `0x40044102') +define(`SNDRV_PCM_IOCTL_TTSTAMP', `0x40044103') +define(`AGPIOC_DEALLOCATE', `0x40044107') +define(`SNDRV_PCM_IOCTL_PAUSE', `0x40044145') +define(`SNDRV_PCM_IOCTL_LINK', `0x40044160') +define(`CCISS_REGNEWDISK', `0x4004420d') +define(`EVIOCRMFF', `0x40044581') +define(`EVIOCGRAB', `0x40044590') +define(`EVIOCREVOKE', `0x40044591') +define(`EVIOCSCLOCKID', `0x400445a0') +define(`FBIOPUT_CONTRAST', `0x40044602') +define(`FBIPUT_BRIGHTNESS', `0x40044603') +define(`FBIPUT_COLOR', `0x40044606') +define(`FBIPUT_HSYNC', `0x40044609') +define(`FBIPUT_VSYNC', `0x4004460a') +define(`FBIO_WAITFORVSYNC', `0x40044620') +define(`SSTFB_SET_VGAPASS', `0x400446dd') +define(`HIDIOCSFLAG', `0x4004480f') +define(`SNDRV_EMU10K1_IOCTL_TRAM_SETUP', `0x40044820') +define(`SNDRV_DM_FM_IOCTL_SET_MODE', `0x40044825') +define(`SNDRV_DM_FM_IOCTL_SET_CONNECTION', `0x40044826') +define(`SNDRV_EMU10K1_IOCTL_SINGLE_STEP', `0x40044883') +define(`SNDRV_EMUX_IOCTL_MEM_AVAIL', `0x40044884') +define(`HCIDEVUP', `0x400448c9') +define(`HCIDEVDOWN', `0x400448ca') +define(`HCIDEVRESET', `0x400448cb') +define(`HCIDEVRESTAT', `0x400448cc') +define(`HCISETRAW', `0x400448dc') +define(`HCISETSCAN', `0x400448dd') +define(`HCISETAUTH', `0x400448de') +define(`HCISETENCRYPT', `0x400448df') +define(`HCISETPTYPE', `0x400448e0') +define(`HCISETLINKPOL', `0x400448e1') +define(`HCISETLINKMODE', `0x400448e2') +define(`HCISETACLMTU', `0x400448e3') +define(`HCISETSCOMTU', `0x400448e4') +define(`HCIBLOCKADDR', `0x400448e6') +define(`HCIUNBLOCKADDR', `0x400448e7') +define(`MFB_SET_PIXFMT', `0x40044d08') +define(`OTPGETREGIONCOUNT', `0x40044d0e') +define(`UBI_IOCEBER', `0x40044f01') +define(`UBI_IOCEBCH', `0x40044f02') +define(`UBI_IOCEBUNMAP', `0x40044f04') +define(`OMAPFB_MIRROR', `0x40044f1f') +define(`OMAPFB_SET_UPDATE_MODE', `0x40044f28') +define(`OMAPFB_GET_UPDATE_MODE', `0x40044f2b') +define(`OMAPFB_LCD_TEST', `0x40044f2d') +define(`OMAPFB_CTRL_TEST', `0x40044f2e') +define(`SNDCTL_DSP_SETTRIGGER', `0x40045010') +define(`SNDCTL_DSP_PROFILE', `0x40045017') +define(`SNDCTL_DSP_SETSPDIF', `0x40045042') +define(`SNDCTL_SEQ_PERCMODE', `0x40045106') +define(`SNDCTL_SEQ_TESTMIDI', `0x40045108') +define(`SNDCTL_SEQ_RESETSAMPLES', `0x40045109') +define(`SNDCTL_SEQ_THRESHOLD', `0x4004510d') +define(`SNDCTL_FM_4OP_ENABLE', `0x4004510f') +define(`RNDADDTOENTCNT', `0x40045201') +define(`SAA6588_CMD_CLOSE', `0x40045202') +define(`RFCOMMCREATEDEV', `0x400452c8') +define(`RFCOMMRELEASEDEV', `0x400452c9') +define(`RFCOMMSTEALDLC', `0x400452dc') +define(`SNDRV_TIMER_IOCTL_TREAD', `0x40045402') +define(`SNDCTL_TMR_METRONOME', `0x40045407') +define(`SNDCTL_TMR_SELECT', `0x40045408') +define(`TIOCSPTLCK', `0x40045431') +define(`TIOCSIG', `0x40045436') +define(`TUNSETNOCSUM', `0x400454c8') +define(`TUNSETDEBUG', `0x400454c9') +define(`TUNSETIFF', `0x400454ca') +define(`TUNSETPERSIST', `0x400454cb') +define(`TUNSETOWNER', `0x400454cc') +define(`TUNSETLINK', `0x400454cd') +define(`TUNSETGROUP', `0x400454ce') +define(`TUNSETOFFLOAD', `0x400454d0') +define(`TUNSETTXFILTER', `0x400454d1') +define(`TUNSETSNDBUF', `0x400454d4') +define(`TUNSETVNETHDRSZ', `0x400454d8') +define(`TUNSETQUEUE', `0x400454d9') +define(`TUNSETIFINDEX', `0x400454da') +define(`TUNSETVNETLE', `0x400454dc') +define(`USBDEVFS_REAPURB32', `0x4004550c') +define(`USBDEVFS_REAPURBNDELAY32', `0x4004550d') +define(`SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE', `0x40045532') +define(`SNDRV_CTL_IOCTL_RAWMIDI_PREFER_SUBDEVICE', `0x40045542') +define(`UI_SET_EVBIT', `0x40045564') +define(`UI_SET_KEYBIT', `0x40045565') +define(`UI_SET_RELBIT', `0x40045566') +define(`UI_SET_ABSBIT', `0x40045567') +define(`UI_SET_MSCBIT', `0x40045568') +define(`UI_SET_LEDBIT', `0x40045569') +define(`UI_SET_SNDBIT', `0x4004556a') +define(`UI_SET_FFBIT', `0x4004556b') +define(`UI_SET_SWBIT', `0x4004556d') +define(`UI_SET_PROPBIT', `0x4004556e') +define(`VIDIOC_OVERLAY', `0x4004560e') +define(`VIDIOC_STREAMON', `0x40045612') +define(`VIDIOC_STREAMOFF', `0x40045613') +define(`VIDIOC_S_PRIORITY', `0x40045644') +define(`IVTV_IOC_PASSTHROUGH_MODE', `0x400456c1') +define(`SW_SYNC_IOC_INC', `0x40045701') +define(`SNDRV_RAWMIDI_IOCTL_DROP', `0x40045730') +define(`SNDRV_RAWMIDI_IOCTL_DRAIN', `0x40045731') +define(`SONET_SETFRAMING', `0x40046115') +define(`ATM_SETSC', `0x400461f1') +define(`ATM_DROPPARTY', `0x400461f5') +define(`BINDER_SET_MAX_THREADS', `0x40046205') +define(`BINDER_SET_IDLE_PRIORITY', `0x40046206') +define(`BINDER_SET_CONTEXT_MGR', `0x40046207') +define(`BINDER_THREAD_EXIT', `0x40046208') +define(`BC_ACQUIRE_RESULT', `0x40046302') +define(`BC_INCREFS', `0x40046304') +define(`BC_ACQUIRE', `0x40046305') +define(`CHIOSPICKER', `0x40046305') +define(`BC_RELEASE', `0x40046306') +define(`BC_DECREFS', `0x40046307') +define(`DRM_IOCTL_AUTH_MAGIC', `0x40046411') +define(`DRM_IOCTL_I915_IRQ_WAIT', `0x40046445') +define(`DRM_IOCTL_MSM_GEM_CPU_FINI', `0x40046445') +define(`DRM_IOCTL_RADEON_FULLSCREEN', `0x40046446') +define(`DRM_IOCTL_MGA_SET_FENCE', `0x4004644a') +define(`DRM_IOCTL_I915_DESTROY_HEAP', `0x4004644c') +define(`DRM_IOCTL_I915_SET_VBLANK_PIPE', `0x4004644d') +define(`DRM_IOCTL_R128_FULLSCREEN', `0x40046450') +define(`DRM_IOCTL_RADEON_IRQ_WAIT', `0x40046457') +define(`DRM_IOCTL_RADEON_SURF_FREE', `0x4004645b') +define(`DRM_IOCTL_I915_GEM_SW_FINISH', `0x40046460') +define(`VIDIOC_INT_RESET', `0x40046466') +define(`DRM_IOCTL_NOUVEAU_GEM_CPU_FINI', `0x40046483') +define(`FS_IOC32_SETFLAGS', `0x40046602') +define(`LIRC_SET_SEND_MODE', `0x40046911') +define(`LIRC_SET_REC_MODE', `0x40046912') +define(`LIRC_SET_SEND_CARRIER', `0x40046913') +define(`LIRC_SET_REC_CARRIER', `0x40046914') +define(`LIRC_SET_SEND_DUTY_CYCLE', `0x40046915') +define(`LIRC_SET_REC_DUTY_CYCLE', `0x40046916') +define(`LIRC_SET_TRANSMITTER_MASK', `0x40046917') +define(`LIRC_SET_REC_TIMEOUT', `0x40046918') +define(`LIRC_SET_REC_TIMEOUT_REPORTS', `0x40046919') +define(`LIRC_SET_REC_FILTER_PULSE', `0x4004691a') +define(`LIRC_SET_REC_FILTER_SPACE', `0x4004691b') +define(`LIRC_SET_REC_FILTER', `0x4004691c') +define(`LIRC_SET_MEASURE_CARRIER_MODE', `0x4004691d') +define(`LIRC_SET_REC_DUTY_CYCLE_RANGE', `0x4004691e') +define(`IPMICTL_SET_MAINTENANCE_MODE_CMD', `0x4004691f') +define(`LIRC_SET_REC_CARRIER_RANGE', `0x4004691f') +define(`LIRC_SET_WIDEBAND_RECEIVER', `0x40046923') +define(`SPI_IOC_WR_MAX_SPEED_HZ', `0x40046b04') +define(`SPI_IOC_WR_MODE32', `0x40046b05') +define(`MSMFB_GRP_DISP', `0x40046d01') +define(`MSMFB_BLIT', `0x40046d02') +define(`NCP_IOC_SET_SIGN_WANTED', `0x40046e06') +define(`NCP_IOC_GETDENTRYTTL', `0x40046e0c') +define(`SISFB_SET_AUTOMAXIMIZE_OLD', `0x40046efa') +define(`UBI_IOCRMVOL', `0x40046f01') +define(`DMX_SET_SOURCE', `0x40046f31') +define(`UBI_IOCDET', `0x40046f41') +define(`PPSETMODE', `0x40047080') +define(`PPDATADIR', `0x40047090') +define(`PPNEGOT', `0x40047091') +define(`PPSETPHASE', `0x40047094') +define(`PPSETFLAGS', `0x4004709b') +define(`PHONE_REC_CODEC', `0x40047189') +define(`PHONE_REC_DEPTH', `0x4004718c') +define(`PHONE_FRAME', `0x4004718d') +define(`PHONE_REC_VOLUME', `0x4004718e') +define(`PHONE_PLAY_CODEC', `0x40047190') +define(`PHONE_PLAY_DEPTH', `0x40047193') +define(`PHONE_PLAY_VOLUME', `0x40047194') +define(`PHONE_DTMF_OOB', `0x40047199') +define(`PHONE_SET_TONE_ON_TIME', `0x4004719c') +define(`PHONE_SET_TONE_OFF_TIME', `0x4004719d') +define(`PHONE_PSTN_SET_STATE', `0x400471a4') +define(`PHONE_WINK_DURATION', `0x400471a6') +define(`PHONE_VAD', `0x400471a9') +define(`PHONE_WINK', `0x400471aa') +define(`IXJCTL_GET_FILTER_HIST', `0x400471c8') +define(`IXJCTL_AEC_START', `0x400471cb') +define(`IXJCTL_SET_LED', `0x400471ce') +define(`IXJCTL_MIXER', `0x400471cf') +define(`IXJCTL_DAA_COEFF_SET', `0x400471d0') +define(`IXJCTL_PORT', `0x400471d1') +define(`IXJCTL_DAA_AGAIN', `0x400471d2') +define(`IXJCTL_POTS_PSTN', `0x400471d5') +define(`PHONE_REC_VOLUME_LINEAR', `0x400471db') +define(`PHONE_PLAY_VOLUME_LINEAR', `0x400471dc') +define(`IXJCTL_HZ', `0x400471e0') +define(`IXJCTL_RATE', `0x400471e1') +define(`IXJCTL_DTMF_PRESCALE', `0x400471e8') +define(`IXJCTL_SC_RXG', `0x400471ea') +define(`IXJCTL_SC_TXG', `0x400471eb') +define(`IXJCTL_INTERCOM_START', `0x400471fd') +define(`IXJCTL_INTERCOM_STOP', `0x400471fe') +define(`FAT_IOCTL_SET_ATTRIBUTES', `0x40047211') +define(`V4L2_SUBDEV_IR_RX_NOTIFY', `0x40047600') +define(`V4L2_SUBDEV_IR_TX_NOTIFY', `0x40047601') +define(`FS_IOC32_SETVERSION', `0x40047602') +define(`MEYEIOC_QBUF_CAPT', `0x400476c2') +define(`OSIOCSNETADDR', `0x400489e0') +define(`SIOCSNETADDR', `0x400489e0') +define(`AUTOFS_IOC_EXPIRE_MULTI', `0x40049366') +define(`BTRFS_IOC_CLONE', `0x40049409') +define(`BTRFS_IOC_BALANCE_CTL', `0x40049421') +define(`KVM_INTERRUPT', `0x4004ae86') +define(`KVM_SET_SIGNAL_MASK', `0x4004ae8b') +define(`KVM_SET_MP_STATE', `0x4004ae99') +define(`VHOST_SET_LOG_FD', `0x4004af07') +define(`VHOST_SCSI_GET_ABI_VERSION', `0x4004af42') +define(`VHOST_SCSI_SET_EVENTS_MISSED', `0x4004af43') +define(`VHOST_SCSI_GET_EVENTS_MISSED', `0x4004af44') +define(`SISFB_SET_AUTOMAXIMIZE', `0x4004f303') +define(`SISFB_SET_TVPOSOFFSET', `0x4004f304') +define(`SISFB_SET_LOCK', `0x4004f306') +define(`GIGASET_BRKCHARS', `0x40064702') +define(`MEYEIOC_S_PARAMS', `0x400676c1') +define(`FE_DISEQC_SEND_MASTER_CMD', `0x40076f3f') +define(`BLKBSZSET', `0x40081271') +define(`FW_CDEV_IOC_RECEIVE_PHY_PACKETS', `0x40082316') +define(`PERF_EVENT_IOC_PERIOD', `0x40082404') +define(`PERF_EVENT_IOC_SET_FILTER', `0x40082406') +define(`FBIO_RADEON_SET_MIRROR', `0x40084004') +define(`AGPIOC_SETUP', `0x40084103') +define(`AGPIOC_RESERVE', `0x40084104') +define(`AGPIOC_PROTECT', `0x40084105') +define(`AGPIOC_BIND', `0x40084108') +define(`AGPIOC_UNBIND', `0x40084109') +define(`SNDRV_PCM_IOCTL_REWIND', `0x40084146') +define(`SNDRV_PCM_IOCTL_FORWARD', `0x40084149') +define(`PMU_IOC_SET_BACKLIGHT', `0x40084202') +define(`CCISS_SETINTINFO', `0x40084203') +define(`APEI_ERST_CLEAR_RECORD', `0x40084501') +define(`EVIOCSREP', `0x40084503') +define(`EVIOCSKEYCODE', `0x40084504') +define(`SNDRV_SB_CSP_IOCTL_START', `0x40084813') +define(`SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE', `0x40084842') +define(`MEMERASE', `0x40084d02') +define(`MFB_SET_AOID', `0x40084d04') +define(`MEMLOCK', `0x40084d05') +define(`MEMUNLOCK', `0x40084d06') +define(`MEMGETBADBLOCK', `0x40084d0b') +define(`MEMSETBADBLOCK', `0x40084d0c') +define(`UBI_IOCVOLUP', `0x40084f00') +define(`UBI_IOCEBMAP', `0x40084f03') +define(`OMAPFB_SETUP_MEM', `0x40084f37') +define(`OMAPFB_QUERY_MEM', `0x40084f38') +define(`OMAPFB_SET_TEARSYNC', `0x40084f3e') +define(`SNDCTL_SEQ_OUTOFBAND', `0x40085112') +define(`RNDADDENTROPY', `0x40085203') +define(`TFD_IOC_SET_TICKS', `0x40085400') +define(`USBDEVFS_REAPURB', `0x4008550c') +define(`USBDEVFS_REAPURBNDELAY', `0x4008550d') +define(`USBDEVFS_CONNECTINFO', `0x40085511') +define(`UI_SET_PHYS', `0x4008556c') +define(`VIDIOC_S_STD', `0x40085618') +define(`VPFE_CMD_S_CCDC_RAW_PARAMS', `0x400856c1') +define(`BINDER_SET_IDLE_TIMEOUT', `0x40086203') +define(`CM_IOCSPTS', `0x40086302') +define(`BC_FREE_BUFFER', `0x40086303') +define(`BC_ATTEMPT_ACQUIRE', `0x4008630a') +define(`BC_DEAD_BINDER_DONE', `0x40086310') +define(`CM_IOSDBGLVL', `0x400863fa') +define(`DRM_IOCTL_MODESET_CTL', `0x40086408') +define(`DRM_IOCTL_GEM_CLOSE', `0x40086409') +define(`DRM_IOCTL_CONTROL', `0x40086414') +define(`DRM_IOCTL_MOD_CTX', `0x40086422') +define(`DRM_IOCTL_SWITCH_CTX', `0x40086424') +define(`DRM_IOCTL_NEW_CTX', `0x40086425') +define(`DRM_IOCTL_LOCK', `0x4008642a') +define(`DRM_IOCTL_UNLOCK', `0x4008642b') +define(`DRM_IOCTL_FINISH', `0x4008642c') +define(`DRM_IOCTL_AGP_ENABLE', `0x40086432') +define(`DRM_IOCTL_MGA_FLUSH', `0x40086441') +define(`DRM_IOCTL_R128_CCE_STOP', `0x40086442') +define(`DRM_IOCTL_RADEON_CP_STOP', `0x40086442') +define(`DRM_IOCTL_SAVAGE_BCI_EVENT_WAIT', `0x40086443') +define(`DRM_IOCTL_OMAP_GEM_CPU_PREP', `0x40086444') +define(`DRM_IOCTL_QXL_CLIENTCAP', `0x40086445') +define(`DRM_IOCTL_I915_SETPARAM', `0x40086447') +define(`DRM_IOCTL_I915_FREE', `0x40086449') +define(`DRM_IOCTL_RADEON_STIPPLE', `0x4008644c') +define(`DRM_IOCTL_R128_STIPPLE', `0x4008644d') +define(`DRM_IOCTL_VIA_BLIT_SYNC', `0x4008644f') +define(`DRM_IOCTL_RADEON_FREE', `0x40086454') +define(`DRM_IOCTL_I915_GEM_UNPIN', `0x40086456') +define(`DRM_IOCTL_RADEON_GEM_WAIT_IDLE', `0x40086464') +define(`DRM_IOCTL_I915_GEM_CONTEXT_DESTROY', `0x4008646e') +define(`DRM_IOCTL_I915_GEM_SET_CACHING', `0x4008646f') +define(`DRM_IOCTL_NOUVEAU_GEM_CPU_PREP', `0x40086482') +define(`FS_IOC_SETFLAGS', `0x40086602') +define(`HPET_IRQFREQ', `0x40086806') +define(`MTIOCTOP', `0x40086d01') +define(`NCP_IOC_GETMOUNTUID2', `0x40086e02') +define(`NILFS_IOCTL_DELETE_CHECKPOINT', `0x40086e81') +define(`NILFS_IOCTL_RESIZE', `0x40086e8b') +define(`MATROXFB_SET_OUTPUT_CONNECTION', `0x40086ef8') +define(`MATROXFB_SET_OUTPUT_MODE', `0x40086efa') +define(`AUDIO_SET_MIXER', `0x40086f0e') +define(`VIDEO_SET_SPU', `0x40086f32') +define(`CA_SET_PID', `0x40086f87') +define(`PHN_SET_REG', `0x40087001') +define(`PHN_SET_REGS', `0x40087003') +define(`PHN_SETREG', `0x40087006') +define(`RTC_IRQP_SET', `0x4008700c') +define(`RTC_EPOCH_SET', `0x4008700e') +define(`PPS_SETPARAMS', `0x400870a2') +define(`PPS_KC_BIND', `0x400870a5') +define(`SPIOCSTYPE', `0x40087101') +define(`PHONE_CAPABILITIES_CHECK', `0x40087182') +define(`PHONE_RING_START', `0x40087187') +define(`IXJCTL_SET_FILTER', `0x400871c7') +define(`IXJCTL_INIT_TONE', `0x400871c9') +define(`IXJCTL_TONE_CADENCE', `0x400871ca') +define(`IXJCTL_FILTER_CADENCE', `0x400871d6') +define(`IXJCTL_CIDCW', `0x400871d9') +define(`IXJCTL_SET_FILTER_RAW', `0x400871dd') +define(`IXJCTL_SIGCTL', `0x400871e9') +define(`FS_IOC_SETVERSION', `0x40087602') +define(`ASHMEM_SET_SIZE', `0x40087703') +define(`ASHMEM_SET_PROT_MASK', `0x40087705') +define(`ASHMEM_PIN', `0x40087707') +define(`ASHMEM_UNPIN', `0x40087708') +define(`BTRFS_IOC_DEFAULT_SUBVOL', `0x40089413') +define(`BTRFS_IOC_WAIT_SYNC', `0x40089416') +define(`BTRFS_IOC_SUBVOL_SETFLAGS', `0x4008941a') +define(`KVM_SET_IDENTITY_MAP_ADDR', `0x4008ae48') +define(`KVM_S390_VCPU_FAULT', `0x4008ae52') +define(`KVM_IRQ_LINE', `0x4008ae61') +define(`KVM_SET_GSI_ROUTING', `0x4008ae6a') +define(`KVM_ASSIGN_SET_MSIX_NR', `0x4008ae73') +define(`KVM_SET_MSRS', `0x4008ae89') +define(`KVM_SET_CPUID', `0x4008ae8a') +define(`KVM_SET_CPUID2', `0x4008ae90') +define(`KVM_SET_VAPIC_ADDR', `0x4008ae93') +define(`KVM_S390_STORE_STATUS', `0x4008ae95') +define(`KVM_X86_SETUP_MCE', `0x4008ae9c') +define(`VHOST_SET_FEATURES', `0x4008af00') +define(`VHOST_SET_MEM_TABLE', `0x4008af03') +define(`VHOST_SET_LOG_BASE', `0x4008af04') +define(`VHOST_SET_VRING_NUM', `0x4008af10') +define(`VHOST_SET_VRING_BASE', `0x4008af12') +define(`VHOST_SET_VRING_KICK', `0x4008af20') +define(`VHOST_SET_VRING_CALL', `0x4008af21') +define(`VHOST_SET_VRING_ERR', `0x4008af22') +define(`VHOST_NET_SET_BACKEND', `0x4008af30') +define(`PPPOEIOCSFWD', `0x4008b100') +define(`IOW_WRITE', `0x4008c001') +define(`IOW_READ', `0x4008c002') +define(`REISERFS_IOC_UNPACK', `0x4008cd01') +define(`SNDRV_DM_FM_IOCTL_SET_PARAMS', `0x40094824') +define(`FDFMTTRK', `0x400c0248') +define(`RUN_ARRAY', `0x400c0930') +define(`SNAPSHOT_SET_SWAP_AREA', `0x400c330d') +define(`CAPI_REGISTER', `0x400c4301') +define(`HIDIOCGREPORT', `0x400c4807') +define(`HIDIOCSREPORT', `0x400c4808') +define(`SNDRV_DM_FM_IOCTL_PLAY_NOTE', `0x400c4822') +define(`MFB_SET_CHROMA_KEY', `0x400c4d01') +define(`OTPGETREGIONINFO', `0x400c4d0f') +define(`UI_END_FF_ERASE', `0x400c55cb') +define(`CHIOPOSITION', `0x400c6303') +define(`BC_REQUEST_DEATH_NOTIFICATION', `0x400c630e') +define(`BC_CLEAR_DEATH_NOTIFICATION', `0x400c630f') +define(`DRM_IOCTL_I810_VERTEX', `0x400c6441') +define(`DRM_IOCTL_I810_CLEAR', `0x400c6442') +define(`DRM_IOCTL_MGA_VERTEX', `0x400c6445') +define(`DRM_IOCTL_MGA_ILOAD', `0x400c6447') +define(`DRM_IOCTL_I915_INIT_HEAP', `0x400c644a') +define(`DRM_IOCTL_RADEON_INIT_HEAP', `0x400c6455') +define(`DRM_IOCTL_RADEON_SURF_ALLOC', `0x400c645a') +define(`DRM_IOCTL_I915_GEM_SET_DOMAIN', `0x400c645f') +define(`I2OEVTREG', `0x400c690a') +define(`HSC_SET_RX', `0x400c6b13') +define(`HSC_GET_RX', `0x400c6b14') +define(`NCP_IOC_GETROOT', `0x400c6e08') +define(`UBI_IOCRSVOL', `0x400c6f02') +define(`AUDIO_SET_KARAOKE', `0x400c6f12') +define(`KVM_CREATE_SPAPR_TCE', `0x400caea8') +define(`MBXFB_IOCS_REG', `0x400cf404') +define(`FW_CDEV_IOC_START_ISO', `0x4010230a') +define(`FW_CDEV_IOC_SET_ISO_CHANNELS', `0x40102317') +define(`PTP_EXTTS_REQUEST', `0x40103d02') +define(`CCISS_SETNODENAME', `0x40104205') +define(`SNDRV_EMU10K1_IOCTL_TRAM_POKE', `0x40104821') +define(`MTRRIOC_ADD_ENTRY', `0x40104d00') +define(`MTRRIOC_SET_ENTRY', `0x40104d01') +define(`MTRRIOC_DEL_ENTRY', `0x40104d02') +define(`MTRRIOC_KILL_ENTRY', `0x40104d04') +define(`MTRRIOC_ADD_PAGE_ENTRY', `0x40104d05') +define(`MTRRIOC_SET_PAGE_ENTRY', `0x40104d06') +define(`MTRRIOC_DEL_PAGE_ENTRY', `0x40104d07') +define(`MTRRIOC_KILL_PAGE_ENTRY', `0x40104d09') +define(`MEMERASE64', `0x40104d14') +define(`UBI_IOCSETVOLPROP', `0x40104f06') +define(`OMAPFB_SET_COLOR_KEY', `0x40104f32') +define(`OMAPFB_GET_COLOR_KEY', `0x40104f33') +define(`TUNATTACHFILTER', `0x401054d5') +define(`TUNDETACHFILTER', `0x401054d6') +define(`ANDROID_ALARM_SET_RTC', `0x40106105') +define(`IDT77105_GETSTAT', `0x40106132') +define(`IDT77105_GETSTATZ', `0x40106133') +define(`ATM_GETSTAT', `0x40106150') +define(`ATM_GETSTATZ', `0x40106151') +define(`ATM_GETLOOP', `0x40106152') +define(`ATM_SETLOOP', `0x40106153') +define(`ATM_QUERYLOOP', `0x40106154') +define(`ENI_MEMDUMP', `0x40106160') +define(`HE_GET_REG', `0x40106160') +define(`ZATM_GETPOOL', `0x40106161') +define(`NS_SETBUFLEV', `0x40106162') +define(`ZATM_GETPOOLZ', `0x40106162') +define(`ZATM_SETPOOL', `0x40106163') +define(`ENI_SETMULT', `0x40106167') +define(`ATM_GETLINKRATE', `0x40106181') +define(`ATM_GETNAMES', `0x40106183') +define(`ATM_GETTYPE', `0x40106184') +define(`ATM_GETESI', `0x40106185') +define(`ATM_GETADDR', `0x40106186') +define(`ATM_RSTADDR', `0x40106187') +define(`ATM_ADDADDR', `0x40106188') +define(`ATM_DELADDR', `0x40106189') +define(`ATM_GETCIRANGE', `0x4010618a') +define(`ATM_SETCIRANGE', `0x4010618b') +define(`ATM_SETESI', `0x4010618c') +define(`ATM_SETESIF', `0x4010618d') +define(`ATM_ADDLECSADDR', `0x4010618e') +define(`ATM_DELLECSADDR', `0x4010618f') +define(`ATM_GETLECSADDR', `0x40106190') +define(`ATM_ADDPARTY', `0x401061f4') +define(`BC_INCREFS_DONE', `0x40106308') +define(`CHIOGSTATUS', `0x40106308') +define(`BC_ACQUIRE_DONE', `0x40106309') +define(`DRM_IOCTL_SET_CLIENT_CAP', `0x4010640d') +define(`DRM_IOCTL_SET_UNIQUE', `0x40106410') +define(`DRM_IOCTL_FREE_BUFS', `0x4010641a') +define(`DRM_IOCTL_SET_SAREA_CTX', `0x4010641c') +define(`DRM_IOCTL_AGP_BIND', `0x40106436') +define(`DRM_IOCTL_AGP_UNBIND', `0x40106437') +define(`DRM_IOCTL_SG_FREE', `0x40106439') +define(`DRM_IOCTL_OMAP_SET_PARAM', `0x40106441') +define(`DRM_IOCTL_QXL_EXECBUFFER', `0x40106442') +define(`DRM_IOCTL_OMAP_GEM_CPU_FINI', `0x40106445') +define(`DRM_IOCTL_VIA_DEC_FUTEX', `0x40106445') +define(`DRM_IOCTL_MGA_INDICES', `0x40106446') +define(`DRM_IOCTL_I810_COPY', `0x40106447') +define(`DRM_IOCTL_VIA_CMDBUFFER', `0x40106448') +define(`DRM_IOCTL_R128_VERTEX', `0x40106449') +define(`DRM_IOCTL_RADEON_VERTEX', `0x40106449') +define(`DRM_IOCTL_VIA_PCICMD', `0x4010644a') +define(`DRM_IOCTL_I915_HWS_ADDR', `0x40106451') +define(`DRM_IOCTL_I915_GEM_INIT', `0x40106453') +define(`DRM_IOCTL_SIS_FB_INIT', `0x40106456') +define(`DRM_IOCTL_RADEON_SETPARAM', `0x40106459') +define(`TUNER_SET_CONFIG', `0x4010645c') +define(`HSC_SET_TX', `0x40106b15') +define(`HSC_GET_TX', `0x40106b16') +define(`MGSL_IOCSGPIO', `0x40106d10') +define(`NILFS_IOCTL_CHANGE_CPMODE', `0x40106e80') +define(`NILFS_IOCTL_SET_ALLOC_RANGE', `0x40106e8c') +define(`VIDEO_STILLPICTURE', `0x40106f1e') +define(`VIDEO_SET_HIGHLIGHT', `0x40106f27') +define(`VIDEO_SET_SPU_PALETTE', `0x40106f33') +define(`FE_SET_PROPERTY', `0x40106f52') +define(`CA_SET_DESCR', `0x40106f86') +define(`PPSETTIME', `0x40107096') +define(`BTRFS_IOC_QGROUP_CREATE', `0x4010942a') +define(`GENWQE_WRITE_REG64', `0x4010a51f') +define(`GENWQE_WRITE_REG32', `0x4010a521') +define(`GENWQE_WRITE_REG16', `0x4010a523') +define(`KVM_GET_DIRTY_LOG', `0x4010ae42') +define(`KVM_REGISTER_COALESCED_MMIO', `0x4010ae67') +define(`KVM_UNREGISTER_COALESCED_MMIO', `0x4010ae68') +define(`KVM_ASSIGN_SET_MSIX_ENTRY', `0x4010ae74') +define(`KVM_S390_INTERRUPT', `0x4010ae94') +define(`KVM_S390_SET_INITIAL_PSW', `0x4010ae96') +define(`KVM_DIRTY_TLB', `0x4010aeaa') +define(`KVM_ARM_SET_DEVICE_ADDR', `0x4010aeab') +define(`KVM_GET_ONE_REG', `0x4010aeab') +define(`KVM_SET_ONE_REG', `0x4010aeac') +define(`SNDRV_DM_FM_IOCTL_SET_VOICE', `0x40124823') +define(`FDSETMAXERRS', `0x4014024c') +define(`ADD_NEW_DISK', `0x40140921') +define(`SNDCTL_COPR_WDATA', `0x40144304') +define(`SNDCTL_COPR_WCODE', `0x40144305') +define(`OMAPFB_UPDATE_WINDOW_OLD', `0x40144f2f') +define(`VIDIOC_S_CROP', `0x4014563c') +define(`CHIOMOVE', `0x40146301') +define(`DRM_IOCTL_MGA_CLEAR', `0x40146444') +define(`DRM_IOCTL_R128_CLEAR', `0x40146448') +define(`DRM_IOCTL_R128_INDICES', `0x4014644a') +define(`DRM_IOCTL_RADEON_INDICES', `0x4014644a') +define(`DMX_SET_PES_FILTER', `0x40146f2c') +define(`FW_CDEV_IOC_SEND_RESPONSE', `0x40182304') +define(`FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE', `0x4018230f') +define(`FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE', `0x40182310') +define(`SNDRV_PCM_IOCTL_WRITEI_FRAMES', `0x40184150') +define(`SNDRV_PCM_IOCTL_WRITEN_FRAMES', `0x40184152') +define(`HIDIOCSUSAGE', `0x4018480c') +define(`HIDIOCGCOLLECTIONINDEX', `0x40184810') +define(`AMDKFD_IOC_UPDATE_QUEUE', `0x40184b07') +define(`IVTVFB_IOC_DMA_FRAME', `0x401856c0') +define(`DRM_IOCTL_UPDATE_DRAW', `0x4018643f') +define(`DRM_IOCTL_QXL_UPDATE_AREA', `0x40186443') +define(`DRM_IOCTL_MSM_GEM_CPU_PREP', `0x40186444') +define(`DRM_IOCTL_MSM_WAIT_FENCE', `0x40186447') +define(`DRM_IOCTL_R128_BLIT', `0x4018644b') +define(`NILFS_IOCTL_SET_SUINFO', `0x40186e8d') +define(`UBI_IOCATT', `0x40186f40') +define(`BTRFS_IOC_QGROUP_ASSIGN', `0x40189429') +define(`KVM_SET_MEMORY_REGION', `0x4018ae40') +define(`KVM_S390_UCAS_MAP', `0x4018ae50') +define(`KVM_S390_UCAS_UNMAP', `0x4018ae51') +define(`KVM_SET_DEVICE_ATTR', `0x4018aee1') +define(`KVM_GET_DEVICE_ATTR', `0x4018aee2') +define(`KVM_HAS_DEVICE_ATTR', `0x4018aee3') +define(`MBXFB_IOCS_ALPHA', `0x4018f402') +define(`BR2684_SETFILT', `0x401c6190') +define(`CHIOEXCHANGE', `0x401c6302') +define(`FDSETPRM', `0x40200242') +define(`FDDEFPRM', `0x40200243') +define(`ION_IOC_TEST_DMA_MAPPING', `0x402049f1') +define(`ION_IOC_TEST_KERNEL_MAPPING', `0x402049f2') +define(`AMDKFD_IOC_SET_MEMORY_POLICY', `0x40204b04') +define(`VIDIOC_SUBSCRIBE_EVENT', `0x4020565a') +define(`VIDIOC_UNSUBSCRIBE_EVENT', `0x4020565b') +define(`DRM_IOCTL_MARK_BUFS', `0x40206417') +define(`DRM_IOCTL_AGP_FREE', `0x40206435') +define(`DRM_IOCTL_VIA_FREEMEM', `0x40206441') +define(`DRM_IOCTL_I915_BATCHBUFFER', `0x40206443') +define(`DRM_IOCTL_SIS_FB_FREE', `0x40206445') +define(`DRM_IOCTL_RADEON_CLEAR', `0x40206448') +define(`DRM_IOCTL_I915_CMDBUFFER', `0x4020644b') +define(`DRM_IOCTL_I810_MC', `0x4020644c') +define(`DRM_IOCTL_RADEON_CMDBUF', `0x40206450') +define(`DRM_IOCTL_SIS_AGP_FREE', `0x40206455') +define(`DRM_IOCTL_I915_GEM_PREAD', `0x4020645c') +define(`DRM_IOCTL_I915_GEM_PWRITE', `0x4020645d') +define(`OSD_SEND_CMD', `0x40206fa0') +define(`RTC_PLL_SET', `0x40207012') +define(`BTRFS_IOC_CLONE_RANGE', `0x4020940d') +define(`KVM_SET_MEMORY_ALIAS', `0x4020ae43') +define(`KVM_SET_USER_MEMORY_REGION', `0x4020ae46') +define(`KVM_IRQFD', `0x4020ae76') +define(`KVM_SIGNAL_MSI', `0x4020aea5') +define(`KVM_PPC_GET_HTAB_FD', `0x4020aeaa') +define(`KVM_ARM_VCPU_INIT', `0x4020aeae') +define(`SNDRV_COMPRESS_SET_METADATA', `0x40244314') +define(`JSIOCSCORR', `0x40246a21') +define(`FE_SET_FRONTEND', `0x40246f4c') +define(`RTC_ALM_SET', `0x40247007') +define(`RTC_SET_TIME', `0x4024700a') +define(`FW_CDEV_IOC_SEND_REQUEST', `0x40282301') +define(`FW_CDEV_IOC_SEND_BROADCAST_REQUEST', `0x40282312') +define(`FW_CDEV_IOC_SEND_STREAM_PACKET', `0x40282313') +define(`EVIOCSKEYCODE_V2', `0x40284504') +define(`SNDCTL_FM_LOAD_INSTR', `0x40285107') +define(`DRM_IOCTL_RM_MAP', `0x4028641b') +define(`DRM_IOCTL_R128_DEPTH', `0x4028644c') +define(`DRM_IOCTL_RADEON_VERTEX2', `0x4028644f') +define(`DRM_IOCTL_I915_GEM_EXECBUFFER', `0x40286454') +define(`PHN_SETREGS', `0x40287008') +define(`RTC_WKALM_SET', `0x4028700f') +define(`VHOST_SET_VRING_ADDR', `0x4028af11') +define(`SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO', `0x402c5342') +define(`TCSETS2', `0x402c542b') +define(`TCSETSW2', `0x402c542c') +define(`TCSETSF2', `0x402c542d') +define(`VIDIOC_S_FREQUENCY', `0x402c5639') +define(`DRM_IOCTL_I915_OVERLAY_PUT_IMAGE', `0x402c6467') +define(`EVIOCSFF', `0x40304580') +define(`NVME_IOCTL_SUBMIT_IO', `0x40304e42') +define(`VIDIOC_S_FBUF', `0x4030560b') +define(`VIDIOC_S_HW_FREQ_SEEK', `0x40305652') +define(`CHIOSVOLTAG', `0x40306312') +define(`DRM_IOCTL_VIA_DMA_BLIT', `0x4030644e') +define(`MGSL_IOCSPARAMS', `0x40306d00') +define(`BTRFS_IOC_DEFRAG_RANGE', `0x40309410') +define(`BTRFS_IOC_SET_FEATURES', `0x40309439') +define(`KVM_SET_CLOCK', `0x4030ae7b') +define(`GSMIOC_ENABLE_NET', `0x40344702') +define(`SNDRV_TIMER_IOCTL_SELECT', `0x40345410') +define(`VIDIOC_S_AUDIO', `0x40345622') +define(`VIDIOC_S_AUDOUT', `0x40345632') +define(`DRM_IOCTL_MGA_BLIT', `0x40346448') +define(`PTP_PEROUT_REQUEST', `0x40383d03') +define(`VIDIOC_DBG_S_REGISTER', `0x4038564f') +define(`DRM_IOCTL_SAVAGE_BCI_CMDBUF', `0x40386441') +define(`KVM_XEN_HVM_CONFIG', `0x4038ae7a') +define(`DMX_SET_FILTER', `0x403c6f2b') +define(`SNDRV_SEQ_IOCTL_REMOVE_EVENTS', `0x4040534e') +define(`SNDRV_CTL_IOCTL_ELEM_LOCK', `0x40405514') +define(`SNDRV_CTL_IOCTL_ELEM_UNLOCK', `0x40405515') +define(`IVTV_IOC_DMA_FRAME', `0x404056c0') +define(`BC_TRANSACTION', `0x40406300') +define(`BC_REPLY', `0x40406301') +define(`DRM_IOCTL_I810_INIT', `0x40406440') +define(`DRM_IOCTL_I915_GEM_EXECBUFFER2', `0x40406469') +define(`JSIOCSAXMAP', `0x40406a31') +define(`BTRFS_IOC_QUOTA_RESCAN', `0x4040942c') +define(`KVM_ASSIGN_DEV_IRQ', `0x4040ae70') +define(`KVM_DEASSIGN_PCI_DEVICE', `0x4040ae72') +define(`KVM_DEASSIGN_DEV_IRQ', `0x4040ae75') +define(`KVM_CREATE_PIT2', `0x4040ae77') +define(`KVM_IOEVENTFD', `0x4040ae79') +define(`KVM_X86_SET_MCE', `0x4040ae9e') +define(`KVM_SET_VCPU_EVENTS', `0x4040aea0') +define(`KVM_ASSIGN_SET_INTX_MASK', `0x4040aea4') +define(`CXL_IOCTL_START_WORK', `0x4040ca00') +define(`OMAPFB_SETUP_PLANE', `0x40444f34') +define(`OMAPFB_QUERY_PLANE', `0x40444f35') +define(`OMAPFB_UPDATE_WINDOW', `0x40444f36') +define(`VIDIOC_S_MODULATOR', `0x40445637') +define(`DRM_IOCTL_I915_INIT', `0x40446440') +define(`SET_ARRAY_INFO', `0x40480923') +define(`SNDRV_EMU10K1_IOCTL_PCM_POKE', `0x40484830') +define(`SNDRV_TIMER_IOCTL_GPARAMS', `0x40485404') +define(`BTRFS_IOC_SEND', `0x40489426') +define(`KVM_SET_GUEST_DEBUG', `0x4048ae9b') +define(`GSMIOC_SETCONF', `0x404c4701') +define(`SNDRV_SEQ_IOCTL_SET_QUEUE_CLIENT', `0x404c534a') +define(`SNDRV_SEQ_IOCTL_SUBSCRIBE_PORT', `0x40505330') +define(`SNDRV_SEQ_IOCTL_UNSUBSCRIBE_PORT', `0x40505331') +define(`SNDRV_TIMER_IOCTL_PARAMS', `0x40505412') +define(`VIDIOC_S_TUNER', `0x4054561e') +define(`SNDRV_SEQ_IOCTL_SET_CLIENT_POOL', `0x4058534c') +define(`PTP_PIN_SETFUNC', `0x40603d07') +define(`SNDRV_HWDEP_IOCTL_DSP_LOAD', `0x40604803') +define(`SNDRV_SEQ_IOCTL_SET_QUEUE_TIMER', `0x40605346') +define(`DRM_IOCTL_SAVAGE_BCI_INIT', `0x40606440') +define(`UI_END_FF_UPLOAD', `0x406855c9') +define(`KVM_ENABLE_CAP', `0x4068aea3') +define(`CHIOGELEM', `0x406c6310') +define(`KVM_SET_PIT2', `0x4070aea0') +define(`DRM_IOCTL_R128_INIT', `0x40786440') +define(`DRM_IOCTL_RADEON_CP_INIT', `0x40786440') +define(`NILFS_IOCTL_CLEAN_SEGMENTS', `0x40786e88') +define(`FDSETDRVPRM', `0x40800290') +define(`UBI_IOCVOLCRBLK', `0x40804f07') +define(`DRM_IOCTL_MGA_INIT', `0x40806440') +define(`KVM_PPC_GET_PVINFO', `0x4080aea1') +define(`KVM_SET_DEBUGREGS', `0x4080aea2') +define(`KVM_PPC_RTAS_DEFINE_TOKEN', `0x4080aeac') +define(`SNDRV_COMPRESS_SET_PARAMS', `0x40844312') +define(`SNDRV_SEQ_IOCTL_DELETE_QUEUE', `0x408c5333') +define(`VIDIOC_S_JPEGCOMP', `0x408c563e') +define(`KVM_SET_REGS', `0x4090ae82') +define(`UBI_IOCMKVOL', `0x40986f00') +define(`SNDRV_SEQ_IOCTL_DELETE_PORT', `0x40a85321') +define(`SNDRV_SEQ_IOCTL_SET_PORT_INFO', `0x40a85323') +define(`SNDRV_SEQ_IOCTL_SET_CLIENT_INFO', `0x40bc5311') +define(`VHOST_SCSI_SET_ENDPOINT', `0x40e8af40') +define(`VHOST_SCSI_CLEAR_ENDPOINT', `0x40e8af41') +define(`ASHMEM_SET_NAME', `0x41007701') +define(`BTRFS_IOC_SET_FSLABEL', `0x41009432') +define(`USBDEVFS_GETDRIVER', `0x41045508') +define(`CA_SEND_MSG', `0x410c6f85') +define(`KVM_SET_SREGS', `0x4138ae84') +define(`KVM_SET_XCRS', `0x4188aea7') +define(`KVM_SET_FPU', `0x41a0ae8d') +define(`SNDRV_EMU10K1_IOCTL_CODE_POKE', `0x41b04811') +define(`PTP_SYS_OFFSET', `0x43403d05') +define(`JSIOCSBTNMAP', `0x44006a33') +define(`KVM_SET_LAPIC', `0x4400ae8f') +define(`BTRFS_IOC_SNAP_CREATE', `0x50009401') +define(`BTRFS_IOC_DEFRAG', `0x50009402') +define(`BTRFS_IOC_RESIZE', `0x50009403') +define(`BTRFS_IOC_SCAN_DEV', `0x50009404') +define(`BTRFS_IOC_ADD_DEV', `0x5000940a') +define(`BTRFS_IOC_RM_DEV', `0x5000940b') +define(`BTRFS_IOC_BALANCE', `0x5000940c') +define(`BTRFS_IOC_SUBVOL_CREATE', `0x5000940e') +define(`BTRFS_IOC_SNAP_DESTROY', `0x5000940f') +define(`BTRFS_IOC_SNAP_CREATE_V2', `0x50009417') +define(`BTRFS_IOC_SUBVOL_CREATE_V2', `0x50009418') +define(`KVM_SET_XSAVE', `0x5000aea5') +define(`HIDIOCSUSAGES', `0x501c4814') +define(`UBI_IOCRNVOL', `0x51106f03') +define(`SNDRV_SB_CSP_IOCTL_LOAD_CODE', `0x70124811') +define(`MFB_GET_ALPHA', `0x80014d00') +define(`MFB_GET_GAMMA', `0x80014d01') +define(`GADGET_GET_PRINTER_STATUS', `0x80016721') +define(`JSIOCGAXES', `0x80016a11') +define(`JSIOCGBUTTONS', `0x80016a12') +define(`SPI_IOC_RD_MODE', `0x80016b01') +define(`SPI_IOC_RD_LSB_FIRST', `0x80016b02') +define(`SPI_IOC_RD_BITS_PER_WORD', `0x80016b03') +define(`PPRSTATUS', `0x80017081') +define(`PPRCONTROL', `0x80017083') +define(`PPRDATA', `0x80017085') +define(`SONYPI_IOCGBRT', `0x80017600') +define(`SONYPI_IOCGBATFLAGS', `0x80017607') +define(`SONYPI_IOCGBLUE', `0x80017608') +define(`SONYPI_IOCGFAN', `0x8001760a') +define(`SONYPI_IOCGTEMP', `0x8001760c') +define(`CAPI_GET_ERRCODE', `0x80024321') +define(`CAPI_INSTALLED', `0x80024322') +define(`SNDRV_DM_FM_IOCTL_INFO', `0x80024820') +define(`IOCTL_WDM_MAX_COMMAND', `0x800248a0') +define(`IPMICTL_REGISTER_FOR_CMD', `0x8002690e') +define(`IPMICTL_UNREGISTER_FOR_CMD', `0x8002690f') +define(`FE_READ_SIGNAL_STRENGTH', `0x80026f47') +define(`FE_READ_SNR', `0x80026f48') +define(`SONYPI_IOCGBAT1CAP', `0x80027602') +define(`SONYPI_IOCGBAT1REM', `0x80027603') +define(`SONYPI_IOCGBAT2CAP', `0x80027604') +define(`SONYPI_IOCGBAT2REM', `0x80027605') +define(`MBXFB_IOCS_PLANEORDER', `0x8002f403') +define(`BLKI2OGRSTRAT', `0x80043201') +define(`BLKI2OGWSTRAT', `0x80043202') +define(`SNDRV_PCM_IOCTL_PVERSION', `0x80044100') +define(`CCISS_GETHEARTBEAT', `0x80044206') +define(`CCISS_GETBUSTYPES', `0x80044207') +define(`CCISS_GETFIRMVER', `0x80044208') +define(`CCISS_GETDRIVVER', `0x80044209') +define(`SNDRV_COMPRESS_IOCTL_VERSION', `0x80044300') +define(`CAPI_GET_FLAGS', `0x80044323') +define(`CAPI_SET_FLAGS', `0x80044324') +define(`CAPI_CLR_FLAGS', `0x80044325') +define(`CAPI_NCCI_OPENCOUNT', `0x80044326') +define(`CAPI_NCCI_GETUNIT', `0x80044327') +define(`EVIOCGVERSION', `0x80044501') +define(`APEI_ERST_GET_RECORD_COUNT', `0x80044502') +define(`EVIOCGEFFECTS', `0x80044584') +define(`FBIOGET_CONTRAST', `0x80044601') +define(`FBIGET_BRIGHTNESS', `0x80044603') +define(`FBIGET_COLOR', `0x80044605') +define(`SSTFB_GET_VGAPASS', `0x800446dd') +define(`SNDRV_HWDEP_IOCTL_PVERSION', `0x80044800') +define(`HIDIOCGRDESCSIZE', `0x80044801') +define(`HIDIOCGVERSION', `0x80044801') +define(`HIDIOCGFLAG', `0x8004480e') +define(`HDA_IOCTL_PVERSION', `0x80044810') +define(`SNDRV_EMU10K1_IOCTL_PVERSION', `0x80044840') +define(`SNDRV_EMUX_IOCTL_VERSION', `0x80044880') +define(`SNDRV_EMU10K1_IOCTL_DBG_READ', `0x80044884') +define(`HCIGETDEVLIST', `0x800448d2') +define(`HCIGETDEVINFO', `0x800448d3') +define(`HCIGETCONNLIST', `0x800448d4') +define(`HCIGETCONNINFO', `0x800448d5') +define(`HCIGETAUTHINFO', `0x800448d7') +define(`HCIINQUIRY', `0x800448f0') +define(`ROCCATIOCGREPSIZE', `0x800448f1') +define(`IMADDTIMER', `0x80044940') +define(`IMDELTIMER', `0x80044941') +define(`IMGETVERSION', `0x80044942') +define(`IMGETCOUNT', `0x80044943') +define(`IMGETDEVINFO', `0x80044944') +define(`IMCTRLREQ', `0x80044945') +define(`IMCLEAR_L2', `0x80044946') +define(`IMHOLD_L1', `0x80044948') +define(`MCE_GET_RECORD_LEN', `0x80044d01') +define(`MCE_GET_LOG_LEN', `0x80044d02') +define(`MCE_GETCLEAR_FLAGS', `0x80044d03') +define(`MEMGETREGIONCOUNT', `0x80044d07') +define(`MFB_GET_PIXFMT', `0x80044d08') +define(`OTPSELECT', `0x80044d0d') +define(`OSS_GETVERSION', `0x80044d76') +define(`UBI_IOCEBISMAP', `0x80044f05') +define(`SOUND_PCM_READ_RATE', `0x80045002') +define(`SOUND_PCM_READ_BITS', `0x80045005') +define(`SOUND_PCM_READ_CHANNELS', `0x80045006') +define(`SOUND_PCM_READ_FILTER', `0x80045007') +define(`SNDCTL_DSP_GETFMTS', `0x8004500b') +define(`SNDCTL_DSP_GETCAPS', `0x8004500f') +define(`SNDCTL_DSP_GETTRIGGER', `0x80045010') +define(`SNDCTL_DSP_GETODELAY', `0x80045017') +define(`SNDCTL_DSP_GETSPDIF', `0x80045043') +define(`SNDCTL_SEQ_GETOUTCOUNT', `0x80045104') +define(`SNDCTL_SEQ_GETINCOUNT', `0x80045105') +define(`SNDCTL_SEQ_NRSYNTHS', `0x8004510a') +define(`SNDCTL_SEQ_NRMIDIS', `0x8004510b') +define(`SNDCTL_SEQ_GETTIME', `0x80045113') +define(`RNDGETENTCNT', `0x80045200') +define(`SAA6588_CMD_READ', `0x80045203') +define(`SAA6588_CMD_POLL', `0x80045204') +define(`RFCOMMGETDEVLIST', `0x800452d2') +define(`RFCOMMGETDEVINFO', `0x800452d3') +define(`SNDRV_SEQ_IOCTL_PVERSION', `0x80045300') +define(`SNDRV_SEQ_IOCTL_CLIENT_ID', `0x80045301') +define(`SNDRV_TIMER_IOCTL_PVERSION', `0x80045400') +define(`TIOCGPTN', `0x80045430') +define(`TIOCGDEV', `0x80045432') +define(`TIOCGPKT', `0x80045438') +define(`TIOCGPTLCK', `0x80045439') +define(`TIOCGEXCL', `0x80045440') +define(`TUNGETFEATURES', `0x800454cf') +define(`TUNGETIFF', `0x800454d2') +define(`TUNGETSNDBUF', `0x800454d3') +define(`TUNGETVNETHDRSZ', `0x800454d7') +define(`TUNGETVNETLE', `0x800454dd') +define(`SNDRV_CTL_IOCTL_PVERSION', `0x80045500') +define(`USBDEVFS_RESETEP', `0x80045503') +define(`USBDEVFS_SETCONFIGURATION', `0x80045505') +define(`USBDEVFS_CLAIMINTERFACE', `0x8004550f') +define(`USBDEVFS_RELEASEINTERFACE', `0x80045510') +define(`USBDEVFS_CLEAR_HALT', `0x80045515') +define(`USBDEVFS_CLAIM_PORT', `0x80045518') +define(`USBDEVFS_RELEASE_PORT', `0x80045519') +define(`USBDEVFS_GET_CAPABILITIES', `0x8004551a') +define(`UI_GET_VERSION', `0x8004552d') +define(`SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE', `0x80045530') +define(`SNDRV_CTL_IOCTL_POWER_STATE', `0x800455d1') +define(`VIDIOC_G_INPUT', `0x80045626') +define(`VIDIOC_G_OUTPUT', `0x8004562e') +define(`VIDIOC_G_PRIORITY', `0x80045643') +define(`SNDRV_RAWMIDI_IOCTL_PVERSION', `0x80045700') +define(`WDIOC_GETSTATUS', `0x80045701') +define(`WDIOC_GETBOOTSTATUS', `0x80045702') +define(`WDIOC_GETTEMP', `0x80045703') +define(`WDIOC_SETOPTIONS', `0x80045704') +define(`WDIOC_KEEPALIVE', `0x80045705') +define(`WDIOC_GETTIMEOUT', `0x80045707') +define(`WDIOC_GETPRETIMEOUT', `0x80045709') +define(`WDIOC_GETTIMELEFT', `0x8004570a') +define(`SONET_GETDIAG', `0x80046114') +define(`SONET_GETFRAMING', `0x80046116') +define(`CHIOGPICKER', `0x80046304') +define(`DRM_IOCTL_GET_MAGIC', `0x80046402') +define(`DRM_IOCTL_I915_GET_VBLANK_PIPE', `0x8004644e') +define(`FS_IOC32_GETFLAGS', `0x80046601') +define(`LIRC_GET_FEATURES', `0x80046900') +define(`LIRC_GET_SEND_MODE', `0x80046901') +define(`LIRC_GET_REC_MODE', `0x80046902') +define(`LIRC_GET_SEND_CARRIER', `0x80046903') +define(`LIRC_GET_REC_CARRIER', `0x80046904') +define(`LIRC_GET_SEND_DUTY_CYCLE', `0x80046905') +define(`LIRC_GET_REC_DUTY_CYCLE', `0x80046906') +define(`LIRC_GET_REC_RESOLUTION', `0x80046907') +define(`I2OVALIDATE', `0x80046908') +define(`LIRC_GET_MIN_TIMEOUT', `0x80046908') +define(`LIRC_GET_MAX_TIMEOUT', `0x80046909') +define(`LIRC_GET_MIN_FILTER_PULSE', `0x8004690a') +define(`LIRC_GET_MAX_FILTER_PULSE', `0x8004690b') +define(`LIRC_GET_MIN_FILTER_SPACE', `0x8004690c') +define(`LIRC_GET_MAX_FILTER_SPACE', `0x8004690d') +define(`LIRC_GET_LENGTH', `0x8004690f') +define(`IPMICTL_SET_GETS_EVENTS_CMD', `0x80046910') +define(`IPMICTL_SET_MY_ADDRESS_CMD', `0x80046911') +define(`IPMICTL_GET_MY_ADDRESS_CMD', `0x80046912') +define(`IPMICTL_SET_MY_LUN_CMD', `0x80046913') +define(`IPMICTL_GET_MY_LUN_CMD', `0x80046914') +define(`IPMICTL_SET_MY_CHANNEL_ADDRESS_CMD', `0x80046918') +define(`IPMICTL_GET_MY_CHANNEL_ADDRESS_CMD', `0x80046919') +define(`IPMICTL_SET_MY_CHANNEL_LUN_CMD', `0x8004691a') +define(`IPMICTL_GET_MY_CHANNEL_LUN_CMD', `0x8004691b') +define(`IPMICTL_GET_MAINTENANCE_MODE_CMD', `0x8004691e') +define(`I8K_BIOS_VERSION', `0x80046980') +define(`I8K_MACHINE_ID', `0x80046981') +define(`IIO_GET_EVENT_FD_IOCTL', `0x80046990') +define(`JSIOCGVERSION', `0x80046a01') +define(`SPI_IOC_RD_MAX_SPEED_HZ', `0x80046b04') +define(`SPI_IOC_RD_MODE32', `0x80046b05') +define(`UDF_GETEASIZE', `0x80046c40') +define(`NCP_IOC_SIGN_WANTED', `0x80046e06') +define(`NCP_IOC_SETDENTRYTTL', `0x80046e0c') +define(`SISFB_GET_INFO_OLD', `0x80046ef8') +define(`SISFB_GET_VBRSTATUS_OLD', `0x80046ef9') +define(`SISFB_GET_AUTOMAXIMIZE_OLD', `0x80046efa') +define(`AUDIO_GET_CAPABILITIES', `0x80046f0b') +define(`VIDEO_GET_CAPABILITIES', `0x80046f21') +define(`VIDEO_GET_FRAME_RATE', `0x80046f38') +define(`FE_READ_STATUS', `0x80046f45') +define(`FE_READ_BER', `0x80046f46') +define(`FE_READ_UNCORRECTED_BLOCKS', `0x80046f49') +define(`RTC_VL_READ', `0x80047013') +define(`PPCLRIRQ', `0x80047093') +define(`PPGETMODES', `0x80047097') +define(`PPGETMODE', `0x80047098') +define(`PPGETPHASE', `0x80047099') +define(`PPGETFLAGS', `0x8004709a') +define(`PHONE_DTMF_READY', `0x80047196') +define(`PHONE_GET_DTMF', `0x80047197') +define(`PHONE_GET_DTMF_ASCII', `0x80047198') +define(`PHONE_EXCEPTION', `0x8004719a') +define(`IXJCTL_CARDTYPE', `0x800471c1') +define(`IXJCTL_SERIAL', `0x800471c2') +define(`IXJCTL_DSP_TYPE', `0x800471c3') +define(`IXJCTL_DSP_VERSION', `0x800471c4') +define(`IXJCTL_VMWI', `0x800471d8') +define(`BR_ERROR', `0x80047200') +define(`BR_ACQUIRE_RESULT', `0x80047204') +define(`FAT_IOCTL_GET_ATTRIBUTES', `0x80047210') +define(`FAT_IOCTL_GET_VOLUME_ID', `0x80047213') +define(`FS_IOC32_GETVERSION', `0x80047601') +define(`MEYEIOC_STILLJCAPT', `0x800476c5') +define(`OSIOCGNETADDR', `0x800489e1') +define(`SIOCGNETADDR', `0x800489e1') +define(`AUTOFS_IOC_PROTOVER', `0x80049363') +define(`AUTOFS_IOC_PROTOSUBVER', `0x80049367') +define(`AUTOFS_IOC_ASKUMOUNT', `0x80049370') +define(`GENWQE_GET_CARD_STATE', `0x8004a524') +define(`KVM_GET_MP_STATE', `0x8004ae98') +define(`CXL_IOCTL_GET_PROCESS_ELEMENT', `0x8004ca01') +define(`SISFB_GET_INFO_SIZE', `0x8004f300') +define(`SISFB_GET_VBRSTATUS', `0x8004f302') +define(`SISFB_GET_AUTOMAXIMIZE', `0x8004f303') +define(`SISFB_GET_TVPOSOFFSET', `0x8004f304') +define(`SONET_GETFRSENSE', `0x80066117') +define(`MEYEIOC_G_PARAMS', `0x800676c0') +define(`BLKBSZGET', `0x80081270') +define(`BLKGETSIZE64', `0x80081272') +define(`PERF_EVENT_IOC_ID', `0x80082407') +define(`SNAPSHOT_GET_IMAGE_SIZE', `0x8008330e') +define(`SNAPSHOT_AVAIL_SWAP_SIZE', `0x80083313') +define(`SNAPSHOT_ALLOC_SWAP_PAGE', `0x80083314') +define(`FBIO_RADEON_GET_MIRROR', `0x80084003') +define(`AGPIOC_INFO', `0x80084100') +define(`SNDRV_PCM_IOCTL_DELAY', `0x80084121') +define(`CCISS_GETPCIINFO', `0x80084201') +define(`PMU_IOC_GET_BACKLIGHT', `0x80084201') +define(`CCISS_GETINTINFO', `0x80084202') +define(`PMU_IOC_GET_MODEL', `0x80084203') +define(`PMU_IOC_HAS_ADB', `0x80084204') +define(`PMU_IOC_CAN_SLEEP', `0x80084205') +define(`PMU_IOC_GRAB_BACKLIGHT', `0x80084206') +define(`EVIOCGID', `0x80084502') +define(`EVIOCGREP', `0x80084503') +define(`EVIOCGKEYCODE', `0x80084504') +define(`FBIO_GETCONTROL2', `0x80084689') +define(`HIDIOCGRAWINFO', `0x80084803') +define(`SNDRV_HDSP_IOCTL_GET_VERSION', `0x80084843') +define(`SNDRV_HDSPM_IOCTL_GET_MIXER', `0x80084844') +define(`SNDRV_HDSP_IOCTL_GET_9632_AEB', `0x80084845') +define(`AMDKFD_IOC_GET_VERSION', `0x80084b01') +define(`MFB_GET_AOID', `0x80084d04') +define(`MEMISLOCKED', `0x80084d17') +define(`RNDGETPOOL', `0x80085202') +define(`USBDEVFS_SETINTERFACE', `0x80085504') +define(`USBDEVFS_DISCSIGNAL32', `0x8008550e') +define(`USBDEVFS_ALLOC_STREAMS', `0x8008551c') +define(`USBDEVFS_FREE_STREAMS', `0x8008551d') +define(`VIDIOC_G_STD', `0x80085617') +define(`VIDIOC_QUERYSTD', `0x8008563f') +define(`CM_IOCGSTATUS', `0x80086300') +define(`DRM_IOCTL_I810_OV0INFO', `0x80086449') +define(`FS_IOC_GETFLAGS', `0x80086601') +define(`I2OPASSTHRU32', `0x8008690c') +define(`IPMICTL_SET_TIMING_PARMS_CMD', `0x80086916') +define(`IPMICTL_GET_TIMING_PARMS_CMD', `0x80086917') +define(`I8K_POWER_STATUS', `0x80086982') +define(`I8K_FN_STATUS', `0x80086983') +define(`I8K_GET_TEMP', `0x80086984') +define(`UDF_GETEABLOCK', `0x80086c41') +define(`UDF_GETVOLIDENT', `0x80086c42') +define(`MMTIMER_GETRES', `0x80086d01') +define(`MMTIMER_GETFREQ', `0x80086d02') +define(`MTIOCPOS', `0x80086d03') +define(`MMTIMER_GETCOUNTER', `0x80086d09') +define(`NILFS_IOCTL_SYNC', `0x80086e8a') +define(`MATROXFB_GET_OUTPUT_CONNECTION', `0x80086ef8') +define(`MATROXFB_GET_AVAILABLE_OUTPUTS', `0x80086ef9') +define(`MATROXFB_GET_ALL_OUTPUTS', `0x80086efb') +define(`AUDIO_GET_PTS', `0x80086f13') +define(`DMX_GET_CAPS', `0x80086f30') +define(`VIDEO_GET_PTS', `0x80086f39') +define(`VIDEO_GET_FRAME_COUNT', `0x80086f3a') +define(`CA_GET_DESCR_INFO', `0x80086f83') +define(`RTC_IRQP_READ', `0x8008700b') +define(`RTC_EPOCH_READ', `0x8008700d') +define(`PPS_GETPARAMS', `0x800870a1') +define(`PPS_GETCAP', `0x800870a3') +define(`PHONE_CAPABILITIES_LIST', `0x80087181') +define(`IXJCTL_CID', `0x800871d4') +define(`IXJCTL_VERSION', `0x800871da') +define(`IXJCTL_FRAMES_READ', `0x800871e2') +define(`IXJCTL_FRAMES_WRITTEN', `0x800871e3') +define(`IXJCTL_READ_WAIT', `0x800871e4') +define(`IXJCTL_WRITE_WAIT', `0x800871e5') +define(`IXJCTL_DRYBUFFER_READ', `0x800871e6') +define(`BR_DEAD_BINDER', `0x8008720f') +define(`BR_CLEAR_DEATH_NOTIFICATION_DONE', `0x80087210') +define(`FS_IOC_GETVERSION', `0x80087601') +define(`BTRFS_IOC_START_SYNC', `0x80089418') +define(`BTRFS_IOC_SUBVOL_GETFLAGS', `0x80089419') +define(`KVM_X86_GET_MCE_CAP_SUPPORTED', `0x8008ae9d') +define(`KVM_ALLOCATE_RMA', `0x8008aea9') +define(`VHOST_GET_FEATURES', `0x8008af00') +define(`FUNCTIONFS_ENDPOINT_DESC', `0x80096782') +define(`DMX_GET_PES_PIDS', `0x800a6f2f') +define(`RAID_VERSION', `0x800c0910') +define(`CCISS_GETLUNINFO', `0x800c4211') +define(`OTPLOCK', `0x800c4d10') +define(`OMAPFB_GET_CAPS', `0x800c4f2a') +define(`SNDCTL_DSP_GETIPTR', `0x800c5011') +define(`SNDCTL_DSP_GETOPTR', `0x800c5012') +define(`IPMICTL_REGISTER_FOR_CMD_CHANS', `0x800c691c') +define(`IPMICTL_UNREGISTER_FOR_CMD_CHANS', `0x800c691d') +define(`NCP_IOC_SETROOT', `0x800c6e08') +define(`VIDEO_GET_SIZE', `0x800c6f37') +define(`FE_DISEQC_RECV_SLAVE_REPLY', `0x800c6f40') +define(`CA_GET_SLOT_INFO', `0x800c6f82') +define(`FDGETDRVTYP', `0x8010020f') +define(`FW_CDEV_IOC_GET_CYCLE_TIMER', `0x8010230c') +define(`CCISS_GETNODENAME', `0x80104204') +define(`SNDRV_HDSPM_IOCTL_GET_LTC', `0x80104846') +define(`ECCGETSTATS', `0x80104d12') +define(`SNDCTL_DSP_GETOSPACE', `0x8010500c') +define(`SNDCTL_DSP_GETISPACE', `0x8010500d') +define(`SNDCTL_DSP_MAPINBUF', `0x80105013') +define(`SNDCTL_DSP_MAPOUTBUF', `0x80105014') +define(`TUNGETFILTER', `0x801054db') +define(`USBDEVFS_DISCSIGNAL', `0x8010550e') +define(`DRM_IOCTL_I915_GEM_GET_APERTURE', `0x80106463') +define(`I2OPASSTHRU', `0x8010690c') +define(`MGSL_IOCGGPIO', `0x80106d11') +define(`NCP_IOC_NCPREQUEST', `0x80106e01') +define(`NCP_IOC_SETPRIVATEDATA', `0x80106e0a') +define(`FE_GET_PROPERTY', `0x80106f53') +define(`CA_GET_CAP', `0x80106f81') +define(`OSD_GET_CAPABILITY', `0x80106fa1') +define(`PPGETTIME', `0x80107095') +define(`BR_INCREFS', `0x80107207') +define(`BR_ACQUIRE', `0x80107208') +define(`BR_RELEASE', `0x80107209') +define(`BR_DECREFS', `0x8010720a') +define(`GENWQE_READ_REG64', `0x8010a51e') +define(`GENWQE_READ_REG32', `0x8010a520') +define(`GENWQE_READ_REG16', `0x8010a522') +define(`FDGETMAXERRS', `0x8014020e') +define(`GET_DISK_INFO', `0x80140912') +define(`SNDRV_COMPRESS_TSTAMP', `0x80144320') +define(`CHIOGPARAMS', `0x80146306') +define(`NCP_IOC_LOCKUNLOCK', `0x80146e07') +define(`VIDEO_GET_STATUS', `0x80146f1b') +define(`SNDRV_PCM_IOCTL_CHANNEL_INFO', `0x80184132') +define(`SNDRV_PCM_IOCTL_READI_FRAMES', `0x80184151') +define(`SNDRV_PCM_IOCTL_READN_FRAMES', `0x80184153') +define(`SNDRV_HDSPM_IOCTL_GET_CONFIG', `0x80184841') +define(`IMSETDEVNAME', `0x80184947') +define(`OMAPFB_MEMORY_READ', `0x80184f3a') +define(`HPET_INFO', `0x80186803') +define(`NCP_IOC_SIGN_INIT', `0x80186e05') +define(`NCP_IOC_SETOBJECTNAME', `0x80186e09') +define(`NILFS_IOCTL_GET_CPINFO', `0x80186e82') +define(`NILFS_IOCTL_GET_CPSTAT', `0x80186e83') +define(`NILFS_IOCTL_GET_SUINFO', `0x80186e84') +define(`BR_ATTEMPT_ACQUIRE', `0x8018720b') +define(`BTRFS_IOC_GET_FEATURES', `0x80189439') +define(`MBXFB_IOCG_ALPHA', `0x8018f401') +define(`SNDRV_COMPRESS_AVAIL', `0x801c4321') +define(`HIDIOCGDEVINFO', `0x801c4803') +define(`FDGETPRM', `0x80200204') +define(`FBIOGET_VBLANK', `0x80204612') +define(`SNDRV_HDSPM_IOCTL_GET_STATUS', `0x80204847') +define(`SNDRV_FIREWIRE_IOCTL_GET_INFO', `0x802048f8') +define(`MEMGETINFO', `0x80204d01') +define(`OMAPFB_GET_VRAM_INFO', `0x80204f3d') +define(`OMAPFB_GET_DISPLAY_INFO', `0x80204f3f') +define(`I2OGETIOPS', `0x80206900') +define(`AUDIO_GET_STATUS', `0x80206f0a') +define(`VIDEO_GET_EVENT', `0x80206f1c') +define(`RTC_PLL_GET', `0x80207011') +define(`KVM_ARM_PREFERRED_TARGET', `0x8020aeaf') +define(`SNDRV_HDSP_IOCTL_GET_CONFIG_INFO', `0x80244841') +define(`SNDRV_HDSPM_IOCTL_GET_VERSION', `0x80244848') +define(`SONET_GETSTAT', `0x80246110') +define(`SONET_GETSTATZ', `0x80246111') +define(`JSIOCGCORR', `0x80246a22') +define(`FE_GET_FRONTEND', `0x80246f4d') +define(`RTC_ALM_READ', `0x80247008') +define(`RTC_RD_TIME', `0x80247009') +define(`FDGETFDCSTAT', `0x80280215') +define(`FDWERRORGET', `0x80280217') +define(`EVIOCGKEYCODE_V2', `0x80284504') +define(`SNDRV_SB_CSP_IOCTL_INFO', `0x80284810') +define(`WDIOC_GETSUPPORT', `0x80285700') +define(`IPMICTL_SEND_COMMAND', `0x8028690d') +define(`FE_GET_EVENT', `0x80286f4e') +define(`RTC_WKALM_RD', `0x80287010') +define(`IOW_GETINFO', `0x8028c003') +define(`USBDEVFS_SUBMITURB32', `0x802a550a') +define(`NCP_IOC_SETCHARSETS', `0x802a6e0b') +define(`TCGETS2', `0x802c542a') +define(`SOUND_OLD_MIXER_INFO', `0x80304d65') +define(`VIDIOC_G_FBUF', `0x8030560a') +define(`IPMICTL_SEND_COMMAND_SETTIME', `0x80306915') +define(`MGSL_IOCGPARAMS', `0x80306d01') +define(`MTIOCGET', `0x80306d02') +define(`NILFS_IOCTL_GET_SUSTAT', `0x80306e85') +define(`BTRFS_IOC_QGROUP_LIMIT', `0x8030942b') +define(`KVM_GET_CLOCK', `0x8030ae7c') +define(`VIDIOC_G_AUDIO', `0x80345621') +define(`VIDIOC_G_AUDOUT', `0x80345631') +define(`USBDEVFS_SUBMITURB', `0x8038550a') +define(`DRM_IOCTL_AGP_INFO', `0x80386433') +define(`OMAPFB_GET_OVERLAY_COLORMODE', `0x803c4f3b') +define(`SNDRV_HWDEP_IOCTL_DSP_STATUS', `0x80404802') +define(`JSIOCGAXMAP', `0x80406a32') +define(`BR_TRANSACTION', `0x80407202') +define(`BR_REPLY', `0x80407203') +define(`BTRFS_IOC_QUOTA_RESCAN_STATUS', `0x8040942d') +define(`KVM_ASSIGN_PCI_DEVICE', `0x8040ae69') +define(`KVM_GET_VCPU_EVENTS', `0x8040ae9f') +define(`GET_ARRAY_INFO', `0x80480911') +define(`BTRFS_IOC_GET_SUPPORTED_FEATURES', `0x80489439') +define(`KVM_SET_PIT', `0x8048ae66') +define(`GSMIOC_GETCONF', `0x804c4700') +define(`FDGETDRVSTAT', `0x80500212') +define(`FDPOLLDRVSTAT', `0x80500213') +define(`PTP_CLOCK_GETCAPS', `0x80503d01') +define(`SOUND_MIXER_INFO', `0x805c4d65') +define(`SNDRV_TIMER_IOCTL_STATUS', `0x80605414') +define(`VIDIOC_QUERYCAP', `0x80685600') +define(`I2OEVTGET', `0x8068690b') +define(`CHIOGVPARAMS', `0x80706313') +define(`KVM_GET_PIT2', `0x8070ae9f') +define(`SNDRV_COMPRESS_GET_PARAMS', `0x80784313') +define(`FDGETDRVPRM', `0x80800211') +define(`USBDEVFS_HUB_PORTINFO', `0x80805513') +define(`KVM_GET_DEBUGREGS', `0x8080aea1') +define(`VIDIOC_QUERY_DV_TIMINGS', `0x80845663') +define(`VIDIOC_SUBDEV_QUERY_DV_TIMINGS', `0x80845663') +define(`VIDIOC_DQEVENT', `0x80885659') +define(`VIDIOC_G_JPEGCOMP', `0x808c563d') +define(`KVM_GET_REGS', `0x8090ae81') +define(`SNDRV_PCM_IOCTL_STATUS', `0x80984120') +define(`FE_GET_INFO', `0x80a86f3d') +define(`MEMGETOOBSEL', `0x80c84d0a') +define(`SNDRV_HWDEP_IOCTL_INFO', `0x80dc4801') +define(`SNDRV_CTL_IOCTL_HWDEP_INFO', `0x80dc5521') +define(`SNDRV_TIMER_IOCTL_INFO', `0x80e85411') +define(`DRM_IOCTL_GET_STATS', `0x80f86406') +define(`ASHMEM_GET_NAME', `0x81007702') +define(`BTRFS_IOC_GET_FSLABEL', `0x81009431') +define(`HIDIOCGSTRING', `0x81044804') +define(`USBDEVFS_DISCONNECT_CLAIM', `0x8108551b') +define(`SNDRV_RAWMIDI_IOCTL_INFO', `0x810c5701') +define(`CA_GET_MSG', `0x810c6f84') +define(`AUTOFS_IOC_EXPIRE', `0x810c9365') +define(`SISFB_GET_INFO', `0x811cf301') +define(`SNDRV_PCM_IOCTL_INFO', `0x81204101') +define(`KVM_GET_SREGS', `0x8138ae83') +define(`ECCGETLAYOUT', `0x81484d11') +define(`SNDRV_CTL_IOCTL_CARD_INFO', `0x81785501') +define(`KVM_GET_XCRS', `0x8188aea6') +define(`AMDKFD_IOC_GET_PROCESS_APERTURES', `0x81904b06') +define(`KVM_GET_FPU', `0x81a0ae8c') +define(`KVM_SET_IRQCHIP', `0x8208ae63') +define(`VFAT_IOCTL_READDIR_BOTH', `0x82307201') +define(`VFAT_IOCTL_READDIR_SHORT', `0x82307202') +define(`KVM_PPC_GET_SMMU_INFO', `0x8250aea6') +define(`SNDRV_HDSP_IOCTL_GET_PEAK_RMS', `0x83b04840') +define(`JSIOCGBTNMAP', `0x84006a34') +define(`BTRFS_IOC_FS_INFO', `0x8400941f') +define(`BTRFS_IOC_BALANCE_PROGRESS', `0x84009422') +define(`KVM_GET_LAPIC', `0x8400ae8e') +define(`VIDEO_GET_NAVI', `0x84046f34') +define(`SNDRV_EMU10K1_IOCTL_INFO', `0x880c4810') +define(`VIDIOC_G_ENC_INDEX', `0x8818564c') +define(`SNDRV_HDSPM_IOCTL_GET_PEAK_RMS', `0x89084842') +define(`SNDCTL_COPR_RCVMSG', `0x8fa44309') +define(`GET_BITMAP_FILE', `0x90000915') +define(`SNDRV_HDSP_IOCTL_GET_MIXER', `0x90004844') +define(`BTRFS_IOC_DEVICES_READY', `0x90009427') +define(`KVM_GET_XSAVE', `0x9000aea4') +define(`HIDIOCGRDESC', `0x90044802') +define(`SNDRV_SEQ_IOCTL_GET_QUEUE_OWNER', `0xc0005343') +define(`GADGET_SET_PRINTER_STATUS', `0xc0016722') +define(`CAPI_GET_MANUFACTURER', `0xc0044306') +define(`CAPI_GET_SERIAL', `0xc0044308') +define(`GIGASET_REDIR', `0xc0044700') +define(`GIGASET_CONFIG', `0xc0044701') +define(`ION_IOC_FREE', `0xc0044901') +define(`SOUND_MIXER_AGC', `0xc0044d67') +define(`SOUND_MIXER_3DSE', `0xc0044d68') +define(`SOUND_MIXER_PRIVATE1', `0xc0044d6f') +define(`SOUND_MIXER_PRIVATE2', `0xc0044d70') +define(`SOUND_MIXER_PRIVATE3', `0xc0044d71') +define(`SOUND_MIXER_PRIVATE4', `0xc0044d72') +define(`SOUND_MIXER_PRIVATE5', `0xc0044d73') +define(`SNDCTL_DSP_SPEED', `0xc0045002') +define(`SNDCTL_DSP_STEREO', `0xc0045003') +define(`SNDCTL_DSP_GETBLKSIZE', `0xc0045004') +define(`SNDCTL_DSP_SETFMT', `0xc0045005') +define(`SNDCTL_DSP_CHANNELS', `0xc0045006') +define(`SOUND_PCM_WRITE_FILTER', `0xc0045007') +define(`SNDCTL_DSP_SUBDIVIDE', `0xc0045009') +define(`SNDCTL_DSP_SETFRAGMENT', `0xc004500a') +define(`SNDCTL_DSP_GETCHANNELMASK', `0xc0045040') +define(`SNDCTL_DSP_BIND_CHANNEL', `0xc0045041') +define(`SNDCTL_SEQ_CTRLRATE', `0xc0045103') +define(`SNDCTL_SYNTH_MEMAVL', `0xc004510e') +define(`SNDCTL_TMR_TIMEBASE', `0xc0045401') +define(`SNDCTL_TMR_TEMPO', `0xc0045405') +define(`SNDCTL_TMR_SOURCE', `0xc0045406') +define(`SNDRV_CTL_IOCTL_SUBSCRIBE_EVENTS', `0xc0045516') +define(`SNDRV_CTL_IOCTL_HWDEP_NEXT_DEVICE', `0xc0045520') +define(`SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE', `0xc0045540') +define(`SNDRV_CTL_IOCTL_POWER', `0xc00455d0') +define(`VIDIOC_S_INPUT', `0xc0045627') +define(`VIDIOC_S_OUTPUT', `0xc004562f') +define(`WDIOC_SETTIMEOUT', `0xc0045706') +define(`WDIOC_SETPRETIMEOUT', `0xc0045708') +define(`FIFREEZE', `0xc0045877') +define(`FITHAW', `0xc0045878') +define(`SONET_SETDIAG', `0xc0046112') +define(`SONET_CLRDIAG', `0xc0046113') +define(`BINDER_VERSION', `0xc0046209') +define(`DRM_IOCTL_BLOCK', `0xc0046412') +define(`DRM_IOCTL_UNBLOCK', `0xc0046413') +define(`DRM_IOCTL_ADD_DRAW', `0xc0046427') +define(`DRM_IOCTL_RM_DRAW', `0xc0046428') +define(`DRM_IOCTL_MGA_WAIT_FENCE', `0xc004644b') +define(`DRM_IOCTL_MODE_RMFB', `0xc00464af') +define(`DRM_IOCTL_MODE_DESTROY_DUMB', `0xc00464b4') +define(`SNDCTL_MIDI_PRETIME', `0xc0046d00') +define(`SNDCTL_MIDI_MPUMODE', `0xc0046d01') +define(`MGSL_IOCWAITEVENT', `0xc0046d08') +define(`TOSH_SMM', `0xc0047490') +define(`MEYEIOC_SYNC', `0xc00476c3') +define(`AUTOFS_IOC_SETTIMEOUT32', `0xc0049364') +define(`KVM_GET_MSR_INDEX_LIST', `0xc004ae02') +define(`KVM_PPC_ALLOCATE_HTAB', `0xc004aea7') +define(`NET_ADD_IF', `0xc0066f34') +define(`NET_GET_IF', `0xc0066f36') +define(`AGPIOC_ALLOCATE', `0xc0084106') +define(`HDA_IOCTL_VERB_WRITE', `0xc0084811') +define(`HDA_IOCTL_GET_WCAP', `0xc0084812') +define(`ION_IOC_MAP', `0xc0084902') +define(`ION_IOC_SHARE', `0xc0084904') +define(`ION_IOC_IMPORT', `0xc0084905') +define(`ION_IOC_SYNC', `0xc0084907') +define(`AMDKFD_IOC_DESTROY_QUEUE', `0xc0084b03') +define(`SNDRV_CTL_IOCTL_TLV_READ', `0xc008551a') +define(`SNDRV_CTL_IOCTL_TLV_WRITE', `0xc008551b') +define(`SNDRV_CTL_IOCTL_TLV_COMMAND', `0xc008551c') +define(`VIDIOC_G_CTRL', `0xc008561b') +define(`VIDIOC_S_CTRL', `0xc008561c') +define(`VIDIOC_OMAP3ISP_STAT_EN', `0xc00856c7') +define(`CM_IOCGATR', `0xc0086301') +define(`CIOC_KERNEL_VERSION', `0xc008630a') +define(`DRM_IOCTL_GEM_FLINK', `0xc008640a') +define(`DRM_IOCTL_ADD_CTX', `0xc0086420') +define(`DRM_IOCTL_RM_CTX', `0xc0086421') +define(`DRM_IOCTL_GET_CTX', `0xc0086423') +define(`DRM_IOCTL_QXL_ALLOC', `0xc0086440') +define(`DRM_IOCTL_TEGRA_GEM_MMAP', `0xc0086441') +define(`DRM_IOCTL_SAVAGE_BCI_EVENT_EMIT', `0xc0086442') +define(`DRM_IOCTL_TEGRA_SYNCPT_READ', `0xc0086442') +define(`DRM_IOCTL_VIA_AGP_INIT', `0xc0086442') +define(`DRM_IOCTL_TEGRA_SYNCPT_INCR', `0xc0086443') +define(`DRM_IOCTL_VIA_FB_INIT', `0xc0086443') +define(`DRM_IOCTL_I915_IRQ_EMIT', `0xc0086444') +define(`DRM_IOCTL_TEGRA_GEM_SET_FLAGS', `0xc008644c') +define(`DRM_IOCTL_TEGRA_GEM_GET_FLAGS', `0xc008644d') +define(`DRM_IOCTL_RADEON_IRQ_EMIT', `0xc0086456') +define(`DRM_IOCTL_I915_GEM_BUSY', `0xc0086457') +define(`DRM_IOCTL_EXYNOS_G2D_GET_VER', `0xc0086460') +define(`DRM_IOCTL_EXYNOS_G2D_EXEC', `0xc0086462') +define(`DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID', `0xc0086465') +define(`DRM_IOCTL_RADEON_GEM_BUSY', `0xc008646a') +define(`DRM_IOCTL_I915_GEM_CONTEXT_CREATE', `0xc008646d') +define(`DRM_IOCTL_I915_GEM_GET_CACHING', `0xc0086470') +define(`DRM_IOCTL_EXYNOS_IPP_CMD_CTRL', `0xc0086473') +define(`I8K_GET_SPEED', `0xc0086985') +define(`I8K_GET_FAN', `0xc0086986') +define(`I8K_SET_FAN', `0xc0086987') +define(`UDF_RELOCATE_BLOCKS', `0xc0086c43') +define(`MATROXFB_GET_OUTPUT_MODE', `0xc0086efa') +define(`PHN_GET_REG', `0xc0087000') +define(`PHN_GET_REGS', `0xc0087002') +define(`PHN_GETREG', `0xc0087005') +define(`PPS_FETCH', `0xc00870a4') +define(`PHONE_QUERY_CODEC', `0xc00871a7') +define(`MIC_VIRTIO_ADD_DEVICE', `0xc0087301') +define(`MIC_VIRTIO_COPY_DESC', `0xc0087302') +define(`MIC_VIRTIO_CONFIG_CHANGE', `0xc0087305') +define(`AUTOFS_IOC_SETTIMEOUT', `0xc0089364') +define(`KVM_GET_SUPPORTED_CPUID', `0xc008ae05') +define(`KVM_GET_EMULATED_CPUID', `0xc008ae09') +define(`KVM_IRQ_LINE_STATUS', `0xc008ae67') +define(`KVM_GET_MSRS', `0xc008ae88') +define(`KVM_GET_CPUID2', `0xc008ae91') +define(`KVM_GET_REG_LIST', `0xc008aeb0') +define(`FSL_HV_IOCTL_PARTITION_RESTART', `0xc008af01') +define(`FSL_HV_IOCTL_PARTITION_STOP', `0xc008af04') +define(`FSL_HV_IOCTL_DOORBELL', `0xc008af06') +define(`VHOST_GET_VRING_BASE', `0xc008af12') +define(`HIDIOCGREPORTINFO', `0xc00c4809') +define(`SNDCTL_SYNTH_REMOVESAMPLE', `0xc00c5116') +define(`USBDEVFS_IOCTL32', `0xc00c5512') +define(`UI_BEGIN_FF_ERASE', `0xc00c55ca') +define(`DRM_IOCTL_PRIME_HANDLE_TO_FD', `0xc00c642d') +define(`DRM_IOCTL_PRIME_FD_TO_HANDLE', `0xc00c642e') +define(`DRM_IOCTL_VIA_CMDBUF_SIZE', `0xc00c644b') +define(`DRM_IOCTL_I915_VBLANK_SWAP', `0xc00c644f') +define(`DRM_IOCTL_RADEON_GEM_SET_DOMAIN', `0xc00c6463') +define(`DRM_IOCTL_I915_GEM_MADVISE', `0xc00c6466') +define(`DRM_IOCTL_RADEON_GEM_SET_TILING', `0xc00c6468') +define(`DRM_IOCTL_RADEON_GEM_GET_TILING', `0xc00c6469') +define(`KVM_CREATE_DEVICE', `0xc00caee0') +define(`FSL_HV_IOCTL_PARTITION_GET_STATUS', `0xc00caf02') +define(`MBXFB_IOCX_REG', `0xc00cf405') +define(`CAPI_GET_VERSION', `0xc0104307') +define(`CAPI_MANUFACTURER_CMD', `0xc0104320') +define(`GIGASET_VERSION', `0xc0104703') +define(`IOCTL_MEI_CONNECT_CLIENT', `0xc0104801') +define(`HIDIOCGCOLLECTIONINFO', `0xc0104811') +define(`SNDRV_EMU10K1_IOCTL_TRAM_PEEK', `0xc0104822') +define(`SNDRV_EMUX_IOCTL_LOAD_PATCH', `0xc0104881') +define(`SNDRV_EMUX_IOCTL_MISC_MODE', `0xc0104884') +define(`ION_IOC_CUSTOM', `0xc0104906') +define(`MEMWRITEOOB', `0xc0104d03') +define(`MEMREADOOB', `0xc0104d04') +define(`MEMGETREGIONINFO', `0xc0104d08') +define(`SNDRV_SEQ_IOCTL_RUNNING_MODE', `0xc0105303') +define(`USBDEVFS_CONTROL32', `0xc0105500') +define(`USBDEVFS_BULK32', `0xc0105502') +define(`USBDEVFS_IOCTL', `0xc0105512') +define(`NS_GETPSTAT', `0xc0106161') +define(`DRM_IOCTL_GET_UNIQUE', `0xc0106401') +define(`DRM_IOCTL_IRQ_BUSID', `0xc0106403') +define(`DRM_IOCTL_SET_VERSION', `0xc0106407') +define(`DRM_IOCTL_GEM_OPEN', `0xc010640b') +define(`DRM_IOCTL_GET_CAP', `0xc010640c') +define(`DRM_IOCTL_INFO_BUFS', `0xc0106418') +define(`DRM_IOCTL_GET_SAREA_CTX', `0xc010641d') +define(`DRM_IOCTL_RES_CTX', `0xc0106426') +define(`DRM_IOCTL_SG_ALLOC', `0xc0106438') +define(`DRM_IOCTL_EXYNOS_GEM_CREATE', `0xc0106440') +define(`DRM_IOCTL_MSM_GET_PARAM', `0xc0106440') +define(`DRM_IOCTL_OMAP_GET_PARAM', `0xc0106440') +define(`DRM_IOCTL_TEGRA_GEM_CREATE', `0xc0106440') +define(`DRM_IOCTL_QXL_MAP', `0xc0106441') +define(`DRM_IOCTL_MSM_GEM_NEW', `0xc0106442') +define(`DRM_IOCTL_MSM_GEM_INFO', `0xc0106443') +define(`DRM_IOCTL_OMAP_GEM_NEW', `0xc0106443') +define(`DRM_IOCTL_EXYNOS_GEM_GET', `0xc0106444') +define(`DRM_IOCTL_QXL_GETPARAM', `0xc0106444') +define(`DRM_IOCTL_TEGRA_SYNCPT_WAIT', `0xc0106444') +define(`DRM_IOCTL_TEGRA_OPEN_CHANNEL', `0xc0106445') +define(`DRM_IOCTL_I915_GETPARAM', `0xc0106446') +define(`DRM_IOCTL_TEGRA_CLOSE_CHANNEL', `0xc0106446') +define(`DRM_IOCTL_EXYNOS_VIDI_CONNECTION', `0xc0106447') +define(`DRM_IOCTL_TEGRA_GET_SYNCPT', `0xc0106447') +define(`DRM_IOCTL_MGA_GETPARAM', `0xc0106449') +define(`DRM_IOCTL_TEGRA_GET_SYNCPT_BASE', `0xc0106449') +define(`DRM_IOCTL_TEGRA_GEM_SET_TILING', `0xc010644a') +define(`DRM_IOCTL_TEGRA_GEM_GET_TILING', `0xc010644b') +define(`DRM_IOCTL_RADEON_INDIRECT', `0xc010644d') +define(`DRM_IOCTL_R128_INDIRECT', `0xc010644f') +define(`DRM_IOCTL_RADEON_GETPARAM', `0xc0106451') +define(`DRM_IOCTL_R128_GETPARAM', `0xc0106452') +define(`DRM_IOCTL_SIS_AGP_INIT', `0xc0106453') +define(`DRM_IOCTL_I915_GEM_CREATE', `0xc010645b') +define(`DRM_IOCTL_I915_GEM_SET_TILING', `0xc0106461') +define(`DRM_IOCTL_I915_GEM_GET_TILING', `0xc0106462') +define(`DRM_IOCTL_I915_GEM_MMAP_GTT', `0xc0106464') +define(`DRM_IOCTL_RADEON_INFO', `0xc0106467') +define(`DRM_IOCTL_I915_GEM_WAIT', `0xc010646c') +define(`DRM_IOCTL_RADEON_GEM_OP', `0xc010646c') +define(`DRM_IOCTL_I915_REG_READ', `0xc0106471') +define(`DRM_IOCTL_MODE_SETPROPERTY', `0xc01064ab') +define(`DRM_IOCTL_MODE_GETPROPBLOB', `0xc01064ac') +define(`DRM_IOCTL_MODE_MAP_DUMB', `0xc01064b3') +define(`DRM_IOCTL_MODE_GETPLANERESOURCES', `0xc01064b5') +define(`MGSL_IOCWAITGPIO', `0xc0106d12') +define(`NCP_IOC_GETPRIVATEDATA', `0xc0106e0a') +define(`DMX_GET_STC', `0xc0106f32') +define(`UVCIOC_CTRL_QUERY', `0xc0107521') +define(`BTRFS_IOC_SPACE_INFO', `0xc0109414') +define(`BTRFS_IOC_QUOTA_CTL', `0xc0109428') +define(`FSL_HV_IOCTL_PARTITION_START', `0xc010af03') +define(`SNDCTL_COPR_RDATA', `0xc0144302') +define(`SNDCTL_COPR_RCODE', `0xc0144303') +define(`SNDCTL_COPR_RUN', `0xc0144306') +define(`SNDCTL_COPR_HALT', `0xc0144307') +define(`SNDRV_TIMER_IOCTL_NEXT_DEVICE', `0xc0145401') +define(`VIDIOC_REQBUFS', `0xc0145608') +define(`VIDIOC_G_CROP', `0xc014563b') +define(`DRM_IOCTL_I915_GET_SPRITE_COLORKEY', `0xc014646b') +define(`DRM_IOCTL_I915_SET_SPRITE_COLORKEY', `0xc014646b') +define(`DRM_IOCTL_MODE_GETENCODER', `0xc01464a6') +define(`FW_CDEV_IOC_ADD_DESCRIPTOR', `0xc0182306') +define(`FW_CDEV_IOC_QUEUE_ISO', `0xc0182309') +define(`FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE', `0xc018230d') +define(`FW_CDEV_IOC_GET_CYCLE_TIMER2', `0xc0182314') +define(`FW_CDEV_IOC_SEND_PHY_PACKET', `0xc0182315') +define(`HIDIOCGUSAGE', `0xc018480b') +define(`HIDIOCGUCODE', `0xc018480d') +define(`MTRRIOC_GET_ENTRY', `0xc0184d03') +define(`MTRRIOC_GET_PAGE_ENTRY', `0xc0184d08') +define(`MEMWRITEOOB64', `0xc0184d15') +define(`MEMREADOOB64', `0xc0184d16') +define(`USBDEVFS_CONTROL', `0xc0185500') +define(`USBDEVFS_BULK', `0xc0185502') +define(`PACKET_CTRL_CMD', `0xc0185801') +define(`FITRIM', `0xc0185879') +define(`DRM_IOCTL_MAP_BUFS', `0xc0186419') +define(`DRM_IOCTL_WAIT_VBLANK', `0xc018643a') +define(`DRM_IOCTL_I810_GETBUF', `0xc0186445') +define(`DRM_IOCTL_OMAP_GEM_INFO', `0xc0186446') +define(`DRM_IOCTL_QXL_ALLOC_SURF', `0xc0186446') +define(`DRM_IOCTL_I915_ALLOC', `0xc0186448') +define(`DRM_IOCTL_VIA_WAIT_IRQ', `0xc018644d') +define(`DRM_IOCTL_RADEON_ALLOC', `0xc0186453') +define(`DRM_IOCTL_I915_GEM_PIN', `0xc0186455') +define(`DRM_IOCTL_RADEON_GEM_INFO', `0xc018645c') +define(`DRM_IOCTL_RADEON_GEM_VA', `0xc018646b') +define(`DRM_IOCTL_RADEON_GEM_USERPTR', `0xc018646d') +define(`DRM_IOCTL_I915_GET_RESET_STATS', `0xc0186472') +define(`DRM_IOCTL_I915_GEM_USERPTR', `0xc0186473') +define(`DRM_IOCTL_MODE_PAGE_FLIP', `0xc01864b0') +define(`DRM_IOCTL_MODE_DIRTYFB', `0xc01864b1') +define(`DRM_IOCTL_MODE_OBJ_SETPROPERTY', `0xc01864ba') +define(`I2OHRTGET', `0xc0186901') +define(`I2OLCTGET', `0xc0186902') +define(`NCP_IOC_GETOBJECTNAME', `0xc0186e09') +define(`NILFS_IOCTL_GET_VINFO', `0xc0186e86') +define(`NILFS_IOCTL_GET_BDESCS', `0xc0186e87') +define(`AUTOFS_DEV_IOCTL_VERSION', `0xc0189371') +define(`AUTOFS_DEV_IOCTL_PROTOVER', `0xc0189372') +define(`AUTOFS_DEV_IOCTL_PROTOSUBVER', `0xc0189373') +define(`AUTOFS_DEV_IOCTL_OPENMOUNT', `0xc0189374') +define(`AUTOFS_DEV_IOCTL_CLOSEMOUNT', `0xc0189375') +define(`AUTOFS_DEV_IOCTL_READY', `0xc0189376') +define(`AUTOFS_DEV_IOCTL_FAIL', `0xc0189377') +define(`AUTOFS_DEV_IOCTL_SETPIPEFD', `0xc0189378') +define(`AUTOFS_DEV_IOCTL_CATATONIC', `0xc0189379') +define(`AUTOFS_DEV_IOCTL_TIMEOUT', `0xc018937a') +define(`AUTOFS_DEV_IOCTL_REQUESTER', `0xc018937b') +define(`AUTOFS_DEV_IOCTL_EXPIRE', `0xc018937c') +define(`AUTOFS_DEV_IOCTL_ASKUMOUNT', `0xc018937d') +define(`AUTOFS_DEV_IOCTL_ISMOUNTPOINT', `0xc018937e') +define(`BTRFS_IOC_FILE_EXTENT_SAME', `0xc0189436') +define(`KVM_TRANSLATE', `0xc018ae85') +define(`IB_USER_MAD_REGISTER_AGENT', `0xc01c1b01') +define(`SI4713_IOC_MEASURE_RNL', `0xc01c56c0') +define(`DRM_IOCTL_MODE_CURSOR', `0xc01c64a3') +define(`DRM_IOCTL_MODE_GETFB', `0xc01c64ad') +define(`DRM_IOCTL_MODE_ADDFB', `0xc01c64ae') +define(`FW_CDEV_IOC_ALLOCATE', `0xc0202302') +define(`FW_CDEV_IOC_CREATE_ISO_CONTEXT', `0xc0202308') +define(`ION_IOC_ALLOC', `0xc0204900') +define(`VIDIOC_G_EXT_CTRLS', `0xc0205647') +define(`VIDIOC_S_EXT_CTRLS', `0xc0205648') +define(`VIDIOC_TRY_EXT_CTRLS', `0xc0205649') +define(`VIDIOC_OMAP3ISP_AEWB_CFG', `0xc02056c3') +define(`X86_IOC_RDMSR_REGS', `0xc02063a0') +define(`X86_IOC_WRMSR_REGS', `0xc02063a1') +define(`DRM_IOCTL_ADD_BUFS', `0xc0206416') +define(`DRM_IOCTL_AGP_ALLOC', `0xc0206434') +define(`DRM_IOCTL_VIA_ALLOCMEM', `0xc0206440') +define(`DRM_IOCTL_SIS_FB_ALLOC', `0xc0206444') +define(`DRM_IOCTL_MSM_GEM_SUBMIT', `0xc0206446') +define(`DRM_IOCTL_VIA_DMA_INIT', `0xc0206447') +define(`DRM_IOCTL_MGA_DMA_BOOTSTRAP', `0xc020644c') +define(`DRM_IOCTL_RADEON_TEXTURE', `0xc020644e') +define(`DRM_IOCTL_SIS_AGP_ALLOC', `0xc0206454') +define(`DRM_IOCTL_RADEON_GEM_CREATE', `0xc020645d') +define(`DRM_IOCTL_I915_GEM_MMAP', `0xc020645e') +define(`DRM_IOCTL_RADEON_GEM_MMAP', `0xc020645e') +define(`DRM_IOCTL_RADEON_GEM_PREAD', `0xc0206461') +define(`DRM_IOCTL_RADEON_GEM_PWRITE', `0xc0206462') +define(`DRM_IOCTL_RADEON_CS', `0xc0206466') +define(`DRM_IOCTL_MODE_GETGAMMA', `0xc02064a4') +define(`DRM_IOCTL_MODE_SETGAMMA', `0xc02064a5') +define(`DRM_IOCTL_MODE_CREATE_DUMB', `0xc02064b2') +define(`DRM_IOCTL_MODE_GETPLANE', `0xc02064b6') +define(`DRM_IOCTL_MODE_OBJ_GETPROPERTIES', `0xc02064b9') +define(`FS_IOC_FIEMAP', `0xc020660b') +define(`GENWQE_PIN_MEM', `0xc020a528') +define(`GENWQE_UNPIN_MEM', `0xc020a529') +define(`SNDCTL_MIDI_MPUCMD', `0xc0216d02') +define(`SNDRV_COMPRESS_GET_METADATA', `0xc0244315') +define(`DRM_IOCTL_MODE_CURSOR2', `0xc02464bb') +define(`IB_USER_MAD_REGISTER_AGENT2', `0xc0281b04') +define(`FW_CDEV_IOC_GET_INFO', `0xc0282300') +define(`SYNC_IOC_MERGE', `0xc0283e01') +define(`SYNC_IOC_FENCE_INFO', `0xc0283e02') +define(`AMDKFD_IOC_GET_CLOCK_COUNTERS', `0xc0284b05') +define(`VIDIOC_G_EDID', `0xc0285628') +define(`VIDIOC_SUBDEV_G_EDID', `0xc0285628') +define(`VIDIOC_SUBDEV_S_EDID', `0xc0285629') +define(`VIDIOC_S_EDID', `0xc0285629') +define(`VIDIOC_ENCODER_CMD', `0xc028564d') +define(`VIDIOC_TRY_ENCODER_CMD', `0xc028564e') +define(`VIDIOC_OMAP3ISP_STAT_REQ', `0xc02856c6') +define(`SW_SYNC_IOC_CREATE_FENCE', `0xc0285700') +define(`DRM_IOCTL_GET_MAP', `0xc0286404') +define(`DRM_IOCTL_GET_CLIENT', `0xc0286405') +define(`DRM_IOCTL_ADD_MAP', `0xc0286415') +define(`DRM_IOCTL_VIA_MAP_INIT', `0xc0286444') +define(`DRM_IOCTL_EXYNOS_G2D_SET_CMDLIST', `0xc0286461') +define(`DRM_IOCTL_EXYNOS_IPP_QUEUE_BUF', `0xc0286472') +define(`DRM_IOCTL_NOUVEAU_GEM_INFO', `0xc0286484') +define(`I2OPARMSET', `0xc0286903') +define(`I2OPARMGET', `0xc0286904') +define(`NCP_IOC_GET_FS_INFO', `0xc0286e04') +define(`PHN_GETREGS', `0xc0287007') +define(`MEDIA_IOC_ENUM_LINKS', `0xc0287c02') +define(`KVM_TPR_ACCESS_REPORTING', `0xc028ae92') +define(`FSL_HV_IOCTL_MEMCPY', `0xc028af05') +define(`FSL_HV_IOCTL_GETPROP', `0xc028af07') +define(`FSL_HV_IOCTL_SETPROP', `0xc028af08') +define(`NCP_IOC_GETCHARSETS', `0xc02a6e0b') +define(`SNDRV_SEQ_IOCTL_GET_QUEUE_TEMPO', `0xc02c5341') +define(`VIDIOC_QUERYMENU', `0xc02c5625') +define(`VIDIOC_G_FREQUENCY', `0xc02c5638') +define(`VIDIOC_CROPCAP', `0xc02c563a') +define(`VIDIOC_ENUM_FRAMESIZES', `0xc02c564a') +define(`DRM_IOCTL_I915_OVERLAY_ATTRS', `0xc02c6468') +define(`MEMWRITE', `0xc0304d18') +define(`SNDRV_SEQ_IOCTL_SYSTEM_INFO', `0xc0305302') +define(`VIDIOC_SUBDEV_ENUM_MBUS_CODE', `0xc0305602') +define(`VIDIOC_SUBDEV_G_FRAME_INTERVAL', `0xc0305615') +define(`VIDIOC_SUBDEV_S_FRAME_INTERVAL', `0xc0305616') +define(`VIDIOC_OMAP3ISP_HIST_CFG', `0xc03056c4') +define(`SNDRV_RAWMIDI_IOCTL_PARAMS', `0xc0305710') +define(`BINDER_WRITE_READ', `0xc0306201') +define(`DRM_IOCTL_NOUVEAU_GEM_NEW', `0xc0306480') +define(`DRM_IOCTL_MODE_SETPLANE', `0xc03064b7') +define(`I2OSWDL', `0xc0306905') +define(`I2OSWUL', `0xc0306906') +define(`I2OSWDEL', `0xc0306907') +define(`I2OHTML', `0xc0306909') +define(`IPMICTL_RECEIVE_MSG_TRUNC', `0xc030690b') +define(`IPMICTL_RECEIVE_MSG', `0xc030690c') +define(`NCP_IOC_GET_FS_INFO_V2', `0xc0306e04') +define(`MBXFB_IOCX_OVERLAY', `0xc030f400') +define(`VIDIOC_ENUMAUDIO', `0xc0345641') +define(`VIDIOC_ENUMAUDOUT', `0xc0345642') +define(`VIDIOC_ENUM_FRAMEINTERVALS', `0xc034564b') +define(`MEDIA_IOC_SETUP_LINK', `0xc0347c03') +define(`HIDIOCGFIELDINFO', `0xc038480a') +define(`VIDIOC_SUBDEV_G_CROP', `0xc038563b') +define(`VIDIOC_SUBDEV_S_CROP', `0xc038563c') +define(`VIDIOC_DBG_G_REGISTER', `0xc0385650') +define(`VIDIOC_OMAP3ISP_CCDC_CFG', `0xc03856c1') +define(`SNDRV_RAWMIDI_IOCTL_STATUS', `0xc0385720') +define(`BTRFS_IOC_INO_PATHS', `0xc0389423') +define(`BTRFS_IOC_LOGICAL_INO', `0xc0389424') +define(`GENWQE_SLU_UPDATE', `0xc038a550') +define(`GENWQE_SLU_READ', `0xc038a551') +define(`CAPI_GET_PROFILE', `0xc0404309') +define(`SNDRV_CTL_IOCTL_ELEM_REMOVE', `0xc0405519') +define(`VIDIOC_ENUM_FMT', `0xc0405602') +define(`VIDIOC_EXPBUF', `0xc0405610') +define(`VIDIOC_SUBDEV_G_SELECTION', `0xc040563d') +define(`VIDIOC_SUBDEV_S_SELECTION', `0xc040563e') +define(`VIDIOC_SUBDEV_ENUM_FRAME_SIZE', `0xc040564a') +define(`VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL', `0xc040564b') +define(`VIDIOC_G_SELECTION', `0xc040565e') +define(`VIDIOC_S_SELECTION', `0xc040565f') +define(`VIDIOC_ENUM_FREQ_BANDS', `0xc0405665') +define(`DRM_IOCTL_VERSION', `0xc0406400') +define(`DRM_IOCTL_DMA', `0xc0406429') +define(`DRM_IOCTL_NOUVEAU_GEM_PUSHBUF', `0xc0406481') +define(`DRM_IOCTL_MODE_GETRESOURCES', `0xc04064a0') +define(`DRM_IOCTL_MODE_GETPROPERTY', `0xc04064aa') +define(`VIDIOC_QUERYCTRL', `0xc0445624') +define(`VIDIOC_G_MODULATOR', `0xc0445636') +define(`DRM_IOCTL_MODE_ADDFB2', `0xc04464b8') +define(`BLKTRACESETUP', `0xc0481273') +define(`SNDRV_EMU10K1_IOCTL_PCM_PEEK', `0xc0484831') +define(`NVME_IOCTL_ADMIN_CMD', `0xc0484e41') +define(`NVME_IOCTL_IO_CMD', `0xc0484e43') +define(`VIDIOC_ENUMSTD', `0xc0485619') +define(`VIDIOC_ENUMOUTPUT', `0xc0485630') +define(`VIDIOC_DECODER_CMD', `0xc0485660') +define(`VIDIOC_TRY_DECODER_CMD', `0xc0485661') +define(`DRM_IOCTL_MODE_ATTACHMODE', `0xc04864a8') +define(`DRM_IOCTL_MODE_DETACHMODE', `0xc04864a9') +define(`VIDEO_COMMAND', `0xc0486f3b') +define(`VIDEO_TRY_COMMAND', `0xc0486f3c') +define(`KVM_GET_PIT', `0xc048ae65') +define(`MMC_IOC_CMD', `0xc048b300') +define(`SNDRV_SEQ_IOCTL_GET_QUEUE_CLIENT', `0xc04c5349') +define(`VIDIOC_OMAP3ISP_AF_CFG', `0xc04c56c5') +define(`SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION', `0xc0505350') +define(`SNDRV_TIMER_IOCTL_GSTATUS', `0xc0505405') +define(`SNDRV_CTL_IOCTL_ELEM_LIST', `0xc0505510') +define(`VIDIOC_ENUMINPUT', `0xc050561a') +define(`DRM_IOCTL_EXYNOS_IPP_GET_PROPERTY', `0xc0506470') +define(`DRM_IOCTL_MODE_GETCONNECTOR', `0xc05064a7') +define(`VIDIOC_G_TUNER', `0xc054561d') +define(`SISFB_COMMAND', `0xc054f305') +define(`CCISS_PASSTHRU', `0xc058420b') +define(`AMDKFD_IOC_CREATE_QUEUE', `0xc0584b02') +define(`SNDRV_SEQ_IOCTL_GET_CLIENT_POOL', `0xc058534b') +define(`SNDRV_SEQ_IOCTL_QUERY_SUBS', `0xc058534f') +define(`VIDIOC_SUBDEV_G_FMT', `0xc0585604') +define(`VIDIOC_SUBDEV_S_FMT', `0xc0585605') +define(`VIDIOC_QUERYBUF', `0xc0585609') +define(`VIDIOC_QBUF', `0xc058560f') +define(`VIDIOC_DQBUF', `0xc0585611') +define(`VIDIOC_PREPARE_BUF', `0xc058565d') +define(`DRM_IOCTL_TEGRA_SUBMIT', `0xc0586448') +define(`SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS', `0xc05c5340') +define(`PTP_PIN_GETFUNC', `0xc0603d06') +define(`CCISS_BIG_PASSTHRU', `0xc0604212') +define(`SNDRV_SEQ_IOCTL_GET_QUEUE_TIMER', `0xc0605345') +define(`DRM_IOCTL_EXYNOS_IPP_SET_PROPERTY', `0xc0606471') +define(`UVCIOC_CTRL_MAP', `0xc0607520') +define(`FBIO_CURSOR', `0xc0684608') +define(`UI_BEGIN_FF_UPLOAD', `0xc06855c8') +define(`DRM_IOCTL_MODE_GETCRTC', `0xc06864a1') +define(`DRM_IOCTL_MODE_SETCRTC', `0xc06864a2') +define(`VIDIOC_OMAP3ISP_PRV_CFG', `0xc07056c2') +define(`BTRFS_IOC_TREE_SEARCH_V2', `0xc0709411') +define(`SNDCTL_MIDI_INFO', `0xc074510c') +define(`VIDIOC_G_SLICED_VBI_CAP', `0xc0745645') +define(`SOUND_MIXER_ACCESS', `0xc0804d66') +define(`VIDIOC_SUBDEV_S_DV_TIMINGS', `0xc0845657') +define(`VIDIOC_S_DV_TIMINGS', `0xc0845657') +define(`VIDIOC_G_DV_TIMINGS', `0xc0845658') +define(`VIDIOC_SUBDEV_G_DV_TIMINGS', `0xc0845658') +define(`SNDRV_PCM_IOCTL_SW_PARAMS', `0xc0884113') +define(`SNDRV_PCM_IOCTL_SYNC_PTR', `0xc0884123') +define(`SNDCTL_SYNTH_INFO', `0xc08c5102') +define(`SNDCTL_SYNTH_ID', `0xc08c5114') +define(`SNDRV_SEQ_IOCTL_CREATE_QUEUE', `0xc08c5332') +define(`SNDRV_SEQ_IOCTL_GET_QUEUE_INFO', `0xc08c5334') +define(`SNDRV_SEQ_IOCTL_SET_QUEUE_INFO', `0xc08c5335') +define(`SNDRV_SEQ_IOCTL_GET_NAMED_QUEUE', `0xc08c5336') +define(`VIDIOC_DV_TIMINGS_CAP', `0xc0905664') +define(`VIDIOC_SUBDEV_DV_TIMINGS_CAP', `0xc0905664') +define(`VIDIOC_ENUM_DV_TIMINGS', `0xc0945662') +define(`VIDIOC_SUBDEV_ENUM_DV_TIMINGS', `0xc0945662') +define(`SOUND_MIXER_GETLEVELS', `0xc0a44d74') +define(`SOUND_MIXER_SETLEVELS', `0xc0a44d75') +define(`SNDRV_SEQ_IOCTL_CREATE_PORT', `0xc0a85320') +define(`SNDRV_SEQ_IOCTL_GET_PORT_INFO', `0xc0a85322') +define(`SNDRV_SEQ_IOCTL_QUERY_NEXT_PORT', `0xc0a85352') +define(`SNDRV_SEQ_IOCTL_GET_CLIENT_INFO', `0xc0bc5310') +define(`SNDRV_SEQ_IOCTL_QUERY_NEXT_CLIENT', `0xc0bc5351') +define(`SNDRV_COMPRESS_GET_CAPS', `0xc0c44310') +define(`VIDIOC_DBG_G_CHIP_INFO', `0xc0c85666') +define(`BTRFS_IOC_SET_RECEIVED_SUBVOL', `0xc0c89425') +define(`VIDIOC_G_PARM', `0xc0cc5615') +define(`VIDIOC_S_PARM', `0xc0cc5616') +define(`VIDIOC_G_FMT', `0xc0d05604') +define(`VIDIOC_S_FMT', `0xc0d05605') +define(`VIDIOC_TRY_FMT', `0xc0d05640') +define(`VIDIOC_QUERY_EXT_CTRL', `0xc0e85667') +define(`GENWQE_EXECUTE_DDCB', `0xc0e8a532') +define(`GENWQE_EXECUTE_RAW_DDCB', `0xc0e8a533') +define(`SNDRV_TIMER_IOCTL_GINFO', `0xc0f85403') +define(`VIDIOC_CREATE_BUFS', `0xc100565c') +define(`MEDIA_IOC_DEVICE_INFO', `0xc1007c00') +define(`MEDIA_IOC_ENUM_ENTITIES', `0xc1007c01') +define(`SNDRV_CTL_IOCTL_RAWMIDI_INFO', `0xc10c5541') +define(`SNDRV_CTL_IOCTL_ELEM_INFO', `0xc1105511') +define(`SNDRV_CTL_IOCTL_ELEM_ADD', `0xc1105517') +define(`SNDRV_CTL_IOCTL_ELEM_REPLACE', `0xc1105518') +define(`SNDRV_CTL_IOCTL_PCM_INFO', `0xc1205531') +define(`DM_VERSION', `0xc138fd00') +define(`DM_REMOVE_ALL', `0xc138fd01') +define(`DM_LIST_DEVICES', `0xc138fd02') +define(`DM_DEV_CREATE', `0xc138fd03') +define(`DM_DEV_REMOVE', `0xc138fd04') +define(`DM_DEV_RENAME', `0xc138fd05') +define(`DM_DEV_SUSPEND', `0xc138fd06') +define(`DM_DEV_STATUS', `0xc138fd07') +define(`DM_DEV_WAIT', `0xc138fd08') +define(`DM_TABLE_LOAD', `0xc138fd09') +define(`DM_TABLE_CLEAR', `0xc138fd0a') +define(`DM_TABLE_DEPS', `0xc138fd0b') +define(`DM_TABLE_STATUS', `0xc138fd0c') +define(`DM_LIST_VERSIONS', `0xc138fd0d') +define(`DM_TARGET_MSG', `0xc138fd0e') +define(`DM_DEV_SET_GEOMETRY', `0xc138fd0f') +define(`SNDRV_EMU10K1_IOCTL_CODE_PEEK', `0xc1b04812') +define(`KVM_GET_IRQCHIP', `0xc208ae62') +define(`SNDRV_PCM_IOCTL_HW_REFINE', `0xc2604110') +define(`SNDRV_PCM_IOCTL_HW_PARAMS', `0xc2604111') +define(`VIDIOC_VSP1_LUT_CONFIG', `0xc40056c1') +define(`BTRFS_IOC_SCRUB', `0xc400941b') +define(`BTRFS_IOC_SCRUB_PROGRESS', `0xc400941d') +define(`BTRFS_IOC_BALANCE_V2', `0xc4009420') +define(`BTRFS_IOC_GET_DEV_STATS', `0xc4089434') +define(`SNDRV_CTL_IOCTL_ELEM_READ', `0xc4c85512') +define(`SNDRV_CTL_IOCTL_ELEM_WRITE', `0xc4c85513') +define(`BTRFS_IOC_DEV_REPLACE', `0xca289435') +define(`SNDCTL_COPR_SENDMSG', `0xcfa44308') +define(`SNDCTL_SYNTH_CONTROL', `0xcfa45115') +define(`SNDCTL_COPR_LOAD', `0xcfb04301') +define(`BTRFS_IOC_TREE_SEARCH', `0xd0009411') +define(`BTRFS_IOC_INO_LOOKUP', `0xd0009412') +define(`BTRFS_IOC_DEV_INFO', `0xd000941e') +define(`HIDIOCGUSAGES', `0xd01c4813') +define(`SNDRV_COMPRESS_GET_CODEC_CAPS', `0xeb884311') +define(`WAN_IOC_ADD_FLT_RULE', `0x00006900') +define(`WAN_IOC_ADD_FLT_INDEX', `0x00006902') +define(`PPPIOCGL2TPSTATS', `0x7436') +define(`PPPIOCGCHAN', `0x7437') +define(`PPPIOCATTCHAN', `0x7438') +define(`PPPIOCDISCONN', `0x7439') +define(`PPPIOCCONNECT', `0x743a') +define(`PPPIOCSMRRU', `0x743b') +define(`PPPIOCDETACH', `0x743c') +define(`PPPIOCATTACH', `0x743d') +define(`PPPIOCNEWUNIT', `0x743e') +define(`PPPIOCGIDLE', `0x743f') +define(`PPPIOCSDEBUG', `0x7440') +define(`PPPIOCGDEBUG', `0x7441') +define(`PPPIOCSACTIVE', `0x7446') +define(`PPPIOCSPASS', `0x7447') +define(`PPPIOCSNPMODE', `0x744b') +define(`PPPIOCGNPMODE', `0x744c') +define(`PPPIOCSCOMPRESS', `0x744d') +define(`PPPIOCXFERUNIT', `0x744e') +define(`PPPIOCSXASYNCMAP', `0x744f') +define(`PPPIOCGXASYNCMAP', `0x7450') +define(`PPPIOCSMAXCID', `0x7451') +define(`PPPIOCSMRU', `0x7452') +define(`PPPIOCGMRU', `0x7453') +define(`PPPIOCSRASYNCMAP', `0x7454') +define(`PPPIOCGRASYNCMAP', `0x7455') +define(`PPPIOCGUNIT', `0x7456') +define(`PPPIOCSASYNCMAP', `0x7457') +define(`PPPIOCGASYNCMAP', `0x7458') +define(`PPPIOCSFLAGS', `0x7459') +define(`PPPIOCGFLAGS', `0x745a') +define(`PPPIOCGCALLINFO', `0x7480') +define(`PPPIOCBUNDLE', `0x7481') +define(`PPPIOCGMPFLAGS', `0x7482') +define(`PPPIOCSMPFLAGS', `0x7483') +define(`PPPIOCSMPMTU', `0x7484') +define(`PPPIOCSMPMRU', `0x7485') +define(`PPPIOCGCOMPRESSORS', `0x7486') +define(`PPPIOCSCOMPRESSOR', `0x7487') +define(`PPPIOCGIFNAME', `0x7488') diff --git a/prebuilts/api/26.0/public/ioctl_macros b/prebuilts/api/26.0/public/ioctl_macros new file mode 100644 index 000000000..f7081d576 --- /dev/null +++ b/prebuilts/api/26.0/public/ioctl_macros @@ -0,0 +1,68 @@ +# socket ioctls allowed to unprivileged apps +define(`unpriv_sock_ioctls', ` +{ +# Socket ioctls for gathering information about the interface +SIOCGSTAMP SIOCGSTAMPNS +SIOCGIFNAME SIOCGIFCONF SIOCGIFFLAGS SIOCGIFADDR SIOCGIFDSTADDR SIOCGIFBRDADDR +SIOCGIFNETMASK SIOCGIFMTU SIOCGIFINDEX SIOCGIFCOUNT SIOCGIFTXQLEN +# Wireless extension ioctls. Primarily get functions. +SIOCGIWNAME SIOCGIWFREQ SIOCGIWMODE SIOCGIWSENS SIOCGIWRANGE SIOCGIWPRIV +SIOCGIWSTATS SIOCGIWSPY SIOCSIWTHRSPY SIOCGIWTHRSPY SIOCGIWRATE SIOCGIWRTS +SIOCGIWFRAG SIOCGIWTXPOW SIOCGIWRETRY SIOCGIWPOWER +}') + +# socket ioctls never allowed to unprivileged apps +define(`priv_sock_ioctls', ` +{ +# qualcomm rmnet ioctls +WAN_IOC_ADD_FLT_RULE WAN_IOC_ADD_FLT_INDEX +# socket ioctls +SIOCADDRT SIOCDELRT SIOCRTMSG SIOCSIFLINK SIOCSIFFLAGS SIOCSIFADDR +SIOCSIFDSTADDR SIOCSIFBRDADDR SIOCSIFNETMASK SIOCGIFMETRIC SIOCSIFMETRIC SIOCGIFMEM +SIOCSIFMEM SIOCSIFMTU SIOCSIFNAME SIOCSIFHWADDR SIOCGIFENCAP SIOCSIFENCAP +SIOCGIFHWADDR SIOCGIFSLAVE SIOCSIFSLAVE SIOCADDMULTI SIOCDELMULTI +SIOCSIFPFLAGS SIOCGIFPFLAGS SIOCDIFADDR SIOCSIFHWBROADCAST SIOCKILLADDR SIOCGIFBR SIOCSIFBR +SIOCSIFTXQLEN SIOCETHTOOL SIOCGMIIPHY SIOCGMIIREG SIOCSMIIREG SIOCWANDEV +SIOCOUTQNSD SIOCDARP SIOCGARP SIOCSARP SIOCDRARP SIOCGRARP SIOCSRARP SIOCGIFMAP +SIOCSIFMAP SIOCADDDLCI SIOCDELDLCI SIOCGIFVLAN SIOCSIFVLAN SIOCBONDENSLAVE +SIOCBONDRELEASE SIOCBONDSETHWADDR SIOCBONDSLAVEINFOQUERY SIOCBONDINFOQUERY +SIOCBONDCHANGEACTIVE SIOCBRADDBR SIOCBRDELBR SIOCBRADDIF SIOCBRDELIF SIOCSHWTSTAMP +# device and protocol specific ioctls +SIOCDEVPRIVATE-SIOCDEVPRIVLAST +SIOCPROTOPRIVATE-SIOCPROTOPRIVLAST +# Wireless extension ioctls +SIOCSIWCOMMIT SIOCSIWNWID SIOCSIWFREQ SIOCSIWMODE SIOCSIWSENS SIOCSIWRANGE +SIOCSIWPRIV SIOCSIWSTATS SIOCSIWSPY SIOCSIWAP SIOCGIWAP SIOCSIWMLME SIOCGIWAPLIST +SIOCSIWSCAN SIOCGIWSCAN SIOCSIWESSID SIOCGIWESSID SIOCSIWNICKN SIOCGIWNICKN +SIOCSIWRATE SIOCSIWRTS SIOCSIWFRAG SIOCSIWTXPOW SIOCSIWRETRY SIOCSIWENCODE +SIOCGIWENCODE SIOCSIWPOWER SIOCSIWGENIE SIOCGIWGENIE SIOCSIWAUTH SIOCGIWAUTH +SIOCSIWENCODEEXT SIOCGIWENCODEEXT SIOCSIWPMKSA +# Dev private ioctl i.e. hardware specific ioctls +SIOCIWFIRSTPRIV-SIOCIWLASTPRIV +}') + +# commonly used ioctls on unix sockets +define(`unpriv_unix_sock_ioctls', `{ + TIOCOUTQ FIOCLEX TCGETS TIOCGWINSZ TIOCSWINSZ FIONREAD +}') + +# commonly used TTY ioctls +# merge with unpriv_unix_sock_ioctls? +define(`unpriv_tty_ioctls', `{ + TIOCOUTQ FIOCLEX TCGETS TCSETS TIOCGWINSZ TIOCSWINSZ TIOCSCTTY TCSETSW + TCFLSH TIOCSPGRP TIOCGPGRP +}') + +# point to point ioctls +define(`ppp_ioctls', `{ +PPPIOCGL2TPSTATS PPPIOCGCHAN PPPIOCATTCHAN PPPIOCDISCONN +PPPIOCCONNECT PPPIOCSMRRU PPPIOCDETACH PPPIOCATTACH +PPPIOCNEWUNIT PPPIOCGIDLE PPPIOCSDEBUG PPPIOCGDEBUG +PPPIOCSACTIVE PPPIOCSPASS PPPIOCSNPMODE PPPIOCGNPMODE +PPPIOCSCOMPRESS PPPIOCXFERUNIT PPPIOCSXASYNCMAP +PPPIOCGXASYNCMAP PPPIOCSMAXCID PPPIOCSMRU PPPIOCGMRU +PPPIOCSRASYNCMAP PPPIOCGRASYNCMAP PPPIOCGUNIT PPPIOCSASYNCMAP +PPPIOCGASYNCMAP PPPIOCSFLAGS PPPIOCGFLAGS PPPIOCGCALLINFO +PPPIOCBUNDLE PPPIOCGMPFLAGS PPPIOCSMPFLAGS PPPIOCSMPMTU +PPPIOCSMPMRU PPPIOCGCOMPRESSORS PPPIOCSCOMPRESSOR PPPIOCGIFNAME +}') diff --git a/prebuilts/api/26.0/public/isolated_app.te b/prebuilts/api/26.0/public/isolated_app.te new file mode 100644 index 000000000..a907dacc2 --- /dev/null +++ b/prebuilts/api/26.0/public/isolated_app.te @@ -0,0 +1,9 @@ +### +### Services with isolatedProcess=true in their manifest. +### +### This file defines the rules for isolated apps. An "isolated +### app" is an APP with UID between AID_ISOLATED_START (99000) +### and AID_ISOLATED_END (99999). +### + +type isolated_app, domain; diff --git a/prebuilts/api/26.0/public/kernel.te b/prebuilts/api/26.0/public/kernel.te new file mode 100644 index 000000000..9537c0dfa --- /dev/null +++ b/prebuilts/api/26.0/public/kernel.te @@ -0,0 +1,103 @@ +# Life begins with the kernel. +type kernel, domain, mlstrustedsubject; + +allow kernel self:capability sys_nice; + +# Root fs. +r_dir_file(kernel, rootfs) +r_dir_file(kernel, proc) + +# Get SELinux enforcing status. +allow kernel selinuxfs:dir r_dir_perms; +allow kernel selinuxfs:file r_file_perms; + +# Get file contexts during first stage +allow kernel file_contexts_file:file r_file_perms; + +# Allow init relabel itself. +allow kernel rootfs:file relabelfrom; +allow kernel init_exec:file relabelto; +# TODO: investigate why we need this. +allow kernel init:process share; + +# cgroup filesystem initialization prior to setting the cgroup root directory label. +allow kernel unlabeled:dir search; + +# Mount usbfs. +allow kernel usbfs:filesystem mount; +allow kernel usbfs:dir search; + +# Initial setenforce by init prior to switching to init domain. +# We use dontaudit instead of allow to prevent a kernel spawned userspace +# process from turning off SELinux once enabled. +dontaudit kernel self:security setenforce; + +# Write to /proc/1/oom_adj prior to switching to init domain. +allow kernel self:capability sys_resource; + +# Init reboot before switching selinux domains under certain error +# conditions. Allow it. +# As part of rebooting, init writes "u" to /proc/sysrq-trigger to +# remount filesystems read-only. /data is not mounted at this point, +# so we could ignore this. For now, we allow it. +allow kernel self:capability sys_boot; +allow kernel proc_sysrq:file w_file_perms; + +# Allow writing to /dev/kmsg which was created prior to loading policy. +allow kernel tmpfs:chr_file write; + +# Set checkreqprot by init.rc prior to switching to init domain. +allow kernel selinuxfs:file write; +allow kernel self:security setcheckreqprot; + +# MTP sync (b/15835289) +# kernel thread "loop0", used by the loop block device, for ASECs (b/17158723) +allow kernel priv_app:fd use; +allow kernel sdcard_type:file { read write }; + +# Allow the kernel to read OBB files from app directories. (b/17428116) +# Kernel thread "loop0" reads a vold supplied file descriptor. +# Fixes CTS tests: +# * android.os.storage.cts.StorageManagerTest#testMountAndUnmountObbNormal +# * android.os.storage.cts.StorageManagerTest#testMountAndUnmountTwoObbs +allow kernel vold:fd use; +allow kernel app_data_file:file read; +allow kernel asec_image_file:file read; + +# Allow reading loop device in update_engine_unittests. (b/28319454) +userdebug_or_eng(` + allow kernel update_engine_data_file:file read; + allow kernel nativetest_data_file:file read; +') + +# Access to /data/media. +# This should be removed if sdcardfs is modified to alter the secontext for its +# accesses to the underlying FS. +allow kernel media_rw_data_file:dir create_dir_perms; +allow kernel media_rw_data_file:file create_file_perms; + +# Access to /data/misc/vold/virtual_disk. +allow kernel vold_data_file:file read; + +### +### neverallow rules +### + +# The initial task starts in the kernel domain (assigned via +# initial_sid_contexts), but nothing ever transitions to it. +neverallow * kernel:process { transition dyntransition }; + +# The kernel domain is never entered via an exec, nor should it +# ever execute a program outside the rootfs without changing to another domain. +# If you encounter an execute_no_trans denial on the kernel domain, then +# possible causes include: +# - The program is a kernel usermodehelper. In this case, define a domain +# for the program and domain_auto_trans() to it. +# - You are running an exploit which switched to the init task credentials +# and is then trying to exec a shell or other program. You lose! +neverallow kernel *:file { entrypoint execute_no_trans }; + +# the kernel should not be accessing files owned by other users. +# Instead of adding dac_{read_search,override}, fix the unix permissions +# on files being accessed. +neverallow kernel self:capability { dac_override dac_read_search }; diff --git a/prebuilts/api/26.0/public/keystore.te b/prebuilts/api/26.0/public/keystore.te new file mode 100644 index 000000000..ee5e67574 --- /dev/null +++ b/prebuilts/api/26.0/public/keystore.te @@ -0,0 +1,34 @@ +type keystore, domain; +type keystore_exec, exec_type, file_type; + +# keystore daemon +typeattribute keystore mlstrustedsubject; +binder_use(keystore) +binder_service(keystore) +binder_call(keystore, system_server) + +allow keystore keystore_data_file:dir create_dir_perms; +allow keystore keystore_data_file:notdevfile_class_set create_file_perms; +allow keystore keystore_exec:file { getattr }; + +add_service(keystore, keystore_service) +allow keystore sec_key_att_app_id_provider_service:service_manager find; + +# Check SELinux permissions. +selinux_check_access(keystore) + +r_dir_file(keystore, cgroup) + +### +### Neverallow rules +### +### Protect ourself from others +### + +neverallow { domain -keystore } keystore_data_file:dir ~{ open create read getattr setattr search relabelto ioctl }; +neverallow { domain -keystore } keystore_data_file:notdevfile_class_set ~{ relabelto getattr }; + +neverallow { domain -keystore -init } keystore_data_file:dir *; +neverallow { domain -keystore -init } keystore_data_file:notdevfile_class_set *; + +neverallow * keystore:process ptrace; diff --git a/prebuilts/api/26.0/public/lmkd.te b/prebuilts/api/26.0/public/lmkd.te new file mode 100644 index 000000000..f4e6c2d57 --- /dev/null +++ b/prebuilts/api/26.0/public/lmkd.te @@ -0,0 +1,38 @@ +# lmkd low memory killer daemon +type lmkd, domain, mlstrustedsubject; +type lmkd_exec, exec_type, file_type; + +allow lmkd self:capability { dac_override sys_resource kill }; + +# lmkd locks itself in memory, to prevent it from being +# swapped out and unable to kill other memory hogs. +# system/core commit b28ff9131363f7b4a698990da5748b2a88c3ed35 +# b/16236289 +allow lmkd self:capability ipc_lock; + +## Open and write to /proc/PID/oom_score_adj +## TODO: maybe scope this down? +r_dir_file(lmkd, appdomain) +allow lmkd appdomain:file write; +r_dir_file(lmkd, system_server) +allow lmkd system_server:file write; + +## Writes to /sys/module/lowmemorykiller/parameters/minfree +r_dir_file(lmkd, sysfs_type) +allow lmkd sysfs_lowmemorykiller:file w_file_perms; + +# Send kill signals +allow lmkd appdomain:process sigkill; + +# Clean up old cgroups +allow lmkd cgroup:dir { remove_name rmdir }; + +# Set self to SCHED_FIFO +allow lmkd self:capability sys_nice; + +allow lmkd proc_zoneinfo:file r_file_perms; + +### neverallow rules + +# never honor LD_PRELOAD +neverallow * lmkd:process noatsecure; diff --git a/prebuilts/api/26.0/public/logd.te b/prebuilts/api/26.0/public/logd.te new file mode 100644 index 000000000..62bff9739 --- /dev/null +++ b/prebuilts/api/26.0/public/logd.te @@ -0,0 +1,73 @@ +# android user-space log manager +type logd, domain, mlstrustedsubject; +type logd_exec, exec_type, file_type; + +# Read access to pseudo filesystems. +r_dir_file(logd, cgroup) +r_dir_file(logd, proc) +r_dir_file(logd, proc_meminfo) +r_dir_file(logd, proc_net) + +allow logd self:capability { setuid setgid setpcap sys_nice audit_control }; +allow logd self:capability2 syslog; +allow logd self:netlink_audit_socket { create_socket_perms_no_ioctl nlmsg_write }; +allow logd kernel:system syslog_read; +allow logd kmsg_device:chr_file w_file_perms; +allow logd system_data_file:{ file lnk_file } r_file_perms; +allow logd pstorefs:dir search; +allow logd pstorefs:file r_file_perms; +userdebug_or_eng(` + # Access to /data/misc/logd/event-log-tags + allow logd misc_logd_file:dir r_dir_perms; + allow logd misc_logd_file:file rw_file_perms; +') +allow logd runtime_event_log_tags_file:file rw_file_perms; + +# Access device logging gating property +get_prop(logd, device_logging_prop) + +r_dir_file(logd, domain) + +allow logd kernel:system syslog_mod; + +control_logd(logd) +read_runtime_log_tags(logd) + +allow runtime_event_log_tags_file tmpfs:filesystem associate; +# Typically harmlessly blindly trying to access via liblog +# event tag mapping while in the untrusted_app domain. +# Access for that domain is controlled and gated via the +# event log tag service (albeit at a performance penalty, +# expected to be locally cached). +dontaudit domain runtime_event_log_tags_file:file { open read }; + +### +### Neverallow rules +### +### logd should NEVER do any of this + +# Block device access. +neverallow logd dev_type:blk_file { read write }; + +# ptrace any other app +neverallow logd domain:process ptrace; + +# ... and nobody may ptrace me (except on userdebug or eng builds) +neverallow { domain userdebug_or_eng(`-crash_dump') } logd:process ptrace; + +# Write to /system. +neverallow logd system_file:dir_file_class_set write; + +# Write to files in /data/data or system files on /data +neverallow logd { app_data_file system_data_file }:dir_file_class_set write; + +# Only init is allowed to enter the logd domain via exec() +neverallow { domain -init } logd:process transition; +neverallow * logd:process dyntransition; + +# protect the event-log-tags file +neverallow { + domain + -init + -logd +} runtime_event_log_tags_file:file no_w_file_perms; diff --git a/prebuilts/api/26.0/public/logpersist.te b/prebuilts/api/26.0/public/logpersist.te new file mode 100644 index 000000000..7536cb84d --- /dev/null +++ b/prebuilts/api/26.0/public/logpersist.te @@ -0,0 +1,26 @@ +# android debug logging, logpersist domains +type logpersist, domain; + +### +### Neverallow rules +### +### logpersist should NEVER do any of this + +# Block device access. +neverallow logpersist dev_type:blk_file { read write }; + +# ptrace any other app +neverallow logpersist domain:process ptrace; + +# Write to files in /data/data or system files on /data except misc_logd_file +neverallow logpersist { app_data_file system_data_file }:dir_file_class_set write; + +# Only init should be allowed to enter the logpersist domain via exec() +# Following is a list of debug domains we know that transition to logpersist +# neverallow_with_undefined_domains { +# domain +# -init # goldfish, logcatd, raft +# -mmi # bat, mtp8996, msmcobalt +# -system_app # Smith.apk +# } logpersist:process transition; +neverallow * logpersist:process dyntransition; diff --git a/prebuilts/api/26.0/public/mdnsd.te b/prebuilts/api/26.0/public/mdnsd.te new file mode 100644 index 000000000..ef7b065d8 --- /dev/null +++ b/prebuilts/api/26.0/public/mdnsd.te @@ -0,0 +1,2 @@ +# mdns daemon +type mdnsd, domain; diff --git a/prebuilts/api/26.0/public/mediacodec.te b/prebuilts/api/26.0/public/mediacodec.te new file mode 100644 index 000000000..5ca41fcf1 --- /dev/null +++ b/prebuilts/api/26.0/public/mediacodec.te @@ -0,0 +1,67 @@ +# mediacodec - audio and video codecs live here +type mediacodec, domain; +type mediacodec_exec, exec_type, vendor_file_type, file_type; + +typeattribute mediacodec mlstrustedsubject; + +# TODO(b/36375899) attributize this domain appropriately as hal_omx +# and use macro hal_server_domain +get_prop(mediacodec, hwservicemanager_prop) + +# can route /dev/binder traffic to /dev/vndbinder +vndbinder_use(mediacodec) + +not_full_treble(` + # on legacy devices, continue to allow /dev/binder traffic + binder_use(mediacodec) + binder_service(mediacodec) + add_service(mediacodec, mediacodec_service) + allow mediacodec mediametrics_service:service_manager find; + allow mediacodec surfaceflinger_service:service_manager find; +') +binder_call(mediacodec, binderservicedomain) +binder_call(mediacodec, appdomain) + +# Allow mediacodec access to composer sync fences +allow mediacodec hal_graphics_composer:fd use; + +allow mediacodec gpu_device:chr_file rw_file_perms; +allow mediacodec video_device:chr_file rw_file_perms; +allow mediacodec video_device:dir search; +allow mediacodec ion_device:chr_file rw_file_perms; +allow mediacodec hal_camera:fd use; + +crash_dump_fallback(mediacodec) + +add_hwservice(mediacodec, hal_omx_hwservice) + +hal_client_domain(mediacodec, hal_allocator) + +# allocate and use graphic buffers +hal_client_domain(mediacodec, hal_graphics_allocator) + +# Recieve gralloc buffer FDs from bufferhubd. Note that mediacodec never +# directly connects to bufferhubd via PDX. Instead, a VR app acts as a bridge +# between those two: it talks to mediacodec via Binder and talks to bufferhubd +# via PDX. Thus, there is no need to use pdx_client macro. +allow mediacodec bufferhubd:fd use; + +### +### neverallow rules +### + +# mediacodec should never execute any executable without a +# domain transition +neverallow mediacodec { file_type fs_type }:file execute_no_trans; + +# The goal of the mediaserver split is to place media processing code into +# restrictive sandboxes with limited responsibilities and thus limited +# permissions. Example: Audioserver is only responsible for controlling audio +# hardware and processing audio content. Cameraserver does the same for camera +# hardware/content. Etc. +# +# Media processing code is inherently risky and thus should have limited +# permissions and be isolated from the rest of the system and network. +# Lengthier explanation here: +# https://android-developers.googleblog.com/2016/05/hardening-media-stack.html +neverallow mediacodec domain:{ tcp_socket udp_socket rawip_socket } *; diff --git a/prebuilts/api/26.0/public/mediadrmserver.te b/prebuilts/api/26.0/public/mediadrmserver.te new file mode 100644 index 000000000..cef81212a --- /dev/null +++ b/prebuilts/api/26.0/public/mediadrmserver.te @@ -0,0 +1,33 @@ +# mediadrmserver - mediadrm daemon +type mediadrmserver, domain; +type mediadrmserver_exec, exec_type, file_type; + +typeattribute mediadrmserver mlstrustedsubject; + +net_domain(mediadrmserver) +binder_use(mediadrmserver) +binder_call(mediadrmserver, binderservicedomain) +binder_call(mediadrmserver, appdomain) +binder_service(mediadrmserver) +hal_client_domain(mediadrmserver, hal_drm) + +add_service(mediadrmserver, mediadrmserver_service) +allow mediadrmserver mediaserver_service:service_manager find; +allow mediadrmserver mediametrics_service:service_manager find; +allow mediadrmserver processinfo_service:service_manager find; +allow mediadrmserver surfaceflinger_service:service_manager find; +allow mediadrmserver system_file:dir r_dir_perms; + +add_service(mediadrmserver, mediacasserver_service) + +binder_call(mediadrmserver, mediacodec) +### +### neverallow rules +### + +# mediadrmserver should never execute any executable without a +# domain transition +neverallow mediadrmserver { file_type fs_type }:file execute_no_trans; + +# do not allow privileged socket ioctl commands +neverallowxperm mediadrmserver domain:{ rawip_socket tcp_socket udp_socket } ioctl priv_sock_ioctls; diff --git a/prebuilts/api/26.0/public/mediaextractor.te b/prebuilts/api/26.0/public/mediaextractor.te new file mode 100644 index 000000000..94824b75e --- /dev/null +++ b/prebuilts/api/26.0/public/mediaextractor.te @@ -0,0 +1,50 @@ +# mediaextractor - multimedia daemon +type mediaextractor, domain; +type mediaextractor_exec, exec_type, file_type; + +typeattribute mediaextractor mlstrustedsubject; + +binder_use(mediaextractor) +binder_call(mediaextractor, binderservicedomain) +binder_call(mediaextractor, appdomain) +binder_service(mediaextractor) + +add_service(mediaextractor, mediaextractor_service) +allow mediaextractor mediametrics_service:service_manager find; +allow mediaextractor mediacasserver_service:service_manager find; + +allow mediaextractor system_server:fd use; + +r_dir_file(mediaextractor, cgroup) +allow mediaextractor proc_meminfo:file r_file_perms; + +crash_dump_fallback(mediaextractor) + +# allow mediaextractor read permissions for file sources +allow mediaextractor media_rw_data_file:file { getattr read }; +allow mediaextractor app_data_file:file { getattr read }; + +# Read resources from open apk files passed over Binder +allow mediaextractor apk_data_file:file { read getattr }; +allow mediaextractor asec_apk_file:file { read getattr }; +allow mediaextractor ringtone_file:file { read getattr }; + +### +### neverallow rules +### + +# mediaextractor should never execute any executable without a +# domain transition +neverallow mediaextractor { file_type fs_type }:file execute_no_trans; + +# The goal of the mediaserver split is to place media processing code into +# restrictive sandboxes with limited responsibilities and thus limited +# permissions. Example: Audioserver is only responsible for controlling audio +# hardware and processing audio content. Cameraserver does the same for camera +# hardware/content. Etc. +# +# Media processing code is inherently risky and thus should have limited +# permissions and be isolated from the rest of the system and network. +# Lengthier explanation here: +# https://android-developers.googleblog.com/2016/05/hardening-media-stack.html +neverallow mediaextractor domain:{ tcp_socket udp_socket rawip_socket } *; diff --git a/prebuilts/api/26.0/public/mediametrics.te b/prebuilts/api/26.0/public/mediametrics.te new file mode 100644 index 000000000..4c10d878c --- /dev/null +++ b/prebuilts/api/26.0/public/mediametrics.te @@ -0,0 +1,38 @@ +# mediametrics - daemon for collecting media.metrics data +type mediametrics, domain; +type mediametrics_exec, exec_type, file_type; + + +binder_use(mediametrics) +binder_call(mediametrics, binderservicedomain) +binder_service(mediametrics) + +add_service(mediametrics, mediametrics_service) + +allow mediametrics system_server:fd use; + +r_dir_file(mediametrics, cgroup) +allow mediametrics proc_meminfo:file r_file_perms; + +# allows interactions with dumpsys to GMScore +allow mediametrics app_data_file:file write; + +### +### neverallow rules +### + +# mediametrics should never execute any executable without a +# domain transition +neverallow mediametrics { file_type fs_type }:file execute_no_trans; + +# The goal of the mediaserver split is to place media processing code into +# restrictive sandboxes with limited responsibilities and thus limited +# permissions. Example: Audioserver is only responsible for controlling audio +# hardware and processing audio content. Cameraserver does the same for camera +# hardware/content. Etc. +# +# Media processing code is inherently risky and thus should have limited +# permissions and be isolated from the rest of the system and network. +# Lengthier explanation here: +# https://android-developers.googleblog.com/2016/05/hardening-media-stack.html +neverallow mediametrics domain:{ tcp_socket udp_socket rawip_socket } *; diff --git a/prebuilts/api/26.0/public/mediaserver.te b/prebuilts/api/26.0/public/mediaserver.te new file mode 100644 index 000000000..6efaf0fdf --- /dev/null +++ b/prebuilts/api/26.0/public/mediaserver.te @@ -0,0 +1,150 @@ +# mediaserver - multimedia daemon +type mediaserver, domain; +type mediaserver_exec, exec_type, file_type; + +typeattribute mediaserver mlstrustedsubject; + +# TODO(b/36375899): replace with hal_client_domain macro on hal_omx +typeattribute mediaserver halclientdomain; + +net_domain(mediaserver) + +r_dir_file(mediaserver, sdcard_type) +r_dir_file(mediaserver, cgroup) + +# stat /proc/self +allow mediaserver proc:lnk_file getattr; + +# open /vendor/lib/mediadrm +allow mediaserver system_file:dir r_dir_perms; + +userdebug_or_eng(` + # ptrace to processes in the same domain for memory leak detection + allow mediaserver self:process ptrace; +') + +binder_use(mediaserver) +binder_call(mediaserver, binderservicedomain) +binder_call(mediaserver, appdomain) +binder_service(mediaserver) + +allow mediaserver media_data_file:dir create_dir_perms; +allow mediaserver media_data_file:file create_file_perms; +allow mediaserver app_data_file:dir search; +allow mediaserver app_data_file:file rw_file_perms; +allow mediaserver sdcard_type:file write; +allow mediaserver gpu_device:chr_file rw_file_perms; +allow mediaserver video_device:dir r_dir_perms; +allow mediaserver video_device:chr_file rw_file_perms; + +set_prop(mediaserver, audio_prop) + +# XXX Label with a specific type? +allow mediaserver sysfs:file r_file_perms; + +# Read resources from open apk files passed over Binder. +allow mediaserver apk_data_file:file { read getattr }; +allow mediaserver asec_apk_file:file { read getattr }; +allow mediaserver ringtone_file:file { read getattr }; + +# Read /data/data/com.android.providers.telephony files passed over Binder. +allow mediaserver radio_data_file:file { read getattr }; + +# Use pipes passed over Binder from app domains. +allow mediaserver appdomain:fifo_file { getattr read write }; + +allow mediaserver rpmsg_device:chr_file rw_file_perms; + +# Inter System processes communicate over named pipe (FIFO) +allow mediaserver system_server:fifo_file r_file_perms; + +r_dir_file(mediaserver, media_rw_data_file) + +# Grant access to read files on appfuse. +allow mediaserver app_fuse_file:file { read getattr }; + +# Read/[write] to /proc/net/xt_qtaguid/ctrl and /dev/xt_qtaguid +allow mediaserver qtaguid_proc:file rw_file_perms; +allow mediaserver qtaguid_device:chr_file r_file_perms; + +# Needed on some devices for playing DRM protected content, +# but seems expected and appropriate for all devices. +unix_socket_connect(mediaserver, drmserver, drmserver) + +# Needed on some devices for playing audio on paired BT device, +# but seems appropriate for all devices. +unix_socket_connect(mediaserver, bluetooth, bluetooth) + +add_service(mediaserver, mediaserver_service) +allow mediaserver activity_service:service_manager find; +allow mediaserver appops_service:service_manager find; +allow mediaserver audioserver_service:service_manager find; +allow mediaserver cameraserver_service:service_manager find; +allow mediaserver batterystats_service:service_manager find; +allow mediaserver drmserver_service:service_manager find; +allow mediaserver mediaextractor_service:service_manager find; +allow mediaserver mediacodec_service:service_manager find; +allow mediaserver mediametrics_service:service_manager find; +allow mediaserver media_session_service:service_manager find; +allow mediaserver permission_service:service_manager find; +allow mediaserver power_service:service_manager find; +allow mediaserver processinfo_service:service_manager find; +allow mediaserver scheduling_policy_service:service_manager find; +allow mediaserver surfaceflinger_service:service_manager find; + +# for ModDrm/MediaPlayer +allow mediaserver mediadrmserver_service:service_manager find; + +# For interfacing with OMX HAL +allow mediaserver hidl_token_hwservice:hwservice_manager find; + +# /oem access +allow mediaserver oemfs:dir search; +allow mediaserver oemfs:file r_file_perms; + +use_drmservice(mediaserver) +allow mediaserver drmserver:drmservice { + consumeRights + setPlaybackStatus + openDecryptSession + closeDecryptSession + initializeDecryptUnit + decrypt + finalizeDecryptUnit + pread +}; + +# only allow unprivileged socket ioctl commands +allowxperm mediaserver self:{ rawip_socket tcp_socket udp_socket } + ioctl { unpriv_sock_ioctls unpriv_tty_ioctls }; + +# Access to /data/media. +# This should be removed if sdcardfs is modified to alter the secontext for its +# accesses to the underlying FS. +allow mediaserver media_rw_data_file:dir create_dir_perms; +allow mediaserver media_rw_data_file:file create_file_perms; + +# Access to media in /data/preloads +allow mediaserver preloads_media_file:file { getattr read ioctl }; + +allow mediaserver ion_device:chr_file r_file_perms; +allow mediaserver hal_graphics_allocator:fd use; +allow mediaserver hal_graphics_composer:fd use; +allow mediaserver hal_camera:fd use; + +allow mediaserver system_server:fd use; + +hal_client_domain(mediaserver, hal_allocator) + +binder_call(mediaserver, mediacodec) + +### +### neverallow rules +### + +# mediaserver should never execute any executable without a +# domain transition +neverallow mediaserver { file_type fs_type }:file execute_no_trans; + +# do not allow privileged socket ioctl commands +neverallowxperm mediaserver domain:{ rawip_socket tcp_socket udp_socket } ioctl priv_sock_ioctls; diff --git a/prebuilts/api/26.0/public/modprobe.te b/prebuilts/api/26.0/public/modprobe.te new file mode 100644 index 000000000..3ed320e5b --- /dev/null +++ b/prebuilts/api/26.0/public/modprobe.te @@ -0,0 +1,11 @@ +type modprobe, domain; + +allow modprobe proc_modules:file r_file_perms; +allow modprobe self:capability sys_module; +allow modprobe kernel:key search; +recovery_only(` + allow modprobe rootfs:system module_load; + allow modprobe rootfs:file r_file_perms; +') +allow modprobe { system_file }:system module_load; +r_dir_file(modprobe, { system_file }) diff --git a/prebuilts/api/26.0/public/mtp.te b/prebuilts/api/26.0/public/mtp.te new file mode 100644 index 000000000..a77624064 --- /dev/null +++ b/prebuilts/api/26.0/public/mtp.te @@ -0,0 +1,11 @@ +# vpn tunneling protocol manager +type mtp, domain; +type mtp_exec, exec_type, file_type; + +net_domain(mtp) + +# pptp policy +allow mtp self:socket create_socket_perms_no_ioctl; +allow mtp self:capability net_raw; +allow mtp ppp:process signal; +allow mtp vpn_data_file:dir search; diff --git a/prebuilts/api/26.0/public/net.te b/prebuilts/api/26.0/public/net.te new file mode 100644 index 000000000..7e00ed845 --- /dev/null +++ b/prebuilts/api/26.0/public/net.te @@ -0,0 +1,4 @@ +# Network types +type node, node_type; +type netif, netif_type; +type port, port_type; diff --git a/prebuilts/api/26.0/public/netd.te b/prebuilts/api/26.0/public/netd.te new file mode 100644 index 000000000..691887fcd --- /dev/null +++ b/prebuilts/api/26.0/public/netd.te @@ -0,0 +1,110 @@ +# network manager +type netd, domain, mlstrustedsubject; +type netd_exec, exec_type, file_type; + +net_domain(netd) +# in addition to ioctls whitelisted for all domains, grant netd priv_sock_ioctls. +allowxperm netd self:udp_socket ioctl priv_sock_ioctls; + +r_dir_file(netd, cgroup) +allow netd system_server:fd use; + +allow netd self:capability { net_admin net_raw kill }; +# Note: fsetid is deliberately not included above. fsetid checks are +# triggered by chmod on a directory or file owned by a group other +# than one of the groups assigned to the current process to see if +# the setgid bit should be cleared, regardless of whether the setgid +# bit was even set. We do not appear to truly need this capability +# for netd to operate. +dontaudit netd self:capability fsetid; + +allow netd self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; +allow netd self:netlink_route_socket nlmsg_write; +allow netd self:netlink_nflog_socket create_socket_perms_no_ioctl; +allow netd self:netlink_socket create_socket_perms_no_ioctl; +allow netd self:netlink_tcpdiag_socket { create_socket_perms_no_ioctl nlmsg_read nlmsg_write }; +allow netd self:netlink_generic_socket create_socket_perms_no_ioctl; +allow netd self:netlink_netfilter_socket create_socket_perms_no_ioctl; +allow netd shell_exec:file rx_file_perms; +allow netd system_file:file x_file_perms; +not_full_treble(`allow netd vendor_file:file x_file_perms;') +allow netd devpts:chr_file rw_file_perms; + +# Acquire advisory lock on /system/etc/xtables.lock +allow netd system_file:file lock; + +r_dir_file(netd, proc_net) +# For /proc/sys/net/ipv[46]/route/flush. +allow netd proc_net:file rw_file_perms; + +# Enables PppController and interface enumeration (among others) +r_dir_file(netd, sysfs_type) +# Allows setting interface MTU +allow netd sysfs:file write; + +# TODO: added to match above sysfs rule. Remove me? +allow netd sysfs_usb:file write; + +# TODO: netd previously thought it needed these permissions to do WiFi related +# work. However, after all the WiFi stuff is gone, we still need them. +# Why? +allow netd self:capability { dac_override chown }; + +# Needed to update /data/misc/net/rt_tables +allow netd net_data_file:file create_file_perms; +allow netd net_data_file:dir rw_dir_perms; +allow netd self:capability fowner; + +# Allow netd to spawn dnsmasq in it's own domain +allow netd dnsmasq:process signal; + +# Allow netd to start clatd in its own domain +allow netd clatd:process signal; + +set_prop(netd, ctl_mdnsd_prop) + +# Allow netd to publish a binder service and make binder calls. +binder_use(netd) +add_service(netd, netd_service) +allow netd dumpstate:fifo_file { getattr write }; + +# Allow netd to call into the system server so it can check permissions. +allow netd system_server:binder call; +allow netd permission_service:service_manager find; + +# Allow netd to talk to the framework service which collects netd events. +allow netd netd_listener_service:service_manager find; + +# Allow netd to operate on sockets that are passed to it. +allow netd netdomain:{ + tcp_socket + udp_socket + rawip_socket + tun_socket +} { read write getattr setattr getopt setopt }; +allow netd netdomain:fd use; + +# give netd permission to read and write netlink xfrm +allow netd self:netlink_xfrm_socket { create_socket_perms_no_ioctl nlmsg_write nlmsg_read }; + +### +### Neverallow rules +### +### netd should NEVER do any of this + +# Block device access. +neverallow netd dev_type:blk_file { read write }; + +# ptrace any other app +neverallow netd { domain }:process ptrace; + +# Write to /system. +neverallow netd system_file:dir_file_class_set write; + +# Write to files in /data/data or system files on /data +neverallow netd { app_data_file system_data_file }:dir_file_class_set write; + +# only system_server, dumpstate and netd may interact with netd over binder +neverallow { domain -system_server -dumpstate -netd } netd_service:service_manager find; +neverallow { domain -system_server -dumpstate } netd:binder call; +neverallow netd { domain -system_server -servicemanager userdebug_or_eng(`-su') }:binder call; diff --git a/prebuilts/api/26.0/public/netutils_wrapper.te b/prebuilts/api/26.0/public/netutils_wrapper.te new file mode 100644 index 000000000..c844762c8 --- /dev/null +++ b/prebuilts/api/26.0/public/netutils_wrapper.te @@ -0,0 +1,4 @@ +type netutils_wrapper, domain; +type netutils_wrapper_exec, exec_type, file_type; + +neverallow domain netutils_wrapper_exec:file execute_no_trans; diff --git a/prebuilts/api/26.0/public/neverallow_macros b/prebuilts/api/26.0/public/neverallow_macros new file mode 100644 index 000000000..e2b6ed1af --- /dev/null +++ b/prebuilts/api/26.0/public/neverallow_macros @@ -0,0 +1,15 @@ +# +# Common neverallow permissions +define(`no_w_file_perms', `{ append create link unlink relabelfrom rename setattr write }') +define(`no_rw_file_perms', `{ no_w_file_perms open read ioctl lock }') +define(`no_x_file_perms', `{ execute execute_no_trans }') +define(`no_w_dir_perms', `{ add_name create link relabelfrom remove_name rename reparent rmdir setattr write }') + +##################################### +# neverallow_establish_socket_comms(src, dst) +# neverallow src domain establishing socket connections to dst domain. +# +define(`neverallow_establish_socket_comms', ` + neverallow $1 $2:socket_class_set { connect sendto }; + neverallow $1 $2:unix_stream_socket connectto; +') diff --git a/prebuilts/api/26.0/public/nfc.te b/prebuilts/api/26.0/public/nfc.te new file mode 100644 index 000000000..e3a03e796 --- /dev/null +++ b/prebuilts/api/26.0/public/nfc.te @@ -0,0 +1,2 @@ +# nfc subsystem +type nfc, domain; diff --git a/prebuilts/api/26.0/public/otapreopt_chroot.te b/prebuilts/api/26.0/public/otapreopt_chroot.te new file mode 100644 index 000000000..c071f447f --- /dev/null +++ b/prebuilts/api/26.0/public/otapreopt_chroot.te @@ -0,0 +1,20 @@ +# otapreopt_chroot executable +type otapreopt_chroot, domain; +type otapreopt_chroot_exec, exec_type, file_type; + +# Chroot preparation and execution. +# We need to create an unshared mount namespace, and then mount /data. +allow otapreopt_chroot postinstall_file:dir { search mounton }; +allow otapreopt_chroot self:capability { sys_admin sys_chroot }; + +# This is required to mount /vendor. +allow otapreopt_chroot block_device:dir search; +allow otapreopt_chroot labeledfs:filesystem mount; +# Mounting /vendor can have this side-effect. Ignore denial. +dontaudit otapreopt_chroot kernel:process setsched; + +# Allow otapreopt to use file descriptors from update-engine. It will +# close them immediately. +allow otapreopt_chroot postinstall:fd use; +allow otapreopt_chroot update_engine:fd use; +allow otapreopt_chroot update_engine:fifo_file write; diff --git a/prebuilts/api/26.0/public/otapreopt_slot.te b/prebuilts/api/26.0/public/otapreopt_slot.te new file mode 100644 index 000000000..6551864c3 --- /dev/null +++ b/prebuilts/api/26.0/public/otapreopt_slot.te @@ -0,0 +1,27 @@ +# otapreopt_slot +# +# This command set moves the artifact corresponding to the current slot +# from /data/ota to /data/dalvik-cache. + +type otapreopt_slot, domain, mlstrustedsubject; +type otapreopt_slot_exec, exec_type, file_type; + + +# The otapreopt_slot renames the OTA dalvik-cache to the regular dalvik-cache, and cleans up +# the directory afterwards. For logging of aggregate size, we need getattr. +allow otapreopt_slot ota_data_file:dir { rw_dir_perms rename reparent rmdir }; +allow otapreopt_slot ota_data_file:{ file lnk_file } getattr; +# (du follows symlinks) +allow otapreopt_slot ota_data_file:lnk_file read; + +# Delete old content of the dalvik-cache. +allow otapreopt_slot dalvikcache_data_file:dir { add_name getattr open read remove_name rmdir search write }; +allow otapreopt_slot dalvikcache_data_file:file { getattr unlink }; +allow otapreopt_slot dalvikcache_data_file:lnk_file { getattr read unlink }; + +# Allow cppreopts to execute itself using #!/system/bin/sh +allow otapreopt_slot shell_exec:file rx_file_perms; + +# Allow running the mv and rm/rmdir commands using otapreopt_slot permissions. +# Needed so we can move artifacts into /data/dalvik-cache/dalvik-cache. +allow otapreopt_slot toolbox_exec:file rx_file_perms; diff --git a/prebuilts/api/26.0/public/performanced.te b/prebuilts/api/26.0/public/performanced.te new file mode 100644 index 000000000..3d3fadb39 --- /dev/null +++ b/prebuilts/api/26.0/public/performanced.te @@ -0,0 +1,18 @@ +# performanced +type performanced, domain, mlstrustedsubject; +type performanced_exec, exec_type, file_type; + +pdx_server(performanced, performance_client) + +# TODO: use file caps to obtain sys_nice instead of setuid / setgid. +allow performanced self:capability { setuid setgid sys_nice }; + +# Access /proc to validate we're only affecting threads in the same thread group. +# Performanced also shields unbound kernel threads. It scans every task in the +# root cpu set, but only affects the kernel threads. +r_dir_file(performanced, { appdomain bufferhubd kernel surfaceflinger }) +dontaudit performanced domain:dir read; +allow performanced { appdomain bufferhubd kernel surfaceflinger }:process setsched; + +# Access /dev/cpuset/cpuset.cpus +r_dir_file(performanced, cgroup) diff --git a/prebuilts/api/26.0/public/perfprofd.te b/prebuilts/api/26.0/public/perfprofd.te new file mode 100644 index 000000000..bfb8693fa --- /dev/null +++ b/prebuilts/api/26.0/public/perfprofd.te @@ -0,0 +1,59 @@ +# perfprofd - perf profile collection daemon +type perfprofd, domain; +type perfprofd_exec, exec_type, file_type; + +userdebug_or_eng(` + + typeattribute perfprofd coredomain; + typeattribute perfprofd mlstrustedsubject; + + # perfprofd needs to control CPU hot-plug in order to avoid kernel + # perfevents problems in cases where CPU goes on/off during measurement; + # this means read access to /sys/devices/system/cpu/possible + # and read/write access to /sys/devices/system/cpu/cpu*/online + allow perfprofd sysfs_devices_system_cpu:file rw_file_perms; + + # perfprofd checks for the existence of and then invokes simpleperf; + # simpleperf retains perfprofd domain after exec + allow perfprofd system_file:file rx_file_perms; + + # perfprofd reads a config file from /data/data/com.google.android.gms/files + allow perfprofd app_data_file:file r_file_perms; + allow perfprofd app_data_file:dir search; + allow perfprofd self:capability { dac_override }; + + # perfprofd opens a file for writing in /data/misc/perfprofd + allow perfprofd perfprofd_data_file:file create_file_perms; + allow perfprofd perfprofd_data_file:dir rw_dir_perms; + + # perfprofd uses the system log + read_logd(perfprofd); + write_logd(perfprofd); + + # perfprofd inspects /sys/power/wake_unlock + wakelock_use(perfprofd); + + # simpleperf uses ioctl() to turn on kernel perf events measurements + allow perfprofd self:capability sys_admin; + + # simpleperf needs to examine /proc to collect task/thread info + r_dir_file(perfprofd, domain) + + # simpleperf needs to access /proc//exec + allow perfprofd self:capability { sys_resource sys_ptrace }; + neverallow perfprofd domain:process ptrace; + + # simpleperf needs open/read any file that turns up in a profile + # to see whether it has a build ID + allow perfprofd exec_type:file r_file_perms; + + # simpleperf examines debugfs on startup to collect tracepoint event types + allow perfprofd debugfs_tracing:file r_file_perms; + + # simpleperf is going to execute "sleep" + allow perfprofd toolbox_exec:file rx_file_perms; + + # needed for simpleperf on some kernels + allow perfprofd self:capability ipc_lock; + +') diff --git a/prebuilts/api/26.0/public/platform_app.te b/prebuilts/api/26.0/public/platform_app.te new file mode 100644 index 000000000..9b1faf0f6 --- /dev/null +++ b/prebuilts/api/26.0/public/platform_app.te @@ -0,0 +1,5 @@ +### +### Apps signed with the platform key. +### + +type platform_app, domain; diff --git a/prebuilts/api/26.0/public/postinstall.te b/prebuilts/api/26.0/public/postinstall.te new file mode 100644 index 000000000..7fd4dc611 --- /dev/null +++ b/prebuilts/api/26.0/public/postinstall.te @@ -0,0 +1,36 @@ +# Domain where the postinstall program runs during the update. +# Extend the permissions in this domain to allow this program to access other +# files needed by the specific device on your device's sepolicy directory. +type postinstall, domain; + +# Allow postinstall to write to its stdout/stderr when redirected via pipes to +# update_engine. +allow postinstall update_engine_common:fd use; +allow postinstall update_engine_common:fifo_file rw_file_perms; + +# Allow postinstall to read and execute directories and files in the same +# mounted location. +allow postinstall postinstall_file:file rx_file_perms; +allow postinstall postinstall_file:lnk_file r_file_perms; +allow postinstall postinstall_file:dir r_dir_perms; + +# Allow postinstall to execute the shell or other system executables. +allow postinstall shell_exec:file rx_file_perms; +allow postinstall system_file:file rx_file_perms; +allow postinstall toolbox_exec:file rx_file_perms; + +# +# For OTA dexopt. +# + +# Allow postinstall scripts to talk to the system server. +binder_use(postinstall) +binder_call(postinstall, system_server) + +# Need to talk to the otadexopt service. +allow postinstall otadexopt_service:service_manager find; + +# No domain other than update_engine and recovery (via update_engine_sideload) +# should transition to postinstall, as it is only meant to run during the +# update. +neverallow { domain -update_engine -recovery } postinstall:process { transition dyntransition }; diff --git a/prebuilts/api/26.0/public/postinstall_dexopt.te b/prebuilts/api/26.0/public/postinstall_dexopt.te new file mode 100644 index 000000000..0ce617b81 --- /dev/null +++ b/prebuilts/api/26.0/public/postinstall_dexopt.te @@ -0,0 +1,57 @@ +# Domain for the otapreopt executable, running under postinstall_dexopt +# +# Note: otapreopt is a driver for dex2oat, and reuses parts of installd. As such, +# this is derived and adapted from installd.te. + +type postinstall_dexopt, domain; + +allow postinstall_dexopt self:capability { chown dac_override fowner setgid setuid }; + +allow postinstall_dexopt postinstall_file:filesystem getattr; +allow postinstall_dexopt postinstall_file:dir { getattr search }; +allow postinstall_dexopt postinstall_file:lnk_file read; +allow postinstall_dexopt proc:file { getattr open read }; +allow postinstall_dexopt tmpfs:file read; + +# Note: /data/ota is created by init (see system/core/rootdir/init.rc) to avoid giving access +# here and having to relabel the directory. + +# Read app data (APKs) as input to dex2oat. +r_dir_file(postinstall_dexopt, apk_data_file) +# Read vendor app data (APKs) as input to dex2oat. +r_dir_file(postinstall_dexopt, vendor_app_file) +# Access to app oat directory. +r_dir_file(postinstall_dexopt, dalvikcache_data_file) + +# Read profile data. +allow postinstall_dexopt user_profile_data_file:dir { getattr search }; +allow postinstall_dexopt user_profile_data_file:file r_file_perms; + +# Write to /data/ota(/*). Create symlinks in /data/ota(/*) +allow postinstall_dexopt ota_data_file:dir create_dir_perms; +allow postinstall_dexopt ota_data_file:file create_file_perms; +allow postinstall_dexopt ota_data_file:lnk_file create_file_perms; + +# Need to write .b files, which are dalvikcache_data_file, not ota_data_file. +# TODO: See whether we can apply ota_data_file? +allow postinstall_dexopt dalvikcache_data_file:dir rw_dir_perms; +allow postinstall_dexopt dalvikcache_data_file:file create_file_perms; + +# Allow labeling of files under /data/app/com.example/oat/ +# TODO: Restrict to .b suffix? +allow postinstall_dexopt dalvikcache_data_file:dir relabelto; +allow postinstall_dexopt dalvikcache_data_file:file { relabelto link }; + +# Check validity of SELinux context before use. +selinux_check_context(postinstall_dexopt) +selinux_check_access(postinstall_dexopt) + + +# Postinstall wants to know about our child. +allow postinstall_dexopt postinstall:process sigchld; + +# Allow otapreopt to use file descriptors from otapreopt_chroot. +# TODO: Probably we can actually close file descriptors... +allow postinstall_dexopt otapreopt_chroot:fd use; + +allow postinstall_dexopt cpuctl_device:dir search; diff --git a/prebuilts/api/26.0/public/ppp.te b/prebuilts/api/26.0/public/ppp.te new file mode 100644 index 000000000..04e17f57a --- /dev/null +++ b/prebuilts/api/26.0/public/ppp.te @@ -0,0 +1,23 @@ +# Point to Point Protocol daemon +type ppp, domain; +type ppp_device, dev_type; +type ppp_exec, exec_type, file_type; + +net_domain(ppp) + +r_dir_file(ppp, proc_net) + +allow ppp mtp:socket rw_socket_perms; + +# ioctls needed for VPN. +allowxperm ppp self:udp_socket ioctl priv_sock_ioctls; +allowxperm ppp mtp:socket ioctl ppp_ioctls; + +allow ppp mtp:unix_dgram_socket rw_socket_perms; +allow ppp ppp_device:chr_file rw_file_perms; +allow ppp self:capability net_admin; +allow ppp system_file:file rx_file_perms; +not_full_treble(`allow ppp vendor_file:file rx_file_perms;') +allow ppp vpn_data_file:dir w_dir_perms; +allow ppp vpn_data_file:file create_file_perms; +allow ppp mtp:fd use; diff --git a/prebuilts/api/26.0/public/preopt2cachename.te b/prebuilts/api/26.0/public/preopt2cachename.te new file mode 100644 index 000000000..49df64725 --- /dev/null +++ b/prebuilts/api/26.0/public/preopt2cachename.te @@ -0,0 +1,13 @@ +# preopt2cachename executable +# +# This executable translates names from the preopted versions the build system +# creates to the names the runtime expects in the data directory. +type preopt2cachename, domain; +type preopt2cachename_exec, exec_type, file_type; + +# Allow write to stdout. +allow preopt2cachename cppreopts:fd use; +allow preopt2cachename cppreopts:fifo_file { getattr read write }; + +# Allow write to logcat. +allow preopt2cachename proc_net:file r_file_perms; diff --git a/prebuilts/api/26.0/public/priv_app.te b/prebuilts/api/26.0/public/priv_app.te new file mode 100644 index 000000000..0761fc30f --- /dev/null +++ b/prebuilts/api/26.0/public/priv_app.te @@ -0,0 +1,5 @@ +### +### A domain for further sandboxing privileged apps. +### + +type priv_app, domain; diff --git a/prebuilts/api/26.0/public/profman.te b/prebuilts/api/26.0/public/profman.te new file mode 100644 index 000000000..a5c18b51d --- /dev/null +++ b/prebuilts/api/26.0/public/profman.te @@ -0,0 +1,26 @@ +# profman +type profman, domain; +type profman_exec, exec_type, file_type; + +allow profman user_profile_data_file:file { getattr read write lock }; + +# Dumping profile info opens the application APK file for pretty printing. +allow profman asec_apk_file:file { read }; +allow profman apk_data_file:file { read }; +allow profman oemfs:file { read }; +# Reading an APK opens a ZipArchive, which unpack to tmpfs. +allow profman tmpfs:file { read }; +allow profman profman_dump_data_file:file { write }; + +allow profman installd:fd use; + +# Allow profman to analyze profiles for the secondary dex files. These +# are application dex files reported back to the framework when using +# BaseDexClassLoader. +allow profman app_data_file:file { getattr read write lock }; + +### +### neverallow rules +### + +neverallow profman app_data_file:notdevfile_class_set open; diff --git a/prebuilts/api/26.0/public/property.te b/prebuilts/api/26.0/public/property.te new file mode 100644 index 000000000..d6fa86801 --- /dev/null +++ b/prebuilts/api/26.0/public/property.te @@ -0,0 +1,89 @@ +type asan_reboot_prop, property_type; +type audio_prop, property_type, core_property_type; +type boottime_prop, property_type; +type bluetooth_prop, property_type; +type config_prop, property_type, core_property_type; +type cppreopt_prop, property_type, core_property_type; +type ctl_bootanim_prop, property_type; +type ctl_bugreport_prop, property_type; +type ctl_console_prop, property_type; +type ctl_default_prop, property_type; +type ctl_dumpstate_prop, property_type; +type ctl_fuse_prop, property_type; +type ctl_mdnsd_prop, property_type; +type ctl_rildaemon_prop, property_type; +type dalvik_prop, property_type, core_property_type; +type debuggerd_prop, property_type, core_property_type; +type debug_prop, property_type, core_property_type; +type default_prop, property_type, core_property_type; +type device_logging_prop, property_type; +type dhcp_prop, property_type, core_property_type; +type dumpstate_options_prop, property_type; +type dumpstate_prop, property_type, core_property_type; +type ffs_prop, property_type, core_property_type; +type fingerprint_prop, property_type, core_property_type; +type firstboot_prop, property_type; +type hwservicemanager_prop, property_type; +type logd_prop, property_type, core_property_type; +type logpersistd_logging_prop, property_type; +type log_prop, property_type, log_property_type; +type log_tag_prop, property_type, log_property_type; +type mmc_prop, property_type; +type net_dns_prop, property_type; +type net_radio_prop, property_type, core_property_type; +type nfc_prop, property_type, core_property_type; +type overlay_prop, property_type; +type pan_result_prop, property_type, core_property_type; +type persist_debug_prop, property_type, core_property_type; +type persistent_properties_ready_prop, property_type; +type powerctl_prop, property_type, core_property_type; +type radio_prop, property_type, core_property_type; +type restorecon_prop, property_type, core_property_type; +type safemode_prop, property_type; +type serialno_prop, property_type; +type shell_prop, property_type, core_property_type; +type system_prop, property_type, core_property_type; +type system_radio_prop, property_type, core_property_type; +type vold_prop, property_type, core_property_type; +type wifi_log_prop, property_type, log_property_type; +type wifi_prop, property_type; + +allow property_type tmpfs:filesystem associate; + +### +### Neverallow rules +### + +# core_property_type should not be used for new properties or +# device specific properties. Properties with this attribute +# are readable to everyone, which is overly broad and should +# be avoided. +# New properties should have appropriate read / write access +# control rules written. + +neverallow * { + core_property_type + -audio_prop + -config_prop + -cppreopt_prop + -dalvik_prop + -debuggerd_prop + -debug_prop + -default_prop + -dhcp_prop + -dumpstate_prop + -ffs_prop + -fingerprint_prop + -logd_prop + -net_radio_prop + -nfc_prop + -pan_result_prop + -persist_debug_prop + -powerctl_prop + -radio_prop + -restorecon_prop + -shell_prop + -system_prop + -system_radio_prop + -vold_prop +}:file no_rw_file_perms; diff --git a/prebuilts/api/26.0/public/racoon.te b/prebuilts/api/26.0/public/racoon.te new file mode 100644 index 000000000..00744d8f1 --- /dev/null +++ b/prebuilts/api/26.0/public/racoon.te @@ -0,0 +1,33 @@ +# IKE key management daemon +type racoon, domain; +type racoon_exec, exec_type, file_type; + +typeattribute racoon mlstrustedsubject; + +net_domain(racoon) +allowxperm racoon self:udp_socket ioctl { SIOCSIFFLAGS SIOCSIFADDR SIOCSIFNETMASK }; + +binder_use(racoon) + +allow racoon tun_device:chr_file r_file_perms; +allow racoon cgroup:dir { add_name create }; +allow racoon kernel:system module_request; + +allow racoon self:key_socket create_socket_perms_no_ioctl; +allow racoon self:tun_socket create_socket_perms_no_ioctl; +allow racoon self:capability { net_admin net_bind_service net_raw }; + +# XXX: should we give ip-up-vpn its own label (currently racoon domain) +allow racoon system_file:file rx_file_perms; +not_full_treble(`allow racoon vendor_file:file rx_file_perms;') +allow racoon vpn_data_file:file create_file_perms; +allow racoon vpn_data_file:dir w_dir_perms; + +use_keystore(racoon) + +# Racoon (VPN) has a restricted set of permissions from the default. +allow racoon keystore:keystore_key { + get + sign + verify +}; diff --git a/prebuilts/api/26.0/public/radio.te b/prebuilts/api/26.0/public/radio.te new file mode 100644 index 000000000..6f29a705d --- /dev/null +++ b/prebuilts/api/26.0/public/radio.te @@ -0,0 +1,39 @@ +# phone subsystem +type radio, domain, mlstrustedsubject; + +net_domain(radio) +bluetooth_domain(radio) +binder_service(radio) + +# Talks to rild via the rild socket only for devices without full treble +not_full_treble(`unix_socket_connect(radio, rild, rild)') + +# Data file accesses. +allow radio radio_data_file:dir create_dir_perms; +allow radio radio_data_file:notdevfile_class_set create_file_perms; + +allow radio alarm_device:chr_file rw_file_perms; + +allow radio net_data_file:dir search; +allow radio net_data_file:file r_file_perms; + +# Property service +set_prop(radio, radio_prop) +set_prop(radio, net_radio_prop) + +# ctl interface +set_prop(radio, ctl_rildaemon_prop) + +add_service(radio, radio_service) +allow radio audioserver_service:service_manager find; +allow radio cameraserver_service:service_manager find; +allow radio drmserver_service:service_manager find; +allow radio mediaserver_service:service_manager find; +allow radio nfc_service:service_manager find; +allow radio surfaceflinger_service:service_manager find; +allow radio app_api_service:service_manager find; +allow radio system_api_service:service_manager find; + +# Perform HwBinder IPC. +hwbinder_use(radio) +hal_client_domain(radio, hal_telephony) diff --git a/prebuilts/api/26.0/public/recovery.te b/prebuilts/api/26.0/public/recovery.te new file mode 100644 index 000000000..f55dc8a5d --- /dev/null +++ b/prebuilts/api/26.0/public/recovery.te @@ -0,0 +1,143 @@ +# recovery console (used in recovery init.rc for /sbin/recovery) + +# Declare the domain unconditionally so we can always reference it +# in neverallow rules. +type recovery, domain; + +# But the allow rules are only included in the recovery policy. +# Otherwise recovery is only allowed the domain rules. +recovery_only(` + # Allow recovery to perform an update as update_engine would do. + typeattribute recovery update_engine_common; + # Recovery can only use HALs in passthrough mode + passthrough_hal_client_domain(recovery, hal_bootctl) + + allow recovery self:capability { chown dac_override fowner fsetid setfcap setuid setgid sys_admin sys_tty_config }; + + # Set security contexts on files that are not known to the loaded policy. + allow recovery self:capability2 mac_admin; + + # Run helpers from / or /system without changing domain. + allow recovery rootfs:file execute_no_trans; + allow recovery system_file:file execute_no_trans; + allow recovery toolbox_exec:file rx_file_perms; + + # Mount filesystems. + allow recovery rootfs:dir mounton; + allow recovery fs_type:filesystem ~relabelto; + allow recovery unlabeled:filesystem ~relabelto; + allow recovery contextmount_type:filesystem relabelto; + + # Create and relabel files and directories under /system. + allow recovery exec_type:{ file lnk_file } { create_file_perms relabelfrom relabelto }; + allow recovery { system_file }:{ file lnk_file } { create_file_perms relabelfrom relabelto }; + allow recovery system_file:dir { create_dir_perms relabelfrom relabelto }; + + # We may be asked to set an SELinux label for a type not known to the + # currently loaded policy. Allow it. + allow recovery unlabeled:{ file lnk_file } { create_file_perms relabelfrom relabelto }; + allow recovery unlabeled:dir { create_dir_perms relabelfrom relabelto }; + # Get file contexts + allow recovery file_contexts_file:file r_file_perms; + + # 0eb17d944704b3eb140bb9dded299d3be3aed77e in build/ added SELinux + # support to OTAs. However, that code has a bug. When an update occurs, + # some directories are inappropriately labeled as exec_type. This is + # only transient, and subsequent steps in the OTA script correct this + # mistake. New devices are moving to block based OTAs, so this is not + # worth fixing. b/15575013 + allow recovery exec_type:dir { create_dir_perms relabelfrom relabelto }; + + # Write to /proc/sys/vm/drop_caches + allow recovery proc_drop_caches:file w_file_perms; + + # Read kernel config through libvintf for OTA matching + allow recovery config_gz:file { open read getattr }; + + # Write to /sys/class/android_usb/android0/enable. + # TODO: create more specific label? + allow recovery sysfs:file w_file_perms; + + # Write to /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq. + allow recovery sysfs_devices_system_cpu:file w_file_perms; + + allow recovery sysfs_batteryinfo:file r_file_perms; + + # Read from /sys/class/leds/lcd-backlight/max_brightness and write to /s/c/l/l/brightness to + # control backlight brightness. + allow recovery sysfs_leds:dir r_dir_perms; + allow recovery sysfs_leds:file rw_file_perms; + allow recovery sysfs_leds:lnk_file read; + + allow recovery kernel:system syslog_read; + + # Access /dev/usb-ffs/adb/ep0 + allow recovery functionfs:dir search; + allow recovery functionfs:file rw_file_perms; + + # Required to e.g. wipe userdata/cache. + allow recovery device:dir r_dir_perms; + allow recovery block_device:dir r_dir_perms; + allow recovery dev_type:blk_file rw_file_perms; + + # GUI + allow recovery graphics_device:chr_file rw_file_perms; + allow recovery graphics_device:dir r_dir_perms; + allow recovery input_device:dir r_dir_perms; + allow recovery input_device:chr_file r_file_perms; + allow recovery tty_device:chr_file rw_file_perms; + + # Create /tmp/recovery.log and execute /tmp/update_binary. + allow recovery tmpfs:file { create_file_perms x_file_perms }; + allow recovery tmpfs:dir create_dir_perms; + + # Manage files on /cache and /cache/recovery + allow recovery { cache_file cache_recovery_file }:dir create_dir_perms; + allow recovery { cache_file cache_recovery_file }:file create_file_perms; + + # Read /sys/class/thermal/*/temp for thermal info. + r_dir_file(recovery, sysfs_thermal) + + # Read files on /oem. + r_dir_file(recovery, oemfs); + + # Reboot the device + set_prop(recovery, powerctl_prop) + + # Start/stop adbd via ctl.start adbd + set_prop(recovery, ctl_default_prop) + + # Read serial number of the device from system properties + get_prop(recovery, serialno_prop) + + # Use setfscreatecon() to label files for OTA updates. + allow recovery self:process setfscreate; + + # Allow recovery to create a fuse filesystem, and read files from it. + allow recovery fuse_device:chr_file rw_file_perms; + allow recovery fuse:dir r_dir_perms; + allow recovery fuse:file r_file_perms; + + wakelock_use(recovery) + + # This line seems suspect, as it should not really need to + # set scheduling parameters for a kernel domain task. + allow recovery kernel:process setsched; +') + +### +### neverallow rules +### + +# Recovery should never touch /data. +# +# In particular, if /data is encrypted, it is not accessible +# to recovery anyway. +# +# For now, we only enforce write/execute restrictions, as domain.te +# contains a number of read-only rules that apply to all +# domains, including recovery. +# +# TODO: tighten this up further. +neverallow recovery data_file_type:file { no_w_file_perms no_x_file_perms }; +neverallow recovery data_file_type:dir no_w_dir_perms; diff --git a/prebuilts/api/26.0/public/recovery_persist.te b/prebuilts/api/26.0/public/recovery_persist.te new file mode 100644 index 000000000..091d3001a --- /dev/null +++ b/prebuilts/api/26.0/public/recovery_persist.te @@ -0,0 +1,27 @@ +# android recovery persistent log manager +type recovery_persist, domain; +type recovery_persist_exec, exec_type, file_type; + +allow recovery_persist pstorefs:dir search; +allow recovery_persist pstorefs:file r_file_perms; + +allow recovery_persist recovery_data_file:file create_file_perms; +allow recovery_persist recovery_data_file:dir create_dir_perms; + +### +### Neverallow rules +### +### recovery_persist should NEVER do any of this + +# Block device access. +neverallow recovery_persist dev_type:blk_file { read write }; + +# ptrace any other app +neverallow recovery_persist domain:process ptrace; + +# Write to /system. +neverallow recovery_persist system_file:dir_file_class_set write; + +# Write to files in /data/data +neverallow recovery_persist { app_data_file system_data_file }:dir_file_class_set write; + diff --git a/prebuilts/api/26.0/public/recovery_refresh.te b/prebuilts/api/26.0/public/recovery_refresh.te new file mode 100644 index 000000000..602ed51d7 --- /dev/null +++ b/prebuilts/api/26.0/public/recovery_refresh.te @@ -0,0 +1,24 @@ +# android recovery refresh log manager +type recovery_refresh, domain; +type recovery_refresh_exec, exec_type, file_type; + +allow recovery_refresh pstorefs:dir search; +allow recovery_refresh pstorefs:file r_file_perms; +# NB: domain inherits write_logd which hands us write to pmsg_device + +### +### Neverallow rules +### +### recovery_refresh should NEVER do any of this + +# Block device access. +neverallow recovery_refresh dev_type:blk_file { read write }; + +# ptrace any other app +neverallow recovery_refresh domain:process ptrace; + +# Write to /system. +neverallow recovery_refresh system_file:dir_file_class_set write; + +# Write to files in /data/data or system files on /data +neverallow recovery_refresh { app_data_file system_data_file }:dir_file_class_set write; diff --git a/prebuilts/api/26.0/public/rild.te b/prebuilts/api/26.0/public/rild.te new file mode 100644 index 000000000..14420dffb --- /dev/null +++ b/prebuilts/api/26.0/public/rild.te @@ -0,0 +1,49 @@ +# rild - radio interface layer daemon +type rild, domain; +hal_server_domain(rild, hal_telephony) + +net_domain(rild) +allowxperm rild self:udp_socket ioctl priv_sock_ioctls; + +allow rild self:netlink_route_socket nlmsg_write; +allow rild kernel:system module_request; +allow rild self:capability { setpcap setgid setuid net_admin net_raw }; +allow rild alarm_device:chr_file rw_file_perms; +allow rild cgroup:dir create_dir_perms; +allow rild cgroup:{ file lnk_file } r_file_perms; +allow rild radio_device:chr_file rw_file_perms; +allow rild radio_device:blk_file r_file_perms; +allow rild mtd_device:dir search; +allow rild efs_file:dir create_dir_perms; +allow rild efs_file:file create_file_perms; +allow rild shell_exec:file rx_file_perms; +allow rild bluetooth_efs_file:file r_file_perms; +allow rild bluetooth_efs_file:dir r_dir_perms; +allow rild radio_data_file:dir rw_dir_perms; +allow rild radio_data_file:file create_file_perms; +allow rild sdcard_type:dir r_dir_perms; +allow rild system_data_file:dir r_dir_perms; +allow rild system_data_file:file r_file_perms; +allow rild system_file:file x_file_perms; + +# property service +set_prop(rild, radio_prop) + +allow rild tty_device:chr_file rw_file_perms; + +# Allow rild to create and use netlink sockets. +allow rild self:netlink_socket create_socket_perms_no_ioctl; +allow rild self:netlink_generic_socket create_socket_perms_no_ioctl; +allow rild self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; + +# Access to wake locks +wakelock_use(rild) + +r_dir_file(rild, proc) +r_dir_file(rild, proc_net) +r_dir_file(rild, sysfs_type) +r_dir_file(rild, system_file) + +# granting the ioctl permission for rild should be device specific +allow rild self:socket create_socket_perms_no_ioctl; + diff --git a/prebuilts/api/26.0/public/roles b/prebuilts/api/26.0/public/roles new file mode 100644 index 000000000..ca9293439 --- /dev/null +++ b/prebuilts/api/26.0/public/roles @@ -0,0 +1 @@ +role r types domain; diff --git a/prebuilts/api/26.0/public/runas.te b/prebuilts/api/26.0/public/runas.te new file mode 100644 index 000000000..7a7febfc0 --- /dev/null +++ b/prebuilts/api/26.0/public/runas.te @@ -0,0 +1,37 @@ +type runas, domain, mlstrustedsubject; +type runas_exec, exec_type, file_type; + +allow runas adbd:process sigchld; +allow runas adbd:unix_stream_socket { read write }; +allow runas shell:fd use; +allow runas shell:fifo_file { read write }; +allow runas shell:unix_stream_socket { read write }; +allow runas devpts:chr_file { read write ioctl }; +allow runas shell_data_file:file { read write }; + +# run-as reads package information. +allow runas system_data_file:file r_file_perms; + +# run-as checks and changes to the app data dir. +dontaudit runas self:capability dac_override; +allow runas app_data_file:dir { getattr search }; + +# run-as switches to the app UID/GID. +allow runas self:capability { setuid setgid }; + +# run-as switches to the app security context. +selinux_check_context(runas) # validate context +allow runas self:process setcurrent; +allow runas non_system_app_set:process dyntransition; # setcon + +# runas/libselinux needs access to seapp_contexts_file to +# determine which domain to transition to. +allow runas seapp_contexts_file:file r_file_perms; + +### +### neverallow rules +### + +# run-as cannot have capabilities other than CAP_SETUID and CAP_SETGID +neverallow runas self:capability ~{ setuid setgid }; +neverallow runas self:capability2 *; diff --git a/prebuilts/api/26.0/public/sdcardd.te b/prebuilts/api/26.0/public/sdcardd.te new file mode 100644 index 000000000..47a2f8061 --- /dev/null +++ b/prebuilts/api/26.0/public/sdcardd.te @@ -0,0 +1,43 @@ +type sdcardd, domain; +type sdcardd_exec, exec_type, file_type; + +allow sdcardd cgroup:dir create_dir_perms; +allow sdcardd fuse_device:chr_file rw_file_perms; +allow sdcardd rootfs:dir mounton; # TODO: deprecated in M +allow sdcardd sdcardfs:filesystem remount; +allow sdcardd tmpfs:dir r_dir_perms; +allow sdcardd mnt_media_rw_file:dir r_dir_perms; +allow sdcardd storage_file:dir search; +allow sdcardd storage_stub_file:dir { search mounton }; +allow sdcardd sdcard_type:filesystem { mount unmount }; +allow sdcardd self:capability { setuid setgid dac_override sys_admin sys_resource }; + +allow sdcardd sdcard_type:dir create_dir_perms; +allow sdcardd sdcard_type:file create_file_perms; + +allow sdcardd media_rw_data_file:dir create_dir_perms; +allow sdcardd media_rw_data_file:file create_file_perms; + +# Read /data/system/packages.list. +allow sdcardd system_data_file:file r_file_perms; + +# Read /data/.layout_version +allow sdcardd install_data_file:file r_file_perms; + +# Allow stdin/out back to vold +allow sdcardd vold:fd use; +allow sdcardd vold:fifo_file { read write getattr }; + +# Allow running on top of expanded storage +allow sdcardd mnt_expand_file:dir search; + +# access /proc/filesystems +allow sdcardd proc:file r_file_perms; + +### +### neverallow rules +### + +# The sdcard daemon should no longer be started from init +neverallow init sdcardd_exec:file execute; +neverallow init sdcardd:process { transition dyntransition }; diff --git a/prebuilts/api/26.0/public/service.te b/prebuilts/api/26.0/public/service.te new file mode 100644 index 000000000..da540dbf5 --- /dev/null +++ b/prebuilts/api/26.0/public/service.te @@ -0,0 +1,147 @@ +type audioserver_service, service_manager_type; +type batteryproperties_service, app_api_service, ephemeral_app_api_service, service_manager_type; +type bluetooth_service, service_manager_type; +type cameraserver_service, service_manager_type; +type default_android_service, service_manager_type; +type drmserver_service, service_manager_type; +type dumpstate_service, service_manager_type; +type fingerprintd_service, service_manager_type; +type hal_fingerprint_service, service_manager_type; +type gatekeeper_service, app_api_service, service_manager_type; +type gpu_service, service_manager_type; +type inputflinger_service, service_manager_type; +type incident_service, service_manager_type; +type installd_service, service_manager_type; +type keystore_service, service_manager_type; +type mediaserver_service, service_manager_type; +type mediametrics_service, service_manager_type; +type mediaextractor_service, service_manager_type; +type mediacodec_service, service_manager_type; +type mediadrmserver_service, service_manager_type; +type mediacasserver_service, service_manager_type; +type netd_service, service_manager_type; +type nfc_service, service_manager_type; +type radio_service, service_manager_type; +type storaged_service, service_manager_type; +type surfaceflinger_service, service_manager_type; +type system_app_service, service_manager_type; +type update_engine_service, service_manager_type; +type virtual_touchpad_service, service_manager_type; +type vr_hwc_service, service_manager_type; + +# system_server_services broken down +type accessibility_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type account_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type activity_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type alarm_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type appops_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type appwidget_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type assetatlas_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type audio_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type autofill_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type backup_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type batterystats_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type battery_service, system_server_service, service_manager_type; +type bluetooth_manager_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type cameraproxy_service, system_server_service, service_manager_type; +type clipboard_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type contexthub_service, app_api_service, system_server_service, service_manager_type; +type IProxyService_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type commontime_management_service, system_server_service, service_manager_type; +type companion_device_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type connectivity_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type connmetrics_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type consumer_ir_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type content_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type country_detector_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +# Note: The coverage_service should only be enabled for userdebug / eng builds that were compiled +# with EMMA_INSTRUMENT=true. We should consider locking this down in the future. +type coverage_service, system_server_service, service_manager_type; +type cpuinfo_service, system_api_service, system_server_service, service_manager_type; +type dbinfo_service, system_api_service, system_server_service, service_manager_type; +type device_policy_service, app_api_service, system_server_service, service_manager_type; +type deviceidle_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type device_identifiers_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type devicestoragemonitor_service, system_server_service, service_manager_type; +type diskstats_service, system_api_service, system_server_service, service_manager_type; +type display_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type font_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type netd_listener_service, system_server_service, service_manager_type; +type DockObserver_service, system_server_service, service_manager_type; +type dreams_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type dropbox_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type ethernet_service, app_api_service, system_server_service, service_manager_type; +type fingerprint_service, app_api_service, system_server_service, service_manager_type; +type gfxinfo_service, system_api_service, system_server_service, service_manager_type; +type graphicsstats_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type hardware_service, system_server_service, service_manager_type; +type hardware_properties_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type hdmi_control_service, system_api_service, system_server_service, service_manager_type; +type input_method_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type input_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type imms_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type ipsec_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type jobscheduler_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type launcherapps_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type location_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type lock_settings_service, system_api_service, system_server_service, service_manager_type; +type media_projection_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type media_router_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type media_session_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type meminfo_service, system_api_service, system_server_service, service_manager_type; +type midi_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type mount_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type netpolicy_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type netstats_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type network_management_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type network_score_service, system_api_service, system_server_service, service_manager_type; +type network_time_update_service, system_server_service, service_manager_type; +type notification_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type oem_lock_service, system_api_service, system_server_service, service_manager_type; +type otadexopt_service, system_server_service, service_manager_type; +type overlay_service, system_server_service, service_manager_type; +type package_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type permission_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type persistent_data_block_service, system_api_service, system_server_service, service_manager_type; +type pinner_service, system_server_service, service_manager_type; +type power_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type print_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type processinfo_service, system_server_service, service_manager_type; +type procstats_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type recovery_service, system_server_service, service_manager_type; +type registry_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type restrictions_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type rttmanager_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type samplingprofiler_service, system_server_service, service_manager_type; +type scheduling_policy_service, system_server_service, service_manager_type; +type search_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type sec_key_att_app_id_provider_service, app_api_service, system_server_service, service_manager_type; +type sensorservice_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type serial_service, system_api_service, system_server_service, service_manager_type; +type servicediscovery_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type settings_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type shortcut_service, app_api_service, system_server_service, service_manager_type; +type statusbar_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type storagestats_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type task_service, system_server_service, service_manager_type; +type textclassification_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type textservices_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type telecom_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type trust_service, app_api_service, system_server_service, service_manager_type; +type tv_input_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type uimode_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type updatelock_service, system_api_service, system_server_service, service_manager_type; +type usagestats_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type usb_service, app_api_service, system_server_service, service_manager_type; +type user_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type vibrator_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type voiceinteraction_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type vr_manager_service, system_server_service, service_manager_type; +type wallpaper_service, app_api_service, system_server_service, service_manager_type; +type webviewupdate_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type wifip2p_service, app_api_service, system_server_service, service_manager_type; +type wifiscanner_service, system_api_service, system_server_service, service_manager_type; +type wifi_service, app_api_service, system_server_service, service_manager_type; +type wificond_service, service_manager_type; +type wifiaware_service, app_api_service, system_server_service, service_manager_type; +type window_service, system_api_service, system_server_service, service_manager_type; diff --git a/prebuilts/api/26.0/public/servicemanager.te b/prebuilts/api/26.0/public/servicemanager.te new file mode 100644 index 000000000..3cf5a464d --- /dev/null +++ b/prebuilts/api/26.0/public/servicemanager.te @@ -0,0 +1,25 @@ +# servicemanager - the Binder context manager +type servicemanager, domain, mlstrustedsubject; +type servicemanager_exec, exec_type, file_type; + +# Note that we do not use the binder_* macros here. +# servicemanager is unique in that it only provides +# name service (aka context manager) for Binder. +# As such, it only ever receives and transfers other references +# created by other domains. It never passes its own references +# or initiates a Binder IPC. +allow servicemanager self:binder set_context_mgr; +allow servicemanager { + domain + -init + -hwservicemanager + -vndservicemanager +}:binder transfer; + +# Access to all (system and vendor) service_contexts +# TODO(b/36866029) access to nonplat_service_contexts +# should not be allowed on full treble devices +allow servicemanager service_contexts_file:file r_file_perms; + +# Check SELinux permissions. +selinux_check_access(servicemanager) diff --git a/prebuilts/api/26.0/public/sgdisk.te b/prebuilts/api/26.0/public/sgdisk.te new file mode 100644 index 000000000..300739878 --- /dev/null +++ b/prebuilts/api/26.0/public/sgdisk.te @@ -0,0 +1,22 @@ +# sgdisk called from vold +type sgdisk, domain; +type sgdisk_exec, exec_type, file_type; + +# Allowed to read/write low-level partition tables +allow sgdisk block_device:dir search; +allow sgdisk vold_device:blk_file rw_file_perms; + +# Inherit and use pty created by android_fork_execvp() +allow sgdisk devpts:chr_file { read write ioctl getattr }; + +# Allow stdin/out back to vold +allow sgdisk vold:fd use; +allow sgdisk vold:fifo_file { read write getattr }; + +# Used to probe kernel to reload partition tables +allow sgdisk self:capability sys_admin; + +# Only allow entry from vold +neverallow { domain -vold } sgdisk:process transition; +neverallow * sgdisk:process dyntransition; +neverallow sgdisk { file_type fs_type -sgdisk_exec }:file entrypoint; diff --git a/prebuilts/api/26.0/public/shared_relro.te b/prebuilts/api/26.0/public/shared_relro.te new file mode 100644 index 000000000..91cf44d02 --- /dev/null +++ b/prebuilts/api/26.0/public/shared_relro.te @@ -0,0 +1,9 @@ +# Process which creates/updates shared RELRO files to be used by other apps. +type shared_relro, domain; + +# Grant write access to the shared relro files/directory. +allow shared_relro shared_relro_file:dir rw_dir_perms; +allow shared_relro shared_relro_file:file create_file_perms; + +# Needs to contact the "webviewupdate" and "activity" services +allow shared_relro webviewupdate_service:service_manager find; diff --git a/prebuilts/api/26.0/public/shell.te b/prebuilts/api/26.0/public/shell.te new file mode 100644 index 000000000..1fb896a7d --- /dev/null +++ b/prebuilts/api/26.0/public/shell.te @@ -0,0 +1,184 @@ +# Domain for shell processes spawned by ADB or console service. +type shell, domain, mlstrustedsubject; +type shell_exec, exec_type, file_type; + +# Create and use network sockets. +net_domain(shell) + +# logcat +read_logd(shell) +control_logd(shell) +# logcat -L (directly, or via dumpstate) +allow shell pstorefs:dir search; +allow shell pstorefs:file r_file_perms; + +# Root fs. +allow shell rootfs:dir r_dir_perms; + +# read files in /data/anr +allow shell anr_data_file:dir r_dir_perms; +allow shell anr_data_file:file r_file_perms; + +# Access /data/local/tmp. +allow shell shell_data_file:dir create_dir_perms; +allow shell shell_data_file:file create_file_perms; +allow shell shell_data_file:file rx_file_perms; +allow shell shell_data_file:lnk_file create_file_perms; + +# Access /data/misc/profman. +allow shell profman_dump_data_file:dir { search getattr write remove_name }; +allow shell profman_dump_data_file:file { getattr unlink }; + +# Read/execute files in /data/nativetest +userdebug_or_eng(` + allow shell nativetest_data_file:dir r_dir_perms; + allow shell nativetest_data_file:file rx_file_perms; +') + +# adb bugreport +unix_socket_connect(shell, dumpstate, dumpstate) + +allow shell devpts:chr_file rw_file_perms; +allow shell tty_device:chr_file rw_file_perms; +allow shell console_device:chr_file rw_file_perms; +allow shell input_device:dir r_dir_perms; +allow shell input_device:chr_file rw_file_perms; +r_dir_file(shell, system_file) +allow shell system_file:file x_file_perms; +allow shell toolbox_exec:file rx_file_perms; +allow shell shell_exec:file rx_file_perms; +allow shell zygote_exec:file rx_file_perms; + +r_dir_file(shell, apk_data_file) + +# Set properties. +set_prop(shell, shell_prop) +set_prop(shell, ctl_bugreport_prop) +set_prop(shell, ctl_dumpstate_prop) +set_prop(shell, dumpstate_prop) +set_prop(shell, debug_prop) +set_prop(shell, powerctl_prop) +set_prop(shell, log_tag_prop) +set_prop(shell, wifi_log_prop) +# adjust is_loggable properties +userdebug_or_eng(`set_prop(shell, log_prop)') +# logpersist script +userdebug_or_eng(`set_prop(shell, logpersistd_logging_prop)') + +userdebug_or_eng(` + # "systrace --boot" support - allow boottrace service to run + allow shell boottrace_data_file:dir rw_dir_perms; + allow shell boottrace_data_file:file create_file_perms; + set_prop(shell, persist_debug_prop) +') + +# Read device's serial number from system properties +get_prop(shell, serialno_prop) + +# Read state of logging-related properties +get_prop(shell, device_logging_prop) + +# allow shell access to services +allow shell servicemanager:service_manager list; +# don't allow shell to access GateKeeper service +# TODO: why is this so broad? Tightening candidate? It needs at list: +# - dumpstate_service (so it can receive dumpstate progress updates) +allow shell { service_manager_type -gatekeeper_service -incident_service -installd_service -netd_service -virtual_touchpad_service -vr_hwc_service }:service_manager find; +allow shell dumpstate:binder call; + +# allow shell to get information from hwservicemanager +# for instance, listing hardware services with lshal +hwbinder_use(shell) +allow shell hwservicemanager:hwservice_manager list; + +# allow shell to look through /proc/ for ps, top, netstat +r_dir_file(shell, proc) +r_dir_file(shell, proc_net) +allow shell proc_interrupts:file r_file_perms; +allow shell proc_meminfo:file r_file_perms; +allow shell proc_stat:file r_file_perms; +allow shell proc_timer:file r_file_perms; +allow shell proc_zoneinfo:file r_file_perms; +r_dir_file(shell, cgroup) +allow shell domain:dir { search open read getattr }; +allow shell domain:{ file lnk_file } { open read getattr }; + +# statvfs() of /proc and other labeled filesystems +# (yaffs2, jffs2, ext2, ext3, ext4, xfs, btrfs, f2fs, squashfs) +allow shell { proc labeledfs }:filesystem getattr; + +# stat() of /dev +allow shell device:dir getattr; + +# allow shell to read /proc/pid/attr/current for ps -Z +allow shell domain:process getattr; + +# Allow pulling the SELinux policy for CTS purposes +allow shell selinuxfs:dir r_dir_perms; +allow shell selinuxfs:file r_file_perms; + +# enable shell domain to read/write files/dirs for bootchart data +# User will creates the start and stop file via adb shell +# and read other files created by init process under /data/bootchart +allow shell bootchart_data_file:dir rw_dir_perms; +allow shell bootchart_data_file:file create_file_perms; + +# Make sure strace works for the non-privileged shell user +allow shell self:process ptrace; + +# allow shell to get battery info +allow shell sysfs_batteryinfo:file r_file_perms; +allow shell sysfs:dir r_dir_perms; + +# Allow access to ion memory allocation device. +allow shell ion_device:chr_file rw_file_perms; + +# +# filesystem test for insecure chr_file's is done +# via a host side test +# +allow shell dev_type:dir r_dir_perms; +allow shell dev_type:chr_file getattr; + +# /dev/fd is a symlink +allow shell proc:lnk_file getattr; + +# +# filesystem test for insucre blk_file's is done +# via hostside test +# +allow shell dev_type:blk_file getattr; + +# read selinux policy files +allow shell file_contexts_file:file r_file_perms; +allow shell property_contexts_file:file r_file_perms; +allow shell seapp_contexts_file:file r_file_perms; +allow shell service_contexts_file:file r_file_perms; +allow shell sepolicy_file:file r_file_perms; + +### +### Neverallow rules +### + +# Do not allow shell to hard link to any files. +# In particular, if shell hard links to app data +# files, installd will not be able to guarantee the deletion +# of the linked to file. Hard links also contribute to security +# bugs, so we want to ensure the shell user never has this +# capability. +neverallow shell file_type:file link; + +# Do not allow privileged socket ioctl commands +neverallowxperm shell domain:{ rawip_socket tcp_socket udp_socket } ioctl priv_sock_ioctls; + +# limit shell access to sensitive char drivers to +# only getattr required for host side test. +neverallow shell { + fuse_device + hw_random_device + kmem_device + port_device +}:chr_file ~getattr; + +# Limit shell to only getattr on blk devices for host side tests. +neverallow shell dev_type:blk_file ~getattr; diff --git a/prebuilts/api/26.0/public/slideshow.te b/prebuilts/api/26.0/public/slideshow.te new file mode 100644 index 000000000..86d4bff2e --- /dev/null +++ b/prebuilts/api/26.0/public/slideshow.te @@ -0,0 +1,14 @@ +# slideshow seclabel is specified in init.rc since +# it lives in the rootfs and has no unique file type. +type slideshow, domain; + +allow slideshow kmsg_device:chr_file rw_file_perms; +wakelock_use(slideshow) +allow slideshow device:dir r_dir_perms; +allow slideshow self:capability sys_tty_config; +allow slideshow graphics_device:dir r_dir_perms; +allow slideshow graphics_device:chr_file rw_file_perms; +allow slideshow input_device:dir r_dir_perms; +allow slideshow input_device:chr_file r_file_perms; +allow slideshow tty_device:chr_file rw_file_perms; + diff --git a/prebuilts/api/26.0/public/su.te b/prebuilts/api/26.0/public/su.te new file mode 100644 index 000000000..8ddd16224 --- /dev/null +++ b/prebuilts/api/26.0/public/su.te @@ -0,0 +1,53 @@ +# All types must be defined regardless of build variant to ensure +# policy compilation succeeds with userdebug/user combination at boot +type su, domain; + +# File types must be defined for file_contexts. +type su_exec, exec_type, file_type; + +userdebug_or_eng(` + # Domain used for su processes, as well as for adbd and adb shell + # after performing an adb root command. The domain definition is + # wrapped to ensure that it does not exist at all on -user builds. + typeattribute su mlstrustedsubject; + + # Add su to various domains + net_domain(su) + + # grant su access to vndbinder + vndbinder_use(su) + + dontaudit su self:capability_class_set *; + dontaudit su kernel:security *; + dontaudit su kernel:system *; + dontaudit su self:memprotect *; + dontaudit su domain:process *; + dontaudit su domain:fd *; + dontaudit su domain:dir *; + dontaudit su domain:lnk_file *; + dontaudit su domain:{ fifo_file file } *; + dontaudit su domain:socket_class_set *; + dontaudit su domain:ipc_class_set *; + dontaudit su domain:key *; + dontaudit su fs_type:filesystem *; + dontaudit su {fs_type dev_type file_type}:dir_file_class_set *; + dontaudit su node_type:node *; + dontaudit su node_type:{ tcp_socket udp_socket rawip_socket } *; + dontaudit su netif_type:netif *; + dontaudit su port_type:socket_class_set *; + dontaudit su port_type:{ tcp_socket dccp_socket } *; + dontaudit su domain:peer *; + dontaudit su domain:binder *; + dontaudit su property_type:property_service *; + dontaudit su property_type:file *; + dontaudit su service_manager_type:service_manager *; + dontaudit su hwservice_manager_type:hwservice_manager *; + dontaudit su vndservice_manager_type:service_manager *; + dontaudit su servicemanager:service_manager list; + dontaudit su hwservicemanager:hwservice_manager list; + dontaudit su vndservicemanager:service_manager list; + dontaudit su keystore:keystore_key *; + dontaudit su domain:drmservice *; + dontaudit su unlabeled:filesystem *; + dontaudit su postinstall_file:filesystem *; +') diff --git a/prebuilts/api/26.0/public/surfaceflinger.te b/prebuilts/api/26.0/public/surfaceflinger.te new file mode 100644 index 000000000..ae00287d8 --- /dev/null +++ b/prebuilts/api/26.0/public/surfaceflinger.te @@ -0,0 +1,2 @@ +# surfaceflinger - display compositor service +type surfaceflinger, domain; diff --git a/prebuilts/api/26.0/public/system_app.te b/prebuilts/api/26.0/public/system_app.te new file mode 100644 index 000000000..023058ee0 --- /dev/null +++ b/prebuilts/api/26.0/public/system_app.te @@ -0,0 +1,7 @@ +### +### Apps that run with the system UID, e.g. com.android.system.ui, +### com.android.settings. These are not as privileged as the system +### server. +### + +type system_app, domain; diff --git a/prebuilts/api/26.0/public/system_server.te b/prebuilts/api/26.0/public/system_server.te new file mode 100644 index 000000000..805d6175d --- /dev/null +++ b/prebuilts/api/26.0/public/system_server.te @@ -0,0 +1,5 @@ +# +# System Server aka system_server spawned by zygote. +# Most of the framework services run in this process. +# +type system_server, domain; diff --git a/prebuilts/api/26.0/public/te_macros b/prebuilts/api/26.0/public/te_macros new file mode 100644 index 000000000..d65eb889c --- /dev/null +++ b/prebuilts/api/26.0/public/te_macros @@ -0,0 +1,572 @@ +##################################### +# domain_trans(olddomain, type, newdomain) +# Allow a transition from olddomain to newdomain +# upon executing a file labeled with type. +# This only allows the transition; it does not +# cause it to occur automatically - use domain_auto_trans +# if that is what you want. +# +define(`domain_trans', ` +# Old domain may exec the file and transition to the new domain. +allow $1 $2:file { getattr open read execute }; +allow $1 $3:process transition; +# New domain is entered by executing the file. +allow $3 $2:file { entrypoint open read execute getattr }; +# New domain can send SIGCHLD to its caller. +ifelse($1, `init', `', `allow $3 $1:process sigchld;') +# Enable AT_SECURE, i.e. libc secure mode. +dontaudit $1 $3:process noatsecure; +# XXX dontaudit candidate but requires further study. +allow $1 $3:process { siginh rlimitinh }; +') + +##################################### +# domain_auto_trans(olddomain, type, newdomain) +# Automatically transition from olddomain to newdomain +# upon executing a file labeled with type. +# +define(`domain_auto_trans', ` +# Allow the necessary permissions. +domain_trans($1,$2,$3) +# Make the transition occur by default. +type_transition $1 $2:process $3; +') + +##################################### +# file_type_trans(domain, dir_type, file_type) +# Allow domain to create a file labeled file_type in a +# directory labeled dir_type. +# This only allows the transition; it does not +# cause it to occur automatically - use file_type_auto_trans +# if that is what you want. +# +define(`file_type_trans', ` +# Allow the domain to add entries to the directory. +allow $1 $2:dir ra_dir_perms; +# Allow the domain to create the file. +allow $1 $3:notdevfile_class_set create_file_perms; +allow $1 $3:dir create_dir_perms; +') + +##################################### +# file_type_auto_trans(domain, dir_type, file_type) +# Automatically label new files with file_type when +# they are created by domain in directories labeled dir_type. +# +define(`file_type_auto_trans', ` +# Allow the necessary permissions. +file_type_trans($1, $2, $3) +# Make the transition occur by default. +type_transition $1 $2:dir $3; +type_transition $1 $2:notdevfile_class_set $3; +') + +##################################### +# r_dir_file(domain, type) +# Allow the specified domain to read directories, files +# and symbolic links of the specified type. +define(`r_dir_file', ` +allow $1 $2:dir r_dir_perms; +allow $1 $2:{ file lnk_file } r_file_perms; +') + +##################################### +# tmpfs_domain(domain) +# Define and allow access to a unique type for +# this domain when creating tmpfs / shmem / ashmem files. +define(`tmpfs_domain', ` +type $1_tmpfs, file_type; +type_transition $1 tmpfs:file $1_tmpfs; +allow $1 $1_tmpfs:file { read write getattr }; +allow $1 tmpfs:dir { getattr search }; +') + +# pdx macros for IPC. pdx is a high-level name which contains transport-specific +# rules from underlying transport (e.g. UDS-based implementation). + +##################################### +# pdx_service_attributes(service) +# Defines type attribute used to identify various service-related types. +define(`pdx_service_attributes', ` +attribute pdx_$1_endpoint_dir_type; +attribute pdx_$1_endpoint_socket_type; +attribute pdx_$1_channel_socket_type; +attribute pdx_$1_server_type; +') + +##################################### +# pdx_service_socket_types(service, endpoint_dir_t) +# Define types for endpoint and channel sockets. +define(`pdx_service_socket_types', ` +typeattribute $2 pdx_$1_endpoint_dir_type; +type pdx_$1_endpoint_socket, pdx_$1_endpoint_socket_type, pdx_endpoint_socket_type, file_type, coredomain_socket, mlstrustedobject, mlstrustedsubject; +type pdx_$1_channel_socket, pdx_$1_channel_socket_type, pdx_channel_socket_type, coredomain_socket; +') + +##################################### +# pdx_server(server_domain, service) +define(`pdx_server', ` +# Mark the server domain as a PDX server. +typeattribute $1 pdx_$2_server_type; +# Allow the init process to create the initial endpoint socket. +allow init pdx_$2_endpoint_socket_type:unix_stream_socket { create bind }; +# Allow the server domain to use the endpoint socket and accept connections on it. +# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights +# than we need (e.g. we don"t need "bind" or "connect"). +allow $1 pdx_$2_endpoint_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown listen accept }; +# Allow the server domain to apply security context label to the channel socket pair (allow process to use setsockcreatecon_raw()). +allow $1 self:process setsockcreate; +# Allow the server domain to create a client channel socket. +allow $1 pdx_$2_channel_socket_type:unix_stream_socket create_stream_socket_perms; +# Prevent other processes from claiming to be a server for the same service. +neverallow {domain -$1} pdx_$2_endpoint_socket_type:unix_stream_socket { listen accept }; +') + +##################################### +# pdx_connect(client, service) +define(`pdx_connect', ` +# Allow client to open the service endpoint file. +allow $1 pdx_$2_endpoint_dir_type:dir r_dir_perms; +allow $1 pdx_$2_endpoint_socket_type:sock_file rw_file_perms; +# Allow the client to connect to endpoint socket. +allow $1 pdx_$2_endpoint_socket_type:unix_stream_socket { connectto read write shutdown }; +') + +##################################### +# pdx_use(client, service) +define(`pdx_use', ` +# Allow the client to use the PDX channel socket. +# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights +# than we need (e.g. we don"t need "bind" or "connect"). +allow $1 pdx_$2_channel_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown }; +# Client needs to use an channel event fd from the server. +allow $1 pdx_$2_server_type:fd use; +# Servers may receive sync fences, gralloc buffers, etc, from clients. +# This could be tightened on a per-server basis, but keeping track of service +# clients is error prone. +allow pdx_$2_server_type $1:fd use; +') + +##################################### +# pdx_client(client, service) +define(`pdx_client', ` +pdx_connect($1, $2) +pdx_use($1, $2) +') + +##################################### +# init_daemon_domain(domain) +# Set up a transition from init to the daemon domain +# upon executing its binary. +define(`init_daemon_domain', ` +domain_auto_trans(init, $1_exec, $1) +tmpfs_domain($1) +') + +##################################### +# app_domain(domain) +# Allow a base set of permissions required for all apps. +define(`app_domain', ` +typeattribute $1 appdomain; +# Label ashmem objects with our own unique type. +tmpfs_domain($1) +# Map with PROT_EXEC. +allow $1 $1_tmpfs:file execute; +') + +##################################### +# untrusted_app_domain(domain) +# Allow a base set of permissions required for all untrusted apps. +define(`untrusted_app_domain', ` +typeattribute $1 untrusted_app_all; +') + +##################################### +# net_domain(domain) +# Allow a base set of permissions required for network access. +define(`net_domain', ` +typeattribute $1 netdomain; +') + +##################################### +# bluetooth_domain(domain) +# Allow a base set of permissions required for bluetooth access. +define(`bluetooth_domain', ` +typeattribute $1 bluetoothdomain; +') + +##################################### +# hal_server_domain(domain, hal_type) +# Allow a base set of permissions required for a domain to offer a +# HAL implementation of the specified type over HwBinder. +# +# For example, default implementation of Foo HAL: +# type hal_foo_default, domain; +# hal_server_domain(hal_foo_default, hal_foo) +# +define(`hal_server_domain', ` +typeattribute $1 halserverdomain; +typeattribute $1 $2_server; +typeattribute $1 $2; +') + +##################################### +# hal_client_domain(domain, hal_type) +# Allow a base set of permissions required for a domain to be a +# client of a HAL of the specified type. +# +# For example, make some_domain a client of Foo HAL: +# hal_client_domain(some_domain, hal_foo) +# +define(`hal_client_domain', ` +typeattribute $1 halclientdomain; +typeattribute $1 $2_client; + +# TODO(b/34170079): Make the inclusion of the rules below conditional also on +# non-Treble devices. For now, on non-Treble device, always grant clients of a +# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process). +not_full_treble(` +typeattribute $1 $2; +# Find passthrough HAL implementations +allow $2 system_file:dir r_dir_perms; +allow $2 vendor_file:dir r_dir_perms; +allow $2 vendor_file:file { read open getattr execute }; +') +') + +##################################### +# passthrough_hal_client_domain(domain, hal_type) +# Allow a base set of permissions required for a domain to be a +# client of a passthrough HAL of the specified type. +# +# For example, make some_domain a client of passthrough Foo HAL: +# passthrough_hal_client_domain(some_domain, hal_foo) +# +define(`passthrough_hal_client_domain', ` +typeattribute $1 halclientdomain; +typeattribute $1 $2_client; +typeattribute $1 $2; +# Find passthrough HAL implementations +allow $2 system_file:dir r_dir_perms; +allow $2 vendor_file:dir r_dir_perms; +allow $2 vendor_file:file { read open getattr execute }; +') + +##################################### +# unix_socket_connect(clientdomain, socket, serverdomain) +# Allow a local socket connection from clientdomain via +# socket to serverdomain. +# +# Note: If you see denial records that distill to the +# following allow rules: +# allow clientdomain property_socket:sock_file write; +# allow clientdomain init:unix_stream_socket connectto; +# allow clientdomain something_prop:property_service set; +# +# This sequence is indicative of attempting to set a property. +# use set_prop(sourcedomain, targetproperty) +# +define(`unix_socket_connect', ` +ifelse($2, `property', ` + ifelse($3,`init', ` + print(`deprecated: unix_socket_connect($1, $2, $3) Please use set_prop($1, ) instead.') + ') +') +__unix_socket_connect__($1, $2, $3) +') + +define(`__unix_socket_connect__', ` +allow $1 $2_socket:sock_file write; +allow $1 $3:unix_stream_socket connectto; +') + +##################################### +# set_prop(sourcedomain, targetproperty) +# Allows source domain to set the +# targetproperty. +# +define(`set_prop', ` +__unix_socket_connect__($1, property, init) +allow $1 $2:property_service set; +get_prop($1, $2) +') + +##################################### +# get_prop(sourcedomain, targetproperty) +# Allows source domain to read the +# targetproperty. +# +define(`get_prop', ` +allow $1 $2:file r_file_perms; +') + +##################################### +# unix_socket_send(clientdomain, socket, serverdomain) +# Allow a local socket send from clientdomain via +# socket to serverdomain. +define(`unix_socket_send', ` +allow $1 $2_socket:sock_file write; +allow $1 $3:unix_dgram_socket sendto; +') + +##################################### +# binder_use(domain) +# Allow domain to use Binder IPC. +define(`binder_use', ` +# Call the servicemanager and transfer references to it. +allow $1 servicemanager:binder { call transfer }; +# servicemanager performs getpidcon on clients. +allow servicemanager $1:dir search; +allow servicemanager $1:file { read open }; +allow servicemanager $1:process getattr; +# rw access to /dev/binder and /dev/ashmem is presently granted to +# all domains in domain.te. +') + +##################################### +# hwbinder_use(domain) +# Allow domain to use HwBinder IPC. +define(`hwbinder_use', ` +# Call the hwservicemanager and transfer references to it. +allow $1 hwservicemanager:binder { call transfer }; +# Allow hwservicemanager to send out callbacks +allow hwservicemanager $1:binder { call transfer }; +# hwservicemanager performs getpidcon on clients. +allow hwservicemanager $1:dir search; +allow hwservicemanager $1:file { read open }; +allow hwservicemanager $1:process getattr; +# rw access to /dev/hwbinder and /dev/ashmem is presently granted to +# all domains in domain.te. +') + +##################################### +# vndbinder_use(domain) +# Allow domain to use Binder IPC. +define(`vndbinder_use', ` +# Talk to the vndbinder device node +allow $1 vndbinder_device:chr_file rw_file_perms; +# Call the vndservicemanager and transfer references to it. +allow $1 vndservicemanager:binder { call transfer }; +# vndservicemanager performs getpidcon on clients. +allow vndservicemanager $1:dir search; +allow vndservicemanager $1:file { read open }; +allow vndservicemanager $1:process getattr; +') + +##################################### +# binder_call(clientdomain, serverdomain) +# Allow clientdomain to perform binder IPC to serverdomain. +define(`binder_call', ` +# Call the server domain and optionally transfer references to it. +allow $1 $2:binder { call transfer }; +# Allow the serverdomain to transfer references to the client on the reply. +allow $2 $1:binder transfer; +# Receive and use open files from the server. +allow $1 $2:fd use; +') + +##################################### +# binder_service(domain) +# Mark a domain as being a Binder service domain. +# Used to allow binder IPC to the various system services. +define(`binder_service', ` +typeattribute $1 binderservicedomain; +') + +##################################### +# wakelock_use(domain) +# Allow domain to manage wake locks +define(`wakelock_use', ` +# Access /sys/power/wake_lock and /sys/power/wake_unlock +allow $1 sysfs_wake_lock:file rw_file_perms; +# Accessing these files requires CAP_BLOCK_SUSPEND +allow $1 self:capability2 block_suspend; +') + +##################################### +# selinux_check_access(domain) +# Allow domain to check SELinux permissions via selinuxfs. +define(`selinux_check_access', ` +r_dir_file($1, selinuxfs) +allow $1 selinuxfs:file w_file_perms; +allow $1 kernel:security compute_av; +allow $1 self:netlink_selinux_socket { read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind }; +') + +##################################### +# selinux_check_context(domain) +# Allow domain to check SELinux contexts via selinuxfs. +define(`selinux_check_context', ` +r_dir_file($1, selinuxfs) +allow $1 selinuxfs:file w_file_perms; +allow $1 kernel:security check_context; +') + +##################################### +# create_pty(domain) +# Allow domain to create and use a pty, isolated from any other domain ptys. +define(`create_pty', ` +# Each domain gets a unique devpts type. +type $1_devpts, fs_type; +# Label the pty with the unique type when created. +type_transition $1 devpts:chr_file $1_devpts; +# Allow use of the pty after creation. +allow $1 $1_devpts:chr_file { open getattr read write ioctl }; +allowxperm $1 $1_devpts:chr_file ioctl unpriv_tty_ioctls; +# TIOCSTI is only ever used for exploits. Block it. +# b/33073072, b/7530569 +# http://www.openwall.com/lists/oss-security/2016/09/26/14 +neverallowxperm * $1_devpts:chr_file ioctl TIOCSTI; +# Note: devpts:dir search and ptmx_device:chr_file rw_file_perms +# allowed to everyone via domain.te. +') + +##################################### +# Non system_app application set +# +define(`non_system_app_set', `{ appdomain -system_app }') + +##################################### +# Recovery only +# SELinux rules which apply only to recovery mode +# +define(`recovery_only', ifelse(target_recovery, `true', $1, )) + +##################################### +# Full TREBLE only +# SELinux rules which apply only to full TREBLE devices +# +define(`full_treble_only', ifelse(target_full_treble, `true', $1, +ifelse(target_full_treble, `cts', +# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify +$1 +# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify +, ))) + +##################################### +# Not full TREBLE +# SELinux rules which apply only to devices which are not full TREBLE devices +# +define(`not_full_treble', ifelse(target_full_treble, `true', , $1)) + +##################################### +# Userdebug or eng builds +# SELinux rules which apply only to userdebug or eng builds +# +define(`userdebug_or_eng', ifelse(target_build_variant, `eng', $1, ifelse(target_build_variant, `userdebug', $1))) + +##################################### +# asan builds +# SELinux rules which apply only to asan builds +# +define(`with_asan', ifelse(target_with_asan, `true', userdebug_or_eng(`$1'), )) + +#################################### +# Fallback crash handling for processes that can't exec crash_dump (e.g. because of seccomp). +# +define(`crash_dump_fallback', ` +userdebug_or_eng(` + allow $1 su:fifo_file append; +') +allow $1 anr_data_file:file append; +allow $1 dumpstate:fd use; +# TODO: Figure out why write is needed and remove. +allow $1 dumpstate:fifo_file { append write }; +allow $1 tombstoned:unix_stream_socket connectto; +allow $1 tombstoned:fd use; +allow $1 tombstoned_crash_socket:sock_file write; +allow $1 tombstone_data_file:file append; +') + +##################################### +# WITH_DEXPREOPT builds +# SELinux rules which apply only when pre-opting. +# +define(`with_dexpreopt', ifelse(target_with_dexpreopt, `true', $1)) + +##################################### +# write_logd(domain) +# Ability to write to android log +# daemon via sockets +define(`write_logd', ` +unix_socket_send($1, logdw, logd) +allow $1 pmsg_device:chr_file w_file_perms; +') + +##################################### +# read_logd(domain) +# Ability to run logcat and read from android +# log daemon via sockets +define(`read_logd', ` +allow $1 logcat_exec:file rx_file_perms; +unix_socket_connect($1, logdr, logd) +') + +##################################### +# read_runtime_log_tags(domain) +# ability to directly map the runtime event log tags +define(`read_runtime_log_tags', ` +allow $1 runtime_event_log_tags_file:file r_file_perms; +') + +##################################### +# control_logd(domain) +# Ability to control +# android log daemon via sockets +define(`control_logd', ` +# Group AID_LOG checked by filesystem & logd +# to permit control commands +unix_socket_connect($1, logd, logd) +') + +##################################### +# use_keystore(domain) +# Ability to use keystore. +# Keystore is requires the following permissions +# to call getpidcon. +define(`use_keystore', ` + allow keystore $1:dir search; + allow keystore $1:file { read open }; + allow keystore $1:process getattr; + allow $1 keystore_service:service_manager find; + binder_call($1, keystore) +') + +########################################### +# use_drmservice(domain) +# Ability to use DrmService which requires +# DrmService to call getpidcon. +define(`use_drmservice', ` + allow drmserver $1:dir search; + allow drmserver $1:file { read open }; + allow drmserver $1:process getattr; +') + +########################################### +# add_service(domain, service) +# Ability for domain to add a service to service_manager +# and find it. It also creates a neverallow preventing +# others from adding it. +define(`add_service', ` + allow $1 $2:service_manager { add find }; + neverallow { domain -$1 } $2:service_manager add; + neverallow $1 unlabeled:service_manager add; #TODO: b/62658302 +') + +########################################### +# add_hwservice(domain, service) +# Ability for domain to add a service to hwservice_manager +# and find it. It also creates a neverallow preventing +# others from adding it. +define(`add_hwservice', ` + allow $1 $2:hwservice_manager { add find }; + allow $1 hidl_base_hwservice:hwservice_manager add; + neverallow { domain -$1 } $2:hwservice_manager add; + neverallow $1 unlabeled:hwservice_manager add; #TODO: b/62658302 +') + +########################################## +# print a message with a trailing newline +# print(`args') +define(`print', `errprint(`m4: '__file__: __line__`: $* +')') diff --git a/prebuilts/api/26.0/public/tee.te b/prebuilts/api/26.0/public/tee.te new file mode 100644 index 000000000..f023d5c23 --- /dev/null +++ b/prebuilts/api/26.0/public/tee.te @@ -0,0 +1,7 @@ +## +# trusted execution environment (tee) daemon +# +type tee, domain; + +# Device(s) for communicating with the TEE +type tee_device, dev_type; diff --git a/prebuilts/api/26.0/public/tombstoned.te b/prebuilts/api/26.0/public/tombstoned.te new file mode 100644 index 000000000..37243bb66 --- /dev/null +++ b/prebuilts/api/26.0/public/tombstoned.te @@ -0,0 +1,17 @@ +# debugger interface +type tombstoned, domain, mlstrustedsubject; +type tombstoned_exec, exec_type, file_type; + +# Write to arbitrary pipes given to us. +allow tombstoned domain:fd use; +allow tombstoned domain:fifo_file write; + +allow tombstoned domain:dir r_dir_perms; +allow tombstoned domain:file r_file_perms; +allow tombstoned tombstone_data_file:dir rw_dir_perms; +allow tombstoned tombstone_data_file:file create_file_perms; +allow tombstoned anr_data_file:file { getattr append }; + +# TODO: Find out why this is happening. +allow tombstoned anr_data_file:file write; +auditallow tombstoned anr_data_file:file write; diff --git a/prebuilts/api/26.0/public/toolbox.te b/prebuilts/api/26.0/public/toolbox.te new file mode 100644 index 000000000..59c3a9c73 --- /dev/null +++ b/prebuilts/api/26.0/public/toolbox.te @@ -0,0 +1,24 @@ +# Any toolbox command run by init. +# At present, the only known usage is for running mkswap via fs_mgr. +# Do NOT use this domain for toolbox when run by any other domain. +type toolbox, domain; +type toolbox_exec, exec_type, file_type; + +# /dev/__null__ created by init prior to policy load, +# open fd inherited by fsck. +allow toolbox tmpfs:chr_file { read write ioctl }; + +# Inherit and use pty created by android_fork_execvp_ext(). +allow toolbox devpts:chr_file { read write getattr ioctl }; + +# mkswap-specific. +# Read/write block devices used for swap partitions. +# Assign swap_block_device type any such partition in your +# device///sepolicy/file_contexts file. +allow toolbox block_device:dir search; +allow toolbox swap_block_device:blk_file rw_file_perms; + +# Only allow entry from init via the toolbox binary. +neverallow { domain -init } toolbox:process transition; +neverallow * toolbox:process dyntransition; +neverallow toolbox { file_type fs_type -toolbox_exec}:file entrypoint; diff --git a/prebuilts/api/26.0/public/tzdatacheck.te b/prebuilts/api/26.0/public/tzdatacheck.te new file mode 100644 index 000000000..93ae16529 --- /dev/null +++ b/prebuilts/api/26.0/public/tzdatacheck.te @@ -0,0 +1,6 @@ +# The tzdatacheck command run by init. +type tzdatacheck, domain; +type tzdatacheck_exec, exec_type, file_type; + +allow tzdatacheck zoneinfo_data_file:dir create_dir_perms; +allow tzdatacheck zoneinfo_data_file:file unlink; diff --git a/prebuilts/api/26.0/public/ueventd.te b/prebuilts/api/26.0/public/ueventd.te new file mode 100644 index 000000000..4c77e11ea --- /dev/null +++ b/prebuilts/api/26.0/public/ueventd.te @@ -0,0 +1,56 @@ +# ueventd seclabel is specified in init.rc since +# it lives in the rootfs and has no unique file type. +type ueventd, domain; + +# Write to /dev/kmsg. +allow ueventd kmsg_device:chr_file rw_file_perms; + +allow ueventd self:capability { chown mknod net_admin setgid fsetid sys_rawio dac_override fowner }; +allow ueventd device:file create_file_perms; + +r_dir_file(ueventd, sysfs_type) +r_dir_file(ueventd, rootfs) +allow ueventd sysfs:file w_file_perms; +allow ueventd sysfs_usb:file w_file_perms; +allow ueventd sysfs_hwrandom:file w_file_perms; +allow ueventd sysfs_zram_uevent:file w_file_perms; +allow ueventd sysfs_type:{ file lnk_file } { relabelfrom relabelto setattr getattr }; +allow ueventd sysfs_type:dir { relabelfrom relabelto setattr r_dir_perms }; +allow ueventd sysfs_devices_system_cpu:file rw_file_perms; +allow ueventd tmpfs:chr_file rw_file_perms; +allow ueventd dev_type:dir create_dir_perms; +allow ueventd dev_type:lnk_file { create unlink }; +allow ueventd dev_type:chr_file { getattr create setattr unlink }; +allow ueventd dev_type:blk_file { getattr relabelfrom relabelto create setattr unlink }; +allow ueventd self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; +allow ueventd efs_file:dir search; +allow ueventd efs_file:file r_file_perms; + +# Get SELinux enforcing status. +r_dir_file(ueventd, selinuxfs) + +# Access for /vendor/ueventd.rc and /vendor/firmware +r_dir_file(ueventd, vendor_file) + +# Get file contexts for new device nodes +allow ueventd file_contexts_file:file r_file_perms; + +# Use setfscreatecon() to label /dev directories and files. +allow ueventd self:process setfscreate; + +##### +##### neverallow rules +##### + +# ueventd must never set properties, otherwise deadlocks may occur. +# https://android-review.googlesource.com/#/c/133120/6/init/devices.cpp@941 +# No writing to the property socket, connecting to init, or setting properties. +neverallow ueventd property_socket:sock_file write; +neverallow ueventd init:unix_stream_socket connectto; +neverallow ueventd property_type:property_service set; + +# Restrict ueventd access on block devices to maintenence operations. +neverallow ueventd dev_type:blk_file ~{ getattr relabelfrom relabelto create setattr unlink }; + +# Only relabelto as we would never want to relabelfrom kmem_device or port_device +neverallow ueventd { kmem_device port_device }:chr_file ~{ getattr create setattr unlink relabelto }; diff --git a/prebuilts/api/26.0/public/uncrypt.te b/prebuilts/api/26.0/public/uncrypt.te new file mode 100644 index 000000000..7ae7d396e --- /dev/null +++ b/prebuilts/api/26.0/public/uncrypt.te @@ -0,0 +1,38 @@ +# uncrypt +type uncrypt, domain, mlstrustedsubject; +type uncrypt_exec, exec_type, file_type; + +allow uncrypt self:capability dac_override; + +# Read OTA zip file from /data/data/com.google.android.gsf/app_download +r_dir_file(uncrypt, app_data_file) + +userdebug_or_eng(` + # For debugging, allow /data/local/tmp access + r_dir_file(uncrypt, shell_data_file) +') + +# Read /cache/recovery/command +# Read /cache/recovery/uncrypt_file +allow uncrypt cache_recovery_file:dir rw_dir_perms; +allow uncrypt cache_recovery_file:file create_file_perms; + +# Read OTA zip file at /data/ota_package/. +allow uncrypt ota_package_file:dir r_dir_perms; +allow uncrypt ota_package_file:file r_file_perms; + +# Write to /dev/socket/uncrypt +unix_socket_connect(uncrypt, uncrypt, uncrypt) + +# Set a property to reboot the device. +set_prop(uncrypt, powerctl_prop) + +# Raw writes to block device +allow uncrypt self:capability sys_rawio; +allow uncrypt misc_block_device:blk_file w_file_perms; +allow uncrypt block_device:dir r_dir_perms; + +# Access userdata block device. +allow uncrypt userdata_block_device:blk_file w_file_perms; + +r_dir_file(uncrypt, rootfs) diff --git a/prebuilts/api/26.0/public/untrusted_app.te b/prebuilts/api/26.0/public/untrusted_app.te new file mode 100644 index 000000000..6f29396c3 --- /dev/null +++ b/prebuilts/api/26.0/public/untrusted_app.te @@ -0,0 +1,19 @@ +### +### Untrusted apps. +### +### Apps are labeled based on mac_permissions.xml (maps signer and +### optionally package name to seinfo value) and seapp_contexts (maps UID +### and optionally seinfo value to domain for process and type for data +### directory). The untrusted_app domain is the default assignment in +### seapp_contexts for any app with UID between APP_AID (10000) +### and AID_ISOLATED_START (99000) if the app has no specific seinfo +### value as determined from mac_permissions.xml. In current AOSP, this +### domain is assigned to all non-system apps as well as to any system apps +### that are not signed by the platform key. To move +### a system app into a specific domain, add a signer entry for it to +### mac_permissions.xml and assign it one of the pre-existing seinfo values +### or define and use a new seinfo value in both mac_permissions.xml and +### seapp_contexts. +### + +type untrusted_app, domain; diff --git a/prebuilts/api/26.0/public/untrusted_app_25.te b/prebuilts/api/26.0/public/untrusted_app_25.te new file mode 100644 index 000000000..4ca6e3134 --- /dev/null +++ b/prebuilts/api/26.0/public/untrusted_app_25.te @@ -0,0 +1,20 @@ +### +### Untrusted apps. +### +### Apps are labeled based on mac_permissions.xml (maps signer and +### optionally package name to seinfo value) and seapp_contexts (maps UID +### and optionally seinfo value to domain for process and type for data +### directory). The untrusted_app domain is the default assignment in +### seapp_contexts for any app with UID between APP_AID (10000) +### and AID_ISOLATED_START (99000) if the app has no specific seinfo +### value as determined from mac_permissions.xml. In current AOSP, this +### domain is assigned to all non-system apps as well as to any system apps +### that are not signed by the platform key. To move +### a system app into a specific domain, add a signer entry for it to +### mac_permissions.xml and assign it one of the pre-existing seinfo values +### or define and use a new seinfo value in both mac_permissions.xml and +### seapp_contexts. +### + +type untrusted_app_25, domain; + diff --git a/prebuilts/api/26.0/public/untrusted_v2_app.te b/prebuilts/api/26.0/public/untrusted_v2_app.te new file mode 100644 index 000000000..ac82f1531 --- /dev/null +++ b/prebuilts/api/26.0/public/untrusted_v2_app.te @@ -0,0 +1,5 @@ +### +### Untrusted v2 sandbox apps. +### + +type untrusted_v2_app, domain; diff --git a/prebuilts/api/26.0/public/update_engine.te b/prebuilts/api/26.0/public/update_engine.te new file mode 100644 index 000000000..b8f0035bd --- /dev/null +++ b/prebuilts/api/26.0/public/update_engine.te @@ -0,0 +1,41 @@ +# Domain for update_engine daemon. +type update_engine, domain, update_engine_common; +type update_engine_exec, exec_type, file_type; + +net_domain(update_engine); + +# Read/[write] to /proc/net/xt_qtaguid/ctrl and /dev/xt_qtaguid to tag network +# sockets. +allow update_engine qtaguid_proc:file rw_file_perms; +allow update_engine qtaguid_device:chr_file r_file_perms; + +# Following permissions are needed for update_engine. +allow update_engine self:process { setsched }; +allow update_engine self:capability { fowner sys_admin }; +allow update_engine kmsg_device:chr_file w_file_perms; +allow update_engine update_engine_exec:file rx_file_perms; +wakelock_use(update_engine); + +# Ignore these denials. +dontaudit update_engine kernel:process setsched; + +# Allow using persistent storage in /data/misc/update_engine. +allow update_engine update_engine_data_file:dir { create_dir_perms }; +allow update_engine update_engine_data_file:file { create_file_perms }; + +# Don't allow kernel module loading, just silence the logs. +dontaudit update_engine kernel:system module_request; + +# Register the service to perform Binder IPC. +binder_use(update_engine) +add_service(update_engine, update_engine_service) + +# Allow update_engine to call the callback function provided by priv_app. +binder_call(update_engine, priv_app) + +# Read OTA zip file at /data/ota_package/. +allow update_engine ota_package_file:file r_file_perms; +allow update_engine ota_package_file:dir r_dir_perms; + +# Use Boot Control HAL +hal_client_domain(update_engine, hal_bootctl) diff --git a/prebuilts/api/26.0/public/update_engine_common.te b/prebuilts/api/26.0/public/update_engine_common.te new file mode 100644 index 000000000..8e454cc0e --- /dev/null +++ b/prebuilts/api/26.0/public/update_engine_common.te @@ -0,0 +1,42 @@ +# update_engine payload application permissions. These are shared between the +# background daemon and the recovery tool to sideload an update. + +# Allow update_engine to reach block devices in /dev/block. +allow update_engine_common block_device:dir search; + +# Allow read/write on system and boot partitions. +allow update_engine_common boot_block_device:blk_file rw_file_perms; +allow update_engine_common system_block_device:blk_file rw_file_perms; + +# Allow to set recovery options in the BCB. Used to trigger factory reset when +# the update to an older version (channel change) or incompatible version +# requires it. +allow update_engine_common misc_block_device:blk_file rw_file_perms; + +# Allow update_engine_common to mount on the /postinstall directory and reset the +# labels on the mounted filesystem to postinstall_file. +allow update_engine_common postinstall_mnt_dir:dir mounton; +allow update_engine_common postinstall_file:filesystem { mount unmount relabelfrom relabelto }; +allow update_engine_common labeledfs:filesystem relabelfrom; + +# Allow update_engine_common to read and execute postinstall_file. +allow update_engine_common postinstall_file:file rx_file_perms; +allow update_engine_common postinstall_file:lnk_file r_file_perms; +allow update_engine_common postinstall_file:dir r_dir_perms; + + +# A postinstall program is typically a shell script (with a #!), so we allow +# to execute those. +allow update_engine_common shell_exec:file rx_file_perms; + +# Allow update_engine_common to suspend, resume and kill the postinstall program. +allow update_engine_common postinstall:process { signal sigstop sigkill }; + +# access /proc/misc +# Access is also granted to proc:file, but it is likely unneeded +# due to the more specific grant to proc_misc immediately below. +allow update_engine proc:file r_file_perms; # delete candidate +allow update_engine proc_misc:file r_file_perms; + +# read directories on /system and /vendor +allow update_engine system_file:dir r_dir_perms; diff --git a/prebuilts/api/26.0/public/update_verifier.te b/prebuilts/api/26.0/public/update_verifier.te new file mode 100644 index 000000000..4d4e1f9ec --- /dev/null +++ b/prebuilts/api/26.0/public/update_verifier.te @@ -0,0 +1,19 @@ +# update_verifier +type update_verifier, domain; +type update_verifier_exec, exec_type, file_type; + +# Allow update_verifier to reach block devices in /dev/block. +allow update_verifier block_device:dir search; + +# Read care map in /data/ota_package/. +allow update_verifier ota_package_file:dir r_dir_perms; +allow update_verifier ota_package_file:file r_file_perms; + +# Read all blocks in dm wrapped system partition. +allow update_verifier dm_device:blk_file r_file_perms; + +# Allow update_verifier to reboot the device. +set_prop(update_verifier, powerctl_prop) + +# Use Boot Control HAL +hal_client_domain(update_verifier, hal_bootctl) diff --git a/prebuilts/api/26.0/public/vdc.te b/prebuilts/api/26.0/public/vdc.te new file mode 100644 index 000000000..53d7bbe2c --- /dev/null +++ b/prebuilts/api/26.0/public/vdc.te @@ -0,0 +1,27 @@ +# vdc spawned from init for the following services: +# defaultcrypto +# encrypt +# +# We also transition into this domain from dumpstate, when +# collecting bug reports. + +type vdc, domain; +type vdc_exec, exec_type, file_type; + +unix_socket_connect(vdc, vold, vold) + +# vdc sends information back to dumpstate when "adb bugreport" is used +allow vdc dumpstate:fd use; +allow vdc dumpstate:unix_stream_socket { read write getattr }; + +# vdc information is written to shell owned bugreport files +allow vdc shell_data_file:file { write getattr }; + +# Why? +allow vdc dumpstate:unix_dgram_socket { read write }; + +# vdc can be invoked with logwrapper, so let it write to pty +allow vdc devpts:chr_file rw_file_perms; + +# vdc writes directly to kmsg during the boot process +allow vdc kmsg_device:chr_file w_file_perms; diff --git a/prebuilts/api/26.0/public/vendor_shell.te b/prebuilts/api/26.0/public/vendor_shell.te new file mode 100644 index 000000000..b33054290 --- /dev/null +++ b/prebuilts/api/26.0/public/vendor_shell.te @@ -0,0 +1,4 @@ +# vendor shell MUST never run as interactive or login shell. +# vendor shell CAN never be traisitioned to by any process, so it is +# only intended by shell script interpreter. +type vendor_shell_exec, exec_type, vendor_file_type, file_type; diff --git a/prebuilts/api/26.0/public/vendor_toolbox.te b/prebuilts/api/26.0/public/vendor_toolbox.te new file mode 100644 index 000000000..eb292cafb --- /dev/null +++ b/prebuilts/api/26.0/public/vendor_toolbox.te @@ -0,0 +1,16 @@ +# Toolbox installation for vendor binaries / scripts +# Non-vendor processes are not allowed to execute the binary +# and is always executed without transition. +type vendor_toolbox_exec, exec_type, vendor_file_type, file_type; + +# Do not allow domains to transition to vendor toolbox +# or read, execute the vendor_toolbox file. +full_treble_only(` + # Do not allow non-vendor domains to transition + # to vendor toolbox except for the whitelisted domains. + neverallow { + coredomain + -init + -modprobe + } vendor_toolbox_exec:file { entrypoint execute execute_no_trans }; +') diff --git a/prebuilts/api/26.0/public/virtual_touchpad.te b/prebuilts/api/26.0/public/virtual_touchpad.te new file mode 100644 index 000000000..c2800e3ef --- /dev/null +++ b/prebuilts/api/26.0/public/virtual_touchpad.te @@ -0,0 +1,16 @@ +type virtual_touchpad, domain; +type virtual_touchpad_exec, exec_type, file_type; + +binder_use(virtual_touchpad) +binder_service(virtual_touchpad) +add_service(virtual_touchpad, virtual_touchpad_service) + +# Needed to check app permissions. +binder_call(virtual_touchpad, system_server) + +# Requires access to /dev/uinput to create and feed the virtual device. +allow virtual_touchpad uhid_device:chr_file { w_file_perms ioctl }; + +# Requires access to the permission service to validate that clients have the +# appropriate VR permissions. +allow virtual_touchpad permission_service:service_manager find; diff --git a/prebuilts/api/26.0/public/vndservice.te b/prebuilts/api/26.0/public/vndservice.te new file mode 100644 index 000000000..0d309bf71 --- /dev/null +++ b/prebuilts/api/26.0/public/vndservice.te @@ -0,0 +1 @@ +type default_android_vndservice, vndservice_manager_type; diff --git a/prebuilts/api/26.0/public/vndservicemanager.te b/prebuilts/api/26.0/public/vndservicemanager.te new file mode 100644 index 000000000..6b9f73dc0 --- /dev/null +++ b/prebuilts/api/26.0/public/vndservicemanager.te @@ -0,0 +1,2 @@ +# vndservicemanager - the Binder context manager for vendor processes +type vndservicemanager, domain; diff --git a/prebuilts/api/26.0/public/vold.te b/prebuilts/api/26.0/public/vold.te new file mode 100644 index 000000000..81ee28c47 --- /dev/null +++ b/prebuilts/api/26.0/public/vold.te @@ -0,0 +1,187 @@ +# volume manager +type vold, domain; +type vold_exec, exec_type, file_type; + +# Read already opened /cache files. +allow vold cache_file:dir r_dir_perms; +allow vold cache_file:file { getattr read }; +allow vold cache_file:lnk_file r_file_perms; + +# Read access to pseudo filesystems. +r_dir_file(vold, proc) +r_dir_file(vold, proc_net) +r_dir_file(vold, sysfs_type) +# XXX Label sysfs files with a specific type? +allow vold sysfs:file w_file_perms; +allow vold sysfs_usb:file w_file_perms; +allow vold sysfs_zram_uevent:file w_file_perms; + +r_dir_file(vold, rootfs) +allow vold proc_meminfo:file r_file_perms; + +#Get file contexts +allow vold file_contexts_file:file r_file_perms; + +# Allow us to jump into execution domains of above tools +allow vold self:process setexec; + +# For sgdisk launched through popen() +allow vold shell_exec:file rx_file_perms; + +typeattribute vold mlstrustedsubject; +allow vold self:process setfscreate; +allow vold system_file:file x_file_perms; +not_full_treble(`allow vold vendor_file:file x_file_perms;') +allow vold block_device:dir create_dir_perms; +allow vold device:dir write; +allow vold devpts:chr_file rw_file_perms; +allow vold rootfs:dir mounton; +allow vold sdcard_type:dir mounton; # TODO: deprecated in M +allow vold sdcard_type:filesystem { mount remount unmount }; # TODO: deprecated in M +allow vold sdcard_type:dir create_dir_perms; # TODO: deprecated in M +allow vold sdcard_type:file create_file_perms; # TODO: deprecated in M + +# Manage locations where storage is mounted +allow vold { mnt_media_rw_file storage_file sdcard_type }:dir create_dir_perms; +allow vold { mnt_media_rw_file storage_file sdcard_type }:file create_file_perms; + +# Access to storage that backs emulated FUSE daemons for migration optimization +allow vold media_rw_data_file:dir create_dir_perms; +allow vold media_rw_data_file:file create_file_perms; + +# Allow mounting of storage devices +allow vold { mnt_media_rw_stub_file storage_stub_file }:dir { mounton create rmdir getattr setattr }; + +# Manage per-user primary symlinks +allow vold mnt_user_file:dir create_dir_perms; +allow vold mnt_user_file:lnk_file create_file_perms; + +# Allow to create and mount expanded storage +allow vold mnt_expand_file:dir { create_dir_perms mounton }; +allow vold apk_data_file:dir { create getattr setattr }; +allow vold shell_data_file:dir { create getattr setattr }; + +allow vold tmpfs:filesystem { mount unmount }; +allow vold tmpfs:dir create_dir_perms; +allow vold tmpfs:dir mounton; +allow vold self:capability { net_admin dac_override mknod sys_admin chown fowner fsetid }; +allow vold self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; +allow vold app_data_file:dir search; +allow vold app_data_file:file rw_file_perms; +allow vold loop_control_device:chr_file rw_file_perms; +allow vold loop_device:blk_file { create setattr unlink rw_file_perms }; +allow vold vold_device:blk_file { create setattr unlink rw_file_perms }; +allow vold dm_device:chr_file rw_file_perms; +allow vold dm_device:blk_file rw_file_perms; +# For vold Process::killProcessesWithOpenFiles function. +allow vold domain:dir r_dir_perms; +allow vold domain:{ file lnk_file } r_file_perms; +allow vold domain:process { signal sigkill }; +allow vold self:capability { sys_ptrace kill }; + +# XXX Label sysfs files with a specific type? +allow vold sysfs:file rw_file_perms; + +allow vold kmsg_device:chr_file rw_file_perms; + +# Run fsck in the fsck domain. +allow vold fsck_exec:file { r_file_perms execute }; + +# Log fsck results +allow vold fscklogs:dir rw_dir_perms; +allow vold fscklogs:file create_file_perms; + +# +# Rules to support encrypted fs support. +# + +# Unmount and mount the fs. +allow vold labeledfs:filesystem { mount unmount }; + +# Access /efs/userdata_footer. +# XXX Split into a separate type? +allow vold efs_file:file rw_file_perms; + +# Create and mount on /data/tmp_mnt and management of expansion mounts +allow vold system_data_file:dir { create rw_dir_perms mounton setattr rmdir }; + +# Set scheduling policy of kernel processes +allow vold kernel:process setsched; + +# Property Service +set_prop(vold, vold_prop) +set_prop(vold, powerctl_prop) +set_prop(vold, ctl_fuse_prop) +set_prop(vold, restorecon_prop) + +# ASEC +allow vold asec_image_file:file create_file_perms; +allow vold asec_image_file:dir rw_dir_perms; +allow vold asec_apk_file:dir { create_dir_perms mounton relabelfrom relabelto }; +allow vold asec_public_file:dir { relabelto setattr }; +allow vold asec_apk_file:file { r_file_perms setattr relabelfrom relabelto }; +allow vold asec_public_file:file { relabelto setattr }; +# restorecon files in asec containers created on 4.2 or earlier. +allow vold unlabeled:dir { r_dir_perms setattr relabelfrom }; +allow vold unlabeled:file { r_file_perms setattr relabelfrom }; + +# Handle wake locks (used for device encryption) +wakelock_use(vold) + +# talk to batteryservice +binder_use(vold) +binder_call(vold, healthd) + +# talk to keymaster +hal_client_domain(vold, hal_keymaster) + +# Access userdata block device. +allow vold userdata_block_device:blk_file rw_file_perms; + +# Access metadata block device used for encryption meta-data. +allow vold metadata_block_device:blk_file rw_file_perms; + +# Allow vold to manipulate /data/unencrypted +allow vold unencrypted_data_file:{ file } create_file_perms; +allow vold unencrypted_data_file:dir create_dir_perms; + +# Write to /proc/sys/vm/drop_caches +allow vold proc_drop_caches:file w_file_perms; + +# Give vold a place where only vold can store files; everyone else is off limits +allow vold vold_data_file:dir create_dir_perms; +allow vold vold_data_file:file create_file_perms; + +# linux keyring configuration +allow vold init:key { write search setattr }; +allow vold vold:key { write search setattr }; + +# vold temporarily changes its priority when running benchmarks +allow vold self:capability sys_nice; + +# vold needs to chroot into app namespaces to remount when runtime permissions change +allow vold self:capability sys_chroot; +allow vold storage_file:dir mounton; + +# For AppFuse. +allow vold fuse_device:chr_file rw_file_perms; +allow vold fuse:filesystem { relabelfrom }; +allow vold app_fusefs:filesystem { relabelfrom relabelto }; +allow vold app_fusefs:filesystem { mount unmount }; + +# MoveTask.cpp executes cp and rm +allow vold toolbox_exec:file rx_file_perms; + +# Prepare profile dir for users. +allow vold user_profile_data_file:dir create_dir_perms; + +# Raw writes to misc block device +allow vold misc_block_device:blk_file w_file_perms; + +neverallow { domain -vold } vold_data_file:dir ~{ open create read getattr setattr search relabelto ioctl }; +neverallow { domain -vold -kernel } vold_data_file:notdevfile_class_set ~{ relabelto getattr }; +neverallow { domain -vold -init } vold_data_file:dir *; +neverallow { domain -vold -init -kernel } vold_data_file:notdevfile_class_set *; +neverallow { domain -vold -init } restorecon_prop:property_service set; + +neverallow vold fsck_exec:file execute_no_trans; diff --git a/prebuilts/api/26.0/public/vr_hwc.te b/prebuilts/api/26.0/public/vr_hwc.te new file mode 100644 index 000000000..c05dd638a --- /dev/null +++ b/prebuilts/api/26.0/public/vr_hwc.te @@ -0,0 +1,31 @@ +type vr_hwc, domain; +type vr_hwc_exec, exec_type, file_type; + +# Get buffer metadata. +hal_client_domain(vr_hwc, hal_graphics_allocator) + +binder_use(vr_hwc) +binder_service(vr_hwc) + +binder_call(vr_hwc, surfaceflinger) +# Needed to check for app permissions. +binder_call(vr_hwc, system_server) + +add_service(vr_hwc, vr_hwc_service) + +# Hosts the VR HWC implementation and provides a simple Binder interface for VR +# Window Manager to receive the layers/buffers. +hwbinder_use(vr_hwc) + +# Load vendor libraries. +allow vr_hwc system_file:dir r_dir_perms; + +allow vr_hwc ion_device:chr_file r_file_perms; + +# Allow connection to VR DisplayClient to get the primary display metadata +# (ie: size). +pdx_client(vr_hwc, display_client) + +# Requires access to the permission service to validate that clients have the +# appropriate VR permissions. +allow vr_hwc permission_service:service_manager find; diff --git a/prebuilts/api/26.0/public/watchdogd.te b/prebuilts/api/26.0/public/watchdogd.te new file mode 100644 index 000000000..00292a9a9 --- /dev/null +++ b/prebuilts/api/26.0/public/watchdogd.te @@ -0,0 +1,4 @@ +# watchdogd seclabel is specified in init..rc +type watchdogd, domain; +allow watchdogd watchdog_device:chr_file rw_file_perms; +allow watchdogd kmsg_device:chr_file rw_file_perms; diff --git a/prebuilts/api/26.0/public/webview_zygote.te b/prebuilts/api/26.0/public/webview_zygote.te new file mode 100644 index 000000000..5d19b3226 --- /dev/null +++ b/prebuilts/api/26.0/public/webview_zygote.te @@ -0,0 +1,5 @@ +# webview_zygote is an auxiliary zygote process that is used to spawn +# isolated_app processes for rendering untrusted web content. + +type webview_zygote, domain; +type webview_zygote_exec, exec_type, file_type; diff --git a/prebuilts/api/26.0/public/wificond.te b/prebuilts/api/26.0/public/wificond.te new file mode 100644 index 000000000..c91053e72 --- /dev/null +++ b/prebuilts/api/26.0/public/wificond.te @@ -0,0 +1,35 @@ +# wificond +type wificond, domain; +type wificond_exec, exec_type, file_type; + +binder_use(wificond) +binder_call(wificond, system_server) + +add_service(wificond, wificond_service) + +set_prop(wificond, wifi_prop) +set_prop(wificond, ctl_default_prop) + +# create sockets to set interfaces up and down +allow wificond self:udp_socket create_socket_perms; +# setting interface state up/down is a privileged ioctl +allowxperm wificond self:udp_socket ioctl { SIOCSIFFLAGS }; +allow wificond self:capability { net_admin net_raw }; +# allow wificond to speak to nl80211 in the kernel +allow wificond self:netlink_socket create_socket_perms_no_ioctl; +# newer kernels (e.g. 4.4 but not 4.1) have a new class for sockets +allow wificond self:netlink_generic_socket create_socket_perms_no_ioctl; + +r_dir_file(wificond, proc_net) + +# wificond writes out configuration files for wpa_supplicant/hostapd. +# wificond also reads pid files out of this directory +allow wificond wifi_data_file:dir rw_dir_perms; +allow wificond wifi_data_file:file create_file_perms; + +# allow wificond to check permission for dumping logs +allow wificond permission_service:service_manager find; + +# dumpstate support +allow wificond dumpstate:fd use; +allow wificond dumpstate:fifo_file write; diff --git a/prebuilts/api/26.0/public/zygote.te b/prebuilts/api/26.0/public/zygote.te new file mode 100644 index 000000000..83c42efb0 --- /dev/null +++ b/prebuilts/api/26.0/public/zygote.te @@ -0,0 +1,3 @@ +# zygote +type zygote, domain; +type zygote_exec, exec_type, file_type; diff --git a/private/app.te b/private/app.te index 00ee12a6d..70b42b9bd 100644 --- a/private/app.te +++ b/private/app.te @@ -69,9 +69,6 @@ allow appdomain appdomain:fifo_file rw_file_perms; # Communicate with surfaceflinger. allow appdomain surfaceflinger:unix_stream_socket { read write setopt getattr getopt shutdown }; -# Query whether a Surface supports wide color -allow { appdomain -isolated_app } hal_configstore_ISurfaceFlingerConfigs:hwservice_manager find; - # App sandbox file accesses. allow { appdomain -isolated_app } app_data_file:dir create_dir_perms; allow { appdomain -isolated_app } app_data_file:notdevfile_class_set create_file_perms; @@ -342,6 +339,9 @@ allow appdomain adbd:unix_stream_socket { getattr getopt ioctl read write shutdo allow appdomain cache_file:dir getattr; +# Allow apps to run with asanwrapper. +with_asan(`allow appdomain asanwrapper_exec:file rx_file_perms;') + ### ### Neverallow rules ### @@ -476,9 +476,12 @@ neverallow appdomain { create write setattr relabelfrom relabelto append unlink link rename }; # access tmp apk files -neverallow { appdomain -platform_app -priv_app } +neverallow { appdomain -untrusted_app_all -platform_app -priv_app } { apk_tmp_file apk_private_tmp_file }:dir_file_class_set *; +neverallow untrusted_app_all { apk_tmp_file apk_private_tmp_file }:{ devfile_class_set dir fifo_file lnk_file sock_file } *; +neverallow untrusted_app_all { apk_tmp_file apk_private_tmp_file }:file ~{ getattr read }; + # Access to factory files. neverallow appdomain efs_file:dir_file_class_set write; neverallow { appdomain -shell } efs_file:dir_file_class_set read; @@ -493,7 +496,6 @@ neverallow appdomain neverallow appdomain kernel:system { syslog_read syslog_mod syslog_console }; # SELinux is not an API for apps to use -neverallow { appdomain -shell } selinuxfs:file no_rw_file_perms; neverallow { appdomain -shell } *:security { compute_av check_context }; neverallow { appdomain -shell } *:netlink_selinux_socket *; diff --git a/private/app_neverallows.te b/private/app_neverallows.te index 847d92c80..db14f1b58 100644 --- a/private/app_neverallows.te +++ b/private/app_neverallows.te @@ -2,9 +2,6 @@ ### neverallow rules for untrusted app domains ### -# Only allow domains in AOSP to use the untrusted_app_all attribute. -neverallow { untrusted_app_all -untrusted_app -untrusted_app_25 } domain:process fork; - define(`all_untrusted_apps',`{ ephemeral_app isolated_app @@ -111,11 +108,25 @@ neverallow all_untrusted_apps anr_data_file:dir ~search; # Avoid reads from generically labeled /proc files # Create a more specific label if needed -neverallow all_untrusted_apps proc:file { no_rw_file_perms no_x_file_perms }; +neverallow all_untrusted_apps { + proc + proc_asound_cards + proc_filesystems + proc_kmsg + proc_loadavg + proc_mounts + proc_pagetypeinfo + proc_swaps + proc_version + proc_vmallocinfo +}:file { no_rw_file_perms no_x_file_perms }; # Avoid all access to kernel configuration neverallow all_untrusted_apps config_gz:file { no_rw_file_perms no_x_file_perms }; +# Only system_server can access proc_uid_time_in_state +neverallow { domain -init -system_server } proc_uid_time_in_state:file *; + # Do not allow untrusted apps access to preloads data files neverallow all_untrusted_apps preloads_data_file:file no_rw_file_perms; @@ -160,9 +171,10 @@ neverallow all_untrusted_apps { -hal_configstore_ISurfaceFlingerConfigs -hal_graphics_allocator_hwservice -hal_omx_hwservice + -hal_cas_hwservice -untrusted_app_visible_hwservice }:hwservice_manager find; -neverallow untrusted_app_visible_hwservice unlabeled:service_manager list; #TODO: b/62658302 + # Make sure that the following services are never accessible by untrusted_apps neverallow all_untrusted_apps { default_android_hwservice @@ -182,6 +194,7 @@ neverallow all_untrusted_apps { hal_keymaster_hwservice hal_light_hwservice hal_memtrack_hwservice + hal_neuralnetworks_hwservice hal_nfc_hwservice hal_oemlock_hwservice hal_power_hwservice @@ -195,8 +208,11 @@ neverallow all_untrusted_apps { hal_vr_hwservice hal_weaver_hwservice hal_wifi_hwservice + hal_wifi_offload_hwservice hal_wifi_supplicant_hwservice hidl_base_hwservice + system_net_netd_hwservice + thermalcallback_hwservice }:hwservice_manager find; # HwBinder services offered by core components (as opposed to vendor components) # are considered somewhat safer due to point #2 above. @@ -209,6 +225,9 @@ neverallow all_untrusted_apps { -hidl_token_hwservice # Designed for use by any domain }:hwservice_manager find; +# SELinux is not an API for untrusted apps to use +neverallow all_untrusted_apps selinuxfs:file no_rw_file_perms; + # Restrict *Binder access from apps to HAL domains. We can only do this on full # Treble devices where *Binder communications between apps and HALs are tightly # restricted. @@ -218,6 +237,8 @@ full_treble_only(` -coredomain -hal_configstore_server -hal_graphics_allocator_server + -hal_cas_server -binder_in_vendor_violators # TODO(b/35870313): Remove once all violations are gone + -untrusted_app_visible_halserver }:binder { call transfer }; ') diff --git a/private/atrace.te b/private/atrace.te index a57c6ecf2..fc2751764 100644 --- a/private/atrace.te +++ b/private/atrace.te @@ -11,8 +11,11 @@ userdebug_or_eng(` allow atrace boottrace_data_file:dir search; allow atrace boottrace_data_file:file r_file_perms; - # atrace reads the files in /sys/kernel/debug/tracing/ - allow atrace debugfs_tracing:file r_file_perms; + # Allow atrace to access tracefs. + allow atrace debugfs_tracing:dir r_dir_perms; + allow atrace debugfs_tracing:file rw_file_perms; + allow atrace debugfs_tracing_debug:file rw_file_perms; + allow atrace debugfs_trace_marker:file getattr; # atrace sets debug.atrace.* properties set_prop(atrace, debug_prop) diff --git a/private/compat/26.0/26.0.cil b/private/compat/26.0/26.0.cil new file mode 100644 index 000000000..ca34491c8 --- /dev/null +++ b/private/compat/26.0/26.0.cil @@ -0,0 +1,705 @@ +;; attributes removed from current policy +(typeattribute hal_wifi_keystore) +(typeattribute hal_wifi_keystore_client) +(typeattribute hal_wifi_keystore_server) + +;; types removed from current policy +(type asan_reboot_prop) +(type log_device) +(type mediacasserver_service) +(type tracing_shell_writable) +(type tracing_shell_writable_debug) + +(typeattributeset accessibility_service_26_0 (accessibility_service)) +(typeattributeset account_service_26_0 (account_service)) +(typeattributeset activity_service_26_0 (activity_service)) +(typeattributeset adbd_26_0 (adbd)) +(typeattributeset adb_data_file_26_0 (adb_data_file)) +(typeattributeset adbd_socket_26_0 (adbd_socket)) +(typeattributeset adb_keys_file_26_0 (adb_keys_file)) +(typeattributeset alarm_device_26_0 (alarm_device)) +(typeattributeset alarm_service_26_0 (alarm_service)) +(typeattributeset anr_data_file_26_0 (anr_data_file)) +(typeattributeset apk_data_file_26_0 (apk_data_file)) +(typeattributeset apk_private_data_file_26_0 (apk_private_data_file)) +(typeattributeset apk_private_tmp_file_26_0 (apk_private_tmp_file)) +(typeattributeset apk_tmp_file_26_0 (apk_tmp_file)) +(typeattributeset app_data_file_26_0 (app_data_file)) +(typeattributeset app_fuse_file_26_0 (app_fuse_file)) +(typeattributeset app_fusefs_26_0 (app_fusefs)) +(typeattributeset appops_service_26_0 (appops_service)) +(typeattributeset appwidget_service_26_0 (appwidget_service)) +(typeattributeset asan_reboot_prop_26_0 (asan_reboot_prop)) +(typeattributeset asec_apk_file_26_0 (asec_apk_file)) +(typeattributeset asec_image_file_26_0 (asec_image_file)) +(typeattributeset asec_public_file_26_0 (asec_public_file)) +(typeattributeset ashmem_device_26_0 (ashmem_device)) +(typeattributeset assetatlas_service_26_0 (assetatlas_service)) +(typeattributeset audio_data_file_26_0 (audio_data_file)) +(typeattributeset audio_device_26_0 (audio_device)) +(typeattributeset audiohal_data_file_26_0 (audiohal_data_file)) +(typeattributeset audio_prop_26_0 (audio_prop)) +(typeattributeset audio_seq_device_26_0 (audio_seq_device)) +(typeattributeset audioserver_26_0 (audioserver)) +(typeattributeset audioserver_data_file_26_0 (audioserver_data_file)) +(typeattributeset audioserver_service_26_0 (audioserver_service)) +(typeattributeset audio_service_26_0 (audio_service)) +(typeattributeset audio_timer_device_26_0 (audio_timer_device)) +(typeattributeset autofill_service_26_0 (autofill_service)) +(typeattributeset backup_data_file_26_0 (backup_data_file)) +(typeattributeset backup_service_26_0 (backup_service)) +(typeattributeset batteryproperties_service_26_0 (batteryproperties_service)) +(typeattributeset battery_service_26_0 (battery_service)) +(typeattributeset batterystats_service_26_0 (batterystats_service)) +(typeattributeset binder_device_26_0 (binder_device)) +(typeattributeset binfmt_miscfs_26_0 (binfmt_miscfs)) +(typeattributeset blkid_26_0 (blkid)) +(typeattributeset blkid_untrusted_26_0 (blkid_untrusted)) +(typeattributeset block_device_26_0 (block_device)) +(typeattributeset bluetooth_26_0 (bluetooth)) +(typeattributeset bluetooth_data_file_26_0 (bluetooth_data_file)) +(typeattributeset bluetooth_efs_file_26_0 (bluetooth_efs_file)) +(typeattributeset bluetooth_logs_data_file_26_0 (bluetooth_logs_data_file)) +(typeattributeset bluetooth_manager_service_26_0 (bluetooth_manager_service)) +(typeattributeset bluetooth_prop_26_0 (bluetooth_prop)) +(typeattributeset bluetooth_service_26_0 (bluetooth_service)) +(typeattributeset bluetooth_socket_26_0 (bluetooth_socket)) +(typeattributeset bootanim_26_0 (bootanim)) +(typeattributeset bootanim_exec_26_0 (bootanim_exec)) +(typeattributeset boot_block_device_26_0 (boot_block_device)) +(typeattributeset bootchart_data_file_26_0 (bootchart_data_file)) +(typeattributeset bootstat_26_0 (bootstat)) +(typeattributeset bootstat_data_file_26_0 (bootstat_data_file)) +(typeattributeset bootstat_exec_26_0 (bootstat_exec)) +(typeattributeset boottime_prop_26_0 (boottime_prop)) +(typeattributeset boottrace_data_file_26_0 (boottrace_data_file)) +(typeattributeset bufferhubd_26_0 (bufferhubd)) +(typeattributeset bufferhubd_exec_26_0 (bufferhubd_exec)) +(typeattributeset cache_backup_file_26_0 (cache_backup_file)) +(typeattributeset cache_block_device_26_0 (cache_block_device)) +(typeattributeset cache_file_26_0 (cache_file)) +(typeattributeset cache_private_backup_file_26_0 (cache_private_backup_file)) +(typeattributeset cache_recovery_file_26_0 (cache_recovery_file)) +(typeattributeset camera_data_file_26_0 (camera_data_file)) +(typeattributeset camera_device_26_0 (camera_device)) +(typeattributeset cameraproxy_service_26_0 (cameraproxy_service)) +(typeattributeset cameraserver_26_0 (cameraserver)) +(typeattributeset cameraserver_exec_26_0 (cameraserver_exec)) +(typeattributeset cameraserver_service_26_0 (cameraserver_service)) +(typeattributeset cgroup_26_0 (cgroup)) +(typeattributeset charger_26_0 (charger)) +(typeattributeset clatd_26_0 (clatd)) +(typeattributeset clatd_exec_26_0 (clatd_exec)) +(typeattributeset clipboard_service_26_0 (clipboard_service)) +(typeattributeset commontime_management_service_26_0 (commontime_management_service)) +(typeattributeset companion_device_service_26_0 (companion_device_service)) +(typeattributeset configfs_26_0 (configfs)) +(typeattributeset config_prop_26_0 (config_prop)) +(typeattributeset connectivity_service_26_0 (connectivity_service)) +(typeattributeset connmetrics_service_26_0 (connmetrics_service)) +(typeattributeset console_device_26_0 (console_device)) +(typeattributeset consumer_ir_service_26_0 (consumer_ir_service)) +(typeattributeset content_service_26_0 (content_service)) +(typeattributeset contexthub_service_26_0 (contexthub_service)) +(typeattributeset coredump_file_26_0 (coredump_file)) +(typeattributeset country_detector_service_26_0 (country_detector_service)) +(typeattributeset coverage_service_26_0 (coverage_service)) +(typeattributeset cppreopt_prop_26_0 (cppreopt_prop)) +(typeattributeset cppreopts_26_0 (cppreopts)) +(typeattributeset cppreopts_exec_26_0 (cppreopts_exec)) +(typeattributeset cpuctl_device_26_0 (cpuctl_device)) +(typeattributeset cpuinfo_service_26_0 (cpuinfo_service)) +(typeattributeset crash_dump_26_0 (crash_dump)) +(typeattributeset crash_dump_exec_26_0 (crash_dump_exec)) +(typeattributeset ctl_bootanim_prop_26_0 (ctl_bootanim_prop)) +(typeattributeset ctl_bugreport_prop_26_0 (ctl_bugreport_prop)) +(typeattributeset ctl_console_prop_26_0 (ctl_console_prop)) +(typeattributeset ctl_default_prop_26_0 (ctl_default_prop)) +(typeattributeset ctl_dumpstate_prop_26_0 (ctl_dumpstate_prop)) +(typeattributeset ctl_fuse_prop_26_0 (ctl_fuse_prop)) +(typeattributeset ctl_mdnsd_prop_26_0 (ctl_mdnsd_prop)) +(typeattributeset ctl_rildaemon_prop_26_0 (ctl_rildaemon_prop)) +(typeattributeset dalvikcache_data_file_26_0 (dalvikcache_data_file)) +(typeattributeset dalvik_prop_26_0 (dalvik_prop)) +(typeattributeset dbinfo_service_26_0 (dbinfo_service)) +(typeattributeset debugfs_26_0 (debugfs)) +(typeattributeset debugfs_mmc_26_0 (debugfs_mmc)) +(typeattributeset debugfs_trace_marker_26_0 (debugfs_trace_marker)) +(typeattributeset debugfs_tracing_26_0 (debugfs_tracing)) +(typeattributeset debugfs_tracing_instances_26_0 (debugfs_tracing_instances)) +(typeattributeset debugfs_wifi_tracing_26_0 (debugfs_wifi_tracing)) +(typeattributeset debuggerd_prop_26_0 (debuggerd_prop)) +(typeattributeset debug_prop_26_0 (debug_prop)) +(typeattributeset default_android_hwservice_26_0 (default_android_hwservice)) +(typeattributeset default_android_service_26_0 (default_android_service)) +(typeattributeset default_android_vndservice_26_0 (default_android_vndservice)) +(typeattributeset default_prop_26_0 (default_prop)) +(typeattributeset device_26_0 (device)) +(typeattributeset device_identifiers_service_26_0 (device_identifiers_service)) +(typeattributeset deviceidle_service_26_0 (deviceidle_service)) +(typeattributeset device_logging_prop_26_0 (device_logging_prop)) +(typeattributeset device_policy_service_26_0 (device_policy_service)) +(typeattributeset devicestoragemonitor_service_26_0 (devicestoragemonitor_service)) +(typeattributeset devpts_26_0 (devpts)) +(typeattributeset dex2oat_26_0 (dex2oat)) +(typeattributeset dex2oat_exec_26_0 (dex2oat_exec)) +(typeattributeset dhcp_26_0 (dhcp)) +(typeattributeset dhcp_data_file_26_0 (dhcp_data_file)) +(typeattributeset dhcp_exec_26_0 (dhcp_exec)) +(typeattributeset dhcp_prop_26_0 (dhcp_prop)) +(typeattributeset diskstats_service_26_0 (diskstats_service)) +(typeattributeset display_service_26_0 (display_service)) +(typeattributeset dm_device_26_0 (dm_device)) +(typeattributeset dnsmasq_26_0 (dnsmasq)) +(typeattributeset dnsmasq_exec_26_0 (dnsmasq_exec)) +(typeattributeset dnsproxyd_socket_26_0 (dnsproxyd_socket)) +(typeattributeset DockObserver_service_26_0 (DockObserver_service)) +(typeattributeset dreams_service_26_0 (dreams_service)) +(typeattributeset drm_data_file_26_0 (drm_data_file)) +(typeattributeset drmserver_26_0 (drmserver)) +(typeattributeset drmserver_exec_26_0 (drmserver_exec)) +(typeattributeset drmserver_service_26_0 (drmserver_service)) +(typeattributeset drmserver_socket_26_0 (drmserver_socket)) +(typeattributeset dropbox_service_26_0 (dropbox_service)) +(typeattributeset dumpstate_26_0 (dumpstate)) +(typeattributeset dumpstate_exec_26_0 (dumpstate_exec)) +(typeattributeset dumpstate_options_prop_26_0 (dumpstate_options_prop)) +(typeattributeset dumpstate_prop_26_0 (dumpstate_prop)) +(typeattributeset dumpstate_service_26_0 (dumpstate_service)) +(typeattributeset dumpstate_socket_26_0 (dumpstate_socket)) +(typeattributeset efs_file_26_0 (efs_file)) +(typeattributeset ephemeral_app_26_0 (ephemeral_app)) +(typeattributeset ethernet_service_26_0 (ethernet_service)) +(typeattributeset ffs_prop_26_0 (ffs_prop)) +(typeattributeset file_contexts_file_26_0 (file_contexts_file)) +(typeattributeset fingerprintd_26_0 (fingerprintd)) +(typeattributeset fingerprintd_data_file_26_0 (fingerprintd_data_file)) +(typeattributeset fingerprintd_exec_26_0 (fingerprintd_exec)) +(typeattributeset fingerprintd_service_26_0 (fingerprintd_service)) +(typeattributeset fingerprint_prop_26_0 (fingerprint_prop)) +(typeattributeset fingerprint_service_26_0 (fingerprint_service)) +(typeattributeset firstboot_prop_26_0 (firstboot_prop)) +(typeattributeset font_service_26_0 (font_service)) +(typeattributeset frp_block_device_26_0 (frp_block_device)) +(typeattributeset fsck_26_0 (fsck)) +(typeattributeset fsck_exec_26_0 (fsck_exec)) +(typeattributeset fscklogs_26_0 (fscklogs)) +(typeattributeset fsck_untrusted_26_0 (fsck_untrusted)) +(typeattributeset full_device_26_0 (full_device)) +(typeattributeset functionfs_26_0 (functionfs)) +(typeattributeset fuse_26_0 (fuse)) +(typeattributeset fuse_device_26_0 (fuse_device)) +(typeattributeset fwk_display_hwservice_26_0 (fwk_display_hwservice)) +(typeattributeset fwk_scheduler_hwservice_26_0 (fwk_scheduler_hwservice)) +(typeattributeset fwk_sensor_hwservice_26_0 (fwk_sensor_hwservice)) +(typeattributeset fwmarkd_socket_26_0 (fwmarkd_socket)) +(typeattributeset gatekeeperd_26_0 (gatekeeperd)) +(typeattributeset gatekeeper_data_file_26_0 (gatekeeper_data_file)) +(typeattributeset gatekeeperd_exec_26_0 (gatekeeperd_exec)) +(typeattributeset gatekeeper_service_26_0 (gatekeeper_service)) +(typeattributeset gfxinfo_service_26_0 (gfxinfo_service)) +(typeattributeset gps_control_26_0 (gps_control)) +(typeattributeset gpu_device_26_0 (gpu_device)) +(typeattributeset gpu_service_26_0 (gpu_service)) +(typeattributeset graphics_device_26_0 (graphics_device)) +(typeattributeset graphicsstats_service_26_0 (graphicsstats_service)) +(typeattributeset hal_audio_hwservice_26_0 (hal_audio_hwservice)) +(typeattributeset hal_bluetooth_hwservice_26_0 (hal_bluetooth_hwservice)) +(typeattributeset hal_bootctl_hwservice_26_0 (hal_bootctl_hwservice)) +(typeattributeset hal_camera_hwservice_26_0 (hal_camera_hwservice)) +(typeattributeset hal_configstore_ISurfaceFlingerConfigs_26_0 (hal_configstore_ISurfaceFlingerConfigs)) +(typeattributeset hal_contexthub_hwservice_26_0 (hal_contexthub_hwservice)) +(typeattributeset hal_drm_hwservice_26_0 (hal_drm_hwservice)) +(typeattributeset hal_dumpstate_hwservice_26_0 (hal_dumpstate_hwservice)) +(typeattributeset hal_fingerprint_hwservice_26_0 (hal_fingerprint_hwservice)) +(typeattributeset hal_fingerprint_service_26_0 (hal_fingerprint_service)) +(typeattributeset hal_gatekeeper_hwservice_26_0 (hal_gatekeeper_hwservice)) +(typeattributeset hal_gnss_hwservice_26_0 (hal_gnss_hwservice)) +(typeattributeset hal_graphics_allocator_hwservice_26_0 (hal_graphics_allocator_hwservice)) +(typeattributeset hal_graphics_composer_hwservice_26_0 (hal_graphics_composer_hwservice)) +(typeattributeset hal_graphics_mapper_hwservice_26_0 (hal_graphics_mapper_hwservice)) +(typeattributeset hal_health_hwservice_26_0 (hal_health_hwservice)) +(typeattributeset hal_ir_hwservice_26_0 (hal_ir_hwservice)) +(typeattributeset hal_keymaster_hwservice_26_0 (hal_keymaster_hwservice)) +(typeattributeset hal_light_hwservice_26_0 (hal_light_hwservice)) +(typeattributeset hal_memtrack_hwservice_26_0 (hal_memtrack_hwservice)) +(typeattributeset hal_nfc_hwservice_26_0 (hal_nfc_hwservice)) +(typeattributeset hal_oemlock_hwservice_26_0 (hal_oemlock_hwservice)) +(typeattributeset hal_omx_hwservice_26_0 (hal_omx_hwservice)) +(typeattributeset hal_power_hwservice_26_0 (hal_power_hwservice)) +(typeattributeset hal_renderscript_hwservice_26_0 (hal_renderscript_hwservice)) +(typeattributeset hal_sensors_hwservice_26_0 (hal_sensors_hwservice)) +(typeattributeset hal_telephony_hwservice_26_0 (hal_telephony_hwservice)) +(typeattributeset hal_thermal_hwservice_26_0 (hal_thermal_hwservice)) +(typeattributeset hal_tv_cec_hwservice_26_0 (hal_tv_cec_hwservice)) +(typeattributeset hal_tv_input_hwservice_26_0 (hal_tv_input_hwservice)) +(typeattributeset hal_usb_hwservice_26_0 (hal_usb_hwservice)) +(typeattributeset hal_vibrator_hwservice_26_0 (hal_vibrator_hwservice)) +(typeattributeset hal_vr_hwservice_26_0 (hal_vr_hwservice)) +(typeattributeset hal_weaver_hwservice_26_0 (hal_weaver_hwservice)) +(typeattributeset hal_wifi_hwservice_26_0 (hal_wifi_hwservice)) +(typeattributeset hal_wifi_supplicant_hwservice_26_0 (hal_wifi_supplicant_hwservice)) +(typeattributeset hardware_properties_service_26_0 (hardware_properties_service)) +(typeattributeset hardware_service_26_0 (hardware_service)) +(typeattributeset hci_attach_dev_26_0 (hci_attach_dev)) +(typeattributeset hdmi_control_service_26_0 (hdmi_control_service)) +(typeattributeset healthd_26_0 (healthd)) +(typeattributeset healthd_exec_26_0 (healthd_exec)) +(typeattributeset heapdump_data_file_26_0 (heapdump_data_file)) +(typeattributeset hidl_allocator_hwservice_26_0 (hidl_allocator_hwservice)) +(typeattributeset hidl_base_hwservice_26_0 (hidl_base_hwservice)) +(typeattributeset hidl_manager_hwservice_26_0 (hidl_manager_hwservice)) +(typeattributeset hidl_memory_hwservice_26_0 (hidl_memory_hwservice)) +(typeattributeset hidl_token_hwservice_26_0 (hidl_token_hwservice)) +(typeattributeset hwbinder_device_26_0 (hwbinder_device)) +(typeattributeset hw_random_device_26_0 (hw_random_device)) +(typeattributeset hwservice_contexts_file_26_0 (hwservice_contexts_file)) +(typeattributeset hwservicemanager_26_0 (hwservicemanager)) +(typeattributeset hwservicemanager_exec_26_0 (hwservicemanager_exec)) +(typeattributeset hwservicemanager_prop_26_0 (hwservicemanager_prop)) +(typeattributeset i2c_device_26_0 (i2c_device)) +(typeattributeset icon_file_26_0 (icon_file)) +(typeattributeset idmap_26_0 (idmap)) +(typeattributeset idmap_exec_26_0 (idmap_exec)) +(typeattributeset iio_device_26_0 (iio_device)) +(typeattributeset imms_service_26_0 (imms_service)) +(typeattributeset incident_26_0 (incident)) +(typeattributeset incidentd_26_0 (incidentd)) +(typeattributeset incident_data_file_26_0 (incident_data_file)) +(typeattributeset incident_service_26_0 (incident_service)) +(typeattributeset init_26_0 (init)) +(typeattributeset init_exec_26_0 (init_exec)) +(typeattributeset inotify_26_0 (inotify)) +(typeattributeset input_device_26_0 (input_device)) +(typeattributeset inputflinger_26_0 (inputflinger)) +(typeattributeset inputflinger_exec_26_0 (inputflinger_exec)) +(typeattributeset inputflinger_service_26_0 (inputflinger_service)) +(typeattributeset input_method_service_26_0 (input_method_service)) +(typeattributeset input_service_26_0 (input_service)) +(typeattributeset installd_26_0 (installd)) +(typeattributeset install_data_file_26_0 (install_data_file)) +(typeattributeset installd_exec_26_0 (installd_exec)) +(typeattributeset installd_service_26_0 (installd_service)) +(typeattributeset install_recovery_26_0 (install_recovery)) +(typeattributeset install_recovery_exec_26_0 (install_recovery_exec)) +(typeattributeset ion_device_26_0 (ion_device)) +(typeattributeset IProxyService_service_26_0 (IProxyService_service)) +(typeattributeset ipsec_service_26_0 (ipsec_service)) +(typeattributeset isolated_app_26_0 (isolated_app)) +(typeattributeset jobscheduler_service_26_0 (jobscheduler_service)) +(typeattributeset kernel_26_0 (kernel)) +(typeattributeset keychain_data_file_26_0 (keychain_data_file)) +(typeattributeset keychord_device_26_0 (keychord_device)) +(typeattributeset keystore_26_0 (keystore)) +(typeattributeset keystore_data_file_26_0 (keystore_data_file)) +(typeattributeset keystore_exec_26_0 (keystore_exec)) +(typeattributeset keystore_service_26_0 (keystore_service)) +(typeattributeset kmem_device_26_0 (kmem_device)) +(typeattributeset kmsg_device_26_0 (kmsg_device)) +(typeattributeset labeledfs_26_0 (labeledfs)) +(typeattributeset launcherapps_service_26_0 (launcherapps_service)) +(typeattributeset lmkd_26_0 (lmkd)) +(typeattributeset lmkd_exec_26_0 (lmkd_exec)) +(typeattributeset lmkd_socket_26_0 (lmkd_socket)) +(typeattributeset location_service_26_0 (location_service)) +(typeattributeset lock_settings_service_26_0 (lock_settings_service)) +(typeattributeset logcat_exec_26_0 (logcat_exec)) +(typeattributeset logd_26_0 (logd)) +(typeattributeset log_device_26_0 (log_device)) +(typeattributeset logd_exec_26_0 (logd_exec)) +(typeattributeset logd_prop_26_0 (logd_prop)) +(typeattributeset logdr_socket_26_0 (logdr_socket)) +(typeattributeset logd_socket_26_0 (logd_socket)) +(typeattributeset logdw_socket_26_0 (logdw_socket)) +(typeattributeset logpersist_26_0 (logpersist)) +(typeattributeset logpersistd_logging_prop_26_0 (logpersistd_logging_prop)) +(typeattributeset log_prop_26_0 (log_prop)) +(typeattributeset log_tag_prop_26_0 (log_tag_prop)) +(typeattributeset loop_control_device_26_0 (loop_control_device)) +(typeattributeset loop_device_26_0 (loop_device)) +(typeattributeset mac_perms_file_26_0 (mac_perms_file)) +(typeattributeset mdnsd_26_0 (mdnsd)) +(typeattributeset mdnsd_socket_26_0 (mdnsd_socket)) +(typeattributeset mdns_socket_26_0 (mdns_socket)) +(typeattributeset mediacasserver_service_26_0 (mediacasserver_service)) +(typeattributeset mediacodec_26_0 (mediacodec)) +(typeattributeset mediacodec_exec_26_0 (mediacodec_exec)) +(typeattributeset mediacodec_service_26_0 (mediacodec_service)) +(typeattributeset media_data_file_26_0 (media_data_file)) +(typeattributeset mediadrmserver_26_0 (mediadrmserver)) +(typeattributeset mediadrmserver_exec_26_0 (mediadrmserver_exec)) +(typeattributeset mediadrmserver_service_26_0 (mediadrmserver_service)) +(typeattributeset mediaextractor_26_0 (mediaextractor)) +(typeattributeset mediaextractor_exec_26_0 (mediaextractor_exec)) +(typeattributeset mediaextractor_service_26_0 (mediaextractor_service)) +(typeattributeset mediametrics_26_0 (mediametrics)) +(typeattributeset mediametrics_exec_26_0 (mediametrics_exec)) +(typeattributeset mediametrics_service_26_0 (mediametrics_service)) +(typeattributeset media_projection_service_26_0 (media_projection_service)) +(typeattributeset media_router_service_26_0 (media_router_service)) +(typeattributeset media_rw_data_file_26_0 (media_rw_data_file)) +(typeattributeset mediaserver_26_0 (mediaserver)) +(typeattributeset mediaserver_exec_26_0 (mediaserver_exec)) +(typeattributeset mediaserver_service_26_0 (mediaserver_service)) +(typeattributeset media_session_service_26_0 (media_session_service)) +(typeattributeset meminfo_service_26_0 (meminfo_service)) +(typeattributeset metadata_block_device_26_0 (metadata_block_device)) +(typeattributeset method_trace_data_file_26_0 (method_trace_data_file)) +(typeattributeset midi_service_26_0 (midi_service)) +(typeattributeset misc_block_device_26_0 (misc_block_device)) +(typeattributeset misc_logd_file_26_0 (misc_logd_file)) +(typeattributeset misc_user_data_file_26_0 (misc_user_data_file)) +(typeattributeset mmc_prop_26_0 (mmc_prop)) +(typeattributeset mnt_expand_file_26_0 (mnt_expand_file)) +(typeattributeset mnt_media_rw_file_26_0 (mnt_media_rw_file)) +(typeattributeset mnt_media_rw_stub_file_26_0 (mnt_media_rw_stub_file)) +(typeattributeset mnt_user_file_26_0 (mnt_user_file)) +(typeattributeset modprobe_26_0 (modprobe)) +(typeattributeset mount_service_26_0 (mount_service)) +(typeattributeset mqueue_26_0 (mqueue)) +(typeattributeset mtd_device_26_0 (mtd_device)) +(typeattributeset mtp_26_0 (mtp)) +(typeattributeset mtp_device_26_0 (mtp_device)) +(typeattributeset mtpd_socket_26_0 (mtpd_socket)) +(typeattributeset mtp_exec_26_0 (mtp_exec)) +(typeattributeset nativetest_data_file_26_0 (nativetest_data_file)) +(typeattributeset netd_26_0 (netd)) +(typeattributeset net_data_file_26_0 (net_data_file)) +(typeattributeset netd_exec_26_0 (netd_exec)) +(typeattributeset netd_listener_service_26_0 (netd_listener_service)) +(typeattributeset net_dns_prop_26_0 (net_dns_prop)) +(typeattributeset netd_service_26_0 (netd_service)) +(typeattributeset netd_socket_26_0 (netd_socket)) +(typeattributeset netif_26_0 (netif)) +(typeattributeset netpolicy_service_26_0 (netpolicy_service)) +(typeattributeset net_radio_prop_26_0 (net_radio_prop)) +(typeattributeset netstats_service_26_0 (netstats_service)) +(typeattributeset netutils_wrapper_26_0 (netutils_wrapper)) +(typeattributeset netutils_wrapper_exec_26_0 (netutils_wrapper_exec)) +(typeattributeset network_management_service_26_0 (network_management_service)) +(typeattributeset network_score_service_26_0 (network_score_service)) +(typeattributeset network_time_update_service_26_0 (network_time_update_service)) +(typeattributeset nfc_26_0 (nfc)) +(typeattributeset nfc_data_file_26_0 (nfc_data_file)) +(typeattributeset nfc_device_26_0 (nfc_device)) +(typeattributeset nfc_prop_26_0 (nfc_prop)) +(typeattributeset nfc_service_26_0 (nfc_service)) +(typeattributeset node_26_0 (node)) +(typeattributeset notification_service_26_0 (notification_service)) +(typeattributeset null_device_26_0 (null_device)) +(typeattributeset oemfs_26_0 (oemfs)) +(typeattributeset oem_lock_service_26_0 (oem_lock_service)) +(typeattributeset ota_data_file_26_0 (ota_data_file)) +(typeattributeset otadexopt_service_26_0 (otadexopt_service)) +(typeattributeset ota_package_file_26_0 (ota_package_file)) +(typeattributeset otapreopt_chroot_26_0 (otapreopt_chroot)) +(typeattributeset otapreopt_chroot_exec_26_0 (otapreopt_chroot_exec)) +(typeattributeset otapreopt_slot_26_0 (otapreopt_slot)) +(typeattributeset otapreopt_slot_exec_26_0 (otapreopt_slot_exec)) +(typeattributeset overlay_prop_26_0 (overlay_prop)) +(typeattributeset overlay_service_26_0 (overlay_service)) +(typeattributeset owntty_device_26_0 (owntty_device)) +(typeattributeset package_service_26_0 (package_service)) +(typeattributeset pan_result_prop_26_0 (pan_result_prop)) +(typeattributeset pdx_bufferhub_client_channel_socket_26_0 (pdx_bufferhub_client_channel_socket)) +(typeattributeset pdx_bufferhub_client_endpoint_socket_26_0 (pdx_bufferhub_client_endpoint_socket)) +(typeattributeset pdx_bufferhub_dir_26_0 (pdx_bufferhub_dir)) +(typeattributeset pdx_display_client_channel_socket_26_0 (pdx_display_client_channel_socket)) +(typeattributeset pdx_display_client_endpoint_socket_26_0 (pdx_display_client_endpoint_socket)) +(typeattributeset pdx_display_dir_26_0 (pdx_display_dir)) +(typeattributeset pdx_display_manager_channel_socket_26_0 (pdx_display_manager_channel_socket)) +(typeattributeset pdx_display_manager_endpoint_socket_26_0 (pdx_display_manager_endpoint_socket)) +(typeattributeset pdx_display_screenshot_channel_socket_26_0 (pdx_display_screenshot_channel_socket)) +(typeattributeset pdx_display_screenshot_endpoint_socket_26_0 (pdx_display_screenshot_endpoint_socket)) +(typeattributeset pdx_display_vsync_channel_socket_26_0 (pdx_display_vsync_channel_socket)) +(typeattributeset pdx_display_vsync_endpoint_socket_26_0 (pdx_display_vsync_endpoint_socket)) +(typeattributeset pdx_performance_client_channel_socket_26_0 (pdx_performance_client_channel_socket)) +(typeattributeset pdx_performance_client_endpoint_socket_26_0 (pdx_performance_client_endpoint_socket)) +(typeattributeset pdx_performance_dir_26_0 (pdx_performance_dir)) +(typeattributeset performanced_26_0 (performanced)) +(typeattributeset performanced_exec_26_0 (performanced_exec)) +(typeattributeset perfprofd_26_0 (perfprofd)) +(typeattributeset perfprofd_data_file_26_0 (perfprofd_data_file)) +(typeattributeset perfprofd_exec_26_0 (perfprofd_exec)) +(typeattributeset permission_service_26_0 (permission_service)) +(typeattributeset persist_debug_prop_26_0 (persist_debug_prop)) +(typeattributeset persistent_data_block_service_26_0 (persistent_data_block_service)) +(typeattributeset persistent_properties_ready_prop_26_0 (persistent_properties_ready_prop)) +(typeattributeset pinner_service_26_0 (pinner_service)) +(typeattributeset pipefs_26_0 (pipefs)) +(typeattributeset platform_app_26_0 (platform_app)) +(typeattributeset pmsg_device_26_0 (pmsg_device)) +(typeattributeset port_26_0 (port)) +(typeattributeset port_device_26_0 (port_device)) +(typeattributeset postinstall_26_0 (postinstall)) +(typeattributeset postinstall_dexopt_26_0 (postinstall_dexopt)) +(typeattributeset postinstall_file_26_0 (postinstall_file)) +(typeattributeset postinstall_mnt_dir_26_0 (postinstall_mnt_dir)) +(typeattributeset powerctl_prop_26_0 (powerctl_prop)) +(typeattributeset power_service_26_0 (power_service)) +(typeattributeset ppp_26_0 (ppp)) +(typeattributeset ppp_device_26_0 (ppp_device)) +(typeattributeset ppp_exec_26_0 (ppp_exec)) +(typeattributeset preloads_data_file_26_0 (preloads_data_file)) +(typeattributeset preloads_media_file_26_0 (preloads_media_file)) +(typeattributeset preopt2cachename_26_0 (preopt2cachename)) +(typeattributeset preopt2cachename_exec_26_0 (preopt2cachename_exec)) +(typeattributeset print_service_26_0 (print_service)) +(typeattributeset priv_app_26_0 (mediaprovider priv_app)) +(typeattributeset proc_26_0 (proc proc_asound_cards proc_cmdline proc_filesystems proc_kmsg proc_loadavg proc_mounts proc_pagetypeinfo proc_swaps proc_uid_time_in_state proc_version proc_vmallocinfo)) +(typeattributeset proc_bluetooth_writable_26_0 (proc_bluetooth_writable)) +(typeattributeset proc_cpuinfo_26_0 (proc_cpuinfo)) +(typeattributeset proc_drop_caches_26_0 (proc_drop_caches)) +(typeattributeset processinfo_service_26_0 (processinfo_service)) +(typeattributeset proc_interrupts_26_0 (proc_interrupts)) +(typeattributeset proc_iomem_26_0 (proc_iomem)) +(typeattributeset proc_meminfo_26_0 (proc_meminfo)) +(typeattributeset proc_misc_26_0 (proc_misc)) +(typeattributeset proc_modules_26_0 (proc_modules)) +(typeattributeset proc_net_26_0 (proc_net)) +(typeattributeset proc_overcommit_memory_26_0 (proc_overcommit_memory)) +(typeattributeset proc_perf_26_0 (proc_perf)) +(typeattributeset proc_security_26_0 (proc_security)) +(typeattributeset proc_stat_26_0 (proc_stat)) +(typeattributeset procstats_service_26_0 (procstats_service)) +(typeattributeset proc_sysrq_26_0 (proc_sysrq)) +(typeattributeset proc_timer_26_0 (proc_timer)) +(typeattributeset proc_tty_drivers_26_0 (proc_tty_drivers)) +(typeattributeset proc_uid_cputime_removeuid_26_0 (proc_uid_cputime_removeuid)) +(typeattributeset proc_uid_cputime_showstat_26_0 (proc_uid_cputime_showstat)) +(typeattributeset proc_uid_io_stats_26_0 (proc_uid_io_stats)) +(typeattributeset proc_uid_procstat_set_26_0 (proc_uid_procstat_set)) +(typeattributeset proc_zoneinfo_26_0 (proc_zoneinfo)) +(typeattributeset profman_26_0 (profman)) +(typeattributeset profman_dump_data_file_26_0 (profman_dump_data_file)) +(typeattributeset profman_exec_26_0 (profman_exec)) +(typeattributeset properties_device_26_0 (properties_device)) +(typeattributeset properties_serial_26_0 (properties_serial)) +(typeattributeset property_contexts_file_26_0 (property_contexts_file)) +(typeattributeset property_data_file_26_0 (property_data_file)) +(typeattributeset property_socket_26_0 (property_socket)) +(typeattributeset pstorefs_26_0 (pstorefs)) +(typeattributeset ptmx_device_26_0 (ptmx_device)) +(typeattributeset qtaguid_device_26_0 (qtaguid_device)) +(typeattributeset qtaguid_proc_26_0 (qtaguid_proc)) +(typeattributeset racoon_26_0 (racoon)) +(typeattributeset racoon_exec_26_0 (racoon_exec)) +(typeattributeset racoon_socket_26_0 (racoon_socket)) +(typeattributeset radio_26_0 (radio)) +(typeattributeset radio_data_file_26_0 (radio_data_file)) +(typeattributeset radio_device_26_0 (radio_device)) +(typeattributeset radio_prop_26_0 (radio_prop)) +(typeattributeset radio_service_26_0 (radio_service)) +(typeattributeset ram_device_26_0 (ram_device)) +(typeattributeset random_device_26_0 (random_device)) +(typeattributeset reboot_data_file_26_0 (reboot_data_file)) +(typeattributeset recovery_26_0 (recovery)) +(typeattributeset recovery_block_device_26_0 (recovery_block_device)) +(typeattributeset recovery_data_file_26_0 (recovery_data_file)) +(typeattributeset recovery_persist_26_0 (recovery_persist)) +(typeattributeset recovery_persist_exec_26_0 (recovery_persist_exec)) +(typeattributeset recovery_refresh_26_0 (recovery_refresh)) +(typeattributeset recovery_refresh_exec_26_0 (recovery_refresh_exec)) +(typeattributeset recovery_service_26_0 (recovery_service)) +(typeattributeset registry_service_26_0 (registry_service)) +(typeattributeset resourcecache_data_file_26_0 (resourcecache_data_file)) +(typeattributeset restorecon_prop_26_0 (restorecon_prop)) +(typeattributeset restrictions_service_26_0 (restrictions_service)) +(typeattributeset rild_26_0 (rild)) +(typeattributeset rild_debug_socket_26_0 (rild_debug_socket)) +(typeattributeset rild_socket_26_0 (rild_socket)) +(typeattributeset ringtone_file_26_0 (ringtone_file)) +(typeattributeset root_block_device_26_0 (root_block_device)) +(typeattributeset rootfs_26_0 (rootfs)) +(typeattributeset rpmsg_device_26_0 (rpmsg_device)) +(typeattributeset rtc_device_26_0 (rtc_device)) +(typeattributeset rttmanager_service_26_0 (rttmanager_service)) +(typeattributeset runas_26_0 (runas)) +(typeattributeset runas_exec_26_0 (runas_exec)) +(typeattributeset runtime_event_log_tags_file_26_0 (runtime_event_log_tags_file)) +(typeattributeset safemode_prop_26_0 (safemode_prop)) +(typeattributeset same_process_hal_file_26_0 (same_process_hal_file)) +(typeattributeset samplingprofiler_service_26_0 (samplingprofiler_service)) +(typeattributeset scheduling_policy_service_26_0 (scheduling_policy_service)) +(typeattributeset sdcardd_26_0 (sdcardd)) +(typeattributeset sdcardd_exec_26_0 (sdcardd_exec)) +(typeattributeset sdcardfs_26_0 (sdcardfs)) +(typeattributeset seapp_contexts_file_26_0 (seapp_contexts_file)) +(typeattributeset search_service_26_0 (search_service)) +(typeattributeset sec_key_att_app_id_provider_service_26_0 (sec_key_att_app_id_provider_service)) +(typeattributeset selinuxfs_26_0 (selinuxfs)) +(typeattributeset sensors_device_26_0 (sensors_device)) +(typeattributeset sensorservice_service_26_0 (sensorservice_service)) +(typeattributeset sepolicy_file_26_0 (sepolicy_file)) +(typeattributeset serial_device_26_0 (serial_device)) +(typeattributeset serialno_prop_26_0 (serialno_prop)) +(typeattributeset serial_service_26_0 (serial_service)) +(typeattributeset service_contexts_file_26_0 (service_contexts_file nonplat_service_contexts_file)) +(typeattributeset servicediscovery_service_26_0 (servicediscovery_service)) +(typeattributeset servicemanager_26_0 (servicemanager)) +(typeattributeset servicemanager_exec_26_0 (servicemanager_exec)) +(typeattributeset settings_service_26_0 (settings_service)) +(typeattributeset sgdisk_26_0 (sgdisk)) +(typeattributeset sgdisk_exec_26_0 (sgdisk_exec)) +(typeattributeset shared_relro_26_0 (shared_relro)) +(typeattributeset shared_relro_file_26_0 (shared_relro_file)) +(typeattributeset shell_26_0 (shell)) +(typeattributeset shell_data_file_26_0 (shell_data_file)) +(typeattributeset shell_exec_26_0 (shell_exec)) +(typeattributeset shell_prop_26_0 (shell_prop)) +(typeattributeset shm_26_0 (shm)) +(typeattributeset shortcut_manager_icons_26_0 (shortcut_manager_icons)) +(typeattributeset shortcut_service_26_0 (shortcut_service)) +(typeattributeset slideshow_26_0 (slideshow)) +(typeattributeset socket_device_26_0 (socket_device)) +(typeattributeset sockfs_26_0 (sockfs)) +(typeattributeset statusbar_service_26_0 (statusbar_service)) +(typeattributeset storaged_service_26_0 (storaged_service)) +(typeattributeset storage_file_26_0 (storage_file)) +(typeattributeset storagestats_service_26_0 (storagestats_service)) +(typeattributeset storage_stub_file_26_0 (storage_stub_file)) +(typeattributeset su_26_0 (su)) +(typeattributeset su_exec_26_0 (su_exec)) +(typeattributeset surfaceflinger_26_0 (surfaceflinger)) +(typeattributeset surfaceflinger_service_26_0 (surfaceflinger_service)) +(typeattributeset swap_block_device_26_0 (swap_block_device)) +(typeattributeset sysfs_26_0 (sysfs)) +(typeattributeset sysfs_batteryinfo_26_0 (sysfs_batteryinfo)) +(typeattributeset sysfs_bluetooth_writable_26_0 (sysfs_bluetooth_writable)) +(typeattributeset sysfs_devices_system_cpu_26_0 (sysfs_devices_system_cpu)) +(typeattributeset sysfs_hwrandom_26_0 (sysfs_hwrandom)) +(typeattributeset sysfs_leds_26_0 (sysfs_leds)) +(typeattributeset sysfs_lowmemorykiller_26_0 (sysfs_lowmemorykiller)) +(typeattributeset sysfs_mac_address_26_0 (sysfs_mac_address)) +(typeattributeset sysfs_nfc_power_writable_26_0 (sysfs_nfc_power_writable)) +(typeattributeset sysfs_thermal_26_0 (sysfs_thermal)) +(typeattributeset sysfs_uio_26_0 (sysfs_uio)) +(typeattributeset sysfs_usb_26_0 (sysfs_usb)) +(typeattributeset sysfs_vibrator_26_0 (sysfs_vibrator)) +(typeattributeset sysfs_wake_lock_26_0 (sysfs_wake_lock)) +(typeattributeset sysfs_wlan_fwpath_26_0 (sysfs_wlan_fwpath)) +(typeattributeset sysfs_zram_26_0 (sysfs_zram)) +(typeattributeset sysfs_zram_uevent_26_0 (sysfs_zram_uevent)) +(typeattributeset system_app_26_0 (system_app)) +(typeattributeset system_app_data_file_26_0 (system_app_data_file)) +(typeattributeset system_app_service_26_0 (system_app_service)) +(typeattributeset system_block_device_26_0 (system_block_device)) +(typeattributeset system_data_file_26_0 (system_data_file)) +(typeattributeset system_file_26_0 (system_file)) +(typeattributeset systemkeys_data_file_26_0 (systemkeys_data_file)) +(typeattributeset system_ndebug_socket_26_0 (system_ndebug_socket)) +(typeattributeset system_prop_26_0 (system_prop)) +(typeattributeset system_radio_prop_26_0 (system_radio_prop)) +(typeattributeset system_server_26_0 (system_server)) +(typeattributeset system_wifi_keystore_hwservice_26_0 (system_wifi_keystore_hwservice)) +(typeattributeset system_wpa_socket_26_0 (system_wpa_socket)) +(typeattributeset task_service_26_0 (task_service)) +(typeattributeset tee_26_0 (tee)) +(typeattributeset tee_data_file_26_0 (tee_data_file)) +(typeattributeset tee_device_26_0 (tee_device)) +(typeattributeset telecom_service_26_0 (telecom_service)) +(typeattributeset textclassification_service_26_0 (textclassification_service)) +(typeattributeset textclassifier_data_file_26_0 (textclassifier_data_file)) +(typeattributeset textservices_service_26_0 (textservices_service)) +(typeattributeset tmpfs_26_0 (tmpfs)) +(typeattributeset tombstoned_26_0 (tombstoned)) +(typeattributeset tombstone_data_file_26_0 (tombstone_data_file)) +(typeattributeset tombstoned_crash_socket_26_0 (tombstoned_crash_socket)) +(typeattributeset tombstoned_exec_26_0 (tombstoned_exec)) +(typeattributeset tombstoned_intercept_socket_26_0 (tombstoned_intercept_socket)) +(typeattributeset toolbox_26_0 (toolbox)) +(typeattributeset toolbox_exec_26_0 (toolbox_exec)) +(typeattributeset tracing_shell_writable_26_0 (debugfs_tracing tracing_shell_writable)) +(typeattributeset tracing_shell_writable_debug_26_0 (debugfs_tracing_debug tracing_shell_writable_debug)) +(typeattributeset trust_service_26_0 (trust_service)) +(typeattributeset tty_device_26_0 (tty_device)) +(typeattributeset tun_device_26_0 (tun_device)) +(typeattributeset tv_input_service_26_0 (tv_input_service)) +(typeattributeset tzdatacheck_26_0 (tzdatacheck)) +(typeattributeset tzdatacheck_exec_26_0 (tzdatacheck_exec)) +(typeattributeset ueventd_26_0 (ueventd)) +(typeattributeset uhid_device_26_0 (uhid_device)) +(typeattributeset uimode_service_26_0 (uimode_service)) +(typeattributeset uio_device_26_0 (uio_device)) +(typeattributeset uncrypt_26_0 (uncrypt)) +(typeattributeset uncrypt_exec_26_0 (uncrypt_exec)) +(typeattributeset uncrypt_socket_26_0 (uncrypt_socket)) +(typeattributeset unencrypted_data_file_26_0 (unencrypted_data_file)) +(typeattributeset unlabeled_26_0 (unlabeled)) +(typeattributeset untrusted_app_25_26_0 (untrusted_app_25)) +(typeattributeset untrusted_app_26_0 (untrusted_app)) +(typeattributeset untrusted_v2_app_26_0 (untrusted_v2_app)) +(typeattributeset update_engine_26_0 (update_engine)) +(typeattributeset update_engine_data_file_26_0 (update_engine_data_file)) +(typeattributeset update_engine_exec_26_0 (update_engine_exec)) +(typeattributeset update_engine_service_26_0 (update_engine_service)) +(typeattributeset updatelock_service_26_0 (updatelock_service)) +(typeattributeset update_verifier_26_0 (update_verifier)) +(typeattributeset update_verifier_exec_26_0 (update_verifier_exec)) +(typeattributeset usagestats_service_26_0 (usagestats_service)) +(typeattributeset usbaccessory_device_26_0 (usbaccessory_device)) +(typeattributeset usb_device_26_0 (usb_device)) +(typeattributeset usbfs_26_0 (usbfs)) +(typeattributeset usb_service_26_0 (usb_service)) +(typeattributeset userdata_block_device_26_0 (userdata_block_device)) +(typeattributeset usermodehelper_26_0 (sysfs_usermodehelper usermodehelper)) +(typeattributeset user_profile_data_file_26_0 (user_profile_data_file)) +(typeattributeset user_service_26_0 (user_service)) +(typeattributeset vcs_device_26_0 (vcs_device)) +(typeattributeset vdc_26_0 (vdc)) +(typeattributeset vdc_exec_26_0 (vdc_exec)) +(typeattributeset vendor_app_file_26_0 (vendor_app_file)) +(typeattributeset vendor_configs_file_26_0 (vendor_configs_file)) +(typeattributeset vendor_file_26_0 (vendor_file)) +(typeattributeset vendor_framework_file_26_0 (vendor_framework_file)) +(typeattributeset vendor_hal_file_26_0 (vendor_hal_file)) +(typeattributeset vendor_overlay_file_26_0 (vendor_overlay_file)) +(typeattributeset vendor_shell_exec_26_0 (vendor_shell_exec)) +(typeattributeset vendor_toolbox_exec_26_0 (vendor_toolbox_exec)) +(typeattributeset vfat_26_0 (vfat)) +(typeattributeset vibrator_service_26_0 (vibrator_service)) +(typeattributeset video_device_26_0 (video_device)) +(typeattributeset virtual_touchpad_26_0 (virtual_touchpad)) +(typeattributeset virtual_touchpad_exec_26_0 (virtual_touchpad_exec)) +(typeattributeset virtual_touchpad_service_26_0 (virtual_touchpad_service)) +(typeattributeset vndbinder_device_26_0 (vndbinder_device)) +(typeattributeset vndk_sp_file_26_0 (vndk_sp_file)) +(typeattributeset vndservice_contexts_file_26_0 (vndservice_contexts_file)) +(typeattributeset vndservicemanager_26_0 (vndservicemanager)) +(typeattributeset voiceinteraction_service_26_0 (voiceinteraction_service)) +(typeattributeset vold_26_0 (vold)) +(typeattributeset vold_data_file_26_0 (vold_data_file)) +(typeattributeset vold_device_26_0 (vold_device)) +(typeattributeset vold_exec_26_0 (vold_exec)) +(typeattributeset vold_prop_26_0 (vold_prop)) +(typeattributeset vold_socket_26_0 (vold_socket)) +(typeattributeset vpn_data_file_26_0 (vpn_data_file)) +(typeattributeset vr_hwc_26_0 (vr_hwc)) +(typeattributeset vr_hwc_exec_26_0 (vr_hwc_exec)) +(typeattributeset vr_hwc_service_26_0 (vr_hwc_service)) +(typeattributeset vr_manager_service_26_0 (vr_manager_service)) +(typeattributeset wallpaper_file_26_0 (wallpaper_file)) +(typeattributeset wallpaper_service_26_0 (wallpaper_service)) +(typeattributeset watchdogd_26_0 (watchdogd)) +(typeattributeset watchdog_device_26_0 (watchdog_device)) +(typeattributeset webviewupdate_service_26_0 (webviewupdate_service)) +(typeattributeset webview_zygote_26_0 (webview_zygote)) +(typeattributeset webview_zygote_exec_26_0 (webview_zygote_exec)) +(typeattributeset webview_zygote_socket_26_0 (webview_zygote_socket)) +(typeattributeset wifiaware_service_26_0 (wifiaware_service)) +(typeattributeset wificond_26_0 (wificond)) +(typeattributeset wificond_exec_26_0 (wificond_exec)) +(typeattributeset wificond_service_26_0 (wificond_service)) +(typeattributeset wifi_data_file_26_0 (wifi_data_file)) +(typeattributeset wifi_log_prop_26_0 (wifi_log_prop)) +(typeattributeset wifip2p_service_26_0 (wifip2p_service)) +(typeattributeset wifi_prop_26_0 (wifi_prop)) +(typeattributeset wifiscanner_service_26_0 (wifiscanner_service)) +(typeattributeset wifi_service_26_0 (wifi_service)) +(typeattributeset window_service_26_0 (window_service)) +(typeattributeset wpa_socket_26_0 (wpa_socket)) +(typeattributeset zero_device_26_0 (zero_device)) +(typeattributeset zoneinfo_data_file_26_0 (zoneinfo_data_file)) +(typeattributeset zygote_26_0 (zygote)) +(typeattributeset zygote_exec_26_0 (zygote_exec)) +(typeattributeset zygote_socket_26_0 (zygote_socket)) diff --git a/private/compat/26.0/26.0.ignore.cil b/private/compat/26.0/26.0.ignore.cil new file mode 100644 index 000000000..c64c86618 --- /dev/null +++ b/private/compat/26.0/26.0.ignore.cil @@ -0,0 +1,43 @@ +;; new_objects - a collection of types that have been introduced that have no +;; analogue in older policy. Thus, we do not need to map these types to +;; previous ones. Add here to pass checkapi tests. +(typeattribute new_objects) +(typeattributeset new_objects + ( adbd_exec + bootloader_boot_reason_prop + broadcastradio_service + e2fs + e2fs_exec + hal_broadcastradio_hwservice + hal_cas_hwservice + hal_lowpan_hwservice + hal_neuralnetworks_hwservice + hal_tetheroffload_hwservice + hal_wifi_offload_hwservice + kmsg_debug_device + last_boot_reason_prop + lowpan_device + lowpan_prop + lowpan_service + mediaprovider_tmpfs + netd_stable_secret_prop + package_native_service + storaged_data_file + sysfs_fs_ext4_features + system_boot_reason_prop + system_net_netd_hwservice + thermal_service + thermalcallback_hwservice + thermalserviced + thermalserviced_exec + thermalserviced_tmpfs + timezone_service + tombstoned_java_trace_socket + vold_service)) + +;; private_objects - a collection of types that were labeled differently in +;; older policy, but that should not remain accessible to vendor policy. +;; Thus, these types are also not mapped, but recorded for checkapi tests +(typeattribute priv_objects) +(typeattributeset priv_objects + ( adbd_tmpfs )) diff --git a/private/e2fs.te b/private/e2fs.te deleted file mode 100644 index add1cc2a4..000000000 --- a/private/e2fs.te +++ /dev/null @@ -1,14 +0,0 @@ -type e2fs, domain, coredomain; - -allow e2fs block_device:blk_file getattr; -allow e2fs block_device:dir search; -allow e2fs userdata_block_device:blk_file rw_file_perms; - -# access /proc/filesystems -allow e2fs proc:file r_file_perms; - -# access /sys/fs/ext4/features -allow e2fs sysfs_fs_ext4_features:file r_file_perms; - -# access sselinux context files -allow e2fs file_contexts_file:file { getattr open read }; diff --git a/private/ephemeral_app.te b/private/ephemeral_app.te index d664a5027..de5c53c47 100644 --- a/private/ephemeral_app.te +++ b/private/ephemeral_app.te @@ -27,7 +27,6 @@ allow ephemeral_app mediaextractor_service:service_manager find; allow ephemeral_app mediacodec_service:service_manager find; allow ephemeral_app mediametrics_service:service_manager find; allow ephemeral_app mediadrmserver_service:service_manager find; -allow ephemeral_app mediacasserver_service:service_manager find; allow ephemeral_app surfaceflinger_service:service_manager find; allow ephemeral_app radio_service:service_manager find; allow ephemeral_app ephemeral_app_api_service:service_manager find; diff --git a/private/file.te b/private/file.te index da5f9adde..7bd83f2c5 100644 --- a/private/file.te +++ b/private/file.te @@ -5,3 +5,6 @@ typealias app_data_file alias download_file; # /proc/config.gz type config_gz, fs_type; + +# /data/misc/storaged +type storaged_data_file, file_type, data_file_type, core_data_file_type; diff --git a/private/file_contexts b/private/file_contexts index 37e6241ad..d5a0bb1d1 100644 --- a/private/file_contexts +++ b/private/file_contexts @@ -28,7 +28,6 @@ /mnt u:object_r:tmpfs:s0 /postinstall u:object_r:postinstall_mnt_dir:s0 /proc u:object_r:rootfs:s0 -/root u:object_r:rootfs:s0 /sys u:object_r:sysfs:s0 # Symlinks @@ -51,7 +50,7 @@ /sepolicy u:object_r:sepolicy_file:s0 /plat_service_contexts u:object_r:service_contexts_file:s0 /plat_hwservice_contexts u:object_r:hwservice_contexts_file:s0 -/nonplat_service_contexts u:object_r:service_contexts_file:s0 +/nonplat_service_contexts u:object_r:nonplat_service_contexts_file:s0 /nonplat_hwservice_contexts u:object_r:hwservice_contexts_file:s0 /vndservice_contexts u:object_r:vndservice_contexts_file:s0 @@ -89,12 +88,11 @@ /dev/hw_random u:object_r:hw_random_device:s0 /dev/hwbinder u:object_r:hwbinder_device:s0 /dev/i2c-[0-9]+ u:object_r:i2c_device:s0 -/dev/input(/.*) u:object_r:input_device:s0 +/dev/input(/.*)? u:object_r:input_device:s0 /dev/iio:device[0-9]+ u:object_r:iio_device:s0 /dev/ion u:object_r:ion_device:s0 /dev/keychord u:object_r:keychord_device:s0 /dev/kmem u:object_r:kmem_device:s0 -/dev/log(/.*)? u:object_r:log_device:s0 /dev/loop-control u:object_r:loop_control_device:s0 /dev/mem u:object_r:kmem_device:s0 /dev/modem.* u:object_r:radio_device:s0 @@ -181,6 +179,7 @@ /system/bin/mke2fs u:object_r:e2fs_exec:s0 /system/bin/e2fsck -- u:object_r:fsck_exec:s0 /system/bin/fsck\.f2fs -- u:object_r:fsck_exec:s0 +/system/bin/make_f2fs -- u:object_r:fsck_exec:s0 /system/bin/fsck_msdos -- u:object_r:fsck_exec:s0 /system/bin/tune2fs -- u:object_r:fsck_exec:s0 /system/bin/toolbox -- u:object_r:toolbox_exec:s0 @@ -257,6 +256,7 @@ /system/bin/update_engine u:object_r:update_engine_exec:s0 /system/bin/bspatch u:object_r:update_engine_exec:s0 /system/bin/storaged u:object_r:storaged_exec:s0 +/system/bin/thermalserviced u:object_r:thermalserviced_exec:s0 /system/bin/webview_zygote32 u:object_r:webview_zygote_exec:s0 /system/bin/webview_zygote64 u:object_r:webview_zygote_exec:s0 /system/bin/virtual_touchpad u:object_r:virtual_touchpad_exec:s0 @@ -297,7 +297,7 @@ /vendor/etc/selinux/nonplat_mac_permissions.xml u:object_r:mac_perms_file:s0 /vendor/etc/selinux/nonplat_property_contexts u:object_r:property_contexts_file:s0 -/vendor/etc/selinux/nonplat_service_contexts u:object_r:service_contexts_file:s0 +/vendor/etc/selinux/nonplat_service_contexts u:object_r:nonplat_service_contexts_file:s0 /vendor/etc/selinux/nonplat_hwservice_contexts u:object_r:hwservice_contexts_file:s0 /vendor/etc/selinux/nonplat_file_contexts u:object_r:file_contexts_file:s0 /vendor/etc/selinux/nonplat_seapp_contexts u:object_r:seapp_contexts_file:s0 @@ -374,6 +374,7 @@ /data/misc/recovery(/.*)? u:object_r:recovery_data_file:s0 /data/misc/shared_relro(/.*)? u:object_r:shared_relro_file:s0 /data/misc/sms(/.*)? u:object_r:radio_data_file:s0 +/data/misc/storaged(/.*)? u:object_r:storaged_data_file:s0 /data/misc/systemkeys(/.*)? u:object_r:systemkeys_data_file:s0 /data/misc/textclassifier(/.*)? u:object_r:textclassifier_data_file:s0 /data/misc/user(/.*)? u:object_r:misc_user_data_file:s0 diff --git a/private/file_contexts_asan b/private/file_contexts_asan index d35cd3c94..0401ffe41 100644 --- a/private/file_contexts_asan +++ b/private/file_contexts_asan @@ -3,3 +3,7 @@ /data/asan/vendor/lib(/.*)? u:object_r:system_file:s0 /data/asan/vendor/lib64(/.*)? u:object_r:system_file:s0 /system/bin/asan_extract u:object_r:asan_extract_exec:s0 +/system/bin/asanwrapper u:object_r:asanwrapper_exec:s0 +/system/bin/asan/app_process u:object_r:zygote_exec:s0 +/system/bin/asan/app_process32 u:object_r:zygote_exec:s0 +/system/bin/asan/app_process64 u:object_r:zygote_exec:s0 diff --git a/private/genfs_contexts b/private/genfs_contexts index 9f6ef5d87..b5827c803 100644 --- a/private/genfs_contexts +++ b/private/genfs_contexts @@ -2,18 +2,25 @@ genfscon rootfs / u:object_r:rootfs:s0 # proc labeling can be further refined (longest matching prefix). genfscon proc / u:object_r:proc:s0 +genfscon proc /asound/cards u:object_r:proc_asound_cards:s0 +genfscon proc /cmdline u:object_r:proc_cmdline:s0 genfscon proc /config.gz u:object_r:config_gz:s0 +genfscon proc /filesystems u:object_r:proc_filesystems:s0 genfscon proc /interrupts u:object_r:proc_interrupts:s0 genfscon proc /iomem u:object_r:proc_iomem:s0 genfscon proc /kmsg u:object_r:proc_kmsg:s0 +genfscon proc /loadavg u:object_r:proc_loadavg:s0 genfscon proc /meminfo u:object_r:proc_meminfo:s0 genfscon proc /misc u:object_r:proc_misc:s0 genfscon proc /modules u:object_r:proc_modules:s0 +genfscon proc /mounts u:object_r:proc_mounts:s0 genfscon proc /net u:object_r:proc_net:s0 genfscon proc /net/xt_qtaguid/ctrl u:object_r:qtaguid_proc:s0 genfscon proc /cpuinfo u:object_r:proc_cpuinfo:s0 +genfscon proc /pagetypeinfo u:object_r:proc_pagetypeinfo:s0 genfscon proc /softirqs u:object_r:proc_timer:s0 genfscon proc /stat u:object_r:proc_stat:s0 +genfscon proc /swaps u:object_r:proc_swaps:s0 genfscon proc /sysrq-trigger u:object_r:proc_sysrq:s0 genfscon proc /sys/fs/protected_hardlinks u:object_r:proc_security:s0 genfscon proc /sys/fs/protected_symlinks u:object_r:proc_security:s0 @@ -42,6 +49,8 @@ genfscon proc /uid_cputime/remove_uid_range u:object_r:proc_uid_cputime_removeui genfscon proc /uid_io/stats u:object_r:proc_uid_io_stats:s0 genfscon proc /uid_procstat/set u:object_r:proc_uid_procstat_set:s0 genfscon proc /uid_time_in_state u:object_r:proc_uid_time_in_state:s0 +genfscon proc /version u:object_r:proc_version:s0 +genfscon proc /vmallocinfo u:object_r:proc_vmallocinfo:s0 genfscon proc /zoneinfo u:object_r:proc_zoneinfo:s0 # selinuxfs booleans can be individually labeled. @@ -60,7 +69,7 @@ genfscon sysfs /devices/virtual/misc/hw_random u:object_r:sysfs_hwrandom:s0 genfscon sysfs /fs/ext4/features u:object_r:sysfs_fs_ext4_features:s0 genfscon sysfs /power/wake_lock u:object_r:sysfs_wake_lock:s0 genfscon sysfs /power/wake_unlock u:object_r:sysfs_wake_lock:s0 -genfscon sysfs /kernel/uevent_helper u:object_r:usermodehelper:s0 +genfscon sysfs /kernel/uevent_helper u:object_r:sysfs_usermodehelper:s0 genfscon sysfs /module/lowmemorykiller u:object_r:sysfs_lowmemorykiller:s0 genfscon sysfs /module/wlan/parameters/fwpath u:object_r:sysfs_wlan_fwpath:s0 genfscon sysfs /devices/virtual/timed_output/vibrator/enable u:object_r:sysfs_vibrator:s0 diff --git a/private/hwservice_contexts b/private/hwservice_contexts index f0a9c45c0..9da38a61f 100644 --- a/private/hwservice_contexts +++ b/private/hwservice_contexts @@ -10,6 +10,7 @@ android.hardware.broadcastradio::IBroadcastRadioFactory u:object_r:hal_b android.hardware.camera.provider::ICameraProvider u:object_r:hal_camera_hwservice:s0 android.hardware.configstore::ISurfaceFlingerConfigs u:object_r:hal_configstore_ISurfaceFlingerConfigs:s0 android.hardware.contexthub::IContexthub u:object_r:hal_contexthub_hwservice:s0 +android.hardware.cas::IMediaCasService u:object_r:hal_cas_hwservice:s0 android.hardware.drm::ICryptoFactory u:object_r:hal_drm_hwservice:s0 android.hardware.drm::IDrmFactory u:object_r:hal_drm_hwservice:s0 android.hardware.dumpstate::IDumpstateDevice u:object_r:hal_dumpstate_hwservice:s0 @@ -22,9 +23,11 @@ android.hardware.health::IHealth u:object_r:hal_h android.hardware.ir::IConsumerIr u:object_r:hal_ir_hwservice:s0 android.hardware.keymaster::IKeymasterDevice u:object_r:hal_keymaster_hwservice:s0 android.hardware.light::ILight u:object_r:hal_light_hwservice:s0 +android.hardware.lowpan::ILowpanDevice u:object_r:hal_lowpan_hwservice:s0 android.hardware.media.omx::IOmx u:object_r:hal_omx_hwservice:s0 android.hardware.media.omx::IOmxStore u:object_r:hal_omx_hwservice:s0 android.hardware.memtrack::IMemtrack u:object_r:hal_memtrack_hwservice:s0 +android.hardware.neuralnetworks::IDevice u:object_r:hal_neuralnetworks_hwservice:s0 android.hardware.nfc::INfc u:object_r:hal_nfc_hwservice:s0 android.hardware.oemlock::IOemLock u:object_r:hal_oemlock_hwservice:s0 android.hardware.power::IPower u:object_r:hal_power_hwservice:s0 @@ -35,6 +38,7 @@ android.hardware.renderscript::IDevice u:object_r:hal_r android.hardware.sensors::ISensors u:object_r:hal_sensors_hwservice:s0 android.hardware.soundtrigger::ISoundTriggerHw u:object_r:hal_audio_hwservice:s0 android.hardware.thermal::IThermal u:object_r:hal_thermal_hwservice:s0 +android.hardware.thermal::IThermalCallback u:object_r:thermalcallback_hwservice:s0 android.hardware.tv.cec::IHdmiCec u:object_r:hal_tv_cec_hwservice:s0 android.hardware.tv.input::ITvInput u:object_r:hal_tv_input_hwservice:s0 android.hardware.usb::IUsb u:object_r:hal_usb_hwservice:s0 @@ -42,11 +46,13 @@ android.hardware.vibrator::IVibrator u:object_r:hal_v android.hardware.vr::IVr u:object_r:hal_vr_hwservice:s0 android.hardware.weaver::IWeaver u:object_r:hal_weaver_hwservice:s0 android.hardware.wifi::IWifi u:object_r:hal_wifi_hwservice:s0 +android.hardware.wifi.offload::IOffload u:object_r:hal_wifi_offload_hwservice:s0 android.hardware.wifi.supplicant::ISupplicant u:object_r:hal_wifi_supplicant_hwservice:s0 android.hidl.allocator::IAllocator u:object_r:hidl_allocator_hwservice:s0 android.hidl.base::IBase u:object_r:hidl_base_hwservice:s0 android.hidl.manager::IServiceManager u:object_r:hidl_manager_hwservice:s0 android.hidl.memory::IMapper u:object_r:hidl_memory_hwservice:s0 android.hidl.token::ITokenManager u:object_r:hidl_token_hwservice:s0 +android.system.net.netd::INetd u:object_r:system_net_netd_hwservice:s0 android.system.wifi.keystore::IKeystore u:object_r:system_wifi_keystore_hwservice:s0 * u:object_r:default_android_hwservice:s0 diff --git a/private/isolated_app.te b/private/isolated_app.te index 418a3224e..37935c395 100644 --- a/private/isolated_app.te +++ b/private/isolated_app.te @@ -46,6 +46,10 @@ allow isolated_app webview_zygote:unix_dgram_socket write; # Read system properties managed by webview_zygote. allow isolated_app webview_zygote_tmpfs:file read; +# TODO (b/63631799) fix this access +# suppress denials to /data/local/tmp +dontaudit isolated_app shell_data_file:dir search; + ##### ##### Neverallow ##### @@ -62,6 +66,17 @@ neverallow isolated_app app_data_file:file open; neverallow isolated_app anr_data_file:file ~{ open append }; neverallow isolated_app anr_data_file:dir ~search; +# Isolated apps must not be permitted to use HwBinder +neverallow isolated_app hwbinder_device:chr_file *; +neverallow isolated_app *:hwservice_manager *; + +# Isolated apps must not be permitted to use VndBinder +neverallow isolated_app vndbinder_device:chr_file *; + +# Isolated apps must not be permitted to perform actions on Binder and VndBinder service_manager +# except the find actions for services whitelisted below. +neverallow isolated_app *:service_manager ~find; + # b/17487348 # Isolated apps can only access three services, # activity_service, display_service and webviewupdate_service. diff --git a/private/platform_app.te b/private/platform_app.te index e57480e7c..4d937bedf 100644 --- a/private/platform_app.te +++ b/private/platform_app.te @@ -51,7 +51,6 @@ allow platform_app mediametrics_service:service_manager find; allow platform_app mediaextractor_service:service_manager find; allow platform_app mediacodec_service:service_manager find; allow platform_app mediadrmserver_service:service_manager find; -allow platform_app mediacasserver_service:service_manager find; allow platform_app persistent_data_block_service:service_manager find; allow platform_app radio_service:service_manager find; allow platform_app surfaceflinger_service:service_manager find; diff --git a/private/priv_app.te b/private/priv_app.te index 109c86990..60fb41109 100644 --- a/private/priv_app.te +++ b/private/priv_app.te @@ -27,7 +27,6 @@ allow priv_app drmserver_service:service_manager find; allow priv_app mediacodec_service:service_manager find; allow priv_app mediametrics_service:service_manager find; allow priv_app mediadrmserver_service:service_manager find; -allow priv_app mediacasserver_service:service_manager find; allow priv_app mediaextractor_service:service_manager find; allow priv_app mediaserver_service:service_manager find; allow priv_app nfc_service:service_manager find; @@ -108,8 +107,14 @@ allow priv_app preloads_media_file:dir r_dir_perms; # Allow privileged apps (e.g. GMS core) to generate unique hardware IDs allow priv_app keystore:keystore_key gen_unique_id; +# Allow GMS core to access /sys/fs/selinux/policyvers for compatibility check +allow priv_app selinuxfs:file r_file_perms; + read_runtime_log_tags(priv_app) +# suppress denials when safetynet scans /system +dontaudit priv_app exec_type:file getattr; + ### ### neverallow rules ### diff --git a/private/property_contexts b/private/property_contexts index 2bbc3c5c7..55974c041 100644 --- a/private/property_contexts +++ b/private/property_contexts @@ -113,8 +113,9 @@ ro.dalvik. u:object_r:dalvik_prop:s0 # Shared between system server and wificond wlan. u:object_r:wifi_prop:s0 +# Lowpan properties +lowpan. u:object_r:lowpan_prop:s0 +ro.lowpan. u:object_r:lowpan_prop:s0 + # hwservicemanager properties hwservicemanager. u:object_r:hwservicemanager_prop:s0 - -# ASAN install trigger -asan.restore_reboot u:object_r:asan_reboot_prop:s0 diff --git a/private/service_contexts b/private/service_contexts index 78fa561b4..7dc83412f 100644 --- a/private/service_contexts +++ b/private/service_contexts @@ -46,6 +46,7 @@ drm.drmManager u:object_r:drmserver_service:s0 dropbox u:object_r:dropbox_service:s0 dumpstate u:object_r:dumpstate_service:s0 econtroller u:object_r:radio_service:s0 +lowpan u:object_r:lowpan_service:s0 ethernet u:object_r:ethernet_service:s0 fingerprint u:object_r:fingerprint_service:s0 font u:object_r:font_service:s0 @@ -86,10 +87,8 @@ media.metrics u:object_r:mediametrics_service:s0 media.extractor u:object_r:mediaextractor_service:s0 media.codec u:object_r:mediacodec_service:s0 media.resource_manager u:object_r:mediaserver_service:s0 -media.radio u:object_r:audioserver_service:s0 media.sound_trigger_hw u:object_r:audioserver_service:s0 media.drm u:object_r:mediadrmserver_service:s0 -media.cas u:object_r:mediacasserver_service:s0 media_projection u:object_r:media_projection_service:s0 media_resource_monitor u:object_r:media_session_service:s0 media_router u:object_r:media_router_service:s0 @@ -109,6 +108,7 @@ oem_lock u:object_r:oem_lock_service:s0 otadexopt u:object_r:otadexopt_service:s0 overlay u:object_r:overlay_service:s0 package u:object_r:package_service:s0 +package_native u:object_r:package_native_service:s0 permission u:object_r:permission_service:s0 persistent_data_block u:object_r:persistent_data_block_service:s0 phone_msim u:object_r:radio_service:s0 @@ -150,6 +150,7 @@ telephony.registry u:object_r:registry_service:s0 textclassification u:object_r:textclassification_service:s0 textservices u:object_r:textservices_service:s0 timezone u:object_r:timezone_service:s0 +thermalservice u:object_r:thermal_service:s0 trust u:object_r:trust_service:s0 tv_input u:object_r:tv_input_service:s0 uimode u:object_r:uimode_service:s0 @@ -160,6 +161,7 @@ user u:object_r:user_service:s0 vibrator u:object_r:vibrator_service:s0 virtual_touchpad u:object_r:virtual_touchpad_service:s0 voiceinteraction u:object_r:voiceinteraction_service:s0 +vold u:object_r:vold_service:s0 vr_hwc u:object_r:vr_hwc_service:s0 vrmanager u:object_r:vr_manager_service:s0 wallpaper u:object_r:wallpaper_service:s0 diff --git a/private/shell.te b/private/shell.te index 088682015..5299532ac 100644 --- a/private/shell.te +++ b/private/shell.te @@ -6,7 +6,6 @@ allow shell uhid_device:chr_file rw_file_perms; # systrace support - allow atrace to run allow shell debugfs_tracing:dir r_dir_perms; allow shell debugfs_tracing:file rw_file_perms; - allow shell debugfs_trace_marker:file getattr; allow shell atrace_exec:file rx_file_perms; diff --git a/private/storaged.te b/private/storaged.te index d5abd7314..8da1f26d8 100644 --- a/private/storaged.te +++ b/private/storaged.te @@ -15,6 +15,10 @@ allow storaged proc_uid_io_stats:file r_file_perms; # Read /data/system/packages.list allow storaged system_data_file:file r_file_perms; +# Store storaged proto file +allow storaged storaged_data_file:dir rw_dir_perms; +allow storaged storaged_data_file:file create_file_perms; + userdebug_or_eng(` # Read access to debugfs allow storaged debugfs_mmc:dir search; @@ -43,6 +47,9 @@ binder_call(storaged, healthd) # Implements a dumpsys interface. allow storaged dumpstate:fd use; +# use a subset of the package manager service +allow storaged package_native_service:service_manager find; + # Kernel does extra check on CAP_DAC_OVERRIDE for libbinder when storaged is # running as root. See b/35323867 #3. dontaudit storaged self:capability dac_override; diff --git a/private/surfaceflinger.te b/private/surfaceflinger.te index 3595ee426..b33035e8e 100644 --- a/private/surfaceflinger.te +++ b/private/surfaceflinger.te @@ -14,7 +14,6 @@ read_runtime_log_tags(surfaceflinger) hal_client_domain(surfaceflinger, hal_graphics_allocator) hal_client_domain(surfaceflinger, hal_graphics_composer) hal_client_domain(surfaceflinger, hal_configstore) -allow surfaceflinger hal_configstore_ISurfaceFlingerConfigs:hwservice_manager find; allow surfaceflinger hidl_token_hwservice:hwservice_manager find; # Perform Binder IPC. diff --git a/private/system_app.te b/private/system_app.te index c6fcf8e12..9d2ee2898 100644 --- a/private/system_app.te +++ b/private/system_app.te @@ -58,7 +58,15 @@ binder_call(system_app, incidentd) allow system_app servicemanager:service_manager list; # TODO: scope this down? Too broad? -allow system_app { service_manager_type -netd_service -dumpstate_service -installd_service -virtual_touchpad_service -vr_hwc_service }:service_manager find; +allow system_app { + service_manager_type + -dumpstate_service + -installd_service + -netd_service + -virtual_touchpad_service + -vold_service + -vr_hwc_service +}:service_manager find; allow system_app keystore:keystore_key { get_state diff --git a/private/system_server.te b/private/system_server.te index 80f406bd5..c1b184a31 100644 --- a/private/system_server.te +++ b/private/system_server.te @@ -16,11 +16,11 @@ allow system_server zygote_tmpfs:file read; # For art. allow system_server dalvikcache_data_file:dir r_dir_perms; -allow system_server dalvikcache_data_file:file { r_file_perms execute }; -userdebug_or_eng(` - # Report dalvikcache_data_file:file execute violations. - auditallow system_server dalvikcache_data_file:file execute; -') +allow system_server dalvikcache_data_file:file r_file_perms; + +# When running system server under --invoke-with, we'll try to load the boot image under the +# system server domain, following links to the system partition. +with_asan(`allow system_server dalvikcache_data_file:lnk_file r_file_perms;') # /data/resource-cache allow system_server resourcecache_data_file:file r_file_perms; @@ -74,6 +74,9 @@ allow system_server kernel:system module_request; # Allow alarmtimers to be set allow system_server self:capability2 wake_alarm; +# Create and share netlink_netfilter_sockets for tetheroffload. +allow system_server self:netlink_netfilter_socket create_socket_perms_no_ioctl; + # Use netlink uevent sockets. allow system_server self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; @@ -175,12 +178,14 @@ binder_call(system_server, gatekeeperd) binder_call(system_server, installd) binder_call(system_server, incidentd) binder_call(system_server, netd) +binder_call(system_server, vold) binder_call(system_server, wificond) binder_service(system_server) # Use HALs hal_client_domain(system_server, hal_allocator) hal_client_domain(system_server, hal_broadcastradio) +hal_client_domain(system_server, hal_configstore) hal_client_domain(system_server, hal_contexthub) hal_client_domain(system_server, hal_fingerprint) hal_client_domain(system_server, hal_gnss) @@ -188,6 +193,7 @@ hal_client_domain(system_server, hal_graphics_allocator) hal_client_domain(system_server, hal_ir) hal_client_domain(system_server, hal_light) hal_client_domain(system_server, hal_memtrack) +hal_client_domain(system_server, hal_neuralnetworks) hal_client_domain(system_server, hal_oemlock) allow system_server hal_omx_hwservice:hwservice_manager find; allow system_server hidl_token_hwservice:hwservice_manager find; @@ -245,6 +251,7 @@ allow system_server { hal_bluetooth_server hal_camera_server hal_graphics_composer_server + hal_sensors_server hal_vr_server mediacodec # TODO(b/36375899): hal_omx_server }:process { signal }; @@ -564,11 +571,11 @@ allow system_server mediametrics_service:service_manager find; allow system_server mediaextractor_service:service_manager find; allow system_server mediacodec_service:service_manager find; allow system_server mediadrmserver_service:service_manager find; -allow system_server mediacasserver_service:service_manager find; allow system_server netd_service:service_manager find; allow system_server nfc_service:service_manager find; allow system_server radio_service:service_manager find; allow system_server surfaceflinger_service:service_manager find; +allow system_server vold_service:service_manager find; allow system_server wificond_service:service_manager find; allow system_server keystore:keystore_key { @@ -668,9 +675,13 @@ allow system_server preloads_media_file:dir { r_dir_perms write remove_name rmdi r_dir_file(system_server, cgroup) allow system_server ion_device:chr_file r_file_perms; -r_dir_file(system_server, proc) +r_dir_file(system_server, proc_asound_cards) +r_dir_file(system_server, proc_loadavg) r_dir_file(system_server, proc_meminfo) r_dir_file(system_server, proc_net) +r_dir_file(system_server, proc_pagetypeinfo) +r_dir_file(system_server, proc_version) +r_dir_file(system_server, proc_vmallocinfo) r_dir_file(system_server, rootfs) r_dir_file(system_server, sysfs_type) @@ -686,10 +697,12 @@ allow system_server debugfs_tracing_instances:dir search; allow system_server debugfs_wifi_tracing:dir search; allow system_server debugfs_wifi_tracing:file rw_file_perms; -# allow system_server to exec shell on ASAN builds. Needed to run +# allow system_server to exec shell, asanwrapper & zygote(app_process) on ASAN builds. Needed to run # asanwrapper. with_asan(` allow system_server shell_exec:file rx_file_perms; + allow system_server asanwrapper_exec:file rx_file_perms; + allow system_server zygote_exec:file rx_file_perms; ') ### @@ -717,7 +730,7 @@ neverallow system_server { file_type -toolbox_exec -logcat_exec - with_asan(`-shell_exec') + with_asan(`-shell_exec -asanwrapper_exec -zygote_exec') }:file execute_no_trans; # Ensure that system_server doesn't perform any domain transitions other than diff --git a/private/technical_debt.cil b/private/technical_debt.cil index ccbae1088..974f32831 100644 --- a/private/technical_debt.cil +++ b/private/technical_debt.cil @@ -22,6 +22,11 @@ ; typeattribute { appdomain -isolated_app } hal_graphics_allocator_client; (typeattributeset hal_graphics_allocator_client ((and (appdomain) ((not (isolated_app)))))) +; Apps, except isolated apps, are clients of Cas HAL +; Unfortunately, we can't currently express this in module policy language: +; typeattribute { appdomain -isolated_app } hal_cas_client; +(typeattributeset hal_cas_client ((and (appdomain) ((not (isolated_app)))))) + ; Domains hosting Camera HAL implementations are clients of Allocator HAL ; Unfortunately, we can't currently express this in module policy language: ; typeattribute hal_camera hal_allocator_client; diff --git a/private/thermalserviced.te b/private/thermalserviced.te new file mode 100644 index 000000000..1a09e203e --- /dev/null +++ b/private/thermalserviced.te @@ -0,0 +1,4 @@ +typeattribute thermalserviced coredomain; + +init_daemon_domain(thermalserviced) + diff --git a/private/untrusted_app_all.te b/private/untrusted_app_all.te index fc80129a7..cce589ea2 100644 --- a/private/untrusted_app_all.te +++ b/private/untrusted_app_all.te @@ -41,6 +41,9 @@ allow untrusted_app_all asec_public_file:file { execute execmod }; allow untrusted_app_all shell_data_file:file r_file_perms; allow untrusted_app_all shell_data_file:dir r_dir_perms; +# Allow to read staged apks. +allow untrusted_app_all { apk_tmp_file apk_private_tmp_file }:file {read getattr}; + # Read and write system app data files passed over Binder. # Motivating case was /data/data/com.android.settings/cache/*.jpg for # cropping or taking user photos. @@ -70,7 +73,6 @@ allow untrusted_app_all mediaextractor_service:service_manager find; allow untrusted_app_all mediacodec_service:service_manager find; allow untrusted_app_all mediametrics_service:service_manager find; allow untrusted_app_all mediadrmserver_service:service_manager find; -allow untrusted_app_all mediacasserver_service:service_manager find; allow untrusted_app_all nfc_service:service_manager find; allow untrusted_app_all radio_service:service_manager find; allow untrusted_app_all surfaceflinger_service:service_manager find; diff --git a/private/untrusted_v2_app.te b/private/untrusted_v2_app.te index ef628414d..7ed388188 100644 --- a/private/untrusted_v2_app.te +++ b/private/untrusted_v2_app.te @@ -32,7 +32,6 @@ allow untrusted_v2_app mediaextractor_service:service_manager find; allow untrusted_v2_app mediacodec_service:service_manager find; allow untrusted_v2_app mediametrics_service:service_manager find; allow untrusted_v2_app mediadrmserver_service:service_manager find; -allow untrusted_v2_app mediacasserver_service:service_manager find; allow untrusted_v2_app nfc_service:service_manager find; allow untrusted_v2_app radio_service:service_manager find; allow untrusted_v2_app surfaceflinger_service:service_manager find; diff --git a/private/webview_zygote.te b/private/webview_zygote.te index c6ba4478d..3c5403b0d 100644 --- a/private/webview_zygote.te +++ b/private/webview_zygote.te @@ -43,6 +43,10 @@ allow webview_zygote system_server:process getpgid; # Interaction between the webview_zygote and its children. allow webview_zygote isolated_app:process setpgid; +# TODO (b/63631799) fix this access +# Suppress denials to storage. Webview zygote should not be accessing. +dontaudit webview_zygote mnt_expand_file:dir getattr; + # Get seapp_contexts allow webview_zygote seapp_contexts_file:file r_file_perms; # Check validity of SELinux context before use. diff --git a/public/asan_extract.te b/public/asan_extract.te index 6d0de6cf1..15c5a09fd 100644 --- a/public/asan_extract.te +++ b/public/asan_extract.te @@ -31,6 +31,6 @@ with_asan(` # Restorecon will actually already try to run with sanitized libraries (libpackagelistparser). allow asan_extract system_data_file:file execute; - # We use asan.restore_reboot to signal a reboot is required. - set_prop(asan_extract, asan_reboot_prop) + # We need to signal a reboot when done. + set_prop(asan_extract, powerctl_prop) ') diff --git a/public/attributes b/public/attributes index 094e398f4..986b0ed2a 100644 --- a/public/attributes +++ b/public/attributes @@ -29,6 +29,7 @@ attribute exec_type; # All types used for /data files. attribute data_file_type; +expandattribute data_file_type false; # All types in /data, not in /data/vendor attribute core_data_file_type; # All types in /vendor @@ -133,16 +134,19 @@ attribute coredomain_socket; # All vendor domains which violate the requirement of not using Binder # TODO(b/35870313): Remove this once there are no violations attribute binder_in_vendor_violators; +expandattribute binder_in_vendor_violators false; # All vendor domains which violate the requirement of not using sockets for # communicating with core components # TODO(b/36577153): Remove this once there are no violations attribute socket_between_core_and_vendor_violators; +expandattribute socket_between_core_and_vendor_violators false; # All vendor domains which violate the requirement of not executing # system processes # TODO(b/36463595) attribute vendor_executes_system_violators; +expandattribute vendor_executes_system_violators false; # hwservices that are accessible from untrusted applications # WARNING: Use of this attribute should be avoided unless @@ -152,11 +156,25 @@ attribute vendor_executes_system_violators; # attribute to be submitted to AOSP in order to maintain their # app-visibility. attribute untrusted_app_visible_hwservice; +expandattribute untrusted_app_visible_hwservice false; + +# halserver domains that are accessible to untrusted applications. These +# domains are typically those hosting hwservices attributed by the +# untrusted_app_visible_hwservice. +# WARNING: Use of this attribute should be avoided unless absolutely necessary. +# It is a temporary allowance to aid the transition to treble and will be +# removed in the future platform version, requiring all halserver domains that +# are labeled with this attribute to be submitted to AOSP in order to maintain +# their app-visibility. +attribute untrusted_app_visible_halserver; +expandattribute untrusted_app_visible_halserver false; # PDX services attribute pdx_endpoint_dir_type; attribute pdx_endpoint_socket_type; +expandattribute pdx_endpoint_socket_type false; attribute pdx_channel_socket_type; +expandattribute pdx_channel_socket_type false; pdx_service_attributes(display_client) pdx_service_attributes(display_manager) @@ -169,119 +187,48 @@ pdx_service_attributes(bufferhub_client) attribute halserverdomain; # All HAL clients attribute halclientdomain; +expandattribute halclientdomain true; # HALs -attribute hal_allocator; -attribute hal_allocator_client; -attribute hal_allocator_server; -attribute hal_audio; -attribute hal_audio_client; -attribute hal_audio_server; -attribute hal_bluetooth; -attribute hal_bluetooth_client; -attribute hal_bluetooth_server; -attribute hal_bootctl; -attribute hal_bootctl_client; -attribute hal_bootctl_server; -attribute hal_broadcastradio; -attribute hal_broadcastradio_client; -attribute hal_broadcastradio_server; -attribute hal_camera; -attribute hal_camera_client; -attribute hal_camera_server; -attribute hal_configstore; -attribute hal_configstore_client; -attribute hal_configstore_server; -attribute hal_contexthub; -attribute hal_contexthub_client; -attribute hal_contexthub_server; -attribute hal_drm; -attribute hal_drm_client; -attribute hal_drm_server; -attribute hal_dumpstate; -attribute hal_dumpstate_client; -attribute hal_dumpstate_server; -attribute hal_fingerprint; -attribute hal_fingerprint_client; -attribute hal_fingerprint_server; -attribute hal_gatekeeper; -attribute hal_gatekeeper_client; -attribute hal_gatekeeper_server; -attribute hal_gnss; -attribute hal_gnss_client; -attribute hal_gnss_server; -attribute hal_graphics_allocator; -attribute hal_graphics_allocator_client; -attribute hal_graphics_allocator_server; -attribute hal_graphics_composer; -attribute hal_graphics_composer_client; -attribute hal_graphics_composer_server; -attribute hal_health; -attribute hal_health_client; -attribute hal_health_server; -attribute hal_ir; -attribute hal_ir_client; -attribute hal_ir_server; -attribute hal_keymaster; -attribute hal_keymaster_client; -attribute hal_keymaster_server; -attribute hal_light; -attribute hal_light_client; -attribute hal_light_server; -attribute hal_memtrack; -attribute hal_memtrack_client; -attribute hal_memtrack_server; -attribute hal_nfc; -attribute hal_nfc_client; -attribute hal_nfc_server; -attribute hal_oemlock; -attribute hal_oemlock_client; -attribute hal_oemlock_server; -attribute hal_power; -attribute hal_power_client; -attribute hal_power_server; -attribute hal_sensors; -attribute hal_sensors_client; -attribute hal_sensors_server; -attribute hal_telephony; -attribute hal_telephony_client; -attribute hal_telephony_server; -attribute hal_tetheroffload; -attribute hal_tetheroffload_client; -attribute hal_tetheroffload_server; -attribute hal_thermal; -attribute hal_thermal_client; -attribute hal_thermal_server; -attribute hal_tv_cec; -attribute hal_tv_cec_client; -attribute hal_tv_cec_server; -attribute hal_tv_input; -attribute hal_tv_input_client; -attribute hal_tv_input_server; -attribute hal_usb; -attribute hal_usb_client; -attribute hal_usb_server; -attribute hal_vibrator; -attribute hal_vibrator_client; -attribute hal_vibrator_server; -attribute hal_vr; -attribute hal_vr_client; -attribute hal_vr_server; -attribute hal_weaver; -attribute hal_weaver_client; -attribute hal_weaver_server; -attribute hal_wifi; -attribute hal_wifi_client; -attribute hal_wifi_server; -attribute hal_wifi_keystore; -attribute hal_wifi_keystore_client; -attribute hal_wifi_keystore_server; -attribute hal_wifi_offload; -attribute hal_wifi_offload_client; -attribute hal_wifi_offload_server; -attribute hal_wifi_supplicant; -attribute hal_wifi_supplicant_client; -attribute hal_wifi_supplicant_server; +hal_attribute(allocator); +hal_attribute(audio); +hal_attribute(bluetooth); +hal_attribute(bootctl); +hal_attribute(broadcastradio); +hal_attribute(camera); +hal_attribute(configstore); +hal_attribute(contexthub); +hal_attribute(drm); +hal_attribute(cas); +hal_attribute(dumpstate); +hal_attribute(fingerprint); +hal_attribute(gatekeeper); +hal_attribute(gnss); +hal_attribute(graphics_allocator); +hal_attribute(graphics_composer); +hal_attribute(health); +hal_attribute(ir); +hal_attribute(keymaster); +hal_attribute(light); +hal_attribute(lowpan); +hal_attribute(memtrack); +hal_attribute(neuralnetworks); +hal_attribute(nfc); +hal_attribute(oemlock); +hal_attribute(power); +hal_attribute(sensors); +hal_attribute(telephony); +hal_attribute(tetheroffload); +hal_attribute(thermal); +hal_attribute(tv_cec); +hal_attribute(tv_input); +hal_attribute(usb); +hal_attribute(vibrator); +hal_attribute(vr); +hal_attribute(weaver); +hal_attribute(wifi); +hal_attribute(wifi_offload); +hal_attribute(wifi_supplicant); # HwBinder services offered across the core-vendor boundary # diff --git a/public/bootanim.te b/public/bootanim.te index 29e58c72f..32602273d 100644 --- a/public/bootanim.te +++ b/public/bootanim.te @@ -2,6 +2,7 @@ type bootanim, domain; type bootanim_exec, exec_type, file_type; +hal_client_domain(bootanim, hal_configstore) hal_client_domain(bootanim, hal_graphics_allocator) hal_client_domain(bootanim, hal_graphics_composer) diff --git a/public/device.te b/public/device.te index 0f64bfabb..1d0104529 100644 --- a/public/device.te +++ b/public/device.te @@ -30,7 +30,7 @@ type hw_random_device, dev_type; type input_device, dev_type; type kmem_device, dev_type; type port_device, dev_type; -type log_device, dev_type, mlstrustedobject; +type lowpan_device, dev_type; type mtd_device, dev_type; type mtp_device, dev_type, mlstrustedobject; type nfc_device, dev_type; diff --git a/public/domain.te b/public/domain.te index 95b18c92b..c471a50f1 100644 --- a/public/domain.te +++ b/public/domain.te @@ -75,7 +75,7 @@ allow { } binder_device:chr_file rw_file_perms; # Devices which are not full TREBLE have fewer restrictions on access to /dev/binder not_full_treble(`allow { domain -hwservicemanager -vndservicemanager } binder_device:chr_file rw_file_perms;') -allow { domain -servicemanager -vndservicemanager } hwbinder_device:chr_file rw_file_perms; +allow { domain -servicemanager -vndservicemanager -isolated_app } hwbinder_device:chr_file rw_file_perms; allow domain ptmx_device:chr_file rw_file_perms; allow domain alarm_device:chr_file r_file_perms; allow domain random_device:chr_file rw_file_perms; @@ -219,6 +219,9 @@ allow { domain -domain } hwservice_manager_type:hwservice_manager { add find }; # when it's not explicitly used in allow rules allow { domain -domain } vndservice_manager_type:service_manager { add find }; +# Under ASAN, processes will try to read /data, as the sanitized libraries are there. +with_asan(`allow domain system_data_file:dir getattr;') + ### ### neverallow rules ### @@ -314,6 +317,7 @@ neverallow * port_device:chr_file ~{ create relabelto unlink setattr getattr }; # Only init should be able to configure kernel usermodehelpers or # security-sensitive proc settings. neverallow { domain -init } usermodehelper:file { append write }; +neverallow { domain -init -ueventd } sysfs_usermodehelper:file { append write }; neverallow { domain -init } proc_security:file { append open read write }; # No domain should be allowed to ptrace init. @@ -352,7 +356,6 @@ neverallow { -dumpstate -shell userdebug_or_eng(`-su') - -system_server -webview_zygote -zygote } { @@ -452,6 +455,7 @@ neverallow { -adbd -dumpstate -hal_drm + -hal_cas -init -mediadrmserver -recovery @@ -498,7 +502,6 @@ neverallow { -recovery -ueventd } misc_block_device:blk_file { append link relabelfrom rename write open read ioctl lock }; -neverallow hal_bootctl unlabeled:service_manager list; #TODO: b/62658302 # Only (hw|vnd|)servicemanager should be able to register with binder as the context manager neverallow { domain -servicemanager -hwservicemanager -vndservicemanager } *:binder set_context_mgr; @@ -539,7 +542,6 @@ full_treble_only(` -cameraserver_service -drmserver_service -keystore_service - -mediacasserver_service -mediadrmserver_service -mediaextractor_service -mediametrics_service @@ -557,7 +559,6 @@ full_treble_only(` -appdomain -binder_in_vendor_violators # TODO(b/35870313): Remove once all violations are gone } servicemanager:binder { call transfer }; - neverallow binder_in_vendor_violators unlabeled:service_manager list ; #TODO: b/62658302 ') # On full TREBLE devices, only vendor components, shell, and su can use VendorBinder. @@ -616,7 +617,6 @@ full_treble_only(` -incidentd # TODO(b/35870313): Remove incidentd from this list once vendor domains no longer declare Binder services -tombstoned # TODO(b/36604251): Remove tombstoned from this list once mediacodec (OMX HAL) no longer declares Binder services }); - neverallow socket_between_core_and_vendor_violators unlabeled:service_manager list ; #TODO: b/62658302 # Vendor domains (except netdomain) are not permitted to initiate communications to netd sockets neverallow_establish_socket_comms({ @@ -648,10 +648,6 @@ full_treble_only(` -pdx_endpoint_socket_type # used by VR layer -pdx_channel_socket_type # used by VR layer }:sock_file ~{ append getattr ioctl read write }; - neverallow { - pdx_endpoint_socket_type - pdx_channel_socket_type - } unlabeled:service_manager list; #TODO: b/62658302 # Core domains are not permitted to create/open sockets owned by vendor domains neverallow { @@ -736,7 +732,6 @@ full_treble_only(` -crash_dump_exec -netutils_wrapper_exec }:file { entrypoint execute execute_no_trans }; - neverallow vendor_executes_system_violators unlabeled:service_manager list; #TODO: b/62658302 ') # Only authorized processes should be writing to files in /data/dalvik-cache @@ -781,13 +776,6 @@ neverallow { -mediaextractor } tombstoned_crash_socket:unix_stream_socket connectto; -neverallow { - domain - -crash_dump - -mediacodec - -mediaextractor -} tombstoned_crash_socket:sock_file write; - # Never allow anyone except dumpstate or the system server to connect or write to # the tombstoned intercept socket. neverallow { domain -dumpstate -system_server } tombstoned_intercept_socket:sock_file write; diff --git a/public/dumpstate.te b/public/dumpstate.te index 42d744d43..d0204a50b 100644 --- a/public/dumpstate.te +++ b/public/dumpstate.te @@ -73,6 +73,7 @@ allow dumpstate { hal_bluetooth_server hal_camera_server hal_graphics_composer_server + hal_sensors_server hal_vr_server mediacodec # TODO(b/36375899): hal_omx_server }:process signal; @@ -152,6 +153,9 @@ read_runtime_log_tags(dumpstate) # Read files in /proc allow dumpstate proc_meminfo:file r_file_perms; allow dumpstate proc_net:file r_file_perms; +allow dumpstate proc_pagetypeinfo:file r_file_perms; +allow dumpstate proc_version:file r_file_perms; +allow dumpstate proc_vmallocinfo:file r_file_perms; r_dir_file(dumpstate, proc) # Read network state info files. @@ -185,7 +189,15 @@ userdebug_or_eng(` allow dumpstate misc_logd_file:file r_file_perms; ') -allow dumpstate { service_manager_type -gatekeeper_service -dumpstate_service -incident_service -virtual_touchpad_service -vr_hwc_service }:service_manager find; +allow dumpstate { + service_manager_type + -dumpstate_service + -gatekeeper_service + -incident_service + -virtual_touchpad_service + -vold_service + -vr_hwc_service +}:service_manager find; allow dumpstate servicemanager:service_manager list; allow dumpstate hwservicemanager:hwservice_manager list; diff --git a/public/e2fs.te b/public/e2fs.te index ecb25a2cf..a95512128 100644 --- a/public/e2fs.te +++ b/public/e2fs.te @@ -1 +1,18 @@ +type e2fs, domain, coredomain; type e2fs_exec, exec_type, file_type; + +allow e2fs block_device:blk_file getattr; +allow e2fs block_device:dir search; +allow e2fs userdata_block_device:blk_file rw_file_perms; + +allow e2fs { + proc_filesystems + proc_mounts + proc_swaps +}:file r_file_perms; + +# access /sys/fs/ext4/features +allow e2fs sysfs_fs_ext4_features:file r_file_perms; + +# access sselinux context files +allow e2fs file_contexts_file:file { getattr open read }; diff --git a/public/file.te b/public/file.te index 4a6feb8dd..51a0439d6 100644 --- a/public/file.te +++ b/public/file.te @@ -9,19 +9,27 @@ type proc_security, fs_type; type proc_drop_caches, fs_type; type proc_overcommit_memory, fs_type; # proc, sysfs, or other nodes that permit configuration of kernel usermodehelpers. -type usermodehelper, fs_type, sysfs_type; +type usermodehelper, fs_type; +type sysfs_usermodehelper, fs_type, sysfs_type; type qtaguid_proc, fs_type, mlstrustedobject; type proc_bluetooth_writable, fs_type; +type proc_asound_cards, fs_type; +type proc_cmdline, fs_type; type proc_cpuinfo, fs_type; +type proc_filesystems, fs_type; type proc_interrupts, fs_type; type proc_iomem, fs_type; type proc_kmsg, fs_type; +type proc_loadavg, fs_type; type proc_meminfo, fs_type; type proc_misc, fs_type; type proc_modules, fs_type; +type proc_mounts, fs_type; type proc_net, fs_type; +type proc_pagetypeinfo, fs_type; type proc_perf, fs_type; type proc_stat, fs_type; +type proc_swaps, fs_type; type proc_sysrq, fs_type; type proc_timer, fs_type; type proc_tty_drivers, fs_type; @@ -30,6 +38,8 @@ type proc_uid_cputime_removeuid, fs_type; type proc_uid_io_stats, fs_type; type proc_uid_procstat_set, fs_type; type proc_uid_time_in_state, fs_type; +type proc_version, fs_type; +type proc_vmallocinfo, fs_type; type proc_zoneinfo, fs_type; type selinuxfs, fs_type, mlstrustedobject; type cgroup, fs_type, mlstrustedobject; @@ -65,13 +75,14 @@ type mqueue, fs_type; type fuse, sdcard_type, fs_type, mlstrustedobject; type sdcardfs, sdcard_type, fs_type, mlstrustedobject; type vfat, sdcard_type, fs_type, mlstrustedobject; -type debugfs, fs_type; +type debugfs, fs_type, debugfs_type; type debugfs_mmc, fs_type, debugfs_type; type debugfs_trace_marker, fs_type, debugfs_type, mlstrustedobject; type debugfs_tracing, fs_type, debugfs_type; type debugfs_tracing_debug, fs_type, debugfs_type; type debugfs_tracing_instances, fs_type, debugfs_type; type debugfs_wifi_tracing, fs_type, debugfs_type; + type pstorefs, fs_type; type functionfs, fs_type, mlstrustedobject; type oemfs, fs_type, contextmount_type; @@ -218,13 +229,13 @@ type app_data_file, file_type, data_file_type, core_data_file_type; type system_app_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject; # Compatibility with type name used in Android 4.3 and 4.4. # Default type for anything under /cache -type cache_file, file_type, mlstrustedobject; +type cache_file, file_type, data_file_type, mlstrustedobject; # Type for /cache/backup_stage/* (fd interchange with apps) -type cache_backup_file, file_type, mlstrustedobject; +type cache_backup_file, file_type, data_file_type, mlstrustedobject; # type for anything under /cache/backup (local transport storage) -type cache_private_backup_file, file_type; +type cache_private_backup_file, file_type, data_file_type; # Type for anything under /cache/recovery -type cache_recovery_file, file_type, mlstrustedobject; +type cache_recovery_file, file_type, data_file_type, mlstrustedobject; # Default type for anything under /efs type efs_file, file_type; # Type for wallpaper file. @@ -252,7 +263,7 @@ type app_fuse_file, file_type, data_file_type, core_data_file_type, mlstrustedob # Socket types type adbd_socket, file_type, coredomain_socket; -type bluetooth_socket, file_type, coredomain_socket; +type bluetooth_socket, file_type, data_file_type, coredomain_socket; type dnsproxyd_socket, file_type, coredomain_socket, mlstrustedobject; type dumpstate_socket, file_type, coredomain_socket; type fwmarkd_socket, file_type, coredomain_socket, mlstrustedobject; @@ -262,22 +273,22 @@ type logdr_socket, file_type, coredomain_socket, mlstrustedobject; type logdw_socket, file_type, coredomain_socket, mlstrustedobject; type mdns_socket, file_type, coredomain_socket; type mdnsd_socket, file_type, coredomain_socket, mlstrustedobject; -type misc_logd_file, coredomain_socket, file_type; +type misc_logd_file, coredomain_socket, file_type, data_file_type; type mtpd_socket, file_type, coredomain_socket; type netd_socket, file_type, coredomain_socket; type property_socket, file_type, coredomain_socket, mlstrustedobject; type racoon_socket, file_type, coredomain_socket; type rild_socket, file_type; type rild_debug_socket, file_type; -type system_wpa_socket, file_type, coredomain_socket; -type system_ndebug_socket, file_type, coredomain_socket, mlstrustedobject; +type system_wpa_socket, file_type, data_file_type, coredomain_socket; +type system_ndebug_socket, file_type, data_file_type, coredomain_socket, mlstrustedobject; type tombstoned_crash_socket, file_type, coredomain_socket, mlstrustedobject; type tombstoned_java_trace_socket, file_type, mlstrustedobject; type tombstoned_intercept_socket, file_type, coredomain_socket; type uncrypt_socket, file_type, coredomain_socket; type vold_socket, file_type, coredomain_socket; type webview_zygote_socket, file_type, coredomain_socket; -type wpa_socket, file_type; +type wpa_socket, file_type, data_file_type; type zygote_socket, file_type, coredomain_socket; # UART (for GPS) control proc file type gps_control, file_type; @@ -312,6 +323,9 @@ type sepolicy_file, file_type; # service_contexts file type service_contexts_file, file_type; +# nonplat service_contexts file (only accessible on non full-treble devices) +type nonplat_service_contexts_file, file_type; + # hwservice_contexts file type hwservice_contexts_file, file_type; @@ -330,6 +344,9 @@ allow dev_type tmpfs:filesystem associate; allow app_fuse_file app_fusefs:filesystem associate; allow postinstall_file self:filesystem associate; +# asanwrapper (run a sanitized app_process, to be used with wrap properties) +with_asan(`type asanwrapper_exec, exec_type, file_type;') + # It's a bug to assign the file_type attribute and fs_type attribute # to any type. Do not allow it. # diff --git a/public/fsck.te b/public/fsck.te index b682a877f..7cc7e8b18 100644 --- a/public/fsck.te +++ b/public/fsck.te @@ -30,7 +30,10 @@ allow fsck dm_device:blk_file rw_file_perms; # major/minor values. allow fsck dev_type:blk_file getattr; -r_dir_file(fsck, proc) +allow fsck { + proc_mounts + proc_swaps +}:file r_file_perms; allow fsck rootfs:dir r_dir_perms; ### diff --git a/public/fsck_untrusted.te b/public/fsck_untrusted.te index e2aceb87b..8510c9424 100644 --- a/public/fsck_untrusted.te +++ b/public/fsck_untrusted.te @@ -12,7 +12,7 @@ allow fsck_untrusted vold:fifo_file { read write getattr }; allow fsck_untrusted block_device:dir search; allow fsck_untrusted vold_device:blk_file rw_file_perms; -r_dir_file(fsck_untrusted, proc) +allow fsck_untrusted proc_mounts:file r_file_perms; # To determine if it is safe to run fsck on a filesystem, e2fsck # must first determine if the filesystem is mounted. To do that, diff --git a/public/gatekeeperd.te b/public/gatekeeperd.te index ff369567b..2fc36279d 100644 --- a/public/gatekeeperd.te +++ b/public/gatekeeperd.te @@ -29,9 +29,6 @@ allow gatekeeperd keystore:keystore_key { add_auth }; allow gatekeeperd system_server:binder call; allow gatekeeperd permission_service:service_manager find; -# For parent user ID lookup -allow gatekeeperd user_service:service_manager find; - # for SID file access allow gatekeeperd gatekeeper_data_file:dir rw_dir_perms; allow gatekeeperd gatekeeper_data_file:file create_file_perms; diff --git a/public/hal_audio.te b/public/hal_audio.te index 33330bf6b..be7e23550 100644 --- a/public/hal_audio.te +++ b/public/hal_audio.te @@ -14,6 +14,7 @@ userdebug_or_eng(` ') r_dir_file(hal_audio, proc) +r_dir_file(hal_audio, proc_asound_cards) allow hal_audio audio_device:dir r_dir_perms; allow hal_audio audio_device:chr_file rw_file_perms; diff --git a/public/hal_cas.te b/public/hal_cas.te new file mode 100644 index 000000000..fd5d63bb4 --- /dev/null +++ b/public/hal_cas.te @@ -0,0 +1,37 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_cas_client, hal_cas_server) +binder_call(hal_cas_server, hal_cas_client) + +add_hwservice(hal_cas_server, hal_cas_hwservice) +allow hal_cas_client hal_cas_hwservice:hwservice_manager find; +allow hal_cas_server hidl_memory_hwservice:hwservice_manager find; + +# Permit reading device's serial number from system properties +get_prop(hal_cas, serialno_prop) + +# Read files already opened under /data +allow hal_cas system_data_file:dir { search getattr }; +allow hal_cas system_data_file:file { getattr read }; +allow hal_cas system_data_file:lnk_file r_file_perms; + +# Read access to pseudo filesystems +r_dir_file(hal_cas, cgroup) +allow hal_cas cgroup:dir { search write }; +allow hal_cas cgroup:file w_file_perms; + +# Allow access to ion memory allocation device +allow hal_cas ion_device:chr_file rw_file_perms; +allow hal_cas hal_graphics_allocator:fd use; + +allow hal_cas tee_device:chr_file rw_file_perms; + +### +### neverallow rules +### + +# hal_cas should never execute any executable without a +# domain transition +neverallow hal_cas { file_type fs_type }:file execute_no_trans; + +# do not allow privileged socket ioctl commands +neverallowxperm hal_cas domain:{ rawip_socket tcp_socket udp_socket } ioctl priv_sock_ioctls; diff --git a/public/hal_configstore.te b/public/hal_configstore.te index 4bf6cfd52..d5f2ef6fe 100644 --- a/public/hal_configstore.te +++ b/public/hal_configstore.te @@ -1,7 +1,64 @@ # HwBinder IPC from client to server binder_call(hal_configstore_client, hal_configstore_server) +allow hal_configstore_client hal_configstore_ISurfaceFlingerConfigs:hwservice_manager find; + add_hwservice(hal_configstore_server, hal_configstore_ISurfaceFlingerConfigs) # As opposed to the rules of most other HALs, the different services exposed by # this HAL should be restricted to different clients. Thus, the allow rules for # clients are defined in the .te files of the clients. + +# hal_configstore runs with a strict seccomp filter. Use crash_dump's +# fallback path to collect crash data. +crash_dump_fallback(hal_configstore_server) + +### +### neverallow rules +### + +# Should never execute an executable without a domain transition +neverallow hal_configstore_server { file_type fs_type }:file execute_no_trans; + +# Should never need network access. Disallow sockets except for +# for unix stream/dgram sockets used for logging/debugging. +neverallow hal_configstore_server domain:{ + rawip_socket tcp_socket udp_socket + netlink_route_socket netlink_selinux_socket + socket netlink_socket packet_socket key_socket appletalk_socket + netlink_tcpdiag_socket netlink_nflog_socket + netlink_xfrm_socket netlink_audit_socket + netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket + netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket + netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket + netlink_rdma_socket netlink_crypto_socket +} *; +neverallow hal_configstore_server { + domain + -hal_configstore_server + -logd + userdebug_or_eng(`-su') + -tombstoned +}:{ unix_dgram_socket unix_stream_socket } *; + +# Should never need access to anything on /data +neverallow hal_configstore_server { + data_file_type + -anr_data_file # for crash dump collection + -tombstone_data_file # for crash dump collection + -zoneinfo_data_file # granted to domain +}:{ file fifo_file sock_file } *; + +# Should never need sdcard access +neverallow hal_configstore_server { fuse sdcardfs vfat }:file *; + +# Do not permit access to service_manager and vndservice_manager +neverallow hal_configstore_server *:service_manager *; + +# No privileged capabilities +neverallow hal_configstore_server self:capability_class_set *; + +# No ptracing other processes +neverallow hal_configstore_server *:process ptrace; + +# no relabeling +neverallow hal_configstore_server *:dir_file_class_set { relabelfrom relabelto }; diff --git a/public/hal_lowpan.te b/public/hal_lowpan.te new file mode 100644 index 000000000..af491b159 --- /dev/null +++ b/public/hal_lowpan.te @@ -0,0 +1,21 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_lowpan_client, hal_lowpan_server) +binder_call(hal_lowpan_server, hal_lowpan_client) + +add_hwservice(hal_lowpan_server, hal_lowpan_hwservice) + +# Allow hal_lowpan_client to be able to find the hal_lowpan_server +allow hal_lowpan_client hal_lowpan_hwservice:hwservice_manager find; + +# hal_lowpan domain can write/read to/from lowpan_prop +set_prop(hal_lowpan_server, lowpan_prop) + +# Allow hal_lowpan_server to open lowpan_devices +allow hal_lowpan_server lowpan_device:chr_file rw_file_perms; + +### +### neverallow rules +### + +# Only LoWPAN HAL may directly access LoWPAN hardware +neverallow { domain -hal_lowpan_server -init -ueventd } lowpan_device:chr_file ~getattr; diff --git a/public/hal_neuralnetworks.te b/public/hal_neuralnetworks.te new file mode 100644 index 000000000..c697ac2f2 --- /dev/null +++ b/public/hal_neuralnetworks.te @@ -0,0 +1,8 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_neuralnetworks_client, hal_neuralnetworks_server) +binder_call(hal_neuralnetworks_server, hal_neuralnetworks_client) + +add_hwservice(hal_neuralnetworks_server, hal_neuralnetworks_hwservice) +allow hal_neuralnetworks_client hal_neuralnetworks_hwservice:hwservice_manager find; +allow hal_neuralnetworks hidl_memory_hwservice:hwservice_manager find; +allow hal_neuralnetworks hal_allocator:fd use; diff --git a/public/hal_neverallows.te b/public/hal_neverallows.te index fc2b5f630..036e1d2dc 100644 --- a/public/hal_neverallows.te +++ b/public/hal_neverallows.te @@ -17,7 +17,6 @@ neverallow { -hal_wifi_supplicant_server -rild } domain:{ tcp_socket udp_socket rawip_socket } *; -neverallow hal_tetheroffload_server unlabeled:service_manager list; #TODO: b/62658302 ### # HALs are defined as an attribute and so a given domain could hypothetically diff --git a/public/hal_tetheroffload.te b/public/hal_tetheroffload.te index a4c21fcdf..48d67a29b 100644 --- a/public/hal_tetheroffload.te +++ b/public/hal_tetheroffload.te @@ -1,3 +1,8 @@ ## HwBinder IPC from client to server, and callbacks binder_call(hal_tetheroffload_client, hal_tetheroffload_server) binder_call(hal_tetheroffload_server, hal_tetheroffload_client) + +allow hal_tetheroffload_client hal_tetheroffload_hwservice:hwservice_manager find; + +# allow the client to pass the server already open netlink sockets +allow hal_tetheroffload_server hal_tetheroffload_client:netlink_netfilter_socket { getattr read setopt write }; diff --git a/public/hal_wifi_offload.te b/public/hal_wifi_offload.te index dac5171b1..dc0cf5a73 100644 --- a/public/hal_wifi_offload.te +++ b/public/hal_wifi_offload.te @@ -2,5 +2,8 @@ binder_call(hal_wifi_offload_client, hal_wifi_offload_server) binder_call(hal_wifi_offload_server, hal_wifi_offload_client) +add_hwservice(hal_wifi_offload_server, hal_wifi_offload_hwservice) +allow hal_wifi_offload_client hal_wifi_offload_hwservice:hwservice_manager find; + r_dir_file(hal_wifi_offload, proc_net) r_dir_file(hal_wifi_offload, sysfs_type) diff --git a/public/hwservice.te b/public/hwservice.te index d3376a704..19a72051b 100644 --- a/public/hwservice.te +++ b/public/hwservice.te @@ -10,6 +10,7 @@ type hal_camera_hwservice, hwservice_manager_type; type hal_configstore_ISurfaceFlingerConfigs, hwservice_manager_type; type hal_contexthub_hwservice, hwservice_manager_type; type hal_drm_hwservice, hwservice_manager_type; +type hal_cas_hwservice, hwservice_manager_type; type hal_dumpstate_hwservice, hwservice_manager_type; type hal_fingerprint_hwservice, hwservice_manager_type; type hal_gatekeeper_hwservice, hwservice_manager_type; @@ -21,7 +22,9 @@ type hal_health_hwservice, hwservice_manager_type; type hal_ir_hwservice, hwservice_manager_type; type hal_keymaster_hwservice, hwservice_manager_type; type hal_light_hwservice, hwservice_manager_type; +type hal_lowpan_hwservice, hwservice_manager_type; type hal_memtrack_hwservice, hwservice_manager_type; +type hal_neuralnetworks_hwservice, hwservice_manager_type; type hal_nfc_hwservice, hwservice_manager_type; type hal_oemlock_hwservice, hwservice_manager_type; type hal_omx_hwservice, hwservice_manager_type; @@ -29,6 +32,7 @@ type hal_power_hwservice, hwservice_manager_type; type hal_renderscript_hwservice, hwservice_manager_type, same_process_hwservice; type hal_sensors_hwservice, hwservice_manager_type; type hal_telephony_hwservice, hwservice_manager_type; +type hal_tetheroffload_hwservice, hwservice_manager_type; type hal_thermal_hwservice, hwservice_manager_type; type hal_tv_cec_hwservice, hwservice_manager_type; type hal_tv_input_hwservice, hwservice_manager_type; @@ -37,10 +41,13 @@ type hal_vibrator_hwservice, hwservice_manager_type; type hal_vr_hwservice, hwservice_manager_type; type hal_weaver_hwservice, hwservice_manager_type; type hal_wifi_hwservice, hwservice_manager_type; +type hal_wifi_offload_hwservice, hwservice_manager_type; type hal_wifi_supplicant_hwservice, hwservice_manager_type; type hidl_allocator_hwservice, hwservice_manager_type, coredomain_hwservice; type hidl_base_hwservice, hwservice_manager_type; type hidl_manager_hwservice, hwservice_manager_type, coredomain_hwservice; type hidl_memory_hwservice, hwservice_manager_type, coredomain_hwservice; type hidl_token_hwservice, hwservice_manager_type, coredomain_hwservice; +type system_net_netd_hwservice, hwservice_manager_type, coredomain_hwservice; type system_wifi_keystore_hwservice, hwservice_manager_type, coredomain_hwservice; +type thermalcallback_hwservice, hwservice_manager_type; diff --git a/public/init.te b/public/init.te index c05fc5509..db2ce433d 100644 --- a/public/init.te +++ b/public/init.te @@ -253,7 +253,7 @@ allow init kernel:system syslog_mod; allow init self:capability2 syslog; # Set usermodehelpers and /proc security settings. -allow init usermodehelper:file rw_file_perms; +allow init { usermodehelper sysfs_usermodehelper }:file rw_file_perms; allow init proc_security:file rw_file_perms; # Write to /proc/sys/kernel/panic_on_oops. @@ -271,6 +271,12 @@ allow init proc_sysrq:file w_file_perms; # Read /proc/stat for bootchart. allow init proc_stat:file r_file_perms; +# Read /proc/version. +allow init proc_version:file r_file_perms; + +# Read /proc/cmdline +allow init proc_cmdline:file r_file_perms; + # Reboot. allow init self:capability sys_boot; diff --git a/public/kernel.te b/public/kernel.te index 7f5d22443..64111b0fa 100644 --- a/public/kernel.te +++ b/public/kernel.te @@ -6,6 +6,7 @@ allow kernel self:capability sys_nice; # Root fs. r_dir_file(kernel, rootfs) r_dir_file(kernel, proc) +allow kernel proc_cmdline:file r_file_perms; # Get SELinux enforcing status. allow kernel selinuxfs:dir r_dir_perms; diff --git a/public/mediacodec.te b/public/mediacodec.te index 5ca41fcf1..bcccbb81a 100644 --- a/public/mediacodec.te +++ b/public/mediacodec.te @@ -37,6 +37,8 @@ add_hwservice(mediacodec, hal_omx_hwservice) hal_client_domain(mediacodec, hal_allocator) +hal_client_domain(mediacodec, hal_cas) + # allocate and use graphic buffers hal_client_domain(mediacodec, hal_graphics_allocator) diff --git a/public/mediadrmserver.te b/public/mediadrmserver.te index cef81212a..123cb29a5 100644 --- a/public/mediadrmserver.te +++ b/public/mediadrmserver.te @@ -18,8 +18,6 @@ allow mediadrmserver processinfo_service:service_manager find; allow mediadrmserver surfaceflinger_service:service_manager find; allow mediadrmserver system_file:dir r_dir_perms; -add_service(mediadrmserver, mediacasserver_service) - binder_call(mediadrmserver, mediacodec) ### ### neverallow rules diff --git a/public/mediaextractor.te b/public/mediaextractor.te index 94824b75e..05e65bf94 100644 --- a/public/mediaextractor.te +++ b/public/mediaextractor.te @@ -11,10 +11,12 @@ binder_service(mediaextractor) add_service(mediaextractor, mediaextractor_service) allow mediaextractor mediametrics_service:service_manager find; -allow mediaextractor mediacasserver_service:service_manager find; +allow mediaextractor hidl_token_hwservice:hwservice_manager find; allow mediaextractor system_server:fd use; +hal_client_domain(mediaextractor, hal_cas) + r_dir_file(mediaextractor, cgroup) allow mediaextractor proc_meminfo:file r_file_perms; diff --git a/public/mediametrics.te b/public/mediametrics.te index 4c10d878c..ada90cca3 100644 --- a/public/mediametrics.te +++ b/public/mediametrics.te @@ -17,6 +17,9 @@ allow mediametrics proc_meminfo:file r_file_perms; # allows interactions with dumpsys to GMScore allow mediametrics app_data_file:file write; +# allow access to package manager for uid->apk mapping +allow mediametrics package_native_service:service_manager find; + ### ### neverallow rules ### diff --git a/public/netd.te b/public/netd.te index 11e0e5cba..aa99da21a 100644 --- a/public/netd.te +++ b/public/netd.te @@ -91,6 +91,11 @@ allow netd netdomain:fd use; # 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 to register as hal server. +add_hwservice(netd, system_net_netd_hwservice) +hwbinder_use(netd) +get_prop(netd, hwservicemanager_prop) + ### ### Neverallow rules ### diff --git a/public/performanced.te b/public/performanced.te index 3d3fadb39..9bf813e1a 100644 --- a/public/performanced.te +++ b/public/performanced.te @@ -2,6 +2,11 @@ type performanced, domain, mlstrustedsubject; type performanced_exec, exec_type, file_type; +# Needed to check for app permissions. +binder_use(performanced) +binder_call(performanced, system_server) +allow performanced permission_service:service_manager find; + pdx_server(performanced, performance_client) # TODO: use file caps to obtain sys_nice instead of setuid / setgid. diff --git a/public/property.te b/public/property.te index 4daff1d15..713dc8373 100644 --- a/public/property.te +++ b/public/property.te @@ -1,4 +1,3 @@ -type asan_reboot_prop, property_type; type audio_prop, property_type, core_property_type; type boottime_prop, property_type; type bluetooth_prop, property_type; @@ -30,6 +29,7 @@ type logd_prop, property_type, core_property_type; type logpersistd_logging_prop, property_type; type log_prop, property_type, log_property_type; type log_tag_prop, property_type, log_property_type; +type lowpan_prop, property_type; type mmc_prop, property_type; type net_dns_prop, property_type; type net_radio_prop, property_type, core_property_type; diff --git a/public/recovery.te b/public/recovery.te index d200f71a7..187251a4f 100644 --- a/public/recovery.te +++ b/public/recovery.te @@ -77,6 +77,9 @@ recovery_only(` allow recovery functionfs:dir search; allow recovery functionfs:file rw_file_perms; + # Access to /sys/fs/selinux/policyvers for compatibility check + allow recovery selinuxfs:file r_file_perms; + # Required to e.g. wipe userdata/cache. allow recovery device:dir r_dir_perms; allow recovery block_device:dir r_dir_perms; @@ -147,5 +150,13 @@ recovery_only(` # domains, including recovery. # # TODO: tighten this up further. -neverallow recovery data_file_type:file { no_w_file_perms no_x_file_perms }; -neverallow recovery data_file_type:dir no_w_dir_perms; +neverallow recovery { + data_file_type + -cache_file + -cache_recovery_file +}:file { no_w_file_perms no_x_file_perms }; +neverallow recovery { + data_file_type + -cache_file + -cache_recovery_file +}:dir no_w_dir_perms; diff --git a/public/rild.te b/public/rild.te index ee42e3804..4244ff365 100644 --- a/public/rild.te +++ b/public/rild.te @@ -19,12 +19,7 @@ allow rild efs_file:file create_file_perms; allow rild shell_exec:file rx_file_perms; allow rild bluetooth_efs_file:file r_file_perms; allow rild bluetooth_efs_file:dir r_dir_perms; -allow rild radio_data_file:dir rw_dir_perms; -allow rild radio_data_file:file create_file_perms; allow rild sdcard_type:dir r_dir_perms; -allow rild system_data_file:dir r_dir_perms; -allow rild system_data_file:file r_file_perms; -allow rild system_file:file x_file_perms; # property service set_prop(rild, radio_prop) diff --git a/public/sdcardd.te b/public/sdcardd.te index 47a2f8061..2af64102d 100644 --- a/public/sdcardd.te +++ b/public/sdcardd.te @@ -32,7 +32,7 @@ allow sdcardd vold:fifo_file { read write getattr }; allow sdcardd mnt_expand_file:dir search; # access /proc/filesystems -allow sdcardd proc:file r_file_perms; +allow sdcardd proc_filesystems:file r_file_perms; ### ### neverallow rules diff --git a/public/service.te b/public/service.te index c52c50a6d..068ea4e78 100644 --- a/public/service.te +++ b/public/service.te @@ -18,15 +18,16 @@ type mediametrics_service, service_manager_type; type mediaextractor_service, service_manager_type; type mediacodec_service, service_manager_type; type mediadrmserver_service, service_manager_type; -type mediacasserver_service, service_manager_type; type netd_service, service_manager_type; type nfc_service, service_manager_type; type radio_service, service_manager_type; type storaged_service, service_manager_type; type surfaceflinger_service, service_manager_type; type system_app_service, service_manager_type; +type thermal_service, service_manager_type; type update_engine_service, service_manager_type; type virtual_touchpad_service, service_manager_type; +type vold_service, service_manager_type; type vr_hwc_service, service_manager_type; # system_server_services broken down @@ -71,6 +72,7 @@ type netd_listener_service, system_server_service, service_manager_type; type DockObserver_service, system_server_service, service_manager_type; type dreams_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; type dropbox_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type lowpan_service, system_api_service, system_server_service, service_manager_type; type ethernet_service, app_api_service, system_server_service, service_manager_type; type fingerprint_service, app_api_service, system_server_service, service_manager_type; type gfxinfo_service, system_api_service, system_server_service, service_manager_type; @@ -102,6 +104,7 @@ type oem_lock_service, system_api_service, system_server_service, service_manage type otadexopt_service, system_server_service, service_manager_type; type overlay_service, system_api_service, system_server_service, service_manager_type; type package_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; +type package_native_service, system_server_service, service_manager_type; type permission_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type; type persistent_data_block_service, system_api_service, system_server_service, service_manager_type; type pinner_service, system_server_service, service_manager_type; diff --git a/public/servicemanager.te b/public/servicemanager.te index 3cf5a464d..c7cd738ba 100644 --- a/public/servicemanager.te +++ b/public/servicemanager.te @@ -16,10 +16,9 @@ allow servicemanager { -vndservicemanager }:binder transfer; -# Access to all (system and vendor) service_contexts -# TODO(b/36866029) access to nonplat_service_contexts -# should not be allowed on full treble devices allow servicemanager service_contexts_file:file r_file_perms; +# nonplat_service_contexts only accessible on non full-treble devices +not_full_treble(`allow servicemanager nonplat_service_contexts_file:file r_file_perms;') # Check SELinux permissions. selinux_check_access(servicemanager) diff --git a/public/shell.te b/public/shell.te index 36964e50f..84e76f2a3 100644 --- a/public/shell.te +++ b/public/shell.te @@ -89,7 +89,16 @@ allow shell servicemanager:service_manager list; # don't allow shell to access GateKeeper service # TODO: why is this so broad? Tightening candidate? It needs at list: # - dumpstate_service (so it can receive dumpstate progress updates) -allow shell { service_manager_type -gatekeeper_service -incident_service -installd_service -netd_service -virtual_touchpad_service -vr_hwc_service }:service_manager find; +allow shell { + service_manager_type + -gatekeeper_service + -incident_service + -installd_service + -netd_service + -virtual_touchpad_service + -vold_service + -vr_hwc_service +}:service_manager find; allow shell dumpstate:binder call; # allow shell to get information from hwservicemanager diff --git a/public/su.te b/public/su.te index 8ddd16224..88065f626 100644 --- a/public/su.te +++ b/public/su.te @@ -50,4 +50,47 @@ userdebug_or_eng(` dontaudit su domain:drmservice *; dontaudit su unlabeled:filesystem *; dontaudit su postinstall_file:filesystem *; + + # VTS tests run in the permissive su domain on debug builds, but the HALs + # being tested run in enforcing mode. Because hal_foo_server is enforcing + # su needs to be declared as hal_foo_client to grant hal_foo_server + # permission to interact with it. + typeattribute su halclientdomain; + typeattribute su hal_allocator_client; + typeattribute su hal_audio_client; + typeattribute su hal_bluetooth_client; + typeattribute su hal_bootctl_client; + typeattribute su hal_camera_client; + typeattribute su hal_configstore_client; + typeattribute su hal_contexthub_client; + typeattribute su hal_drm_client; + typeattribute su hal_cas_client; + typeattribute su hal_dumpstate_client; + typeattribute su hal_fingerprint_client; + typeattribute su hal_gatekeeper_client; + typeattribute su hal_gnss_client; + typeattribute su hal_graphics_allocator_client; + typeattribute su hal_graphics_composer_client; + typeattribute su hal_health_client; + typeattribute su hal_ir_client; + typeattribute su hal_keymaster_client; + typeattribute su hal_light_client; + typeattribute su hal_memtrack_client; + typeattribute su hal_neuralnetworks_client; + typeattribute su hal_nfc_client; + typeattribute su hal_oemlock_client; + typeattribute su hal_power_client; + typeattribute su hal_sensors_client; + typeattribute su hal_telephony_client; + typeattribute su hal_tetheroffload_client; + typeattribute su hal_thermal_client; + typeattribute su hal_tv_cec_client; + typeattribute su hal_tv_input_client; + typeattribute su hal_usb_client; + typeattribute su hal_vibrator_client; + typeattribute su hal_vr_client; + typeattribute su hal_weaver_client; + typeattribute su hal_wifi_client; + typeattribute su hal_wifi_offload_client; + typeattribute su hal_wifi_supplicant_client; ') diff --git a/public/te_macros b/public/te_macros index e1f0644e0..5a8ea5add 100644 --- a/public/te_macros +++ b/public/te_macros @@ -101,6 +101,10 @@ define(`pdx_service_socket_types', ` typeattribute $2 pdx_$1_endpoint_dir_type; type pdx_$1_endpoint_socket, pdx_$1_endpoint_socket_type, pdx_endpoint_socket_type, file_type, coredomain_socket, mlstrustedobject, mlstrustedsubject; type pdx_$1_channel_socket, pdx_$1_channel_socket_type, pdx_channel_socket_type, coredomain_socket; +userdebug_or_eng(` +dontaudit su pdx_$1_endpoint_socket:unix_stream_socket *; +dontaudit su pdx_$1_channel_socket:unix_stream_socket *; +') ') ##################################### @@ -197,6 +201,22 @@ define(`bluetooth_domain', ` typeattribute $1 bluetoothdomain; ') +##################################### +# hal_attribute(hal_name) +# Add an attribute for hal implementations along with necessary +# restrictions. +define(`hal_attribute', ` +attribute hal_$1; +expandattribute hal_$1 true; +attribute hal_$1_client; +expandattribute hal_$1_client true; +attribute hal_$1_server; +expandattribute hal_$1_server false; + +neverallow { hal_$1_client -halclientdomain } domain:process fork; +neverallow { hal_$1_server -halserverdomain } domain:process fork; +') + ##################################### # hal_server_domain(domain, hal_type) # Allow a base set of permissions required for a domain to offer a @@ -553,7 +573,6 @@ define(`use_drmservice', ` define(`add_service', ` allow $1 $2:service_manager { add find }; neverallow { domain -$1 } $2:service_manager add; - neverallow $1 unlabeled:service_manager add; #TODO: b/62658302 ') ########################################### @@ -565,7 +584,6 @@ define(`add_hwservice', ` allow $1 $2:hwservice_manager { add find }; allow $1 hidl_base_hwservice:hwservice_manager add; neverallow { domain -$1 } $2:hwservice_manager add; - neverallow $1 unlabeled:hwservice_manager add; #TODO: b/62658302 ') ########################################## diff --git a/public/thermalserviced.te b/public/thermalserviced.te new file mode 100644 index 000000000..5b6025cea --- /dev/null +++ b/public/thermalserviced.te @@ -0,0 +1,11 @@ +# thermalserviced -- thermal management services for system and vendor +type thermalserviced, domain; +type thermalserviced_exec, exec_type, file_type; + +binder_use(thermalserviced) +binder_service(thermalserviced) +add_service(thermalserviced, thermal_service) + +hwbinder_use(thermalserviced) +hal_client_domain(thermalserviced, hal_thermal) +add_hwservice(thermalserviced, thermalcallback_hwservice) diff --git a/public/ueventd.te b/public/ueventd.te index 4c77e11ea..212087e52 100644 --- a/public/ueventd.te +++ b/public/ueventd.te @@ -8,15 +8,13 @@ allow ueventd kmsg_device:chr_file rw_file_perms; allow ueventd self:capability { chown mknod net_admin setgid fsetid sys_rawio dac_override fowner }; allow ueventd device:file create_file_perms; -r_dir_file(ueventd, sysfs_type) r_dir_file(ueventd, rootfs) -allow ueventd sysfs:file w_file_perms; -allow ueventd sysfs_usb:file w_file_perms; -allow ueventd sysfs_hwrandom:file w_file_perms; -allow ueventd sysfs_zram_uevent:file w_file_perms; -allow ueventd sysfs_type:{ file lnk_file } { relabelfrom relabelto setattr getattr }; -allow ueventd sysfs_type:dir { relabelfrom relabelto setattr r_dir_perms }; -allow ueventd sysfs_devices_system_cpu:file rw_file_perms; + +# ueventd needs write access to files in /sys to regenerate uevents +allow ueventd sysfs_type:file w_file_perms; +r_dir_file(ueventd, sysfs_type) +allow ueventd sysfs_type:{ file lnk_file } { relabelfrom relabelto setattr }; +allow ueventd sysfs_type:dir { relabelfrom relabelto setattr }; allow ueventd tmpfs:chr_file rw_file_perms; allow ueventd dev_type:dir create_dir_perms; allow ueventd dev_type:lnk_file { create unlink }; @@ -30,7 +28,7 @@ allow ueventd efs_file:file r_file_perms; r_dir_file(ueventd, selinuxfs) # Access for /vendor/ueventd.rc and /vendor/firmware -r_dir_file(ueventd, vendor_file) +r_dir_file(ueventd, { vendor_file_type -vendor_app_file -vendor_overlay_file }) # Get file contexts for new device nodes allow ueventd file_contexts_file:file r_file_perms; diff --git a/public/vdc.te b/public/vdc.te index 53d7bbe2c..75a5d1b8a 100644 --- a/public/vdc.te +++ b/public/vdc.te @@ -8,16 +8,20 @@ type vdc, domain; type vdc_exec, exec_type, file_type; +# TODO: remove as part of 13758960 unix_socket_connect(vdc, vold, vold) # vdc sends information back to dumpstate when "adb bugreport" is used +# TODO: remove as part of 13758960 allow vdc dumpstate:fd use; allow vdc dumpstate:unix_stream_socket { read write getattr }; # vdc information is written to shell owned bugreport files +# TODO: remove as part of 13758960 allow vdc shell_data_file:file { write getattr }; # Why? +# TODO: remove as part of 13758960 allow vdc dumpstate:unix_dgram_socket { read write }; # vdc can be invoked with logwrapper, so let it write to pty @@ -25,3 +29,8 @@ allow vdc devpts:chr_file rw_file_perms; # vdc writes directly to kmsg during the boot process allow vdc kmsg_device:chr_file w_file_perms; + +# vdc talks to vold over Binder +binder_use(vdc) +binder_call(vdc, vold) +allow vdc vold_service:service_manager find; diff --git a/public/vold.te b/public/vold.te index 118244a14..a8537154a 100644 --- a/public/vold.te +++ b/public/vold.te @@ -8,7 +8,6 @@ allow vold cache_file:file { getattr read }; allow vold cache_file:lnk_file r_file_perms; # Read access to pseudo filesystems. -r_dir_file(vold, proc) r_dir_file(vold, proc_net) r_dir_file(vold, sysfs_type) # XXX Label sysfs files with a specific type? @@ -17,7 +16,13 @@ allow vold sysfs_usb:file w_file_perms; allow vold sysfs_zram_uevent:file w_file_perms; r_dir_file(vold, rootfs) -allow vold proc_meminfo:file r_file_perms; +allow vold { + proc_cmdline + proc_drop_caches + proc_filesystems + proc_meminfo + proc_mounts +}:file r_file_perms; #Get file contexts allow vold file_contexts_file:file r_file_perms; @@ -28,6 +33,9 @@ allow vold self:process setexec; # For sgdisk launched through popen() allow vold shell_exec:file rx_file_perms; +# For formatting adoptable storage devices +allow vold e2fs_exec:file rx_file_perms; + typeattribute vold mlstrustedsubject; allow vold self:process setfscreate; allow vold system_file:file x_file_perms; @@ -132,8 +140,15 @@ allow vold unlabeled:file { r_file_perms setattr relabelfrom }; # Handle wake locks (used for device encryption) wakelock_use(vold) -# talk to batteryservice +# Allow vold to publish a binder service and make binder calls. binder_use(vold) +add_service(vold, vold_service) + +# Allow vold to call into the system server so it can check permissions. +binder_call(vold, system_server) +allow vold permission_service:service_manager find; + +# talk to batteryservice binder_call(vold, healthd) # talk to keymaster @@ -188,6 +203,18 @@ neverallow { domain -vold -init } vold_data_file:dir *; neverallow { domain -vold -init -kernel } vold_data_file:notdevfile_class_set *; neverallow { domain -vold -init } restorecon_prop:property_service set; +# Only system_server and vdc can interact with vold over binder +neverallow { domain -system_server -vdc -vold } vold_service:service_manager find; +neverallow vold { + domain + -hal_keymaster + -healthd + -hwservicemanager + -servicemanager + -system_server + userdebug_or_eng(`-su') +}:binder call; + neverallow vold fsck_exec:file execute_no_trans; neverallow { domain -init } vold:process { transition dyntransition }; neverallow vold *:process ptrace; diff --git a/tests/Android.bp b/tests/Android.bp index 1ce577b88..8fe89e5fe 100644 --- a/tests/Android.bp +++ b/tests/Android.bp @@ -31,6 +31,27 @@ python_binary_host { name: "treble_sepolicy_tests", srcs: [ "treble_sepolicy_tests.py", + "mini_parser.py", + "policy.py", + ], + required: ["libsepolwrap"], + defaults: ["py2_only"], +} + +python_binary_host { + name: "sepolicy_tests", + srcs: [ + "sepolicy_tests.py", + "policy.py", + ], + required: ["libsepolwrap"], + defaults: ["py2_only"], +} + +python_binary_host { + name: "searchpolicy", + srcs: [ + "searchpolicy.py", "policy.py", ], required: ["libsepolwrap"], diff --git a/tests/include/sepol_wrap.h b/tests/include/sepol_wrap.h index 0683a3bdf..2357421c7 100644 --- a/tests/include/sepol_wrap.h +++ b/tests/include/sepol_wrap.h @@ -4,12 +4,14 @@ extern "C" { #endif int get_allow_rule(char *out, size_t len, void *policydbp, void *avtab_iterp); -bool init_libsepol(const char *policy_path); void *load_policy(const char *policy_path); void destroy_policy(void *policydbp); void *init_avtab(void *policydbp); void *init_cond_avtab(void *policydbp); void destroy_avtab(void *avtab_iterp); +void *init_expanded_avtab(void *policydbp); +void *init_expanded_cond_avtab(void *policydbp); +void destroy_expanded_avtab(void *avtab_iterp); int get_type(char *out, size_t max_size, void *policydbp, void *type_iterp); void *init_type_iter(void *policydbp, const char *type, bool is_attr); void destroy_type_iter(void *type_iterp); diff --git a/tests/mini_parser.py b/tests/mini_parser.py new file mode 100644 index 000000000..fbeaff8e5 --- /dev/null +++ b/tests/mini_parser.py @@ -0,0 +1,100 @@ +from os.path import basename +import re +import sys + +# A very limited parser whose job is to process the compatibility mapping +# files and retrieve type and attribute information until proper support is +# built into libsepol + +# get the text in the next matching parens + +class MiniCilParser: + types = set() # types declared in mapping + pubtypes = set() + typeattributes = set() # attributes declared in mapping + typeattributesets = {} # sets defined in mapping + rTypeattributesets = {} # reverse mapping of above sets + apiLevel = None + + def _getNextStmt(self, infile): + parens = 0 + s = "" + c = infile.read(1) + # get to first statement + while c and c != "(": + c = infile.read(1) + + parens += 1 + c = infile.read(1) + while c and parens != 0: + s += c + c = infile.read(1) + if c == ';': + # comment, get rid of rest of the line + while c != '\n': + c = infile.read(1) + elif c == '(': + parens += 1 + elif c == ')': + parens -= 1 + return s + + def _parseType(self, stmt): + m = re.match(r"type\s+(.+)", stmt) + self.types.add(m.group(1)) + return + + def _parseTypeattribute(self, stmt): + m = re.match(r"typeattribute\s+(.+)", stmt) + self.typeattributes.add(m.group(1)) + return + + def _parseTypeattributeset(self, stmt): + m = re.match(r"typeattributeset\s+(.+?)\s+\((.+?)\)", stmt, flags = re.M |re.S) + ta = m.group(1) + # this isn't proper expression parsing, but will do for our + # current use + tas = m.group(2).split() + + if self.typeattributesets.get(ta) is None: + self.typeattributesets[ta] = set() + self.typeattributesets[ta].update(set(tas)) + for t in tas: + if self.rTypeattributesets.get(t) is None: + self.rTypeattributesets[t] = set() + self.rTypeattributesets[t].update(set(ta)) + + # check to see if this typeattributeset is a versioned public type + pub = re.match(r"(\w+)_\d+_\d+", ta) + if pub is not None: + self.pubtypes.add(pub.group(1)) + return + + def _parseStmt(self, stmt): + if re.match(r"type\s+.+", stmt): + self._parseType(stmt) + elif re.match(r"typeattribute\s+.+", stmt): + self._parseTypeattribute(stmt) + elif re.match(r"typeattributeset\s+.+", stmt): + self._parseTypeattributeset(stmt) + else: + m = re.match(r"(\w+)\s+.+", stmt) + ret = "Warning: Unknown statement type (" + m.group(1) + ") in " + ret += "mapping file, perhaps consider adding support for it in " + ret += "system/sepolicy/tests/mini_parser.py!\n" + print ret + return + + def __init__(self, policyFile): + with open(policyFile, 'r') as infile: + s = self._getNextStmt(infile) + while s: + self._parseStmt(s) + s = self._getNextStmt(infile) + fn = basename(policyFile) + m = re.match(r"(\d+\.\d+).+\.cil", fn) + self.apiLevel = m.group(1) + +if __name__ == '__main__': + f = sys.argv[1] + p = MiniCilParser(f) diff --git a/tests/policy.py b/tests/policy.py index 74a8ef70d..a0ddb9096 100644 --- a/tests/policy.py +++ b/tests/policy.py @@ -3,6 +3,33 @@ import re import os import sys +### +# Check whether the regex will match a file path starting with the provided +# prefix +# +# Compares regex entries in file_contexts with a path prefix. Regex entries +# are often more specific than this file prefix. For example, the regex could +# be /system/bin/foo\.sh and the prefix could be /system. This function +# loops over the regex removing characters from the end until +# 1) there is a match - return True or 2) run out of characters - return +# False. +# +def MatchPathPrefix(pathregex, prefix): + for i in range(len(pathregex), 0, -1): + try: + pattern = re.compile('^' + pathregex[0:i] + "$") + except: + continue + if pattern.match(prefix): + return True + return False + +def MatchPathPrefixes(pathregex, Prefixes): + for Prefix in Prefixes: + if MatchPathPrefix(pathregex, Prefix): + return True + return False + class TERule: def __init__(self, rule): data = rule.split(',') @@ -14,10 +41,33 @@ class TERule: self.rule = rule class Policy: - __Rules = None + __ExpandedRules = set() + __Rules = set() __FcDict = None __libsepolwrap = None __policydbP = None + __BUFSIZE = 2048 + + # Check that path prefixes that match MatchPrefix, and do not Match + # DoNotMatchPrefix have the attribute Attr. + # For example assert that all types in /sys, and not in /sys/kernel/debugfs + # have the sysfs_type attribute. + def AssertPathTypesHaveAttr(self, MatchPrefix, DoNotMatchPrefix, Attr): + # Query policy for the types associated with Attr + TypesPol = self.QueryTypeAttribute(Attr, True) + # Search file_contexts to find paths/types that should be associated with + # Attr. + TypesFc = self.__GetTypesByFilePathPrefix(MatchPrefix, DoNotMatchPrefix) + violators = TypesFc.difference(TypesPol) + + ret = "" + if len(violators) > 0: + ret += "The following types on " + ret += " ".join(str(x) for x in sorted(MatchPrefix)) + ret += " must be associated with the " + ret += "\"" + Attr + "\" attribute: " + ret += " ".join(str(x) for x in sorted(violators)) + "\n" + return ret # Return all file_contexts entries that map to the input Type. def QueryFc(self, Type): @@ -29,25 +79,68 @@ class Policy: # Return all attributes associated with a type if IsAttr=False or # all types associated with an attribute if IsAttr=True def QueryTypeAttribute(self, Type, IsAttr): - init_type_iter = self.__libsepolwrap.init_type_iter - init_type_iter.restype = c_void_p - TypeIterP = init_type_iter(c_void_p(self.__policydbP), - create_string_buffer(Type), c_bool(IsAttr)) + TypeIterP = self.__libsepolwrap.init_type_iter(self.__policydbP, + create_string_buffer(Type), IsAttr) if (TypeIterP == None): sys.exit("Failed to initialize type iterator") - buf = create_string_buffer(2048) - + buf = create_string_buffer(self.__BUFSIZE) + TypeAttr = set() while True: - ret = self.__libsepolwrap.get_type(buf, c_int(2048), - c_void_p(self.__policydbP), c_void_p(TypeIterP)) + ret = self.__libsepolwrap.get_type(buf, self.__BUFSIZE, + self.__policydbP, TypeIterP) if ret == 0: - yield buf.value + TypeAttr.add(buf.value) continue if ret == 1: break; # We should never get here. sys.exit("Failed to import policy") - self.__libsepolwrap.destroy_type_iter(c_void_p(TypeIterP)) + self.__libsepolwrap.destroy_type_iter(TypeIterP) + return TypeAttr + + def __TERuleMatch(self, Rule, **kwargs): + # Match source type + if ("scontext" in kwargs and + len(kwargs['scontext']) > 0 and + Rule.sctx not in kwargs['scontext']): + return False + # Match target type + if ("tcontext" in kwargs and + len(kwargs['tcontext']) > 0 and + Rule.tctx not in kwargs['tcontext']): + return False + # Match target class + if ("tclass" in kwargs and + len(kwargs['tclass']) > 0 and + not bool(set([Rule.tclass]) & kwargs['tclass'])): + return False + # Match any perms + if ("perms" in kwargs and + len(kwargs['perms']) > 0 and + not bool(Rule.perms & kwargs['perms'])): + return False + return True + + # resolve a type to its attributes or + # resolve an attribute to its types and attributes + # For example if scontext is the domain attribute, then we need to + # include all types with the domain attribute such as untrusted_app and + # priv_app and all the attributes of those types such as appdomain. + def ResolveTypeAttribute(self, Type): + types = self.GetAllTypes(False) + attributes = self.GetAllTypes(True) + + if Type in types: + return self.QueryTypeAttribute(Type, False) + elif Type in attributes: + TypesAndAttributes = set() + Types = self.QueryTypeAttribute(Type, True) + TypesAndAttributes |= Types + for T in Types: + TypesAndAttributes |= self.QueryTypeAttribute(T, False) + return TypesAndAttributes + else: + return set() # Return all TERules that match: # (any scontext) or (any tcontext) or (any tclass) or (any perms), @@ -58,35 +151,75 @@ class Policy: # Will return any rule with: # (tcontext="foo" or tcontext="bar") and ("entrypoint" in perms) def QueryTERule(self, **kwargs): - if self.__Rules is None: + if len(self.__Rules) == 0: self.__InitTERules() + + # add any matching types and attributes for scontext and tcontext + if ("scontext" in kwargs and len(kwargs['scontext']) > 0): + scontext = set() + for sctx in kwargs['scontext']: + scontext |= self.ResolveTypeAttribute(sctx) + kwargs['scontext'] = scontext + if ("tcontext" in kwargs and len(kwargs['tcontext']) > 0): + tcontext = set() + for tctx in kwargs['tcontext']: + tcontext |= self.ResolveTypeAttribute(tctx) + kwargs['tcontext'] = tcontext for Rule in self.__Rules: - # Match source type - if "scontext" in kwargs and Rule.sctx not in kwargs['scontext']: + if self.__TERuleMatch(Rule, **kwargs): + yield Rule + + # Same as QueryTERule but only using the expanded ruleset. + # i.e. all attributes have been expanded to their various types. + def QueryExpandedTERule(self, **kwargs): + if len(self.__ExpandedRules) == 0: + self.__InitExpandedTERules() + for Rule in self.__ExpandedRules: + if self.__TERuleMatch(Rule, **kwargs): + yield Rule + + def GetAllTypes(self, isAttr): + TypeIterP = self.__libsepolwrap.init_type_iter(self.__policydbP, None, isAttr) + if (TypeIterP == None): + sys.exit("Failed to initialize type iterator") + buf = create_string_buffer(self.__BUFSIZE) + AllTypes = set() + while True: + ret = self.__libsepolwrap.get_type(buf, self.__BUFSIZE, + self.__policydbP, TypeIterP) + if ret == 0: + AllTypes.add(buf.value) continue - # Match target type - if "tcontext" in kwargs and Rule.tctx not in kwargs['tcontext']: - continue - # Match target class - if "tclass" in kwargs and Rule.tclass not in kwargs['tclass']: - continue - # Match any perms - if "perms" in kwargs and not bool(Rule.perms & set(kwargs['perms'])): - continue - yield Rule + if ret == 1: + break; + # We should never get here. + sys.exit("Failed to import policy") + self.__libsepolwrap.destroy_type_iter(TypeIterP) + return AllTypes + + def __GetTypesByFilePathPrefix(self, MatchPrefixes, DoNotMatchPrefixes): + Types = set() + for Type in self.__FcDict: + for pathregex in self.__FcDict[Type]: + if not MatchPathPrefixes(pathregex, MatchPrefixes): + continue + if MatchPathPrefixes(pathregex, DoNotMatchPrefixes): + continue + Types.add(Type) + return Types - def __GetTERules(self, policydbP, avtabIterP): - if self.__Rules is None: - self.__Rules = set() - buf = create_string_buffer(2048) + def __GetTERules(self, policydbP, avtabIterP, Rules): + if Rules is None: + Rules = set() + buf = create_string_buffer(self.__BUFSIZE) ret = 0 while True: - ret = self.__libsepolwrap.get_allow_rule(buf, c_int(2048), - c_void_p(policydbP), c_void_p(avtabIterP)) + ret = self.__libsepolwrap.get_allow_rule(buf, self.__BUFSIZE, + policydbP, avtabIterP) if ret == 0: Rule = TERule(buf.value) - self.__Rules.add(Rule) + Rules.add(Rule) continue if ret == 1: break; @@ -94,32 +227,78 @@ class Policy: sys.exit("Failed to import policy") def __InitTERules(self): - init_avtab = self.__libsepolwrap.init_avtab - init_avtab.restype = c_void_p - avtabIterP = init_avtab(c_void_p(self.__policydbP)) + avtabIterP = self.__libsepolwrap.init_avtab(self.__policydbP) if (avtabIterP == None): sys.exit("Failed to initialize avtab") - self.__GetTERules(self.__policydbP, avtabIterP) - self.__libsepolwrap.destroy_avtab(c_void_p(avtabIterP)) - init_cond_avtab = self.__libsepolwrap.init_cond_avtab - init_cond_avtab.restype = c_void_p - avtabIterP = init_cond_avtab(c_void_p(self.__policydbP)) + self.__GetTERules(self.__policydbP, avtabIterP, self.__Rules) + self.__libsepolwrap.destroy_avtab(avtabIterP) + avtabIterP = self.__libsepolwrap.init_cond_avtab(self.__policydbP) if (avtabIterP == None): sys.exit("Failed to initialize conditional avtab") - self.__GetTERules(self.__policydbP, avtabIterP) - self.__libsepolwrap.destroy_avtab(c_void_p(avtabIterP)) + self.__GetTERules(self.__policydbP, avtabIterP, self.__Rules) + self.__libsepolwrap.destroy_avtab(avtabIterP) + + def __InitExpandedTERules(self): + avtabIterP = self.__libsepolwrap.init_expanded_avtab(self.__policydbP) + if (avtabIterP == None): + sys.exit("Failed to initialize avtab") + self.__GetTERules(self.__policydbP, avtabIterP, self.__ExpandedRules) + self.__libsepolwrap.destroy_expanded_avtab(avtabIterP) + avtabIterP = self.__libsepolwrap.init_expanded_cond_avtab(self.__policydbP) + if (avtabIterP == None): + sys.exit("Failed to initialize conditional avtab") + self.__GetTERules(self.__policydbP, avtabIterP, self.__ExpandedRules) + self.__libsepolwrap.destroy_expanded_avtab(avtabIterP) # load ctypes-ified libsepol wrapper def __InitLibsepolwrap(self, LibPath): if "linux" in sys.platform: - self.__libsepolwrap = CDLL(LibPath + "/libsepolwrap.so") + lib = CDLL(LibPath + "/libsepolwrap.so") elif "darwin" in sys.platform: - self.__libsepolwrap = CDLL(LibPath + "/libsepolwrap.dylib") + lib = CDLL(LibPath + "/libsepolwrap.dylib") else: sys.exit("only Linux and Mac currrently supported") + # int get_allow_rule(char *out, size_t len, void *policydbp, void *avtab_iterp); + lib.get_allow_rule.restype = c_int + lib.get_allow_rule.argtypes = [c_char_p, c_size_t, c_void_p, c_void_p]; + # void *load_policy(const char *policy_path); + lib.load_policy.restype = c_void_p + lib.load_policy.argtypes = [c_char_p] + # void destroy_policy(void *policydbp); + lib.destroy_policy.argtypes = [c_void_p] + # void *init_expanded_avtab(void *policydbp); + lib.init_expanded_avtab.restype = c_void_p + lib.init_expanded_avtab.argtypes = [c_void_p] + # void *init_expanded_cond_avtab(void *policydbp); + lib.init_expanded_cond_avtab.restype = c_void_p + lib.init_expanded_cond_avtab.argtypes = [c_void_p] + # void destroy_expanded_avtab(void *avtab_iterp); + lib.destroy_expanded_avtab.argtypes = [c_void_p] + # void *init_avtab(void *policydbp); + lib.init_avtab.restype = c_void_p + lib.init_avtab.argtypes = [c_void_p] + # void *init_cond_avtab(void *policydbp); + lib.init_cond_avtab.restype = c_void_p + lib.init_cond_avtab.argtypes = [c_void_p] + # void destroy_avtab(void *avtab_iterp); + lib.destroy_avtab.argtypes = [c_void_p] + # int get_type(char *out, size_t max_size, void *policydbp, void *type_iterp); + lib.get_type.restype = c_int + lib.get_type.argtypes = [c_char_p, c_size_t, c_void_p, c_void_p] + # void *init_type_iter(void *policydbp, const char *type, bool is_attr); + lib.init_type_iter.restype = c_void_p + lib.init_type_iter.argtypes = [c_void_p, c_char_p, c_bool] + # void destroy_type_iter(void *type_iterp); + lib.destroy_type_iter.argtypes = [c_void_p] + + self.__libsepolwrap = lib + + # load file_contexts def __InitFC(self, FcPaths): + if FcPaths is None: + return fc = [] for path in FcPaths: if not os.path.exists(path): @@ -141,9 +320,8 @@ class Policy: # load policy def __InitPolicy(self, PolicyPath): - load_policy = self.__libsepolwrap.load_policy - load_policy.restype = c_void_p - self.__policydbP = load_policy(create_string_buffer(PolicyPath)) + cPolicyPath = create_string_buffer(PolicyPath) + self.__policydbP = self.__libsepolwrap.load_policy(cPolicyPath) if (self.__policydbP is None): sys.exit("Failed to load policy") @@ -154,4 +332,4 @@ class Policy: def __del__(self): if self.__policydbP is not None: - self.__libsepolwrap.destroy_policy(c_void_p(self.__policydbP)) + self.__libsepolwrap.destroy_policy(self.__policydbP) diff --git a/tests/searchpolicy.py b/tests/searchpolicy.py new file mode 100644 index 000000000..ff9318b7f --- /dev/null +++ b/tests/searchpolicy.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python + +import argparse +import policy + +parser = argparse.ArgumentParser( + description="SELinux policy rule search tool. Intended to have a similar " + + "API as sesearch, but simplified to use only code availabe in AOSP") +parser.add_argument("policy", help="Path to the SELinux policy to search.", nargs="?") +parser.add_argument("--libpath", dest="libpath", help="Path to the libsepolwrap.so", nargs="?") +tertypes = parser.add_argument_group("TE Rule Types") +tertypes.add_argument("--allow", action="append_const", + const="allow", dest="tertypes", + help="Search allow rules.") +expr = parser.add_argument_group("Expressions") +expr.add_argument("-s", "--source", + help="Source type/role of the TE/RBAC rule.") +expr.add_argument("-t", "--target", + help="Target type/role of the TE/RBAC rule.") +expr.add_argument("-c", "--class", dest="tclass", + help="Comma separated list of object classes") +expr.add_argument("-p", "--perms", metavar="PERMS", + help="Comma separated list of permissions.") + +args = parser.parse_args() + +if not args.tertypes: + parser.error("Must specify \"--allow\"") + +if not args.policy: + parser.error("Must include path to policy") +if not args.libpath: + parser.error("Must include path to libsepolwrap library") + +if not (args.source or args.target or args.tclass or args.perms): + parser.error("Must something to filter on, e.g. --source, --target, etc.") + +pol = policy.Policy(args.policy, None, args.libpath) + +if args.source: + scontext = {args.source} +else: + scontext = set() +if args.target: + tcontext = {args.target} +else: + tcontext = set() +if args.tclass: + tclass = set(args.tclass.split(",")) +else: + tclass = set() +if args.perms: + perms = set(args.perms.split(",")) +else: + perms = set() + +TERules = pol.QueryTERule(scontext=scontext, + tcontext=tcontext, + tclass=tclass, + perms=perms) + +# format rules for printing +rules = [] +for r in TERules: + if len(r.perms) > 1: + rules.append("allow " + r.sctx + " " + r.tctx + ":" + r.tclass + " { " + + " ".join(r.perms) + " };") + else: + rules.append("allow " + r.sctx + " " + r.tctx + ":" + r.tclass + " " + + " ".join(r.perms) + ";") + +for r in sorted(rules): + print r diff --git a/tests/sepol_wrap.cpp b/tests/sepol_wrap.cpp index a12d4383d..d537b7e00 100644 --- a/tests/sepol_wrap.cpp +++ b/tests/sepol_wrap.cpp @@ -17,8 +17,11 @@ #include #include - +#define TYPE_ITER_LOOKUP 0 +#define TYPE_ITER_ALLTYPES 1 +#define TYPE_ITER_ALLATTRS 2 struct type_iter { + unsigned int alltypes; type_datum *d; ebitmap_node *n; unsigned int length; @@ -36,23 +39,33 @@ void *init_type_iter(void *policydbp, const char *type, bool is_attr) return NULL; } - out->d = static_cast(hashtab_search(db->p_types.table, type)); - if (is_attr && out->d->flavor != TYPE_ATTRIB) { - std::cerr << "\"" << type << "\" MUST be an attribute in the policy" << std::endl; - free(out); - return NULL; - } else if (!is_attr && out->d->flavor !=TYPE_TYPE) { - std::cerr << "\"" << type << "\" MUST be a type in the policy" << std::endl; - free(out); - return NULL; - } - - if (is_attr) { - out->bit = ebitmap_start(&db->attr_type_map[out->d->s.value - 1], &out->n); - out->length = ebitmap_length(&db->attr_type_map[out->d->s.value - 1]); + if (type == NULL) { + out->length = db->p_types.nprim; + out->bit = 0; + if (is_attr) + out->alltypes = TYPE_ITER_ALLATTRS; + else + out->alltypes = TYPE_ITER_ALLTYPES; } else { - out->bit = ebitmap_start(&db->type_attr_map[out->d->s.value - 1], &out->n); - out->length = ebitmap_length(&db->type_attr_map[out->d->s.value - 1]); + out->alltypes = TYPE_ITER_LOOKUP; + out->d = static_cast(hashtab_search(db->p_types.table, type)); + if (is_attr && out->d->flavor != TYPE_ATTRIB) { + std::cerr << "\"" << type << "\" MUST be an attribute in the policy" << std::endl; + free(out); + return NULL; + } else if (!is_attr && out->d->flavor !=TYPE_TYPE) { + std::cerr << "\"" << type << "\" MUST be a type in the policy" << std::endl; + free(out); + return NULL; + } + + if (is_attr) { + out->bit = ebitmap_start(&db->attr_type_map[out->d->s.value - 1], &out->n); + out->length = ebitmap_length(&db->attr_type_map[out->d->s.value - 1]); + } else { + out->bit = ebitmap_start(&db->type_attr_map[out->d->s.value - 1], &out->n); + out->length = ebitmap_length(&db->type_attr_map[out->d->s.value - 1]); + } } return static_cast(out); @@ -65,7 +78,7 @@ void destroy_type_iter(void *type_iterp) } /* - * print allow rule into *out buffer. + * print type into *out buffer. * * Returns -1 on error. * Returns 0 on successfully reading an avtab entry. @@ -77,20 +90,30 @@ int get_type(char *out, size_t max_size, void *policydbp, void *type_iterp) policydb_t *db = static_cast(policydbp); struct type_iter *i = static_cast(type_iterp); - for (; i->bit < i->length; i->bit = ebitmap_next(&i->n, i->bit)) { - if (!ebitmap_node_get_bit(i->n, i->bit)) { - continue; + if (!i->alltypes) { + for (; i->bit < i->length; i->bit = ebitmap_next(&i->n, i->bit)) { + if (!ebitmap_node_get_bit(i->n, i->bit)) { + continue; + } + break; } - len = snprintf(out, max_size, "%s", db->p_type_val_to_name[i->bit]); - if (len >= max_size) { - std::cerr << "type name exceeds buffer size." << std::endl; - return -1; - } - i->bit = ebitmap_next(&i->n, i->bit); - return 0; } - - return 1; + while (i->bit < i->length && + ((i->alltypes == TYPE_ITER_ALLATTRS + && db->type_val_to_struct[i->bit]->flavor != TYPE_ATTRIB) + || (i->alltypes == TYPE_ITER_ALLTYPES + && db->type_val_to_struct[i->bit]->flavor != TYPE_TYPE))) { + i->bit++; + } + if (i->bit >= i->length) + return 1; + len = snprintf(out, max_size, "%s", db->p_type_val_to_name[i->bit]); + if (len >= max_size) { + std::cerr << "type name exceeds buffer size." << std::endl; + return -1; + } + i->alltypes ? i->bit++ : i->bit = ebitmap_next(&i->n, i->bit); + return 0; } void *load_policy(const char *policy_path) @@ -158,7 +181,7 @@ void *load_policy(const char *policy_path) /* items needed to iterate over the avtab */ struct avtab_iter { - avtab_t avtab; + avtab_t *avtab; uint32_t i; avtab_ptr_t cur; }; @@ -175,9 +198,9 @@ static int get_avtab_allow_rule(char *out, size_t max_size, policydb_t *db, { size_t len; - for (; avtab_i->i < avtab_i->avtab.nslot; (avtab_i->i)++) { + for (; avtab_i->i < avtab_i->avtab->nslot; (avtab_i->i)++) { if (avtab_i->cur == NULL) { - avtab_i->cur = avtab_i->avtab.htable[avtab_i->i]; + avtab_i->cur = avtab_i->avtab->htable[avtab_i->i]; } for (; avtab_i->cur; avtab_i->cur = (avtab_i->cur)->next) { if (!((avtab_i->cur)->key.specified & AVTAB_ALLOWED)) continue; @@ -210,6 +233,37 @@ int get_allow_rule(char *out, size_t len, void *policydbp, void *avtab_iterp) return get_avtab_allow_rule(out, len, db, avtab_i); } +static avtab_iter *init_avtab_common(avtab_t *in) +{ + struct avtab_iter *out = (struct avtab_iter *) + calloc(1, sizeof(struct avtab_iter)); + if (!out) { + std::cerr << "Failed to allocate avtab iterator" << std::endl; + return NULL; + } + + out->avtab = in; + return out; +} + +void *init_avtab(void *policydbp) +{ + policydb_t *p = static_cast(policydbp); + return static_cast(init_avtab_common(&p->te_avtab)); +} + +void *init_cond_avtab(void *policydbp) +{ + policydb_t *p = static_cast(policydbp); + return static_cast(init_avtab_common(&p->te_cond_avtab)); +} + +void destroy_avtab(void *avtab_iterp) +{ + struct avtab_iter *avtab_i = static_cast(avtab_iterp); + free(avtab_i); +} + /* * conditional.h> uses 'bool' as a variable name * inside extern "C" { .. } construct, which clang doesn't like. @@ -217,45 +271,57 @@ int get_allow_rule(char *out, size_t len, void *policydbp, void *avtab_iterp) */ extern "C" int expand_avtab(policydb_t *p, avtab_t *a, avtab_t *expa); -static avtab_iter *init_avtab_common(avtab_t *in, policydb_t *p) +static avtab_iter *init_expanded_avtab_common(avtab_t *in, policydb_t *p) { struct avtab_iter *out = (struct avtab_iter *) calloc(1, sizeof(struct avtab_iter)); if (!out) { - std::cerr << "Failed to allocate avtab" << std::endl; + std::cerr << "Failed to allocate avtab iterator" << std::endl; return NULL; } - if (avtab_init(&out->avtab)) { - std::cerr << "Failed to initialize avtab" << std::endl; + avtab_t *avtab = (avtab_t *) calloc(1, sizeof(avtab_t)); + + if (!avtab) { + std::cerr << "Failed to allocate avtab" << std::endl; free(out); return NULL; } - if (expand_avtab(p, in, &out->avtab)) { + out->avtab = avtab; + if (avtab_init(out->avtab)) { + std::cerr << "Failed to initialize avtab" << std::endl; + free(avtab); + free(out); + return NULL; + } + + if (expand_avtab(p, in, out->avtab)) { std::cerr << "Failed to expand avtab" << std::endl; + free(avtab); free(out); return NULL; } return out; } -void *init_avtab(void *policydbp) +void *init_expanded_avtab(void *policydbp) { policydb_t *p = static_cast(policydbp); - return static_cast(init_avtab_common(&p->te_avtab, p)); + return static_cast(init_expanded_avtab_common(&p->te_avtab, p)); } -void *init_cond_avtab(void *policydbp) +void *init_expanded_cond_avtab(void *policydbp) { policydb_t *p = static_cast(policydbp); - return static_cast(init_avtab_common(&p->te_cond_avtab, p)); + return static_cast(init_expanded_avtab_common(&p->te_cond_avtab, p)); } -void destroy_avtab(void *avtab_iterp) +void destroy_expanded_avtab(void *avtab_iterp) { struct avtab_iter *avtab_i = static_cast(avtab_iterp); - avtab_destroy(&avtab_i->avtab); + avtab_destroy(avtab_i->avtab); + free(avtab_i->avtab); free(avtab_i); } diff --git a/tests/sepolicy_tests.py b/tests/sepolicy_tests.py new file mode 100644 index 000000000..3f93ff4be --- /dev/null +++ b/tests/sepolicy_tests.py @@ -0,0 +1,85 @@ +from optparse import OptionParser +from optparse import Option, OptionValueError +import os +import policy +import re +import sys + +############################################################# +# Tests +############################################################# +def TestDataTypeViolations(pol): + return pol.AssertPathTypesHaveAttr(["/data/"], [], "data_file_type") + +def TestSysfsTypeViolations(pol): + return pol.AssertPathTypesHaveAttr(["/sys/"], ["/sys/kernel/debug/", + "/sys/kernel/tracing"], "sysfs_type") + +def TestDebugfsTypeViolations(pol): + # TODO: this should apply to genfs_context entries as well + return pol.AssertPathTypesHaveAttr(["/sys/kernel/debug/", + "/sys/kernel/tracing"], [], "debugfs_type") +### +# extend OptionParser to allow the same option flag to be used multiple times. +# This is used to allow multiple file_contexts files and tests to be +# specified. +# +class MultipleOption(Option): + ACTIONS = Option.ACTIONS + ("extend",) + STORE_ACTIONS = Option.STORE_ACTIONS + ("extend",) + TYPED_ACTIONS = Option.TYPED_ACTIONS + ("extend",) + ALWAYS_TYPED_ACTIONS = Option.ALWAYS_TYPED_ACTIONS + ("extend",) + + def take_action(self, action, dest, opt, value, values, parser): + if action == "extend": + values.ensure_value(dest, []).append(value) + else: + Option.take_action(self, action, dest, opt, value, values, parser) + +Tests = ["TestDataTypeViolators"] + +if __name__ == '__main__': + usage = "sepolicy_tests.py -f nonplat_file_contexts -f " + usage +="plat_file_contexts -p policy [--test test] [--help]" + parser = OptionParser(option_class=MultipleOption, usage=usage) + parser.add_option("-f", "--file_contexts", dest="file_contexts", + metavar="FILE", action="extend", type="string") + parser.add_option("-p", "--policy", dest="policy", metavar="FILE") + parser.add_option("-l", "--library-path", dest="libpath", metavar="FILE") + parser.add_option("-t", "--test", dest="test", action="extend", + help="Test options include "+str(Tests)) + + (options, args) = parser.parse_args() + + if not options.libpath: + sys.exit("Must specify path to host libraries\n" + parser.usage) + if not os.path.exists(options.libpath): + sys.exit("Error: library-path " + options.libpath + " does not exist\n" + + parser.usage) + + if not options.policy: + sys.exit("Must specify monolithic policy file\n" + parser.usage) + if not os.path.exists(options.policy): + sys.exit("Error: policy file " + options.policy + " does not exist\n" + + parser.usage) + + if not options.file_contexts: + sys.exit("Error: Must specify file_contexts file(s)\n" + parser.usage) + for f in options.file_contexts: + if not os.path.exists(f): + sys.exit("Error: File_contexts file " + f + " does not exist\n" + + parser.usage) + + pol = policy.Policy(options.policy, options.file_contexts, options.libpath) + + results = "" + # If an individual test is not specified, run all tests. + if options.test is None or "TestDataTypeViolations" in options.tests: + results += TestDataTypeViolations(pol) + if options.test is None or "TestSysfsTypeViolations" in options.tests: + results += TestSysfsTypeViolations(pol) + if options.test is None or "TestDebugfsTypeViolations" in options.tests: + results += TestDebugfsTypeViolations(pol) + + if len(results) > 0: + sys.exit(results) diff --git a/tests/treble_sepolicy_tests.py b/tests/treble_sepolicy_tests.py index 3d6a4805f..2c0cef378 100644 --- a/tests/treble_sepolicy_tests.py +++ b/tests/treble_sepolicy_tests.py @@ -1,7 +1,9 @@ from optparse import OptionParser from optparse import Option, OptionValueError import os +import mini_parser import policy +from policy import MatchPathPrefix import re import sys @@ -69,26 +71,13 @@ coredomains = set() appdomains = set() vendordomains = set() -### -# Check whether the regex will match a file path starting with the provided -# prefix -# -# Compares regex entries in file_contexts with a path prefix. Regex entries -# are often more specific than this file prefix. For example, the regex could -# be /system/bin/foo\.sh and the prefix could be /system. This function -# loops over the regex removing characters from the end until -# 1) there is a match - return True or 2) run out of characters - return -# False. -# -def MatchPathPrefix(pathregex, prefix): - for i in range(len(pathregex), 0, -1): - try: - pattern = re.compile('^' + pathregex[0:i] + "$") - except: - continue - if pattern.match(prefix): - return True - return False +# compat vars +alltypes = set() +oldalltypes = set() +compatMapping = None + +# Distinguish between PRODUCT_FULL_TREBLE and PRODUCT_FULL_TREBLE_OVERRIDE +FakeTreble = False def GetAllDomains(pol): global alldomains @@ -107,12 +96,11 @@ def GetAppDomains(): alldomains[d].appdomain = True appdomains.add(d) - def GetCoreDomains(): global alldomains global coredomains for d in alldomains: - # TestCoredomainViolators will verify if coredomain was incorrectly + # TestCoredomainViolations will verify if coredomain was incorrectly # applied. if "coredomain" in alldomains[d].attributes: alldomains[d].coredomain = True @@ -144,7 +132,7 @@ def GetCoreDomains(): # def GetDomainEntrypoints(pol): global alldomains - for x in pol.QueryTERule(tclass="file", perms=["entrypoint"]): + for x in pol.QueryExpandedTERule(tclass=set(["file"]), perms=set(["entrypoint"])): if not x.sctx in alldomains: continue alldomains[x.sctx].entrypoints.append(str(x.tctx)) @@ -167,6 +155,12 @@ def GetAttributes(pol): for result in pol.QueryTypeAttribute(domain, False): alldomains[domain].attributes.add(result) +def GetAllTypes(pol, oldpol): + global alltypes + global oldalltypes + alltypes = pol.GetAllTypes(False) + oldalltypes = oldpol.GetAllTypes(False) + def setup(pol): GetAllDomains(pol) GetAttributes(pol) @@ -174,6 +168,21 @@ def setup(pol): GetAppDomains() GetCoreDomains() +# setup for the policy compatibility tests +def compatSetup(pol, oldpol, mapping): + global compatMapping + + GetAllTypes(pol, oldpol) + compatMapping = mapping + +def DomainsWithAttribute(attr): + global alldomains + domains = [] + for domain in alldomains: + if attr in alldomains[domain].attributes: + domains.append(domain) + return domains + ############################################################# # Tests ############################################################# @@ -208,6 +217,75 @@ def TestCoredomainViolations(): return ret +### +# Make sure that any new type introduced in the new policy that was not present +# in the old policy has been recorded in the mapping file. +def TestNoUnmappedNewTypes(): + global alltypes + global oldalltypes + global compatMapping + newt = alltypes - oldalltypes + ret = "" + violators = [] + + for n in newt: + if compatMapping.rTypeattributesets.get(n) is None: + violators.append(n) + + if len(violators) > 0: + ret += "SELinux: The following types were found added to the policy " + ret += "without an entry into the compatibility mapping file(s) found " + ret += "in private/compat/" + compatMapping.apiLevel + "/" + ret += compatMapping.apiLevel + "[.ignore].cil/n" + ret += " ".join(str(x) for x in sorted(violators)) + "\n" + return ret + +### +# Make sure that any public type removed in the current policy has its +# declaration added to the mapping file for use in non-platform policy +def TestNoUnmappedRmTypes(): + global alltypes + global oldalltypes + global compatMapping + rmt = oldalltypes - alltypes + ret = "" + violators = [] + + for o in rmt: + if o in compatMapping.pubtypes and not o in compatMapping.types: + violators.append(o) + + if len(violators) > 0: + ret += "SELinux: The following formerly public types were removed from " + ret += "policy without a declaration in the compatibility mapping " + ret += "file(s) found in prebuilts/api/" + compatMapping.apiLevel + "/\n" + ret += " ".join(str(x) for x in sorted(violators)) + "\n" + return ret + +def TestTrebleCompatMapping(): + ret = TestNoUnmappedNewTypes() + ret += TestNoUnmappedRmTypes() + return ret + +def TestViolatorAttribute(attribute): + global FakeTreble + ret = "" + if FakeTreble: + return ret + + violators = DomainsWithAttribute(attribute) + if len(violators) > 0: + ret += "SELinux: The following domains violate the Treble ban " + ret += "against use of the " + attribute + " attribute: " + ret += " ".join(str(x) for x in sorted(violators)) + "\n" + return ret + +def TestViolatorAttributes(): + ret = TestViolatorAttribute("binder_in_vendor_violators") + ret += TestViolatorAttribute("socket_between_core_and_vendor_violators") + ret += TestViolatorAttribute("vendor_executes_system_violators") + return ret + ### # extend OptionParser to allow the same option flag to be used multiple times. # This is used to allow multiple file_contexts files and tests to be @@ -225,18 +303,27 @@ class MultipleOption(Option): else: Option.take_action(self, action, dest, opt, value, values, parser) -Tests = ["CoredomainViolators"] +Tests = {"CoredomainViolations": TestCoredomainViolations, + "TrebleCompatMapping": TestTrebleCompatMapping, + "ViolatorAttributes": TestViolatorAttributes} if __name__ == '__main__': - usage = "sepolicy-trebletests -f nonplat_file_contexts -f " - usage +="plat_file_contexts -p policy [--test test] [--help]" + usage = "treble_sepolicy_tests.py -l out/host/linux-x86/lib64 " + usage += "-f nonplat_file_contexts -f plat_file_contexts " + usage += "-p curr_policy -b base_policy -o old_policy " + usage +="-m mapping file [--test test] [--help]" parser = OptionParser(option_class=MultipleOption, usage=usage) + parser.add_option("-b", "--basepolicy", dest="basepolicy", metavar="FILE") parser.add_option("-f", "--file_contexts", dest="file_contexts", metavar="FILE", action="extend", type="string") - parser.add_option("-p", "--policy", dest="policy", metavar="FILE") parser.add_option("-l", "--library-path", dest="libpath", metavar="FILE") - parser.add_option("-t", "--test", dest="test", action="extend", + parser.add_option("-m", "--mapping", dest="mapping", metavar="FILE") + parser.add_option("-o", "--oldpolicy", dest="oldpolicy", metavar="FILE") + parser.add_option("-p", "--policy", dest="policy", metavar="FILE") + parser.add_option("-t", "--test", dest="tests", action="extend", help="Test options include "+str(Tests)) + parser.add_option("--fake-treble", action="store_true", dest="faketreble", + default=False) (options, args) = parser.parse_args() @@ -245,9 +332,14 @@ if __name__ == '__main__': if not os.path.exists(options.libpath): sys.exit("Error: library-path " + options.libpath + " does not exist\n" + parser.usage) - + if not options.basepolicy: + sys.exit("Must specify the current platform-only policy file\n" + parser.usage) + if not options.mapping: + sys.exit("Must specify a compatibility mapping file\n" + parser.usage) + if not options.oldpolicy: + sys.exit("Must specify the previous monolithic policy file\n" + parser.usage) if not options.policy: - sys.exit("Must specify monolithic policy file\n" + parser.usage) + sys.exit("Must specify current monolithic policy file\n" + parser.usage) if not os.path.exists(options.policy): sys.exit("Error: policy file " + options.policy + " does not exist\n" + parser.usage) @@ -259,16 +351,35 @@ if __name__ == '__main__': sys.exit("Error: File_contexts file " + f + " does not exist\n" + parser.usage) + if options.faketreble: + FakeTreble = True + pol = policy.Policy(options.policy, options.file_contexts, options.libpath) setup(pol) + basepol = policy.Policy(options.basepolicy, None, options.libpath) + oldpol = policy.Policy(options.oldpolicy, None, options.libpath) + mapping = mini_parser.MiniCilParser(options.mapping) + compatSetup(basepol, oldpol, mapping) if DEBUG: PrintScontexts() results = "" # If an individual test is not specified, run all tests. - if options.test is None or "CoredomainViolations" in options.tests: - results += TestCoredomainViolations() + if options.tests is None: + for t in Tests.values(): + results += t() + else: + for tn in options.tests: + t = Tests.get(tn) + if t: + results += t() + else: + err = "Error: unknown test: " + tn + "\n" + err += "Available tests:\n" + for tn in Tests.keys(): + err += tn + "\n" + sys.exit(err) if len(results) > 0: sys.exit(results) diff --git a/tools/sepolicy-analyze/Android.mk b/tools/sepolicy-analyze/Android.mk index 98f3771e1..1754fc7e6 100644 --- a/tools/sepolicy-analyze/Android.mk +++ b/tools/sepolicy-analyze/Android.mk @@ -10,6 +10,6 @@ LOCAL_SRC_FILES := sepolicy-analyze.c dups.c neverallow.c perm.c typecmp.c boole LOCAL_STATIC_LIBRARIES := libsepol LOCAL_CXX_STL := none -LOCAL_COMPATIBILITY_SUITE := cts +LOCAL_COMPATIBILITY_SUITE := cts gts include $(BUILD_HOST_EXECUTABLE) diff --git a/vendor/file.te b/vendor/file.te index aeafb4aa6..3350b1e0b 100644 --- a/vendor/file.te +++ b/vendor/file.te @@ -1,2 +1,2 @@ # Socket types -type hostapd_socket, file_type; +type hostapd_socket, file_type, data_file_type; diff --git a/vendor/file_contexts b/vendor/file_contexts index 1b90adb00..1efbe73d0 100644 --- a/vendor/file_contexts +++ b/vendor/file_contexts @@ -10,6 +10,7 @@ /(vendor|system/vendor)/bin/hw/android\.hardware\.configstore@1\.[0-9]+-service u:object_r:hal_configstore_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.contexthub@1\.0-service u:object_r:hal_contexthub_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.drm@1\.0-service u:object_r:hal_drm_default_exec:s0 +/(vendor|system/vendor)/bin/hw/android\.hardware\.cas@1\.0-service u:object_r:hal_cas_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.dumpstate@1\.0-service u:object_r:hal_dumpstate_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.gatekeeper@1\.0-service u:object_r:hal_gatekeeper_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.gnss@1\.0-service u:object_r:hal_gnss_default_exec:s0 @@ -19,13 +20,14 @@ /(vendor|system/vendor)/bin/hw/android\.hardware\.ir@1\.0-service u:object_r:hal_ir_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.keymaster@3\.0-service u:object_r:hal_keymaster_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.light@2\.0-service u:object_r:hal_light_default_exec:s0 +/(vendor|system/vendor)/bin/hw/android\.hardware\.lowpan@1\.0-service u:object_r:hal_lowpan_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.memtrack@1\.0-service u:object_r:hal_memtrack_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.nfc@1\.0-service u:object_r:hal_nfc_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.media\.omx@1\.0-service u:object_r:mediacodec_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.power@1\.0-service u:object_r:hal_power_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.sensors@1\.0-service u:object_r:hal_sensors_default_exec:s0 /(vendor|system/vendor)/bin/hw/rild u:object_r:rild_exec:s0 -/(vendor|system/vendor)/bin/hw/android\.hardware\.thermal@1\.0-service u:object_r:hal_thermal_default_exec:s0 +/(vendor|system/vendor)/bin/hw/android\.hardware\.thermal@1\.[01]-service u:object_r:hal_thermal_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.tv\.cec@1\.0-service u:object_r:hal_tv_cec_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.tv\.input@1\.0-service u:object_r:hal_tv_input_default_exec:s0 /(vendor|system/vendor)/bin/hw/android\.hardware\.usb@1\.0-service u:object_r:hal_usb_default_exec:s0 diff --git a/vendor/hal_cas_default.te b/vendor/hal_cas_default.te new file mode 100644 index 000000000..c7a858c5d --- /dev/null +++ b/vendor/hal_cas_default.te @@ -0,0 +1,6 @@ +type hal_cas_default, domain; +hal_server_domain(hal_cas_default, hal_cas) + +type hal_cas_default_exec, exec_type, vendor_file_type, file_type; +init_daemon_domain(hal_cas_default) + diff --git a/vendor/hal_lowpan_default.te b/vendor/hal_lowpan_default.te new file mode 100644 index 000000000..a49bf243f --- /dev/null +++ b/vendor/hal_lowpan_default.te @@ -0,0 +1,5 @@ +type hal_lowpan_default, domain; +type hal_lowpan_default_exec, exec_type, vendor_file_type, file_type; + +hal_server_domain(hal_lowpan_default, hal_lowpan) +init_daemon_domain(hal_lowpan_default) diff --git a/vendor/hal_tetheroffload_default.te b/vendor/hal_tetheroffload_default.te new file mode 100644 index 000000000..03c542b28 --- /dev/null +++ b/vendor/hal_tetheroffload_default.te @@ -0,0 +1,5 @@ +type hal_tetheroffload_default, domain; +hal_server_domain(hal_tetheroffload_default, hal_tetheroffload) + +type hal_tetheroffload_default_exec, exec_type, vendor_file_type, file_type; +init_daemon_domain(hal_tetheroffload_default)