- Jan 19, 2017
-
-
Chad Brubaker authored
Ephemeral apps cannot open files from external storage, but can be given access to files via the file picker. Test: ACTION_OPEN_DOCUMENTS from an ephemeral app returns a readable fd. Change-Id: Ie21b64a9633eff258be254b9cd86f282db1509e8
-
Chad Brubaker authored
Ephemeral apps are still apps with very similar capabilities, it makes more sense to have them under appdomain and benefit from the shared state (and all the neverallow rules) than to try and dupplicate them and keep them in sync. This is an initial move, there are parts of ephemeral_app that still need to be locked down further and some parts of appdomain that should be pushed down into the various app domains. Test: Builds, ephemeral apps work without denials. Change-Id: I1526b2c2aa783a91fbf6543ac7f6d0d9906d70af
-
- Jan 18, 2017
-
-
Josh Gao authored
Replace the global debuggerd with a per-process debugging helper that gets exec'ed by the process that crashed. Bug: http://b/30705528 Test: crasher/crasher64, `debuggerd <pid>`, `kill -ABRT <pid>` Change-Id: Iad1b7478f7a4e2690720db4b066417d8b66834ed
-
Daichi Hirono authored
Previously we published appfuse mount points to apps and apps open appfuse file by themselves. We changed the design and we don't allow apps to access appfuse mount point. Instead system server opens a file on appfuse mount points and passes FD to apps. The change updates apps and system server policies to adopt new design. Bug: 29970149 Test: None Change-Id: I0b35fee9816f61565705eecb88a472754ccffdca
-
- Dec 28, 2016
-
-
Alex Klyubin authored
This removes access to Bluetooth system properties from arbitrary SELinux domains. Access remains granted to init, bluetooth, and system_app domains. neverallow rules / CTS enforce that access is not granted to Zygote and processes spawned from Zygote expcept for system_app and bluetooth. The reason is that some of these properties may leak persistent identifiers not resettable by the user. Test: Bluetooth pairing and data transfer works Bug: 33700679 Change-Id: Icdcb3927a423c4011a62942340a498cc1b302472
-
- Dec 14, 2016
-
-
Chad Brubaker authored
Address denial type=1400 audit(0.0:42): avc: denied { call } for scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:r:ephemeral_app:s0:c207,c258,c512,c768 tclass=binder Test: Above denial no longer happens Change-Id: I351269ee4671cfd51c981d3db5d0f3944d14e702
-
- Dec 09, 2016
-
-
Jeff Sharkey authored
After a series of recent commits, installd has fully migrated over to Binder, and all socket-based communication has been removed. Test: builds, boots, apps install fine, pre-OTA dexopt works Bug: 13758960, 30944031 Change-Id: Ia67b6260de58240d057c99b1bbd782b44376dfb5
-
- Dec 07, 2016
-
-
Daniel Rosenberg authored
Test: No media_rw_data_file related app denials Change-Id: I1a977db09379f9a3e5bc52c597df12f52929ad19
-
- 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 20, 2016
-
-
Daniel Micay authored
The other domains either don't have the same backwards compatibility issues (isolated_app) or are privileged components that are pretty much part of the platform and can be expected to meet a higher standard. It would be possible to expose a build option for disabling the ART JIT, allowing conditional removal of execmem from some of these domains too (ones not ever using the WebView, until that's always in isolated_app). Bug: 20013628 Change-Id: Ic22513157fc8b958b2a3d60381be0c07b5252fa5
-
- Nov 16, 2016
-
-
Nick Kralevich authored
external/toybox commit a583afc812cf7be74ebab72294c8df485908ff04 started having dmesg use /dev/kmsg, which is unreadable to the unprivileged shell user. Revoke syslog(2) to the shell user for consistency. The kernel dmesg log is a source of kernel pointers, which can leak kASLR information from the kernel. Restricting access to kernel information will make attacks against Android more difficult. Having said that, dmesg information is still available from "adb bugreport", so this change doesn't completely shutdown kernel info leaks. This change essentially reverts us to the state we were in between Nov 8 2011 and May 27 2014. During that almost 3 year period, the unprivileged shell user was unable to access dmesg, and there was only one complaint during that time. References: * https://android.googlesource.com/platform/system/core/+/f9557fb * https://android.googlesource.com/platform/system/sepolicy/+/f821b5a TODO: Further unify /dev/kmsg permissions with syslog_read permissions. Test: policy compiles, no dmesg output Change-Id: Icfff6f765055bdbbe85f302b781aed2568ef532f
-
- Nov 15, 2016
-
-
Nick Kralevich authored
su is an appdomain, and as such, any auditallow statements applicable to appdomain also apply to su. However, su is never enforced, so generating SELinux denials for such domains is pointless. Exclude su from ion_device auditallow rules. Addresses the following auditallow spam: avc: granted { ioctl } for comm="screencap" path="/dev/ion" dev="tmpfs" ino=10230 ioctlcmd=4906 scontext=u:r:su:s0 tcontext=u:object_r:ion_device:s0 tclass=chr_file Test: policy compiles Change-Id: I2e783624b9e53ad365669bd6f2d4db40da475a16
-
Daichi Hirono authored
Bug: 29970149 Test: None Change-Id: I59f49f3bf20d93effde5e1a9a3c1ed64fbecb7a8
-
- Nov 14, 2016
-
-
Chia-I Wu authored
Allow SurfaceFlinger to call into IAllocator, and allow everyone to access IAllocator's fd. Specifically, hwbinder_use(...) for avc: denied { call } for scontext=u:r:hal_graphics_allocator:s0 tcontext=u:r:hwservicemanager:s0 tclass=binder permissive=1 avc: denied { transfer } for scontext=u:r:hal_graphics_allocator:s0 tcontext=u:r:hwservicemanager:s0 tclass=binder permissive=1 allow ... ion_device:chr_file r_file_perms for avc: denied { read } for name="ion" dev="tmpfs" ino=15014 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:ion_device:s0 tclass=chr_file permissive=1 avc: denied { open } for path="/dev/ion" dev="tmpfs" ino=15014 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:ion_device:s0 tclass=chr_file permissive=1 avc: denied { ioctl } for path="/dev/ion" dev="tmpfs" ino=15014 ioctlcmd=4900 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:ion_device:s0 tclass=chr_file permissive=1 allow ... gpu_device:chr_file rw_file_perms; for avc: denied { read write } for name="kgsl-3d0" dev="tmpfs" ino=14956 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:gpu_device:s0 tclass=chr_file permissive=1 avc: denied { open } for path="/dev/kgsl-3d0" dev="tmpfs" ino=14956 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:gpu_device:s0 tclass=chr_file permissive=1 avc: denied { ioctl } for path="/dev/kgsl-3d0" dev="tmpfs" ino=14956 ioctlcmd=940 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:gpu_device:s0 tclass=chr_file permissive=1 binder_call(surfaceflinger, ...) for avc: denied { call } for scontext=u:r:surfaceflinger:s0 tcontext=u:r:hal_graphics_allocator:s0 tclass=binder permissive=1 allow ... ...:fd use for avc: denied { use } for path="anon_inode:dmabuf" dev="anon_inodefs" ino=12794 scontext=u:r:surfaceflinger:s0 tcontext=u:r:hal_graphics_allocator:s0 tclass=fd permissive=1 Bug: 32021161 Test: make bootimage Change-Id: Ie7700142313407ac438c43dd1a85544dc4c67f13
-
- Oct 21, 2016
-
-
Jeff Vander Stoep authored
Remove and neverallow isolated_app access to external storage and USB accessories. Test: aosp_angler-userdebug builds Bug: 21643067 Change-Id: Ie912706a954a38610f2afd742b1ab4b8cd4b1f36
-
- 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
-
- Oct 03, 2016
-
-
Jeff Vander Stoep authored
Test: builds and boots on Bullhead with no selinux audit messages. Bug: 29795149 Bug: 30400942 Change-Id: I93295424a03488234b233d5e2f86d3bf329e53fd
-
- Sep 27, 2016
-
-
Jeff Vander Stoep authored
Grant access to all processes and audit access. The end goal is to whitelist all access to the interpreter. Several processes including dex2oat, apps, and zygote were observed using libart, so omit them from auditing and explicitly grant them access. Test: Angler builds and boots Bug: 29795519 Change-Id: I9b93c7dbef5c49b95a18fd26307955d05a1c8e88
-
- Sep 12, 2016
-
-
Nick Kralevich authored
Apparently some manufacturers sign APKs with the platform key which use renderscript. Renderscript works by compiling the .so file, and placing it in the app's home directory, where the app loads the content. Drop platform_app from the neverallow restriction to allow partners to add rules allowing /data execute for this class of apps. We should revisit this in the future after we have a better solution for apps which use renderscript. (cherry picked from commit c55cf17a) Bug: 29857189 Change-Id: I058a802ad5eb2a67e657b6d759a3ef4e21cbb8cc
-
Eino-Ville Talvala authored
Previously appdomains allowed to execute off of /data where whitelisted. This had the unfortunate side effect of disallowing the creation of device specific app domains with fewer permissions than untrusted_app. Instead grant all apps a neverallow exemption and blacklist specific app domains that should still abide by the restriction. This allows devices to add new app domains that need /data execute permission without conflicting with this rule. Bug: 26906711 (cherry picked from commit c5266df9) Change-Id: I4adb58e8c8b35122d6295db58cedaa355cdd3924
-
- Sep 10, 2016
-
-
Jeff Vander Stoep authored
Grant permissions observed. Bug: 28760354 Change-Id: Ie63cda709319bbf635ef7bffbba3477c2cccc11b
-
- Aug 29, 2016
-
-
Jeff Vander Stoep authored
Grant permissions observed. (cherry picked from commit 9c820a11) Merged-in: Ifdead51f873eb587556309c48fb84ff1542ae303 Bug: 28760354 Change-Id: Ifdead51f873eb587556309c48fb84ff1542ae303
-
- Aug 24, 2016
-
-
Chad Brubaker authored
Bug: 28746284 Change-Id: I59aa235ecba05e22aaa531e387a77f47267ac9ae
-
- Aug 22, 2016
-
-
Nick Kralevich authored
Apparently some manufacturers sign APKs with the platform key which use renderscript. Renderscript works by compiling the .so file, and placing it in the app's home directory, where the app loads the content. Drop platform_app from the neverallow restriction to allow partners to add rules allowing /data execute for this class of apps. We should revisit this in the future after we have a better solution for apps which use renderscript. Bug: 29857189 Change-Id: I058a802ad5eb2a67e657b6d759a3ef4e21cbb8cc
-
Eino-Ville Talvala authored
Previously appdomains allowed to execute off of /data where whitelisted. This had the unfortunate side effect of disallowing the creation of device specific app domains with fewer permissions than untrusted_app. Instead grant all apps a neverallow exemption and blacklist specific app domains that should still abide by the restriction. This allows devices to add new app domains that need /data execute permission without conflicting with this rule. Bug: 26906711 (cherry picked from commit c5266df9) Change-Id: I4adb58e8c8b35122d6295db58cedaa355cdd3924
-
- Jul 26, 2016
-
-
William Roberts authored
Applications should not access /dev/input/* for events, but rather use events handled via the activity mechanism. Change-Id: I0182b6be1b7c69d96e4366ba59f14cee67be4beb Signed-off-by:
William Roberts <william.c.roberts@intel.com>
-
- Jul 22, 2016
-
-
Daniel Rosenberg authored
Change-Id: I4c318efba76e61b6ab0be9491c352f281b1c2bff Bug: 19160983
-
- Jun 24, 2016
-
-
Eino-Ville Talvala authored
Previously appdomains allowed to execute off of /data where whitelisted. This had the unfortunate side effect of disallowing the creation of device specific app domains with fewer permissions than untrusted_app. Instead grant all apps a neverallow exemption and blacklist specific app domains that should still abide by the restriction. This allows devices to add new app domains that need /data execute permission without conflicting with this rule. Bug: 26906711 Change-Id: Ia876cc1dfd5b12908c59bd9e8620a6b890729c28
-
- May 12, 2016
-
-
Jeff Vander Stoep authored
Only used by Flounder. Bug: 8435593 Change-Id: I06655e897ab68a1724190950e128cd390617f2bd
-
Jeff Vander Stoep authored
Address denials: avc: denied { read } for name="meminfo" dev="proc" ino=4026544360 scontext=u:r:isolated_app:s0:c512,c768 tcontext=u:object_r:proc_meminfo:s0 tclass=file permissive=0 Bug: 28722489 Change-Id: I3c55bd95bb82ec54e88e9e9bc42d6392a216a936
-
Jeff Vander Stoep authored
(cherry-picked from commit cc8a09f5) camera_device was previously removed in AOSP commit: b7aace2d "camera_device: remove type and add typealias" because the same domains required access to both without exception, meaning there was no benefit to distinguishing between the two. However, with the split up of mediaserver this is no longer the case and distinguishing between the camera and video provides a legitimate security benefit. For example, the mediacodec domain requires access to the video_device for access to hardware accelerated codecs but does not require access to the camera. Bug: 28359909 Change-Id: I8a4592722d8e6391c0e91b440914284b7245e232
-
- May 10, 2016
-
-
Richard Uhler authored
To avoid audit messages that arise because there is no way to create a file without also trying to open and read it. Bug: 28241500 Change-Id: Id1daaf190b36eda9775e00701cd7241991f65a2a
-
- Apr 24, 2016
-
-
Jeff Vander Stoep authored
camera_device was previously removed in AOSP commit: b7aace2d "camera_device: remove type and add typealias" because the same domains required access to both without exception, meaning there was no benefit to distinguishing between the two. However, with the split up of mediaserver this is no longer the case and distinguishing between the camera and video provides a legitimate security benefit. For example, the mediacodec domain requires access to the video_device for access to hardware accelerated codecs but does not require access to the camera. Bug: 28359909 Change-Id: I8a4592722d8e6391c0e91b440914284b7245e232
-
- Apr 23, 2016
-
-
Nick Kralevich authored
This directory is no longer used. Change-Id: Ic32a7dd160b23ef8d1d4ffe3f7b1af56c973d73c
-
- Apr 13, 2016
-
-
Nick Kralevich authored
Allow adbd and app domains to read the symlink at /mnt/sdcard. This symlink was suppose to have been removed in the Gingerbread time frame, but lives on. Read access for this symlink was removed from adbd and the shell user in 8ca19368, and from untrusted_app in cbf7ba18. Addresses the following denials: avc: denied { read } for name="sdcard" dev="tmpfs" ino=9486 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:tmpfs:s0 tclass=lnk_file permissive=0 avc: denied { read } for pid=4161 comm=73657276696365203137 name="sdcard" dev="tmpfs" ino=5114 scontext=u:r:adbd:s0 tcontext=u:object_r:tmpfs:s0 tclass=lnk_file permissive=0 Bug: 25801877 Bug: 28108983 Change-Id: Ia31cd8b53c9c3a5b7d11be42c2fde170f96affb0
-
- Mar 11, 2016
-
-
Janis Danisevskis authored
Remove references to /data/security and the corresponding type securitly_file. Bug: 26544104 Change-Id: Iac00c293daa6b781a24c2bd4c12168dfb1cceac6
-
- Mar 10, 2016
-
-
Oleksandr Peletskyi authored
BUG: 27583869 Change-Id: I0a25bd03f3998d48dba355b91140611e38ce7b0d
-
- Mar 09, 2016
-
-
Makoto Onuki authored
... and client apps to read them. A full path looks like this: /data/system_ce/[user-id]/shortcut_service/bitmaps/[creator-app-package]/[timestamp].png System server will: - Create/delete the directories. - Write/remove PNG files in them. - Open the PNG files and return file descriptors to client apps Client apps will: - Receive file descriptors and read from them. Bug 27548047 Change-Id: I3d9ac6ab0c92b2953b84c3c5aabe1f653e6bea6b
-
- Mar 07, 2016
-
-
dcashman authored
Bug: 27511071 Change-Id: I99ea21638a4df8ad1f815d91bb970e1f8f143030
-
Ruben Brunk authored
- Required to query cpusets information. Bug: 22855417 Bug: 27381794 Bug: 27498731 Change-Id: I6d192aad2135d99a6c9cdaf97696b0822bd21897
-