- Dec 20, 2017
-
-
Tri Vo authored
Removes open, read, setattr permissions to sysfs_type. Adds explicit permissions to: sysfs_dt_firmware_android sysfs_vibrator sysfs_wake_lock Bug: 65643247 Test: walleye boots without denials to sysfs_type. Change-Id: I2e344831655c2c8e8e48b07ecce6a2704f2a206a
-
- Dec 13, 2017
-
-
Tom Cherry authored
Allow init to create a serialized property_info file and allow all processes to read it. Bug: 36001741 Test: boot bullhead, walleye using property_info Change-Id: Ie51d4c0f0221b128dd087029c811fda15b4d7093
-
- Dec 06, 2017
-
-
Tri Vo authored
Add write access to: sysfs_android_usb sysfs_leds sysfs_power sysfs_zram Add setattr access to: sysfs_android_usb sysfs_devices_system_cpu sysfs_lowmemorykiller sysfs_power sysfs_leds sysfs_ipv4 Bug: 70040773 Bug: 65643247 Change-Id: I68e2e796f5599c9d281897759c8d8eef9363559a Test: walleye boots with no denials from init to sysfs.
-
- Dec 01, 2017
-
-
Tri Vo authored
Add write access to: sysfs_android_usb sysfs_leds sysfs_power sysfs_zram Add setattr access to: sysfs_android_usb sysfs_devices_system_cpu sysfs_lowmemorykiller sysfs_power sysfs_leds sysfs_ipv4 Bug: 65643247 Test: walleye boots with no denials from init to sysfs. Change-Id: Ibc9a54a5f43f3d53ab7cbb0fdb9589959b31ebde
- Nov 30, 2017
-
-
Joel Galenson authored
Now that creating a symlink automatically sets its context, init needs permission to create this file. Bug: 69965807 Test: Booted device and tested wifi and camera. Change-Id: I41f5ca8f4d877312c9b2a909001fe9cd80c3d458
-
- Nov 21, 2017
-
-
Benjamin Gordon authored
In kernel 4.7, the capability and capability2 classes were split apart from cap_userns and cap2_userns (see kernel commit 8e4ff6f228e4722cac74db716e308d1da33d744f). Since then, Android cannot be run in a container with SELinux in enforcing mode. This change applies the existing capability rules to user namespaces as well as the root namespace so that Android running in a container behaves the same on pre- and post-4.7 kernels. This is essentially: 1. New global_capability_class_set and global_capability2_class_set that match capability+cap_userns and capability2+cap2_userns, respectively. 2. s/self:capability/self:global_capability_class_set/g 3. s/self:capability2/self:global_capability2_class_set/g 4. Add cap_userns and cap2_userns to the existing capability_class_set so that it covers all capabilities. This set was used by several neverallow and dontaudit rules, and I confirmed that the new classes are still appropriate. Test: diff new policy against old and confirm that all new rules add only cap_userns or cap2_userns; Boot ARC++ on a device with the 4.12 kernel. Bug: crbug.com/754831 Change-Id: I4007eb3a2ecd01b062c4c78d9afee71c530df95f
-
- Nov 08, 2017
-
-
Tri Vo authored
New types and files labeled with them: 1. proc_abi: /proc/sys/abi/swp 2. proc_dirty: /proc/sys/vm/dirty_background_ratio /proc/sys/vm/dirty_expire_centisecs 3. proc_diskstats: /proc/diskstats 4. proc_extra_free_kbytes: /proc/sys/vm/extra_free_kbytes 5. proc_hostname: /proc/sys/kernel/domainname /proc/sys/kernel/hostname 6. proc_hung_task: /proc/sys/kernel/hung_task_timeout_secs 7. proc_max_map_count: /proc/sys/vm/max_map_count 8. proc_panic: /proc/sys/kernel/panic_on_oops 9. proc_sched: /proc/sys/kernel/sched_child_runs_first /proc/sys/kernel/sched_latency_ns /proc/sys/kernel/sched_rt_period_us /proc/sys/kernel/sched_rt_runtime_us /proc/sys/kernel/sched_tunable_scaling /proc/sys/kernel/sched_wakeup_granularity_ns 10. proc_uptime: /proc/uptime Files labeled with already existing types: 1. proc_perf: /proc/sys/kernel/perf_event_paranoid 2. proc_sysrq: /proc/sys/kernel/sysrq 3. usermodehelper: /proc/sys/kernel/core_pipe_limit Changes to init domain: 1. Removed access to files with 'proc' label. 2. Added access to newly introduced types + proc_kmsg. Bug: 68949041 Test: walleye boots without denials from u:r:init:s0. Test: system/core/init/grab-bootchart.sh does not trigger denials from u:r:init:s0 Change-Id: If1715c3821e277679c320956df33dd273e750ea2
-
Tri Vo authored
Bug: 68949041 Test: device builds, boots, no denials from init. Change-Id: Iedefac8d70512fd614ca06117f42a7887f6ab649
-
Luis Hector Chavez authored
Bug: 62378620 Test: Android in Chrome OS can call uevent_kernel_recv() and not fail with EIO. Test: bullhead networking still works Change-Id: I4dd5d2148ee1704c4fa23d7fd82d1ade19b58cbd
-
- Oct 24, 2017
-
-
Tom Cherry authored
Test: boot sailfish with no audit when writing to page-cluster Change-Id: I2bfebdf9342594d66d95daaec92d71195c93ffc8
-
- Sep 28, 2017
-
-
Dan Cashman authored
Bug: 37916906 Test: Builds 'n' boots. Change-Id: Ia1d86264446ebecc1ca79f32f11354921bc77668 Merged-In: I208ec6a864127a059fb389417a9c6b259d7474cb
-
- Sep 26, 2017
-
-
Dan Cashman authored
Bug: 37916906 Test: Builds 'n' boots. Change-Id: Ia1d86264446ebecc1ca79f32f11354921bc77668 Merged-In: I208ec6a864127a059fb389417a9c6b259d7474cb
-
- Sep 06, 2017
-
-
Tao Bao authored
avc: denied { relabelto } for pid=1 comm="init" name="misc" dev="tmpfs" ino=3855 scontext=u:r:init:s0 tcontext=u:object_r:misc_block_device:s0 tclass=lnk_file If misc partition is used during early mount, it will carry a label of tmpfs (instead of block_device), which will fail restorecon with the above denial. Bug: 65378733 Test: Build and flash a target that uses misc in early mount. No longer observe the above denial. Change-Id: I44cd43dbd2a8a4f9f423ebc8ac0dd046b167ef72
-
- Aug 11, 2017
-
-
Josh Gao authored
Add /dev/kmsg_debug on userdebug devices, to allow crash_dump to log crashes to dmesg when logd isn't up yet (or is the one crashing). Bug: http://b/36574794 Test: stop tombstoned; crasher; dmesg Change-Id: I6ffe11bc613e88198893e82712719522b74fe1be
-
- Jul 27, 2017
-
-
Joel Galenson authored
This should improve performance, as file_contexts is slower than genfs_contexts. Bug: 62413700 Test: Built, flashed, and booted Sailfish. Verified that the files have the correct context and that wifi, web, and atrace work. Merged-In: Ia28707ec565a0792bc882fbffe9e8ab9968535f5 Change-Id: I9546f3af3c95e3443684ae4764881b69987611ef
-
- Jul 12, 2017
-
-
Jeff Vander Stoep authored
Prevent files in /proc from incorrectly having sysfs_type attribute. Rework neverallows so that ueventd has write access to all of /sys which it needs to handle uevents. Bug: 63147833 Test: Build. Flash angler, verify files are correctly labeled and no new denials are in the logs. Change-Id: Ib94d44e78cee0e83e2ac924f1c72e611e8e73558
-
- Jun 27, 2017
-
- Jun 19, 2017
-
-
Tom Cherry authored
In libprocessgroup, we want to only send signals once to processes, particularly for SIGTERM. We must send the signal both to all processes within a POSIX process group and a cgroup. To ensure that we do not duplicate the signals being sent, we check the processes in the cgroup to see if they're in the POSIX process groups that we're killing. If they are, we skip sending a second signal. This requires getpgid permissions, hence this SELinux change. avc: denied { getpgid } for pid=797 comm="ActivityManager" scontext=u:r:system_server:s0 tcontext=u:r:untrusted_app_25:s0:c512,c768 tclass=process permissive=1 avc: denied { getpgid } for pid=797 comm="ActivityManager" scontext=u:r:system_server:s0 tcontext=u:r:untrusted_app_25:s0:c512,c768 tclass=process permissive=1 avc: denied { getpgid } for pid=797 comm="ActivityManager" scontext=u:r:system_server:s0 tcontext=u:r:system_app:s0 tclass=process permissive=1 avc: denied { getpgid } for pid=797 comm="ActivityManager" scontext=u:r:system_server:s0 tcontext=u:r:system_app:s0 tclass=process permissive=1 avc: denied { getpgid } for pid=1 comm="init" scontext=u:r:init:s0 tcontext=u:r:zygote:s0 tclass=process permissive=1 avc: denied { getpgid } for pid=1 comm="init" scontext=u:r:init:s0 tcontext=u:r:zygote:s0 tclass=process permissive=1 avc: denied { getpgid } for pid=1 comm="init" scontext=u:r:init:s0 tcontext=u:r:system_server:s0 tclass=process permissive=1 avc: denied { getpgid } for pid=1 comm="init" scontext=u:r:init:s0 tcontext=u:r:system_server:s0 tclass=process permissive=1 Bug: 37853905 Bug: 62418791 Test: Boot, kill zygote, reboot Change-Id: Ib6c265dbaac8833c47145ae28fb6594ca8545570 (cherry picked from commit c59eb4d8)
-
- Jun 14, 2017
-
-
Tim Murray authored
Allow lmkd to access /dev/memcg once again. Test: lmkd can access memcg bug 36588803 Change-Id: I47b4e79260bcd2967d85d8151c83e624d432f409
-
Robert Benea authored
This reverts commit 527f64e6. Change-Id: Ibc48af53431a8f7c7211999dcb571f492fb5ddb4
-
- Jun 13, 2017
-
-
Tom Cherry authored
In libprocessgroup, we want to only send signals once to processes, particularly for SIGTERM. We must send the signal both to all processes within a POSIX process group and a cgroup. To ensure that we do not duplicate the signals being sent, we check the processes in the cgroup to see if they're in the POSIX process groups that we're killing. If they are, we skip sending a second signal. This requires getpgid permissions, hence this SELinux change. avc: denied { getpgid } for pid=797 comm="ActivityManager" scontext=u:r:system_server:s0 tcontext=u:r:untrusted_app_25:s0:c512,c768 tclass=process permissive=1 avc: denied { getpgid } for pid=797 comm="ActivityManager" scontext=u:r:system_server:s0 tcontext=u:r:untrusted_app_25:s0:c512,c768 tclass=process permissive=1 avc: denied { getpgid } for pid=797 comm="ActivityManager" scontext=u:r:system_server:s0 tcontext=u:r:system_app:s0 tclass=process permissive=1 avc: denied { getpgid } for pid=797 comm="ActivityManager" scontext=u:r:system_server:s0 tcontext=u:r:system_app:s0 tclass=process permissive=1 avc: denied { getpgid } for pid=1 comm="init" scontext=u:r:init:s0 tcontext=u:r:zygote:s0 tclass=process permissive=1 avc: denied { getpgid } for pid=1 comm="init" scontext=u:r:init:s0 tcontext=u:r:zygote:s0 tclass=process permissive=1 avc: denied { getpgid } for pid=1 comm="init" scontext=u:r:init:s0 tcontext=u:r:system_server:s0 tclass=process permissive=1 avc: denied { getpgid } for pid=1 comm="init" scontext=u:r:init:s0 tcontext=u:r:system_server:s0 tclass=process permissive=1 Bug: 37853905 Bug: 62418791 Test: Boot, kill zygote, reboot Change-Id: Ib6c265dbaac8833c47145ae28fb6594ca8545570
-
Tim Murray authored
Allow lmkd to access /dev/memcg once again. Test: lmkd can access memcg bug 36588803 Change-Id: Ia57dbbc3987d8858c932103c4e546cbb88893207
-
- Jun 07, 2017
-
-
Joel Galenson authored
This should improve performance, as file_contexts is slower than genfs_contexts. Bug: 62413700 Test: Built, flashed, and booted Marlin. Verified that some of the files have the correct context. Change-Id: Ia28707ec565a0792bc882fbffe9e8ab9968535f5
-
- May 26, 2017
-
-
Josh Gao authored
This reverts commit a015186f. Bug: http://b/62101480 Change-Id: I8e889e3d50cf1749168acc526f8a8901717feb46
-
- May 08, 2017
-
-
Mark Salyzyn authored
In the init scripts for socket, the type can have a suffix of "+cred" to request that the socket be bound to report SO_PASSCRED credentials on socket transactions. Here we add socket setopt to selinux rules. Test: gTest logd-unit-tests --gtest_filter=logd.statistics right after boot (fails without logd.rc change) Bug: 37985222 Change-Id: I37cdf7eea93c3e8fa52964e765eaf3007e431b1f
-
- Apr 25, 2017
-
-
Alex Klyubin authored
This adds neverallow rules which enforce the prohibition on communication between framework and vendor components over VendorBinder. This prohibition is similar in spirit to the one for Binder communications. Most changes consist of adding neverallow rules, which do not affect runtime behavior. The only change which does affect runtime behavior is the change which takes away the right of servicemanager domain to transfer Binder tokens to hwservicemanager and vndservicemanager. This grant was there by accident (because it was overly broad) and is not expected to be needed: servicemanager, hwservicemanager, and vndservicemanager are not supposed to be communicating with each other. P. S. The new neverallow rules in app_neverallows.te are covered by the new rules in domain.te. The rules were nevertheless added to app_neverallows.te for consistency with other *Binder rules there. Test: mmm system/sepolicy Bug: 37663632 Change-Id: I7c2ae23924bf0f2fed3f1e3a8d4d603129286329
-
- Apr 14, 2017
-
-
Sandeep Patil authored
Bug: 36463595 Test: Boot sailfish and make sure all vendor services that are shell scripts work. (Checke exited status) Change-Id: I3d1d564114a914dec8179fb93a9e94493c2808da Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
- Apr 13, 2017
-
-
Jerry Zhang authored
These were previously in device specific sepolicies. They should be in core sepolicy to reflect their use by a core init file, init.usb.configfs.rc. Addresses denial: init : type=1400 audit(0.0:135): avc: denied { unlink } for name="f1" dev="configfs" ino=10923 scontext=u:r:init:s0 tcontext=u:object_r:configfs:s0 tclass=lnk_file permissive=0 Test: denial addressed Change-Id: I869892f9d0c311b727462fb380f4160feb986215
-
- Apr 06, 2017
-
-
Josh Gao authored
Add /dev/kmsg_debug on userdebug devices, to allow crash_dump to log crashes to dmesg when logd isn't up yet (or is the one crashing). Bug: http://b/36574794 Test: stop tombstoned; crasher; dmesg Change-Id: I249e11291c58fee77098dec3fd3271ea23363ac9
-
- 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>
-
- Mar 29, 2017
-
-
Sandeep Patil authored
sepolicy files need to be explicitly labeled as they are now split cross system and vendor and won't have the generic world readable 'system_file' or 'rootfs' label. Bug: 36527360 Test: no new 'sepolicy_file' denials at boot complete on sailfish Test: successfully booted into recovery without denials and sideloaded OTA update. Test: Launch 'chrome' and succesfully load a website. Test: Launch Camera and take a picture. Test: Launch Camera and record a video, succesfully playback recorded video Change-Id: I6fe8ba31588c2d75521c6e2b0bf7e6d6eaf80a19 Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
Sandeep Patil authored
file_context files need to be explicitly labeled as they are now split across system and vendor and won't have the generic world readable 'system_file' label. Bug: 36002414 Test: no new 'file_context' denials at boot complete on sailfish Test: successfully booted into recovery without denials and sideloaded OTA update. Test: ./cts-tradefed run singleCommand cts --skip-device-info \ --skip-preconditions --skip-connectivity-check --abi \ arm64-v8a --module CtsSecurityHostTestCases -t \ android.security.cts.SELinuxHostTest#testAospFileContexts Change-Id: I603157e9fa7d1de3679d41e343de397631666273 Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
- Mar 06, 2017
-
-
Wei Wang authored
Bug: 35979722 Test: angler boot with UART on and set sys.wifitracing.started to 0 after boot Test: no more avc errors on debugfs Change-Id: I91d98428aaec915b3206535559a0c096e6de1603
-
- Mar 04, 2017
-
-
Wei Wang authored
Fix restorecon failue on second call Bug: 35803475 Test: angler boot with UART on and set sys.wifitracing.started to 0 after boot Change-Id: Ia5496fcba031616297fa0a4c0f45e3ece0b4d662
-
- Feb 27, 2017
-
-
Sandeep Patil authored
early mounted block device are created by 'init' in its first stage, so the following restorecon() now finds device nodes and their corresponding symlinks. The CL adds rule to make sure the block and system_block_devices can be relabeled by init in this case. Bug: 35792677 Bug: 27805372 Test: tested ota using 'adb sideload' on sailfish Change-Id: I7d9d89878919c1267bf3c74f0cdbb4367b5ad458 Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
- Feb 24, 2017
-
-
mukesh agrawal authored
Previously, we'd restricted WifiService's use of the kernel's tracing feature to just userdebug_or_eng builds. This restriction was in place because the feature had not yet been reviewed from a privacy perspective. Now that the feature has passed privacy review, enable the feature on all builds. Note that other safeguards remain in place (on all builds): - The set of events to be monitored is configured by init, rather than WifiService (part of system_server). This privilege separation prevents a compromised system_server from tracing additional information. - The trace events are kept only in RAM, until/unless WifiService receives a dump request. (This would happen, for example, in the case of adb dumpsys, or generating a bugreport.) Bug: 35679234 Test: manual (see below) Manual test details: - flash device - connect device to a wifi network $ adb shell dumpsys wifi | grep rdev_connect [should see at least one matching line] Change-Id: I85070054857d75177d0bcdeb9b2c95bfd7e3b6bc
-
- Feb 20, 2017
-
-
Sandeep Patil authored
For early mount we end up creating the device nodes for partitions under /dev/block before selinux is initialized. Which means, that restorecon_recursive on /dev/block will have to relabel these nodes and their symlinks. This change adds the rule to allow init do the same. b/27805372 Test: boot marlin / sailfish with early mount device node creation but mount partitions using the default 'mountall' without any selinux denials. Change-Id: Ib9335f3f961d485d2120a175dbdbf85d6f70b160 Signed-off-by:
Sandeep Patil <sspatil@google.com>
-
- Feb 12, 2017
-
-
Nick Kralevich authored
On boot, Android runs restorecon on a number of virtual directories, such as /sys and /sys/kernel/debug, to ensure that the SELinux labels are correct. To avoid causing excessive boot time delays, the restorecon code aggressively prunes directories, to avoid recursing down directory trees which will never have a matching SELinux label. See: * https://android-review.googlesource.com/93401 * https://android-review.googlesource.com/109103 The key to this optimization is avoiding unnecessarily broad regular expressions in file_contexts. If an overly broad regex exists, the tree pruning code is ineffective, and the restorecon ends up visiting lots of unnecessary directories. The directory /sys/kernel/debug/tracing contains approximately 4500 files normally, and on debuggable builds, this number can jump to over 9000 files when the processing from wifi-events.rc occurs. For comparison, the entire /sys/kernel/debug tree (excluding /sys/kernel/debug/tracing) only contains approximately 8000 files. The regular expression "/sys/kernel(/debug)?/tracing/(.*)?" ends up matching a significant number of files, which impacts boot performance. Instead of using an overly broad regex, refine the regex so only the files needed have an entry in file_contexts. This list of files is essentially a duplicate of the entries in frameworks/native/cmds/atrace/atrace.rc . This change reduces the restorecon_recursive call for /sys/kernel/debug from approximately 260ms to 40ms, a boot time reduction of approximately 220ms. Bug: 35248779 Test: device boots, no SELinux denials, faster boot. Change-Id: I70f8af102762ec0180546b05fcf014c097135f3e
-
- Feb 10, 2017
-
-
Nick Kralevich authored
auditallows have been in place for a while, and no obvious denials. Remove domain_deprecated from init.te While I'm here, clean up the formatting of the lines in domain_deprecated.te. Bug: 28760354 Test: policy compiles and device boots. No obvious problems. Change-Id: Ia12e77c3e25990957abf15744e083eed9ffbb056
-