No description
Find a file
Nick Kralevich f4fc922f0b Set bin directories to 0751
Currently, /system/bin, /system/xbin, /product/bin, and /vendor/bin
are 0755, which allows any process to iterate through those
directories and list out the contents. For the vast majority of
processes, this is unnecessary. They only need to know whether a
particular binary exists or doesn't exist, but they don't need to
know the other binaries within those directories.

Allowing this is particularly problematic for SELinux. In particular,
some third party Android applications try to examine every file in
the bin directories, generating SELinux audit noise along the
way. This audit noise makes it harder to see real bugs, and falsely
implies an architectural dependency between the application and random
files in directories like /system/bin.

This change removes the ability to list the contents of the various bin
directories, preventing random probing by such apps. The ability to
execute files, or to probe a specific file by name, remain unchanged.

Addresses SELinux denials similar to the following:
  avc: denied { getattr } for comm="Thread-11" path="/system/bin/atrace" dev="dm-0" ino=189 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:atrace_exec:s0 tclass=file permissive=0 app=uk.co.santander.santanderUK
  avc: denied { getattr } for comm="Binder:26637_2" path="/system/bin/atrace" dev="dm-0" ino=168 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:atrace_exec:s0 tclass=file permissive=0 app=com.tencent.mm
  avc: denied { getattr } for comm="Thread-12" path="/system/bin/apexd" dev="dm-0" ino=451 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:apexd_exec:s0 tclass=file permissive=1 app=com.grppl.android.shell.CMBlloydsTSB73

Shell access to these directories continues to be allowed, to allow for
host-side CTS tests.

Also adjust the indentation of some clang directives, to make the
presubmit hooks happy.

