- Mar 13, 2017
-
-
Alex Klyubin authored
This ensures that SELinux policy artifact needed by recovery at runtime have targets in this build script. This is to make recoveryimage/bootimage targets depend on these artifacts explicitly, which reduces the element of surprise. Moreover, this enables us to move non-recovery artifacts around without affecting recovery artifacts. Test: Clean build, flash, device boots just fine, no new denials. Reboot to recovery, recovery boots just fine, no denials. This was tested on bullhead (non A/B device) and sailfish (A/B device). Bug: 33642277 Change-Id: I3c494d9d7fec5c4f487d38964e572757fcf67f57
-
- Mar 11, 2017
-
-
Jeff Vander Stoep authored
Test: Build and boot Marlin Test: See the following in the logs: 01-01 02:10:28.756 1345 1345 D SELinuxMMAC: Using policy file /system/etc/selinux/plat_mac_permissions.xml 01-01 02:10:28.787 1345 1345 D SELinuxMMAC: Using policy file /vendor/etc/selinux/nonplat_mac_permissions.xml Bug: 36003167 Change-Id: If17490a2a5d94bfea1fa6d282282d45d67e207e9
-
- Mar 10, 2017
-
-
Jeff Vander Stoep authored
Build file_contexts.bin on legacy builds. Test: Marlin and Bullhead build and boot with no new denials. Test: Marlin and Bullhead recovery boots with no new denials. Test: Bullhead boots with file_contexts.bin in / Test: Marlin boot with /system/etc/selinux/plat_file_contexts and /vendor/etc/selinux/nonplat_file_contexts. Bug: 36002414 Change-Id: Ide8498b3c86234d2f93bb22a7514d132c33067d6
-
Alex Klyubin authored
Recovery should always use monolithic policy. Thus, we don't need split policy files *.recovery.cil. This commit removes these targets and rolls up the relevant parts of the targets into "sepolicy.recovery" which is the target which produces monolithic policy for recovery. Test: make clean && make sepolicy.recovery, then confirm that repolicy.recovery is identical to the one produced prior to this change. Test: Clean build, flash, device boots up fine, no new denials. Device also boots into recovery just fine, no denials. Bug: 31363362 Change-Id: I7f698abe1f17308f2f03f5ed1b727a8b071e94c7
-
Alex Klyubin authored
This reverts commit 4cb628a3. Reason for revert: recovery image on marlin & sailfish no longer contained *property_contexts and thus recovery failed to boot. Test: Clean build, flash, sailfish and bullhead boot up just fine, and boot into recovery just fine. Bug: 36002573 Bug: 36108354 Change-Id: I2dffd80764f1a464327747d35a58691b24cff7a7
-
- Mar 09, 2017
-
-
Jeff Vander Stoep authored
Test: Build and boot Marlin and Bullhead. Test: Contexts split between /system and /vendor on Marlin. Remains stored in / on Bullhead. Bug: 36002816 Bug: 36002427 Change-Id: I922bcbc0cc2c08e312cf942ee261951edfa8d4e2
-
- Mar 08, 2017
-
-
Alex Klyubin authored
This makes the build system, for TREBLE devices only, place plat_property_contexts under /system/etc/selinux and nonplat_property_contexts under /vendor/etc/selinux. For other devices these files are placed under /, same as before. Test: *_property_contexts in correct locations when PRODUCT_FULL_TREBLE is set to true and when it is set to false. Bug: 36002573 Change-Id: I7e30e64918bb3ee671fa8c7a2e30ed96a9cc1ad7
-
- Mar 07, 2017
-
-
Alex Klyubin authored
This adds build targets for outputing precompiled kernel policy usable on devices with policy split between system and vendor partitions. On such devices, precompiled policy must reside on the vendor partition. Because such devices support updating these partitions independently of each other, the precompiled policy must reference the system partition's policy against which it was compiled. This enables init to establish whether the precompiled policy is valid for the current combination of system and vendor partitions. The referencing is performed by both the system and vendor partitions including the SHA-256 digest of the system partition's policy (plat_sepolicy.cil). Only the when the digest is the same on both partitions can the precompiled policy be used. Test: plat_sepolicy.cil.sha256 contains exactly the hex form of the SHA-256 digest of plat_sepolicy.cil Test: plat_sepolicy.cil.sha256 is identical precompiled_sepolicy.plat.sha256. Bug: 31363362 Change-Id: I9771e1aa751e25bba6e2face37d68e0ae43b33a3
-
Jeff Vander Stoep authored
With the plat/nonplat policy split, nonplat_seapp_contexts should still be checked against the plat_seapp_contexts_neverallows during build time to ensure no violations occur. Test: stock aosp_marlin builds. Test: name=foo.bar seinfo=default fails (as expected) in nonplat policy Test: name=foo.bar seinfo="" fails (as expected) in nonplat policy Bug: 36002816 Change-Id: I95b2c695b23e2bdf420575d631e85391e93fc869
-
- Mar 03, 2017
-
-
Alex Klyubin authored
This moves the CIL files comprising the split sepolicy to the directories/partitions based on whether the file is part of platform/system or non-platform/vendor. In particular: * plat_sepolicy.cil is moved to /system/etc/selinux, * nonplat_sepolicy.cil is moved to /vendor/etc/selinux, and * mapping_sepolicy.cil is moved to /vendor/etc/selinux. Test: Device boots, no additional denials. The test is performed both for a device without the CIL files and with the three CIL files. Bug: 31363362 Change-Id: Ia760d7eb32c80ba72f6409da75d99eb5aae71cd9
-
- Feb 25, 2017
-
-
Alex Klyubin authored
Prior to this commit, there was a bug in generated CIL where it wouldn't compile using secilc. The reason was that the build script was stripping out all lines containing "neverallow" from CIL files, accidentally removing lines which were not neverallow statements, such as lmx lines referencing app_neverallows.te. The commit fixes the build script's CIL neverallow filter to filter out only neverallow* statements, as originally intended. Moreover, to catch non-compiling CIL policy earlier in the future, this commit runs secilc on the policy at build time. In particular, it tests that platform policy compiles on its own and that nonplatform + platform + mappig policy compiles as well. Test: CIL policy builds and compiles on-device using secilc Bug: 31363362 Change-Id: I769aeb3d8c913a5599f1a2195c69460ece7f6465
-
- Jan 31, 2017
-
-
Alex Klyubin authored
Default HAL implementations are built from the platform tree and get placed into the vendor image. The SELinux rules needed for these HAL implementations to operate thus need to reside on the vendor partition. Up to now, the only place to define such rules in the source tree was the system/sepolicy/public directory. These rules are placed into the vendor partition. Unfortunately, they are also placed into the system/root partition, which thus unnecessarily grants these rules to all HAL implementations of the specified service, default/in-process shims or not. This commit adds a new directory, system/sepolicy/vendor, whose rules are concatenated with the device-specific rules at build time. These rules are thus placed into the vendor partition and are not placed into the system/root partition. Test: No change to SELinux policy. Test: Rules placed into vendor directory end up in nonplat* artefacts, but not in plat* artefacts. Bug: 34715716 Change-Id: Iab14aa7a3311ed6d53afff673e5d112428941f1c
-
- Jan 29, 2017
-
-
Sandeep Patil authored
Bug: 33746484 Test: Successfully boot with original service and property contexts. Successfully boot with split serivce and property contexts. Change-Id: I87f95292b5860283efb2081b2223e607a52fed04 Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
- Jan 20, 2017
-
-
Alex Klyubin authored
This fixes the following issues introduced in commit d225b697: * plat_file_contexts was empty because the target was referencing system/sepolicy/private/file_contexts via a misspelled variable name. * plat_file_contexts wasn't marked as dirty and thus wasn't rebuilt when system/sepolicy/private/file_contexts changed. This is because the file_contexts dependency was referenced via a misspelled variable name. * plat_file_contexts wasn't sorted (as opposed to other similar targets, such as nonplat_file_contexts and file_contexts.bin). This may lead to unnecessary non-determinism. * nonplat_file_contexts wasn't marked dirty and thus wasn't rebuilt when device-specific file_contexts file(s) changed. This is because the file_contexts files were referenced via a misspelled variable name. Test: "make plat_file_contexts" produces a non-empty file containing mappings from system/sepolicy/private/file_contexts Test: "make plat_file_contexts" updates output when system/sepolicy/private/file_contexts changes Test: "make plat_file_contexts" produces output which is sorted accroding to rules in fc_sort Test: "make nonplat_file_contexts" updates output when device/lge/bullhead/sepolicy/file_contexts changes (tested on aosp_bullhead-eng) Bug: 31363362 Change-Id: I540555651103f02c96cf958bb93618f600e47a75
-
- Jan 18, 2017
-
-
Jorim Jaggi authored
This reverts commit 262edc38. Fixes: 34370523 Change-Id: I077d064d4031d40bc48cb39eba310e6c16b9627d
-
Sandeep Patil authored
Bug: 33746484 Test: Successfully boot with original service and property contexts. Successfully boot with split serivce and property contexts. Change-Id: I7881af8922834dc69b37dae3b06d921e05206564 Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
Sandeep Patil authored
Bug: 33746484 Test: Successfully boot with original service and property contexts. Successfully boot with split serivce and property contexts. Change-Id: Ide67d37d85273c60b9e387e72fbeb87be6da306a Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
- Jan 09, 2017
-
-
Dan Cashman authored
Bug: 33746381 Test: Device boots with no extra denials. Change-Id: I2f0da92367851142e0d7df4afec8861ceaed9d3e
-
- Jan 05, 2017
-
-
dcashman authored
Simulate platform and non-platform split by compiling two different file_contexts files and loading them together on-device. Leave the existing file_contexts.bin in place until we're ready to build images based on the new files. Bug: 31363362 Test: Builds and boots without additional denials. Change-Id: I7248f876e2230cee3b3cbf386422063da1e3dde0 Bring back file_contexts.bin. Change-Id: Ifec2c363579151080fdec48e8bc46bbbc8c97674 Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
- Dec 28, 2016
-
-
Richard Uhler authored
Test: make checkbuild, aosp_bullhead-userdebug boots. Bug: 33192586 Change-Id: I386df8b6c04fb162f79a4409801ce3e882026ea8
-
- Dec 21, 2016
-
-
Steven Moreland authored
Enabling/disabling sepolicy based on ENABLE_TREBLE is not granular enough (ref: b/32978887 #4). Bug: 32978887 Test: compiles, doesn't cause any additional denials on device. Nothing depends on these things I'm removing. Change-Id: I10acbde16e5e2093f2c9205ed79cd20caed7f44d
-
- Dec 17, 2016
-
-
Daniel Cashman authored
This reverts commit cf5c6ecb. Change-Id: Ie86a6ac20ab5a1611efc0e167c0430eb9df9482e
-
- Dec 16, 2016
-
-
Dan Cashman authored
Prevent sepolicy and sepolicy.recover from showing up in the root filesystem when they will not be created as part of it. Also make sure both are added as dependencies to version_policy to ensure the neverallow checks are run. Bug: 31363362 Test: Builds and boots, including recovery, without additional denials. Neverallow violations still caught at build time. Change-Id: I39e3cbc150551c9316952523927d057538cd00a7
-
Dan Cashman authored
And do some clean up: Replace LOCAL_TARGET_ARCH with global arch specifier that won't get clobbered, clean up sepolicy.recovery's eng specification, ensure that build macros are applied across all policy generation, not just plat_policy, and make sure that all private variables are cleared and alphabetized at the end. Bug: 31363362 Bug: 31369363 Test: Boot into recovery and observe no selinux denials. Change-Id: Ibc15b097f6d19acf01f6b22bee0e083b15f4ef75
-
- Dec 15, 2016
-
-
dcashman authored
Bug: 31363362 Test: Bullhead and Sailfish both build and boot w/out new denials. Change-Id: If6a451ddaab8c9b78a618c49b116a7ed766d0710
-
- Dec 13, 2016
-
-
dcashman authored
Simulate platform and non-platform split by sending the split files to the device to be compiled by init. Bug: 31363362 Test: Policy builds on-device and boots. sediff shows no difference. Change-Id: I9627d1c66ca37786d97a049666278a4992ad7579
-
- Dec 07, 2016
-
-
dcashman authored
Bug: 33388095 Test: Builds and boots. Change-Id: Ief9064a16fc733bed54eb76f509ff5aaf5db4baf
-
- Dec 06, 2016
-
-
dcashman authored
In order to support platform changes without simultaneous updates from non-platform components, the platform and non-platform policies must be split. In order to provide a guarantee that policy written for non-platform objects continues to provide the same access, all types exposed to non-platform policy are versioned by converting them and the policy using them into attributes. This change performs that split, the subsequent versioning and also generates a mapping file to glue the different policy components together. Test: Device boots and runs. Bug: 31369363 Change-Id: Ibfd3eb077bd9b8e2ff3b2e6a0ca87e44d78b1317
-
- Nov 21, 2016
-
-
Jorge Lucangeli Obes authored
|WITH_DEXPREOPT_PIC = false| will still cause code to be loaded from /data. Bug: 32970029 Test: On HiKey and Marlin: Test: Add |WITH_DEXPREOPT_PIC = false|, see SELinux denial. Test: Apply this CL, no SELinux denials. Change-Id: I0a1d39eeb4d7f75d84c1908b879d9ea1ccffba74
-
- Nov 18, 2016
-
-
Jorge Lucangeli Obes authored
When WITH_DEXPREOPT is set, the zygote does not need to execute dalvikcache_data_file objects. Bug: 32970029 Test: Add policy line inside macro, build with and without WITH_DEXPREOPT. Test: HiKey builds, boots, no zygote denials. Change-Id: I4dace93e8044267232f0f26cfe427fc250d351fb
-
- Oct 19, 2016
-
-
Jeff Vander Stoep authored
Test: builds Change-Id: Idd1d90a89a9ecbb2738d6b483af0e8479e87aa15
-
- Oct 06, 2016
-
-
dcashman authored
Divide policy into public and private components. This is the first step in splitting the policy creation for platform and non-platform policies. The policy in the public directory will be exported for use in non-platform policy creation. Backwards compatibility with it will be achieved by converting the exported policy into attribute-based policy when included as part of the non-platform policy and a mapping file will be maintained to be included with the platform policy that maps exported attributes of previous versions to the current platform version. Eventually we would like to create a clear interface between the platform and non-platform device components so that the exported policy, and the need for attributes is minimal. For now, almost all types and avrules are left in public. Test: Tested by building policy and running on device. Change-Id: Idef796c9ec169259787c3f9d8f423edf4ce27f8c
-
- Aug 29, 2016
-
-
Douglas Leung authored
This patch allows mips to boot in enforcing mode. Change-Id: Ia4676db06adc3ccb20d5f231406cf4ab67317496
-
- Jul 01, 2016
-
-
William Roberts authored
Strip whitespace and comments from service_context files to reduce size. On an aosp_x86_64 build it saves 36 bytes. However, on builds with more synclines and comments, further space savings can be realized. Change-Id: I3cb4effad1d1b404bf53605a3793e3070cb95651 Signed-off-by:
William Roberts <william.c.roberts@intel.com>
-
William Roberts authored
Strip whitespace and comments from property_context files to reduce size. On an aosp_x86_64 build it saves 851 bytes. However, on builds with more synclines and comments, further space savings can be realized. Change-Id: I43caf1deaab53d4753c835918898c8982f477ef0 Signed-off-by:
William Roberts <william.c.roberts@intel.com>
-
- May 13, 2016
-
-
Shinichiro Hamaji authored
Bug: 27954979 Change-Id: Ia0403e2dc2726523a41742e23beff29b47274392
-
- Mar 01, 2016
-
-
Nick Kralevich authored
checkpolicy spits out a bunch of unnecessary lines during normal operation, which bloat the logs and hide other more important warnings. Suppress the normal output. SELinux compile time errors are printed to stderr, and are uneffected by this change. Change-Id: I07f2cbe8afcd14abf1c025355a169b5214ed5c6e
-
- Feb 27, 2016
-
-
Nick Kralevich authored
It's a CTS requirement that all SELinux domains be in enforcing mode. Add the same assertion to the build system when targeting user builds. In particular, this avoids a situation where device integrity checking is enabled on user builds, but permissive denials are being generated, causing the device to unexpectedly reboot into safe mode. A developer wanting to put an SELinux domain into permissive mode for userdebug/eng purposes can write the following in their policy: userdebug_or_eng(` permissive foo; ') Bug: 26902605 Bug: 27313768 (cherry picked from commit bca98efa) Change-Id: If6abe1fa70c79a1fccdbdd9ff273d92de7565a73
-
Nick Kralevich authored
It's a CTS requirement that all SELinux domains be in enforcing mode. Add the same assertion to the build system when targeting user builds. In particular, this avoids a situation where device integrity checking is enabled on user builds, but permissive denials are being generated, causing the device to unexpectedly reboot into safe mode. A developer wanting to put an SELinux domain into permissive mode for userdebug/eng purposes can write the following in their policy: userdebug_or_eng(` permissive foo; ') Bug: 26902605 Bug: 27313768 Change-Id: Ic0971d9e96a28f2a98f9d56a547661d24fb81a21
-
- Jan 15, 2016
-
-
William Roberts authored
Ordering matters in fc files; the last match wins. In builds where many BOARD_SEPOLICY_DIRS are set, the order of that list becomes increasingly important in order to maintain a cohesive built file_contexts. To correct this, we sort the device specific file_contexts entries with the upstream fc_sort tool. Change-Id: I3775eae11bfa5905cad0d02a0bf26c76ac03437c Signed-off-by:
William Roberts <william.c.roberts@intel.com>
-