- Jan 18, 2018
-
-
Jeff Vander Stoep authored
Adds per-app categories to untrusted app domains and their app data types. Per-app categories are in addition to the existing per-user categories. Apps targeting sdk version 28+ will now have the following characteristics: Domain: u:r:untrusted_app:s0:c[0-9]+,c[0-9]+,c[0-9],c[0-9] Data context: u:object_r:app_data_file:s0:c[0-9]+,c[0-9]+,c[0-9],c[0-9] Whereas apps targeting 27- will look like: Domain: u:r:untrusted_app_27:s0:c[0-9]+,c[0-9]+ Data context: u:object_r:app_data_file:s0:c[0-9]+,c[0-9]+ To ensure backwards compatibility with previous SDK versions, the levelFrom=all now enforces categories by dominance instead of equality. Apps with per-app and per-user categories will continue to have selinux permissions (but not necessarily unix permissions) to access app data with only per-user categories, but apps with only per-user categories will not be able to access the data of apps with both per-app and per-user categories. Bug: 63897054 Test: Boot sailfish, run apps, verify no new selinux denials. Test: cts-tradefed run cts -m CtsSelinuxTargetSdkCurrentTestCases Test: cts-tradefed run cts -m CtsSelinuxTargetSdk27TestCases Test: cts-tradefed run cts -m CtsSelinuxTargetSdk25TestCases Test: adb sideload an OTA and verify that files are correctly labeled. Change-Id: I64b013874fe87b55f47e817a1279e76ecf86b7c0
-
- Jan 05, 2017
-
-
Alex Klyubin authored
This leaves only the existence of untrusted_app domain as public API. All other rules are implementation details of this domain's policy and are thus now private. Test: No change to policy according to sesearch, except for disappearance of all allow rules from untrusted_domain_current attribute (as expected). Bug: 31364497 Change-Id: Ief71fa16cfc38437cbe5c58100bba48b9a497c92
-
- Jan 04, 2017
-
-
Nick Kralevich authored
/proc/tty/drivers is read by applications to figure out if they are running in an emulated environment. Specifically, they look for the string "goldfish" within that file. Arguably this is not an Android API, and really shouldn't be exposed to applications, but: 1) A largish number of applications break if they can't read this file; 2) The information here isn't particularly sensitive While we could spend a bunch of time trying to get applications fixed, there are bigger fish to fry. It's not worth the battle. Test: "ls -laZ /proc/tty/drivers" is labeled properly. Bug: 33214085 Bug: 33814662 Bug: 33791054 Bug: 33211769 Bug: 26813932 Change-Id: Icc05bdc1c917547a6dca7d76636a1009369bde49
-
- Dec 08, 2016
-
-
dcashman authored
app_domain was split up in commit: 2e00e637 to enable compilation by hiding type_transition rules from public policy. These rules need to be hidden from public policy because they describe how objects are labeled, of which non-platform should be unaware. Instead of cutting apart the app_domain macro, which non-platform policy may rely on for implementing new app types, move all app_domain calls to private policy. (cherry-pick of commit: 76035ea0) Bug: 33428593 Test: bullhead and sailfish both boot. sediff shows no policy change. Change-Id: I4beead8ccc9b6e13c6348da98bb575756f539665
-
dcashman authored
app_domain was split up in commit: 2e00e637 to enable compilation by hiding type_transition rules from public policy. These rules need to be hidden from public policy because they describe how objects are labeled, of which non-platform should be unaware. Instead of cutting apart the app_domain macro, which non-platform policy may rely on for implementing new app types, move all app_domain calls to private policy. Bug: 33428593 Test: bullhead and sailfish both boot. sediff shows no policy change. Change-Id: I4beead8ccc9b6e13c6348da98bb575756f539665
-
- 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 22, 2016
-
-
Nick Kralevich authored
Lock in the gains we've made so far in restricting access to generically labeled /proc files. There's more we can do here, but let's avoid inadvertent regressions. Test: policy compiles. Only compile time assertions added. Bug: 26813932 Change-Id: If354c2ddc1c59beed7f0eb4bcbd3f0d9971c3b8a
-
- 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
-
- 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
-
Eric Bae authored
Change-Id: Ia938d73b1a49b9ba4acf906df37095d21edee22e
-
- Sep 12, 2016
-
-
Amith Yamasani authored
(cherry picked from commit e01654f9) For Retail Demo mode, we need to preload photos in /data/preloads and allow regular apps to access the photos returned by the media provider from the preloads directory. Bug: 29940807 Change-Id: Ic1061dac55ace1b125ae04b5b0c70aae9aa0c732
-
- Sep 10, 2016
-
-
Jeff Vander Stoep authored
Grant permissions observed. Bug: 28760354 Change-Id: Ie63cda709319bbf635ef7bffbba3477c2cccc11b
-
- Sep 09, 2016
-
-
Jeff Vander Stoep authored
This reverts commit 9c820a11. Bug: 31364540 Change-Id: I98a34bd32dd835e6795d31a90f16f4ccd691e6e5
-
- Aug 29, 2016
-
-
Jeff Vander Stoep authored
Grant permissions observed. (cherry picked from commit 9c820a11) Merged-in: Ifdead51f873eb587556309c48fb84ff1542ae303 Bug: 28760354 Change-Id: Ifdead51f873eb587556309c48fb84ff1542ae303
-
- Jul 22, 2016
-
-
Eric Bae authored
Change-Id: Ia938d73b1a49b9ba4acf906df37095d21edee22e
-
Daniel Rosenberg authored
Change-Id: I4c318efba76e61b6ab0be9491c352f281b1c2bff Bug: 19160983
-
Eric Bae authored
Change-Id: Ia938d73b1a49b9ba4acf906df37095d21edee22e
-
- Jul 15, 2016
-
-
dcashman authored
untrusted_app lost all of the domain_deprecated permissions in N, including the ability to read asec_apk_file dirs. This is used for forward locked apps. Addresses the following denials: avc: denied { search } for name="asec" dev="tmpfs" ino=9298 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:asec_apk_file:s0 tclass=dir permissive=0 avc: denied { getattr } for path="/mnt/asec" dev="tmpfs" ino=9298 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:asec_apk_file:s0 tclass=dir permissive=0 (cherry-pick of internal commit: addd3c9f) Bug: 30082229 Change-Id: I87758f1daee19197d9299bca261f0324e01af5e0
-
- Jul 14, 2016
-
-
Amith Yamasani authored
For Retail Demo mode, we need to preload photos in /data/preloads and allow regular apps to access the photos returned by the media provider from the preloads directory. Bug: 29940807 Change-Id: Ic1061dac55ace1b125ae04b5b0c70aae9aa0c732
-
- Jul 13, 2016
-
-
dcashman authored
untrusted_app lost all of the domain_deprecated permissions in N, including the ability to read asec_apk_file dirs. This is used for forward locked apps. Addresses the following denials: avc: denied { search } for name="asec" dev="tmpfs" ino=9298 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:asec_apk_file:s0 tclass=dir permissive=0 avc: denied { getattr } for path="/mnt/asec" dev="tmpfs" ino=9298 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:asec_apk_file:s0 tclass=dir permissive=0 Bug: 30082229 Change-Id: I44119f218433b9009cf8d09d0ee5f8a13cc15dd9
-
- Jun 06, 2016
-
-
Jeff Vander Stoep authored
Grant permissions observed. Bug: 28760354 Change-Id: Ifdead51f873eb587556309c48fb84ff1542ae303
-
- May 12, 2016
-
-
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
-
- Apr 23, 2016
-
-
Nick Kralevich authored
These neverallow rules are exact duplicates of neverallow rules which occur earlier in the file. Change-Id: I75e3d84109f26374257741425f8de638a15f2741
-
- Apr 16, 2016
-
-
Nick Kralevich authored
SafetyNet is in the priv_app domain. Suppressing this isn't necessary anymore. Change-Id: Icbcb75d3b2ebde657bd16b336b252aaec4d0d252
-
- Apr 15, 2016
-
-
Jeff Vander Stoep authored
(cherry picked from commit 6ba383c5) Restrict unix_dgram_socket and unix_stream_socket to a whitelist. Disallow all ioctls for netlink_selinux_socket and netlink_route_socket. Neverallow third party app use of all ioctls other than unix_dgram_socket, unix_stream_socket, netlink_selinux_socket, netlink_route_socket, tcp_socket, udp_socket and rawip_socket. Bug: 28171804 Change-Id: Icfe3486a62fc2fc2d2abd8d4030a5fbdd0ab30ab
-
Jeff Vander Stoep authored
Restrict unix_dgram_socket and unix_stream_socket to a whitelist. Disallow all ioctls for netlink_selinux_socket and netlink_route_socket. Neverallow third party app use of all ioctls other than unix_dgram_socket, unix_stream_socket, netlink_selinux_socket, netlink_route_socket, tcp_socket, udp_socket and rawip_socket. Bug: 28171804 Change-Id: Icfe3486a62fc2fc2d2abd8d4030a5fbdd0ab30ab
-
Nick Kralevich authored
Add a neverallow rule (compile time assertion + CTS test) that isolated_apps and untrusted_apps can't do anything else but append to /data/anr/traces.txt. In particular, assert that they can't read from the file, or overwrite other data which may already be in the file. Bug: 18340553 Bug: 27853304 (cherry picked from commit 369cf8cd) Change-Id: Ib33e7ea0342ad28e5a89dfffdd9bc16fe54d8b3d
-
- Mar 25, 2016
-
-
Nick Kralevich authored
Add a neverallow rule (compile time assertion + CTS test) that isolated_apps and untrusted_apps can't do anything else but append to /data/anr/traces.txt. In particular, assert that they can't read from the file, or overwrite other data which may already be in the file. Bug: 18340553 Bug: 27853304 Change-Id: I249fe2a46401b660efaa3f1102924a448ed750d5
-
- Mar 14, 2016
-
-
dcashman authored
Applications do not explicitly request handles to the batteryproperties service, but the BatteryManager obtains a reference to it and uses it for its underlying property queries. Mark it as an app_api_service so that all applications may use this API. Also remove the batterypropreg service label, as this does not appear to be used and may have been a duplication of batteryproperties. As a result, remove the healthd_service type and replace it with a more specific batteryproperties_service type. (cherry-picked from commit: 9ed71eff) Bug: 27442760 Change-Id: I537c17c09145b302728377bf856c1147e4cc37e9
-
dcashman authored
Applications do not explicitly request handles to the batteryproperties service, but the BatteryManager obtains a reference to it and uses it for its underlying property queries. Mark it as an app_api_service so that all applications may use this API. Also remove the batterypropreg service label, as this does not appear to be used and may have been a duplication of batteryproperties. As a result, remove the healthd_service type and replace it with a more specific batteryproperties_service type. Bug: 27442760 Change-Id: I5c0f9d7992ff2ec64adaeef22356e88fd0e8169c
-
- Mar 11, 2016
-
-
dcashman authored
HwRngTest needs access to the hwrandom sysfs files, but untrused_app does not have access to sysfs. Give these files their own label and allow the needed read access. Bug: 27263241 Change-Id: I718ba485e9e6627bac6e579f746658d85134b24b
-
- Mar 07, 2016
-
-
Daniel Rosenberg authored
Change-Id: I4c318efba76e61b6ab0be9491c352f281b1c2bff Bug: 19160983
-
dcashman authored
Bug: 26813932 Change-Id: I155087d28d9284d8c96554cc6739bb676272a00f
-
Nick Kralevich authored
It's unlikely we'll get /proc locked down for the N release, so delete the auditallow to avoid spamming the logs. Mark this commit as DO NOT MERGE so we can continue to make progress on this for future Android releases. Change-Id: Ibf27bc5cb1b23c21e123aae8a4f190560d0ac2dc
-
- Mar 01, 2016
-
-
Calin Juravle authored
This is a special profile folder where apps will leave profile markers for the dex files they load and don't own. System server will read the markers and decide which apk should be fully compiled instead of profile guide compiled. Apps need only to be able to create (touch) files in this directory. System server needs only to be able to check wheter or not a file with a given name exists. Bug: 27334750 Bug: 26080105 Change-Id: I2256e4aba1ec0e5117de6497123223b9a74f404e
-
- Feb 29, 2016
-
-
Nick Kralevich authored
Bluetooth uses the tun device for tethering. Allow access. STEPS TO REPRODUCE: 0. Have two devices to test on, say Device A and Device B 1. On Device A, Go to settings ->Bluetooth . 2. Turn on the Bluetooth . 3. Pair it with device B 4. Tap on the paired device OBSERVED RESULTS: -Bluetooth share crash is observed with "Bluetooth share has stopped" error message -Unable to use Bluetooth tethering due to this issue EXPECTED RESULTS: No crash and Bluetooth devices should be able to connect for tethering Addresses the following denial: com.android.bluetooth: type=1400 audit(0.0:131): avc: denied { open } for comm=425420536572766963652043616C6C path="/dev/tun" dev="tmpfs" ino=12340 scontext=u:r:bluetooth:s0 tcontext=u:object_r:tun_device:s0 tclass=chr_file permissive=0 Bug: 27372573 (cherry picked from commit 9a1347ee) Change-Id: Ibd16e48c09fe80ebb4f3779214de3b4806c12497
-
Nick Kralevich authored
Bluetooth uses the tun device for tethering. Allow access. STEPS TO REPRODUCE: 0. Have two devices to test on, say Device A and Device B 1. On Device A, Go to settings ->Bluetooth . 2. Turn on the Bluetooth . 3. Pair it with device B 4. Tap on the paired device OBSERVED RESULTS: -Bluetooth share crash is observed with "Bluetooth share has stopped" error message -Unable to use Bluetooth tethering due to this issue EXPECTED RESULTS: No crash and Bluetooth devices should be able to connect for tethering Addresses the following denial: com.android.bluetooth: type=1400 audit(0.0:131): avc: denied { open } for comm=425420536572766963652043616C6C path="/dev/tun" dev="tmpfs" ino=12340 scontext=u:r:bluetooth:s0 tcontext=u:object_r:tun_device:s0 tclass=chr_file permissive=0 Bug: 27372573 Change-Id: I07724d8d68ffcdda691f1179787a4f40a0ab1c73
-
- Feb 24, 2016
-
-
dcashman authored
Address the following denial: m.chrome.canary: type=1400 audit(0.0:15): avc: granted { read open } for path="/proc/meminfo" dev="proc" ino=4026544360 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file (cherry-pick of internal commit: 971aeeda) Bug: 22032619 Chromium Bug: 586021 Change-Id: I2dcb2d4800bbc92ea47c37d4fd7a10f827a0114c
-
dcashman authored
Address the following denial: m.chrome.canary: type=1400 audit(0.0:15): avc: granted { read open } for path="/proc/meminfo" dev="proc" ino=4026544360 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file Bug: 22032619 Chromium Bug: 586021 Change-Id: I584345c84d870c313da69ec97a0b1e54c0eb9ee1
-