- Apr 10, 2017
-
-
Alex Klyubin authored
Test: mmm system/sepolicy -- no warnings Bug: 3716915 Change-Id: I76886c2d09a70cbe6dc707dd0599217407bb63f7
-
Sandeep Patil authored
Renderscript drivers are loaded from /vendor/lib64 by following the /system/vendor symlink. This change fixes a couple of things. - Allows all domains access to follow the symlink - Restores app domain permissions for /vendor for non-treble devices - Allow app domains to peek into /vendor/lib64, but NOT grant 'execute' permissions for everything. Since RS drivers can be loaded into any process, their vendor implementation and dependencies have been marked as 'same process HALs' already. Bug: 37169158 Test: Tested on sailfish (Treble) & Angler (non-treble) ./cts-tradefed run cts -m CtsRenderscriptTestCases \ --skip-device-info --skip-preconditions --skip-connectivity-check \ --abi arm64-v8a Result: Tests Passed: 743 Tests Failed: 0 Change-Id: I36f5523381428629126fc196f615063fc7a50b8e Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
Jiyong Park authored
The concept of VNDK-stable set is gone because they no longer need to be stable across several Android releases. Instead, they are just small set of system libraries (other than Low-Level NDK) that can be used by same-process HALs. They need to be stable only during an Android release as other VNDK libraries. However, since they are eligible for double loading, we still need to distinguish those libs from other VNDK libraries. So we give them a name vndk-sp, which means VNDK designed for same-process HALs. Bug: 37139956 Test: booting successful with vndk-sp libs in /vendor/lib(64)?/vndk-sp Change-Id: I892c4514deb3c6c8006e3659bed1ad3363420732
-
- Apr 07, 2017
-
-
Jiyong Park authored
Vndk-stable libs are system libs that are used by same process HALs. Since same process HALs can be loaded to any process, so are vndk-stable libs. Bug: 37138502 Test: none, because the directory is currently empty and thus this is no-op. sailfish builds and boots. Change-Id: I67a2c8c2e4c3517aa30b4a97dc80dc2800e47b5a
-
- Apr 06, 2017
-
-
Sandeep Patil authored
Effectively removes TODOs and finalizes the initial solution to allow all domains access to 'vendor_file'. Bug: 36681074 Test: Build and boot sailfish (no policy changes in the CL) Change-Id: I50c05e20175c5273b34901809d967dd3e48bdb0e Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
Sandeep Patil authored
All accesses to /vendor/app within platform include permissions to read symlinks in the location. This rule is redundant now. Bug: 36806861 Test: Boot sailfish and find no denials for 'vendor_app_file' Change-Id: Ic17a67521cff6717d83b78bb4ad8e21e772f6d4f Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
Sandeep Patil authored
/vendor/framework is now designated location for vendor's platform libraries. The directory is thus only made available for 'dex2oat' coredomain. Bug: 36680116 Test: Boot sailfish & angler and launch gApps, dialer w/ no denials for 'vendor_framework_file' Change-Id: I24c2ec30f836330005a972ae20d839bef9dcb8aa Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
Sandeep Patil authored
The change makes 'vendor_overlay_file' accessible only to few platform domains like idmap, system_server, zygote and appdomain. The overlay files contains RROs (runtime resource overlays) Bug: 36681210 Test: Boot sailfish (treble device) from wiped flashall Test: Connect to wifi and launch chrome to load few websites. Test: Launch camera and record + playback video Change-Id: I3596ca89ad51d0e7d78c75121f22ea71209ee332 Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
Sandeep Patil authored
The change makes 'vendor_app_file' accessible only to few platform domains like dex2oat, idmap, installd, system_server and appdomain. Bug: 36681210 Test: Boot sailfish (treble device) from wiped flashall Test: Connect to wifi and launch chrome to load few websites. Test: Launch camera and record + playback video Change-Id: Ib8757fedbf2e19c8381c8cd0f8f2693b2345534b Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
- Apr 05, 2017
-
-
Sandeep Patil authored
The CL splits /vendor labeling from /system. Which was allowing all processes read, execute access to /vendor. Following directories will remain world readable /vendor/etc /vendor/lib(64)/hw/ Following are currently world readable but their scope will be minimized to platform processes that require access /vendor/app /vendor/framework/ /vendor/overlay Files labelled with 'same_process_hal_file' are allowed to be read + executed from by the world. This is for Same process HALs and their dependencies. Bug: 36527360 Bug: 36832490 Bug: 36681210 Bug: 36680116 Bug: 36690845 Bug: 36697328 Bug: 36696623 Bug: 36806861 Bug: 36656392 Bug: 36696623 Bug: 36792803 All of the tests were done on sailfish, angler, bullhead, dragon Test: Boot and connect to wifi Test: Run chrome and load websites, play video in youtube, load maps w/ current location, take pictures and record video in camera, playback recorded video. Test: Connect to BT headset and ensure BT audio playback works. Test: OTA sideload using recovery Test: CTS SELinuxHostTest pass Change-Id: I278435b72f7551a28f3c229f720ca608b77a7029 Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
Andreas Gampe authored
Add selinux policies for init script and shell script to unzip a tar containing ASAN libraries on boot. Bug: 36458146 Test: m && m SANITIZE_TARGET=address Test: manual (build steps for tar missing) Change-Id: I5c3cb233aae93ee9985431090af902b0e3c1b0a7 (cherry picked from commit 0b743050) Merged-In: I5c3cb233aae93ee9985431090af902b0e3c1b0a7
-
- Apr 01, 2017
-
-
Jeff Vander Stoep authored
Vendor and system components are only allowed to share files by passing open FDs over HIDL. Ban all directory access and all file accesses other than what can be applied to an open FD such as ioctl/stat/read/write/append. This commit asserts that core components marked with attribute coredomain may only access core data types marked with attribute core_data_file_type. A temporary exemption is granted to domains that currently rely on access. (cherry picked from commit cd97e710) Bug: 34980020 Test: build Marlin policy Change-Id: I2f0442f2628fbac1f2f7aa5ddf2a13e16b2546cc
-
- Mar 31, 2017
-
-
Jeff Vander Stoep authored
/data/misc/zoneinfo is provided by libc and is considered to be VNDK stable. Grant read access to all domains and exempt from neverallow rules asserting no vendor access to core data types. Bug: 36730929 Test: Marlin Policy builds Change-Id: I13766a661d6314f5393639fc20f1ab55d802f35f
-
Alex Klyubin authored
This futher restricts neverallows for sockets which may be exposed as filesystem nodes. This is achieved by labelling all such sockets created by core/non-vendor domains using the new coredomain_socket attribute, and then adding neverallow rules targeting that attribute. This has now effect on what domains are permitted to do. This only changes neverallow rules. Test: mmm system/sepolicy Bug: 36577153 (cherry picked from commit cf2ffdf0) Change-Id: Iffeee571a2ff61fb9515fa6849d060649636524e
-
- Mar 30, 2017
-
-
Alex Klyubin authored
This tightens neverallows for looking up Binder servicemanager services from vendor components. In particular, vendor components, other than apps, are not permitted to look up any Binder services. Vendor apps are permitted to look up only stable public API services which is exactly what non-vendor apps are permitted to use as well. If we permitted vendor apps to use non-stable/hidden Binder services, they might break when core components get updated without updating vendor components. Test: mmm system/sepolicy Bug: 35870313 Change-Id: I47d40d5d42cf4205d9e4e5e5f9d0794104efc28f
-
Ian Pedowitz authored
This reverts commit 5c09d123. Broke the build Bug: 35870313 Test: source build/envsetup.sh && lunch marlin-userdebug && m -j40 Change-Id: I71c968be6e89462fd286be5663933552d478f8bf
-
- Mar 29, 2017
-
-
Alex Klyubin authored
This tightens neverallows for looking up Binder servicemanager services from vendor components. In particular, vendor components, other than apps, are not permitted to look up any Binder services. Vendor apps are permitted to look up only stable public API services which is exactly what non-vendor apps are permitted to use as well. If we permitted vendor apps to use non-stable/hidden Binder services, they might break when core components get updated without updating vendor components. Test: mmm system/sepolicy Bug: 35870313 Change-Id: I949d62b3528cadb4bfe6f5985c25d1f497df0d5a
-
Alex Klyubin authored
We don't want to prevent access from vendor platform apps to system app data. The issue with the referencing system_app explicitly in neverallows is that vendor platform apps which need sandboxes similar to system_app cannot be placed under system_app without modifying the policy for all platform apps. Test: mmm system/sepolicy Change-Id: Ic0052602c31be4d74b02eeea129e2d8bfbd9c8d3
-
Sandeep Patil authored
split property context file in vendor and sytem were left untouched by the recent changes. This was working accidentally because they were still accessible to all domains as 'system_file'. Bug: 36002573 Test: Boot sailfish to observe no new denials. Test: 'adb sideload' OTA on sailfish successfully Change-Id: I5bec058b59db83d2a431e9f7e91c5a09af7d2942 Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
Alex Klyubin authored
Unescaped apostrophe is not permitted inside macros. Test: mmm system/sepolicy -- no warnings Bug: 34980020 Change-Id: I893a41508d8b62975771967fd6e40e50d188c7c1
-
- Mar 28, 2017
-
-
Jeff Vander Stoep authored
Vendor and system components are only allowed to share files by passing open FDs over HIDL. Ban all directory access and all file accesses other than what can be applied to an open file: stat/read/write/append. This commit marks core data types as core_data_file_type and bans access to non-core domains with an exemption for apps. A temporary exemption is also granted to domains that currently rely on access with TODOs and bug number for each exemption. Bug: 34980020 Test: Build and boot Marlin. Make phone call, watch youtube video. No new denials observed. Change-Id: I320dd30f9f0a5bf2f9bb218776b4bccdb529b197
-
- Mar 27, 2017
-
-
Alex Klyubin authored
In f5446eb1 I forgot to let violators of "no Binder in vendor" rule keep their access to /dev/binder. This commit fixes the issue. Test: mmm system/sepolicy Bug: 35870313 Bug: 36657020 Change-Id: I3fc68df1d78e2a2da94ac9bf036a51923e3a9aae
-
Alex Klyubin authored
On PRODUCT_FULL_TREBLE devices, non-vendor domains (coredomain) and vendor domain are not permitted to connect to each other's sockets. There are two main exceptions: (1) apps are permitted to talk to other apps over Unix domain sockets (this is public API in Android framework), and (2) domains with network access (netdomain) are permitted to connect to netd. This commit thus: * adds neverallow rules restricting socket connection establishment, * temporarily exempts the domains which are currently violating this rule from this restriction. These domains are grouped using the new "socket_between_core_and_vendor_violators" attribute. The attribute is needed because the types corresponding to violators are not exposed to the public policy where the neverallow rules are. Test: mmm system/sepolicy Bug: 36613996 Change-Id: I458f5a09a964b06ad2bddb52538ec3a15758b003
-
- Mar 24, 2017
-
-
Alex Klyubin authored
On PRODUCT_FULL_TREBLE devices, non-vendor domains (except vendor apps) are not permitted to use Binder. This commit thus: * groups non-vendor domains using the new "coredomain" attribute, * adds neverallow rules restricting Binder use to coredomain and appdomain only, and * temporarily exempts the domains which are currently violating this rule from this restriction. These domains are grouped using the new "binder_in_vendor_violators" attribute. The attribute is needed because the types corresponding to violators are not exposed to the public policy where the neverallow rules are. Test: mmm system/sepolicy Test: Device boots, no new denials Test: In Chrome, navigate to ip6.me, play a YouTube video Test: YouTube: play a video Test: Netflix: play a movie Test: Google Camera: take a photo, take an HDR+ photo, record video with sound, record slow motion video with sound. Confirm videos play back fine and with sound. Bug: 35870313 Change-Id: I0cd1a80b60bcbde358ce0f7a47b90f4435a45c95
-
- Mar 23, 2017
-
-
Martijn Coenen authored
vndservicemanager is the context manager for binder services that are solely registered and accessed from vendor processes. Bug: 36052864 Test: vendorservicemanager runs Merged-In: Ifbf536932678d0ff13d019635fe6347e185ef387 Change-Id: I430f1762eb83825f6cd4be939a69d46a8ddc80ff
-
- Mar 22, 2017
-
-
Martijn Coenen authored
vndservicemanager is the context manager for binder services that are solely registered and accessed from vendor processes. Bug: 36052864 Test: vendorservicemanager runs Change-Id: Ifbf536932678d0ff13d019635fe6347e185ef387
-
- Mar 07, 2017
-
-
Josh Gao authored
Let mediacodec and mediaextractor talk directly to tombstoned to generate tombstones/ANR traces. Bug: http://b/35858739 Test: debuggerd -b `pidof media.codec` Change-Id: I091be946d58907c5aa7a2fe23995597638adc896
-
Yabin Cui authored
perf_event_max_sample_rate is needed to be read for native profiling, otherwise CTS test can fail on devices with kernel >= 4.4. Before this CL, the file is not readable from untrusted_app domain. This CL makes it readable from both shell domain and untrusted_app domain. Bug: http://b/35554543 Test: build and test on marlin. Change-Id: Id118e06e3c800b70a749ab112e07a4ec24bb5975
-
- Mar 06, 2017
-
-
Nick Kralevich authored
We need more time to investigate the effect that this change will have on DRM solutions. Until the investigation is done, revert. This reverts commit 38d3eca0. Bug: 30146890 Bug: 20013628 Bug: 35323421 Change-Id: I5ad69ef5ee12081ce7fc0a8440712f7f8f77cf16 Test: policy compiles.
-
- Mar 05, 2017
-
-
Nick Kralevich authored
Drop support for execmod (aka text relocations) for newer API versions. Retain it for older app APIs versions. Bug: 30146890 Bug: 20013628 Bug: 35323421 Test: policy compiles. Change-Id: Ie54fdb385e9c4bb997ad6fcb6cff74f7e32927bb
-
- Mar 03, 2017
-
-
Jeff Vander Stoep authored
Addresses: denied { getattr } for pid=155 comm="keystore" path="/vendor" dev="mmcblk0p6" ino=1527 scontext=u:r:keystore:s0 tcontext=u:object_r:system_file:s0 tclass=lnk_file On devices without an actual vendor image, /vendor is a symlink to /system/vendor. When loading a library from this symlinked vendor, the linker uses resolve_paths() resulting in an lstat(). This generates an selinux denial. Allow this lstat() so that paths can be resolved on devices without a real vendor image. Bug: 35946056 Test: sailfish builds Change-Id: Ifae11bc7039047e2ac2b7eb4fbcce8ac4580799f
-
- Feb 23, 2017
-
-
Luis Hector Chavez authored
Label /proc/sys/vm/mmap_rnd_bits so it is only readable and writable by init. This also tightens the neverallow restrictions for proc_security. Bug: 33563834 Test: run cts -m CtsPermissionTestCases -t \ android.permission.cts.FileSystemPermissionTest#testProcfsMmapRndBitsExistsAndSane Change-Id: Ie7af39ddbf23806d4ffa35e7b19d30fec7b6d410
-
- Feb 17, 2017
-
-
Nick Kralevich authored
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. Addresses the following denials: avc: denied { getattr } for comm="e2fsck" path="/dev/block/sde5" dev="tmpfs" ino=15649 scontext=u:r:fsck:s0 tcontext=u:object_r:metadata_block_device:s0 tclass=blk_file permissive=0 avc: denied { getattr } for comm="e2fsck" path="/dev/block/sda25" dev="tmpfs" ino=15528 scontext=u:r:fsck:s0 tcontext=u:object_r:modem_block_device:s0 tclass=blk_file permissive=0 avc: denied { getattr } for comm="e2fsck" path="/dev/block/sda31" dev="tmpfs" ino=15552 scontext=u:r:fsck:s0 tcontext=u:object_r:system_block_device:s0 tclass=blk_file permissive=0 avc: denied { getattr } for comm="e2fsck" path="/dev/block/sdd3" dev="tmpfs" ino=15600 scontext=u:r:fsck:s0 tcontext=u:object_r:block_device:s0 tclass=blk_file permissive=0 Bug: 35324014 Bug: 33781554 Test: device boots and no SELinux denials. Change-Id: I5af4a334ec41952887914eec4eee5c60cc441a66
-
- Feb 14, 2017
-
-
Jeff Vander Stoep authored
Motivation: Provide the ability to phase in new security policies by applying them to apps with a minimum targetSdkVersion. Place untrusted apps with targetSdkVersion<=25 into the untrustd_app_25 domain. Apps with targetSdkVersion>=26 are placed into the untrusted_app domain. Common rules are included in the untrusted_app_all attribute. Apps with a more recent targetSdkVersion are granted fewer permissions. Test: Marlin builds and boots. Apps targeting targetSdkVersion<=25 run in untrusted_app_25 domain. Apps targeting the current development build >=26 run in the untrusted_app domain with fewer permissions. No new denials observed during testing. Bug: 34115651 Bug: 35323421 Change-Id: Ie6a015566fac07c44ea06c963c40793fcdc9a083
-
- Feb 07, 2017
-
-
Dimitry Ivanov authored
Bug: http://b/32123312 Test: mm && boot Change-Id: I6550fbe2bd5f9f5a474419b483b0f786d4025e88
-
- Feb 06, 2017
-
-
Chad Brubaker authored
The rules for the two types were the same and /data/app-ephemeral is being removed. Remove these types. Test: Builds Change-Id: I520c026395551ad1362dd2ced53c601d9e6f9b28
-
- Feb 01, 2017
-
-
Max Bires authored
There are many character files that are unreachable to all processes under selinux policies. Ueventd and init were the only two domains that had access to these generic character files, but auditing proved there was no use for that access. In light of this, access is being completely revoked so that the device nodes can be removed, and a neverallow is being audited to prevent future regressions. Test: The device boots Bug: 33347297 Change-Id: If050693e5e5a65533f3d909382e40f9c6b85f61c
-
- Jan 31, 2017
-
-
Calin Juravle authored
Since it was introduced it caused quite a few issues and it spams the SElinux logs unnecessary. The end goal of the audit was to whitelist the access to the interpreter. However that's unfeasible for now given the complexity. Test: devices boots and everything works as expected no more auditallow logs Bug: 29795519 Bug: 32871170 Change-Id: I9a7a65835e1e1d3f81be635bed2a3acf75a264f6
-
- Jan 25, 2017
-
-
Jeff Tinker authored
bug:32815560 Change-Id: I494141b47fcd2e7e0cc02aa58d8df9a222060b3f
-
- Jan 23, 2017
-
-
Max Bires authored
This neverallow addition addresses the renaming of files in exploits in order to bypass denied permissions. An example of a similar use case of using mv to bypass permission denials appeared in a recent project zero ChromeOS exploit as one of the steps in the exploit chain. https://googleprojectzero.blogspot.com/2016/12/chrome-os-exploit-one-byte-overflow-and.html Additionally, vold and init both had permission sets that allowed them to rename, but neither of them seem to need it. Therefore the rename permission has also been removed from these two .te files. Test: The device boots successfully Change-Id: I07bbb58f058bf050f269b083e836c2c9a5bbad80
-