Test: Device boots and no apparent problems.
Change-Id: Ibe75682fac1983d39f3f479a5850ab5a96f6627d
2018-11-11 11:29:10 -08:00
adb Merge "adb: pin USB interface versions on darwin." 2018-11-09 18:45:52 +00:00
adf Make libadf, libsync_recovery recovery_available. 2018-08-07 10:53:07 -07:00
base libbase: add Fdopendir that takes a unique_fd. 2018-11-02 08:24:38 -07:00
bootstat bootstat: smpl -> reboot,powerloss 2018-09-26 13:02:16 -07:00
cpio Convert more modules to Android.bp 2018-10-31 21:53:37 -07:00
debuggerd Merge "debuggerd_fallback: fix fd leak." 2018-10-31 06:05:28 +00:00
demangle Build adbd for recovery 2018-05-24 14:11:11 +09:00
diagnose_usb Build adbd for recovery 2018-05-24 14:11:11 +09:00
fastboot fastboot: Query the name of the super partition. 2018-11-06 11:43:04 -08:00
fs_mgr liblp: Add a helper method for upgrading metadata on retrofit devices. 2018-11-09 16:03:40 -08:00
gatekeeperd Convert more modules to Android.bp 2018-10-31 21:53:37 -07:00
healthd healthd: BatteryMonitor: Fix compiler warning 2018-11-02 17:59:09 +00:00
include Move android_filesystem_config.h => fs_config.h 2017-08-02 16:31:19 -07:00
init Merge "Revert "init: chroot from recovery to /first_stage_ramdisk"" 2018-11-09 18:51:14 +00:00
libappfuse Stop using SO_SNDBUFFORCE 2018-03-15 14:22:27 +09:00
libasyncio Build adbd for recovery 2018-05-24 14:11:11 +09:00
libbacktrace Verify that the elf matches the expected arch. 2018-10-29 18:08:09 -07:00
libbinderwrapper Make libbinderwrapper available in /vendor partition 2018-04-06 08:41:21 +09:00
libcrypto_utils Convert more modules to Android.bp 2018-10-31 21:53:37 -07:00
libcutils Set bin directories to 0751 2018-11-11 11:29:10 -08:00
libdiskconfig Rename target.linux[_x86[_64]] to target.linux_glibc[_x86[_64]] 2017-10-02 10:44:29 -07:00
libgrallocusage Merge "Build both static and shared lib." 2018-09-25 22:29:31 +00:00
libion libion: cleanup logging 2018-03-07 10:56:06 -08:00
libkeyutils Build adbd for recovery 2018-05-24 14:11:11 +09:00
liblog Merge "Add missing <android/log.h> documentation." 2018-11-02 23:32:43 +00:00
libmeminfo libmeminfo: Add libmeminfo to gather global and per-process memory stats 2018-11-05 10:42:46 -08:00
libmemtrack Add OWNERS. 2017-12-07 13:30:03 -08:00
libmemunreachable Merge "Revert "Use ld when lld fails"" 2018-11-08 20:27:58 +00:00
libmetricslogger Make native metrics logger write to statsd socket 2018-10-24 15:19:14 -07:00
libnativebridge Convert more modules to Android.bp 2018-10-31 21:53:37 -07:00
libnativeloader Add error_msg argument to CloseNativeLibrary 2018-09-12 01:36:06 +02:00
libnetutils Merge "Add OWNERS." am: 3289b9c928 2017-12-07 23:51:13 +00:00
libpackagelistparser Mark as recovery_available: true 2018-05-15 09:47:04 +09:00
libpixelflinger Move system/core/ off NO_ERROR. 2018-10-08 11:15:52 -07:00
libprocessgroup Introduce additional service options for controlling memory cgroups. 2018-10-31 17:09:59 -07:00
libprocinfo libprocinfo: provide MapInfo structure for reading maps. 2018-10-30 17:36:09 -07:00
libqtaguid Redirect qtaguid native call to netd fwmark client 2017-11-09 18:02:22 -08:00
libsparse Revert "libsparse: Add sparse typed callback" 2018-07-26 05:23:45 +00:00
libstats Make native metrics logger write to statsd socket 2018-10-24 15:19:14 -07:00
libsuspend Remove libsuspend from VNDK. 2018-08-14 13:39:55 -07:00
libsync Merge libsync_recovery rules into libsync. 2018-08-07 11:00:50 -07:00
libsystem Move system/core/ off NO_ERROR. 2018-10-08 11:15:52 -07:00
libsysutils Suppress implicit-fallthrough warning. 2018-10-10 14:39:02 -07:00
libunwindstack Verify that the elf matches the expected arch. 2018-10-29 18:08:09 -07:00
libusbhost Merge "Remove urb request size maximum." am: 1cb765c867 am: 1ab6e9d018 2018-02-13 09:02:38 +00:00
libutils Suppress lint warnings on google-default-arguments 2018-10-29 23:06:23 +09:00
libvndksupport bpfmt. 2018-02-16 17:58:14 -08:00
libziparchive libziparchive: use lseek directly. 2018-10-26 21:27:38 -07:00
llkd llkd: stutter pre-panic message to both last kernel and last logcat 2018-11-01 08:14:03 -07:00
lmkd lmkd: Cleanup unused code for killing processes in bulk 2018-10-29 16:20:50 +00:00
logcat Convert more modules to Android.bp 2018-10-31 21:53:37 -07:00
logd Convert more modules to Android.bp 2018-10-31 21:53:37 -07:00
logwrapper Build adbd for recovery 2018-05-24 14:11:11 +09:00
mkbootimg Revert "Revert "mkbootimg: Build mkbootimg with Soong."" 2018-09-27 14:11:51 +00:00
property_service Add recovery_available: true to init dependencies 2018-07-24 13:45:50 -07:00
qemu_pipe Build adbd for recovery 2018-05-24 14:11:11 +09:00
reboot reboot: only pause indefinitely for non-shutdown operations 2017-09-29 16:29:52 +00:00
rootdir Create /data/preloads on post-fs-data 2018-10-24 15:29:16 +01:00
run-as run-as: add ":fromRunAs" selector in seinfo. 2018-11-06 15:31:59 -08:00
sdcard Add support for esdfs mounting 2018-01-19 12:58:42 -08:00
shell_and_utilities Make unzip available. 2018-09-04 13:33:30 -07:00
storaged Move system/core/ off NO_ERROR. 2018-10-08 11:15:52 -07:00
toolbox getevent: O_RDWR -> O_RDONLY | O_CLOEXEC 2018-08-24 12:16:17 -07:00
trusty Add noexcept to move constructors and assignment operators. 2018-10-05 16:43:47 +00:00
usbd bpfmt. 2018-02-16 17:58:14 -08:00
watchdogd Move watchdogd out of init 2018-08-02 12:25:58 -07:00
.clang-format Add a 2 width option of clang format. 2017-03-10 13:01:39 -08:00
.clang-format-2 Remove PenaltyExcessCharacter from clang-formats. 2018-07-19 13:50:41 -07:00
.clang-format-4 Remove PenaltyExcessCharacter from clang-formats. 2018-07-19 13:50:41 -07:00
.gitignore
Android.bp Export android_filesystem_config.h as a filegroup 2017-01-17 18:20:28 -08:00
Android.mk
CleanSpec.mk Shared libs are supported in recovery mode 2018-06-10 08:32:24 +09:00
MODULE_LICENSE_APACHE2
NOTICE
OWNERS Move per-file OWNERS directives to their directories. 2018-06-06 11:49:40 +09:00
PREUPLOAD.cfg Add a PREUPLOAD.cfg file to run git-clang-format on every commit 2017-03-08 16:51:26 +08:00
TEST_MAPPING Add adbd_test to presubmit test mapping 2018-10-23 14:03:15 -07:00