Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Khả năng môi trường xung quanh

Khả năng cho phép các quy trình Linux loại bỏ hầu hết các đặc quyền giống root trong khi vẫn giữ lại tập hợp con các đặc quyền mà chúng yêu cầu để thực hiện chức năng của chúng. Việc triển khai các khả năng ban đầu khiến các quy trình fork + thực thi không thể kế thừa các khả năng trừ khi các tệp đang được thực thi đã được định cấu hình các khả năng của tệp. Các khả năng của tệp, đến lượt nó, lại có nguy cơ bảo mật vì bất kỳ quá trình nào thực thi một tệp với các khả năng của tệp sẽ có thể đạt được các khả năng đó.

Khả năng môi trường xung quanh cho phép các dịch vụ hệ thống do init khởi chạy định cấu hình các khả năng trong tệp .rc của chúng, đưa cấu hình vào một tệp duy nhất thay vì chia nhỏ cấu hình trong tệp fs_config.c . Điều này có nghĩa là đối với bất kỳ dịch vụ nào do init khởi chạy, bạn có thể sử dụng tệp .rc được liên kết với dịch vụ để định cấu hình các khả năng cho dịch vụ đó.

Khả năng xung quanh là cơ chế ưu tiên để thiết lập khả năng cho các dịch vụ do init khởi chạy (phương pháp này giữ tất cả các khía cạnh cho cấu hình dịch vụ trong một tệp .rc duy nhất). Chúng tôi khuyên bạn nên sử dụng các khả năng xung quanh thay vì định cấu hình các khả năng của hệ thống tệp bằng cách sử dụng phần mũ trong tệp config.fs .

Khi thiết lập khả năng cho các dịch vụ không do init khởi chạy , hãy tiếp tục định cấu hình các khả năng của hệ thống tệp bằng fs_config.c .

Kích hoạt khả năng môi trường xung quanh

Để kích hoạt khả năng môi trường xung quanh cho một dịch vụ nhất định, hãy sử dụng từ khóa capabilities trong init. Để biết chi tiết về ngôn ngữ init hiện tại, hãy tham khảo init README.md .

Ví dụ: để bật các khả năng xung quanh cho wificond dịch vụ AOSP, tệp .rc cho dịch vụ wificond sẽ thiết lập người dùng và nhóm thích hợp và cung cấp cho dịch vụ các khả năng được chỉ định bằng cách sử dụng từ khóa capabilities :

service wificond /system/bin/wificond
    class main
    user wifi
    group wifi net_raw net_admin
    capabilities NET_RAW NET_ADMIN

Thực hiện tham khảo

Việc triển khai tham chiếu là nhân chung của Android https://android.googlesource.com/kernel/common/

Các bản vá bắt buộc

Các bản vá bắt buộc đã được phản hồi cho tất cả các nhánh hạt nhân chung của Android có liên quan.

Bản vá khả năng môi trường xung quanh chính https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=58319057b7847667f0c9585b9de0e8932b0fdb08 đã được hỗ trợ trong:

Một bản sửa lỗi bảo mật nhỏ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7f76ea2ef6739ee484a165ffbac98deb855d3d3 đã được hỗ trợ trong:

Thẩm định

Các bài kiểm tra đơn vị Bionic bao gồm các bài kiểm tra đơn vị cho các khả năng của môi trường xung quanh. Ngoài ra, việc sử dụng từ khóa "khả năng" trong Android init cho một dịch vụ và sau đó kiểm tra xem dịch vụ đó có được các khả năng mong đợi hay không sẽ cho phép kiểm tra thời gian chạy của tính năng này.