ออบเจ็กต์ระบบไฟล์และบริการที่เพิ่มลงในบิลด์มักต้องแยกต่างหาก รหัสที่ไม่ซ้ำกัน หรือที่เรียกว่า Android ID (AID) ปัจจุบันมีแหล่งข้อมูลมากมาย เช่น ไฟล์และบริการใช้เอดส์หลัก (ที่ Android กำหนด) โดยไม่จำเป็น ในหลายๆ ให้ใช้เอดส์จาก OEM (กำหนดโดย OEM) แทน
Android เวอร์ชันก่อนหน้า (Android 7.x และต่ำกว่า) ได้ขยายโอกาสโรคเอดส์ออกไป
ที่ใช้ android_filesystem_config.h
เฉพาะอุปกรณ์
เพื่อระบุความสามารถของระบบไฟล์และ/หรือ OEM AID ที่กำหนดเอง อย่างไรก็ตาม
ระบบนั้นใช้ง่ายเพราะไม่รองรับการใช้ชื่อดีๆ สำหรับ OEM AID
กำหนดให้คุณต้องระบุตัวเลขดิบสำหรับฟิลด์ผู้ใช้และกลุ่มโดยไม่มี
วิธีเชื่อมโยงชื่อที่จำง่ายกับ AID ที่เป็นตัวเลข
Android เวอร์ชันใหม่ (Android 8.0 ขึ้นไป) รองรับเมธอดใหม่สำหรับ ขยายความสามารถของระบบไฟล์ เมธอดใหม่นี้มีการรองรับฟังก์ชัน ดังต่อไปนี้:
- ตำแหน่งต้นทางหลายแห่งสำหรับไฟล์การกำหนดค่า (เปิดใช้ Extensible การกำหนดค่าบิลด์)
- การตรวจสอบความเรียบร้อยของเวลาบิลด์ของค่า AID ของ OEM
- การสร้างส่วนหัว OEM AID ที่กำหนดเองซึ่งสามารถใช้ในไฟล์ต้นทางเป็น ที่จำเป็น
- การเชื่อมโยงชื่อที่จำง่ายกับค่า OEM AID จริง รองรับ อาร์กิวเมนต์สตริงที่ไม่ใช่ตัวเลขสำหรับผู้ใช้และกลุ่ม เช่น "foo" แทนที่จะเป็น "2901"
การปรับปรุงเพิ่มเติมรวมถึงการนำ android_ids[]
ออก
อาร์เรย์จาก
system/core/libcutils/include/private/android_filesystem_config.h
ช่วงเวลานี้
ขณะนี้อาร์เรย์มีอยู่ใน Bionic เป็นอาร์เรย์ที่สร้างขึ้นแบบส่วนตัวโดยสมบูรณ์
ตัวเข้าถึงที่มี getpwnam()
และ getgrnam()
(มี
ผลข้างเคียงจากการสร้างไบนารีที่เสถียรเมื่อเอดส์หลักมีการแก้ไข) สำหรับ
และเครื่องมือ README ที่มีรายละเอียดเพิ่มเติมโปรดดู
build/make/tools/fs_config
เพิ่มรหัส Android (AID)
Android 8.0 นำอาร์เรย์ android_ids[]
ออกจาก Android
โปรเจ็กต์โอเพนซอร์ส (AOSP) ชื่อที่เหมาะสำหรับโรคเอดส์ทั้งหมดจะสร้างขึ้นจาก
system/core/libcutils/include/private/android_filesystem_config.h
ไฟล์ส่วนหัวเมื่อสร้างอาร์เรย์ Bionic android_ids[]
ช่วง
เครื่องมือเลือก AID_*
ที่ตรงกัน define
รายการ
และ * จะกลายเป็นชื่อตัวพิมพ์เล็ก
ตัวอย่างเช่นใน private/android_filesystem_config.h
#define AID_SYSTEM 1000
เปลี่ยนเป็น:
- ชื่อที่จำง่าย: ระบบ
- uid: 1,000
- ตาราง: 1,000
หากต้องการเพิ่ม AOSP Core AID ใหม่ เพียงเพิ่ม #define
ไปยัง
ไฟล์ส่วนหัว android_filesystem_config.h
เอดส์คือ
สร้างขึ้นในขั้นตอนบิลด์และใช้งานได้กับอินเทอร์เฟซที่ใช้ผู้ใช้และกลุ่ม
อาร์กิวเมนต์ เครื่องมือจะตรวจสอบว่า AID ใหม่ไม่ได้อยู่ใน APP หรือ OEM
ช่วง; แต่ยังพิจารณาการเปลี่ยนแปลงของช่วงเหล่านั้น และควรโดยอัตโนมัติ
กำหนดค่าใหม่ในการเปลี่ยนแปลงหรือช่วงใหม่ที่จองโดย OEM
กำหนดค่าเอดส์
ในการเปิดใช้กลไกเอดส์ใหม่ ให้ตั้งค่า TARGET_FS_CONFIG_GEN
ใน
BoardConfig.mk
ตัวแปรนี้มีรายการการกำหนดค่า
ซึ่งทำให้คุณต่อท้ายไฟล์ได้ตามต้องการ
โดยปกติแล้ว ไฟล์การกำหนดค่าจะใช้ชื่อ config.fs
แต่
คุณสามารถใช้ชื่อใดก็ได้ config.fs
ไฟล์อยู่ใน
Python
รูปแบบ ConfigParser ini และรวมส่วนตัวพิมพ์ใหญ่ (สำหรับการกำหนดค่าไฟล์
ความสามารถของระบบ) และส่วนเอดส์ (สำหรับการกำหนดค่า OEM AID)
กำหนดค่าส่วนตัวพิมพ์ใหญ่
ส่วนตัวพิมพ์ใหญ่รองรับการตั้งค่า ไฟล์ ความสามารถของระบบในออบเจ็กต์ระบบไฟล์ภายในบิลด์ (ระบบไฟล์ เองก็ต้องรองรับฟังก์ชันนี้ด้วย)
เนื่องจากการเรียกใช้บริการที่เสถียรเป็นรูทใน Android ทำให้
ชุดเครื่องมือทดสอบความเข้ากันได้ (CTS)
ข้อกำหนดก่อนหน้าสำหรับการรักษาความสามารถไว้ในขณะที่เรียกใช้
กระบวนการหรือบริการที่เกี่ยวข้องกับการตั้งค่าความสามารถและใช้
setuid
/setgid
ไปยัง AID ที่เหมาะสมที่จะเรียกใช้ เมื่อใช้ตัวพิมพ์ใหญ่
คุณสามารถข้ามข้อกำหนดเหล่านี้ และให้เคอร์เนลดำเนินการแทนคุณ เมื่อการควบคุมคือ
ให้กับ main()
กระบวนการของคุณมีความสามารถอยู่แล้ว
เพื่อที่บริการของคุณสามารถใช้ผู้ใช้และกลุ่มที่ไม่ใช่ระดับรูทได้ (แนะนำ
ในการเริ่มต้นบริการที่ได้รับสิทธิ์)
ส่วนตัวพิมพ์ใหญ่ใช้ไวยากรณ์ต่อไปนี้
โซน | ค่า | คำจำกัดความ |
---|---|---|
[path] |
เส้นทางระบบไฟล์ที่จะกำหนดค่า เส้นทางที่ลงท้ายด้วย / ถือว่าเป็นเส้นทาง dir
ไม่อย่างนั้นจะเป็นไฟล์
มีข้อผิดพลาดในการระบุหลายส่วนที่มีส่วนเดียวกัน [path] ในไฟล์ต่างๆ ใน Python เวอร์ชัน <= 3.2 พารามิเตอร์
ไฟล์เดียวกันอาจมีส่วนที่ลบล้างส่วนก่อนหน้า ใน Python
3.2 ตั้งค่าเป็นโหมดเข้มงวด |
|
mode |
โหมดไฟล์ฐานแปด | โหมดไฟล์ฐานแปดที่ถูกต้องอย่างน้อย 3 หลัก หากระบุ 3 จะเป็น นำหน้าด้วย 0 ระบบจะใช้โหมดอื่นตามที่เป็นอยู่ |
user |
AID_<ผู้ใช้> | C define สำหรับ AID ที่ถูกต้องหรือชื่อที่จำง่าย
(เช่น ยอมรับทั้ง AID_RADIO และ radio ) ถึง
ระบุ AID ที่กำหนดเอง โปรดดูการกำหนดค่า
ส่วน AID |
group |
AID_<กลุ่ม> | เหมือนกับผู้ใช้ |
caps |
ตัวพิมพ์ใหญ่* | ชื่อตามที่ประกาศไว้ใน
bionic/libc/kernel/uapi/linux/capability.h
โดยไม่มี CAP_ นำ อนุญาตให้ใช้ตัวพิมพ์ใหญ่-เล็ก การกำหนดขีดจำกัดสามารถ
ข้อมูลดิบ:
|
สำหรับตัวอย่างการใช้งาน โปรดดู การใช้ไฟล์ ความสามารถของระบบ
กำหนดค่าส่วน AID
ส่วน AID มี AID ของ OEM และใช้ไวยากรณ์ต่อไปนี้
โซน | ค่า | คำจำกัดความ |
---|---|---|
[AID_<name>] |
<name> มีอักขระในชุดได้
ตัวพิมพ์ใหญ่ ตัวเลข และขีดล่าง เวอร์ชันตัวพิมพ์เล็กจะใช้เป็น
ชื่อที่จำง่าย ไฟล์ส่วนหัวที่สร้างขึ้นสำหรับการรวมโค้ดจะใช้
AID_<name>
มีข้อผิดพลาดในการระบุหลายส่วนที่มีส่วนเดียวกัน AID_<name> (ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่พร้อมข้อจำกัดเดียวกันกับ
[path] )
<name> ต้องเริ่มต้นด้วยชื่อพาร์ติชันเพื่อให้มั่นใจว่า
ไม่ให้ขัดแย้งกับแหล่งที่มาอื่นๆ |
|
value |
<ตัวเลข> | สตริงตัวเลขรูปแบบ C ที่ถูกต้อง (เลขฐานสิบหก ฐานแปด ฐานสอง และฐานสิบ)
การระบุหลายส่วนที่มีตัวเลือกค่าเหมือนกันนั้นมีข้อผิดพลาด ต้องระบุตัวเลือกค่าในช่วงที่ตรงกับพาร์ติชัน ที่ใช้ใน <name> รายการพาร์ติชันที่ถูกต้องและรายการที่เกี่ยวข้อง
มีการกำหนดช่วงไว้ใน system/core/libcutils/include/private/android_filesystem_config.h
ตัวเลือกมีดังนี้
|
ดูตัวอย่างการใช้งานได้ที่การกำหนด OEM ชื่อ AID และการใช้ OEM AID
ตัวอย่างการใช้
ตัวอย่างต่อไปนี้มีรายละเอียดเกี่ยวกับวิธีกำหนดและใช้ OEM AID และวิธี เปิดใช้งานความสามารถของระบบไฟล์ ชื่อ OEM AID ([AID_name]) ต้องขึ้นต้นด้วย ชื่อพาร์ติชัน เช่น "vendor_" เพื่อไม่ให้เกิดความขัดแย้งกับอนาคต ชื่อ AOSP หรือพาร์ติชันอื่นๆ
กำหนดชื่อ OEM AID
หากต้องการกำหนด OEM AID ให้สร้างไฟล์ config.fs
และตั้งค่า
AID ตัวอย่างเช่น ใน device/x/y/config.fs
ให้ตั้งค่า
ดังต่อไปนี้:
[AID_VENDOR_FOO] value: 2900
หลังจากสร้างไฟล์แล้ว ให้ตั้งค่าตัวแปร TARGET_FS_CONFIG_GEN
แล้วชี้ไปที่หน้านั้นใน BoardConfig.mk
ตัวอย่างเช่น ใน
device/x/y/BoardConfig.mk
ให้ตั้งค่าต่อไปนี้
TARGET_FS_CONFIG_GEN += device/x/y/config.fs
ตอนนี้ระบบสามารถใช้ AID ที่กำหนดเองของคุณในวงกว้างบนบิลด์ใหม่
ใช้ OEM AID
หากต้องการใช้ OEM AID ในโค้ด C ให้ใส่ oemaids_headers
ใน
Makefile และเพิ่ม #include "generated_oem_aid.h"
จากนั้นให้เริ่มใช้พารามิเตอร์ที่ประกาศ
บางอย่าง เช่น เพิ่มข้อมูลต่อไปนี้ใน my_file.c
#include "generated_oem_aid.h" … If (ipc->uid == AID_VENDOR_FOO) { // Do something ...
เพิ่มข้อมูลต่อไปนี้ในไฟล์ Android.bp
ที่เชื่อมโยง
header_libs: ["oemaids_headers"],
หากคุณใช้ไฟล์ Android.mk
ให้เพิ่มรายการต่อไปนี้
LOCAL_HEADER_LIBRARIES := oemaids_headers
ใช้ชื่อที่จำง่าย
ใน Android 9 คุณสามารถใช้ชื่อที่จำง่ายสำหรับ อินเทอร์เฟซที่รองรับชื่อเอดส์ เช่น
- ในคำสั่ง
chown
ในsome/init.rc
:chown vendor_foo /vendor/some/vendor_foo/file
- ใน
service
ในsome/init.rc
:service vendor_foo /vendor/bin/foo_service user vendor_foo group vendor_foo
เนื่องจากการแมปภายในจาก friendly name ไปจนถึง UID ดำเนินการโดย
/vendor/etc/passwd
และ /vendor/etc/group
ซึ่งเป็นผู้ให้บริการ
ต้องต่อเชื่อมพาร์ติชัน
เชื่อมโยงชื่อที่จำง่าย
Android 9 รองรับการเชื่อมโยง ชื่อที่จำง่ายด้วยค่า OEM AID จริง คุณสามารถใช้สตริงที่ไม่ใช่ตัวเลขได้ อาร์กิวเมนต์สำหรับผู้ใช้และกลุ่ม ซึ่งก็คือ "vendor_foo" แทนที่จะเป็น "2901"
แปลงจาก AID เป็นชื่อที่จำง่าย
สำหรับ
OEM AID, Android 8.x กำหนดให้ใช้
oem_####
ที่มี getpwnam
และฟังก์ชันที่คล้ายกัน เช่น
ในตำแหน่งที่รองรับการค้นหาด้วย getpwnam
(เช่น
init
สคริปต์) ใน Android 9 คุณสามารถทำสิ่งต่อไปนี้ได้
ใช้ getpwnam
และ getgrnam
เพื่อนใน Bionic เพื่อ
ซึ่งจะแปลงจาก Android ID (AID) เป็นชื่อที่จำง่าย และในทางกลับกัน
ใช้ความสามารถของระบบไฟล์
หากต้องการเปิดใช้ความสามารถของระบบไฟล์ ให้สร้างส่วนตัวพิมพ์ใหญ่ใน
config.fs
ไฟล์ ตัวอย่างเช่น ใน
device/x/y/config.fs
ให้เพิ่มส่วนต่อไปนี้
[system/bin/foo_service] mode: 0555 user: AID_VENDOR_FOO group: AID_SYSTEM caps: SYS_ADMIN | SYS_NICE
หลังจากสร้างไฟล์แล้ว ให้ตั้งค่า TARGET_FS_CONFIG_GEN
ให้ชี้ไปยัง
ไฟล์นั้นใน BoardConfig.mk
ตัวอย่างเช่น ใน
device/x/y/BoardConfig.mk
ให้ตั้งค่าต่อไปนี้
TARGET_FS_CONFIG_GEN += device/x/y/config.fs
เมื่อดำเนินการบริการ vendor_foo
แล้ว บริการจะเริ่มต้น
พร้อมความสามารถ CAP_SYS_ADMIN
และ CAP_SYS_NICE
ไม่มีการโทร setuid
และ setgid
นอกจากนี้
นโยบาย SELinux ของบริการ vendor_foo
ใช้ไม่ได้แล้ว
ต้องใช้ความสามารถ setuid
และ setgid
และสามารถ
ลบแล้ว
กำหนดค่าการลบล้าง (Android 6.x-7.x)
Android 6.0 ได้ย้าย fs_config
และโครงสร้างที่เกี่ยวข้องแล้ว
คำจำกัดความ
(system/core/include/private/android_filesystem_config.h
) ไปยัง
system/core/libcutils/fs_config.c
ซึ่งสามารถอัปเดตได้ หรือ
ถูกลบล้างโดยไฟล์ไบนารีที่ติดตั้งใน
/system/etc/fs_config_dirs
และ
/system/etc/fs_config_files
การใช้การจับคู่และการแยกวิเคราะห์แยกกัน
กฎสำหรับไดเรกทอรีและไฟล์ (ซึ่งสามารถใช้นิพจน์ glob เพิ่มเติม)
ทำให้ Android สามารถจัดการไดเรกทอรีและไฟล์ในตารางที่แตกต่างกัน 2 ตารางได้
คำจำกัดความของโครงสร้างในภาษาsystem/core/libcutils/fs_config.c
ไม่ใช่
อนุญาตให้อ่านไดเรกทอรีและไฟล์แบบรันไทม์เท่านั้น แต่โฮสต์สามารถใช้
ไฟล์เดียวกันในช่วงเวลาบิลด์ เพื่อสร้างอิมเมจระบบไฟล์
${OUT}/system/etc/fs_config_dirs
และ
${OUT}/system/etc/fs_config_files
ขณะที่วิธีการลบล้างในการขยายระบบไฟล์ถูกแทนที่โดย ระบบการกำหนดค่าแบบแยกส่วนที่ใช้ใน Android 8.0 คุณยังสามารถใช้เวอร์ชันเก่า หากต้องการ ส่วนต่อไปนี้แสดงรายละเอียดวิธีสร้างและรวม ลบล้างไฟล์และกำหนดค่าระบบไฟล์
สร้างไฟล์ลบล้าง
คุณสามารถสร้างไฟล์ไบนารีที่มีความสอดคล้อง
/system/etc/fs_config_dirs
และ
/system/etc/fs_config_files
โดยใช้
เครื่องมือ fs_config_generate
ใน build/tools/fs_config
เครื่องมือใช้ฟังก์ชันไลบรารี libcutils
(fs_config_generate()
) เพื่อจัดการข้อกำหนดของ DAC ไว้ในบัฟเฟอร์
และกำหนดกฎสำหรับไฟล์รวมเพื่อกำหนดสถานะของกฎ DAC
หากต้องการใช้ ให้สร้างไฟล์รวมใน
device/vendor/device/android_filesystem_config.h
ที่ทำหน้าที่เป็นการลบล้าง ไฟล์ต้องใช้เมธอด
กำหนดรูปแบบ structure fs_path_config
ใน
system/core/include/private/android_filesystem_config.h
ด้วย
การเริ่มต้นโครงสร้างสำหรับสัญลักษณ์ไดเรกทอรีและไฟล์มีดังนี้
- สำหรับไดเรกทอรี ให้ใช้
android_device_dirs[]
- สำหรับไฟล์ ให้ใช้
android_device_files[]
เมื่อไม่ได้ใช้ android_device_dirs[]
และ
android_device_files[]
คุณสามารถกำหนด
NO_ANDROID_FILESYSTEM_CONFIG_DEVICE_DIRS
และ
NO_ANDROID_FILESYSTEM_CONFIG_DEVICE_FILES
(ดู
ตัวอย่างด้านล่าง) นอกจากนี้ คุณยังสามารถระบุการลบล้าง
โดยใช้ TARGET_ANDROID_FILESYSTEM_CONFIG_H
ในกระดาน
โดยมีชื่อพื้นฐานที่บังคับใช้ของ
android_filesystem_config.h
รวมไฟล์การลบล้าง
หากต้องการรวมไฟล์ ให้ตรวจสอบว่า PRODUCT_PACKAGES
มี
fs_config_dirs
และ/หรือ fs_config_files
เพื่อให้มี
ให้ติดตั้งลงใน /system/etc/fs_config_dirs
และ
/system/etc/fs_config_files
ตามลำดับ ระบบบิลด์
ค้นหา android_filesystem_config.h
ที่กำหนดเองใน
$(TARGET_DEVICE_DIR)
ซึ่งมี BoardConfig.mk
อยู่
หากมีไฟล์นี้อยู่ที่อื่น ให้ตั้งตัวแปรการกำหนดค่าบอร์ด
TARGET_ANDROID_FILESYSTEM_CONFIG_H
เพื่อชี้ไปยังตำแหน่งดังกล่าว
กำหนดค่าระบบไฟล์
หากต้องการกำหนดค่าระบบไฟล์ใน Android 6.0 ขึ้นไป ให้ทำดังนี้
- สร้าง
$(TARGET_DEVICE_DIR)/android_filesystem_config.h
- เพิ่ม
fs_config_dirs
และ/หรือfs_config_files
ลงในPRODUCT_PACKAGES
ในไฟล์การกำหนดค่ากระดาน (เช่น$(TARGET_DEVICE_DIR)/device.mk
)
ตัวอย่างการลบล้าง
ตัวอย่างนี้แสดงแพตช์สำหรับการลบล้าง system/bin/glgps
Daemon เพื่อเพิ่มการสนับสนุน Wake Lock ใน
ไดเรกทอรี device/vendor/device
เก็บ
ดังต่อไปนี้
- แต่ละรายการโครงสร้างคือโหมด, uid, gid, ความสามารถ และชื่อ
system/core/include/private/android_filesystem_config.h
คือ รวมโดยอัตโนมัติเพื่อให้ไฟล์ Manifest #กำหนด (AID_ROOT
AID_SHELL
CAP_BLOCK_SUSPEND
) - ส่วน
android_device_files[]
มีการดำเนินการเพื่อ ระงับการเข้าถึงsystem/etc/fs_config_dirs
เมื่อไม่ระบุ ซึ่งทำหน้าที่เป็นการป้องกัน DAC เพิ่มเติมสำหรับการขาดเนื้อหาสำหรับไดเรกทอรี ใหม่ อย่างไรก็ตาม นี่เป็นการป้องกันที่หละหลวม หากมีผู้ควบคุม/system
เด็กๆ มักจะทำทุกอย่างที่ต้องการได้
diff --git a/android_filesystem_config.h b/android_filesystem_config.h new file mode 100644 index 0000000..874195f --- /dev/null +++ b/android_filesystem_config.h @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +/* This file is used to define the properties of the file system +** images generated by build tools (eg: mkbootfs) and +** by the device side of adb. +*/ + +#define NO_ANDROID_FILESYSTEM_CONFIG_DEVICE_DIRS +/* static const struct fs_path_config android_device_dirs[] = { }; */ + +/* Rules for files. +** These rules are applied based on "first match", so they +** should start with the most specific path and work their +** way up to the root. Prefixes ending in * denotes wildcard +** and will allow partial matches. +*/ +static const struct fs_path_config android_device_files[] = { + { 00755, AID_ROOT, AID_SHELL, (1ULL << CAP_BLOCK_SUSPEND), "system/bin/glgps" }, +#ifdef NO_ANDROID_FILESYSTEM_CONFIG_DEVICE_DIRS + { 00000, AID_ROOT, AID_ROOT, 0, "system/etc/fs_config_dirs" }, +#endif +}; diff --git a/device.mk b/device.mk index 0c71d21..235c1a7 100644 --- a/device.mk +++ b/device.mk @@ -18,7 +18,8 @@ PRODUCT_PACKAGES := \ libwpa_client \ hostapd \ wpa_supplicant \ - wpa_supplicant.conf + wpa_supplicant.conf \ + fs_config_files ifeq ($(TARGET_PREBUILT_KERNEL),) ifeq ($(USE_SVELTE_KERNEL), true)
ย้ายข้อมูลระบบไฟล์จากรุ่นก่อนหน้า
เมื่อย้ายข้อมูลระบบไฟล์จาก Android 5.x และเวอร์ชันก่อนหน้า โปรดทราบว่า Android 6.x
- นําคํารวมถึง โครงสร้าง และคําจํากัดความในบรรทัดออกบางส่วน
- ต้องอ้างอิง
libcutils
แทนการเรียกใช้โดยตรง จากsystem/core/include/private/android_filesystem_config.h
ไฟล์ปฏิบัติการส่วนตัวของผู้ผลิตอุปกรณ์ที่ต้องใช้system/code/include/private_filesystem_config.h
สำหรับไฟล์หรือ โครงสร้างไดเรกทอรีหรือfs_config
ต้องเพิ่มlibcutils
ทรัพยากร Dependency ของไลบรารี - ต้องใช้สำเนาสาขาส่วนตัวของผู้ผลิตอุปกรณ์
system/core/include/private/android_filesystem_config.h
ด้วย เนื้อหาพิเศษจากเป้าหมายที่มีอยู่ที่จะย้ายไปdevice/vendor/device/android_filesystem_config.h
- สงวนสิทธิ์ที่จะใช้การควบคุมการเข้าถึงที่จำเป็น (MAC) ของ SELinux
ในระบบเป้าหมาย การใช้งานที่มี
ไฟล์ปฏิบัติการเป้าหมายที่ใช้
fs_config()
ต้องตรวจสอบการเข้าถึง