สิทธิ์ของ Android ให้การควบคุมที่เพิ่มการรับรู้ของผู้ใช้และจำกัดการเข้าถึงของแอปในข้อมูลที่ละเอียดอ่อน การกำหนดค่าการอนุญาตบน Android 8.0 และต่ำกว่านั้นรวมถึงรายการที่อนุญาต โดยที่แอปที่มีสิทธิ์จะไม่ถูกปิดใช้งาน แม้ว่าจะอยู่ในเส้นทางของ priv-app
ส่วนตัวก็ตาม ใน Android 9 ขึ้นไป อุปกรณ์ที่พยายามใช้แอปที่ไม่อยู่ในรายการอนุญาตจะไม่สามารถบู๊ตได้
Android 10 แนะนำแนวคิดของ บทบาท ชื่อเฉพาะภายในระบบที่เกี่ยวข้องกับข้อกำหนดและสิทธิ์บางอย่าง กำหนดบทบาทให้กับแอปเพื่อให้สิทธิ์สำหรับวัตถุประสงค์เฉพาะ และกำหนดค่าบทบาทเริ่มต้นโดยใช้ทรัพยากรการกำหนดค่าแพลตฟอร์ม
การปรับปรุงการป้องกัน แอพที่อาจเป็นอันตราย (PHA) ที่เพิ่มขึ้น
- ความโปร่งใสในพฤติกรรมของแอปที่อาจเป็นอันตราย
- ผู้ใช้ควบคุมพฤติกรรมของแอพ
- ดุลยพินิจของนักพัฒนาแอปเมื่อใช้ข้อมูลส่วนตัว ได้รับการคุ้มครองโดยสิทธิ์
ติดตั้งแพ็คเกจและการอนุญาต
ใน Android 9 และต่ำกว่า ฟังก์ชันการติดตั้งแพ็คเกจและการควบคุมการอนุญาตมีอยู่ในแพ็คเกจ PackageInstaller
( //packages/apps/PackageInstaller
) ใน Android 10 ขึ้นไป ฟังก์ชันการควบคุมการอนุญาตจะอยู่ในแพ็คเกจแยกต่างหาก PermissionController
( //packages/apps/PermissionController
) รูปที่ 1 แสดงให้เห็นว่าทั้งสองแพ็คเกจอยู่ที่ไหนใน Android 10

รายการที่อนุญาตและการเข้าถึง
ใน Android 6.0 ขึ้นไป แอปจะขอเข้าถึงการอนุญาตที่เป็น อันตราย ขณะใช้งานจริง Android 10 เพิ่มการอนุญาตรันไทม์การรู้จำกิจกรรม (AR) ซึ่งแจ้งให้ผู้ใช้แก้ไขหรืออนุญาตการอนุญาตที่เป็นอันตราย
Android 8.0 กำหนดให้คุณต้องอนุญาตแอปที่มีสิทธิ์อย่างชัดแจ้งในไฟล์ XML การกำหนดค่าระบบในไดเร็กทอรี /etc/permissions
ใน Android 9 ขึ้นไป ต้องอนุญาตสิทธิ์พิเศษ มิฉะนั้น อุปกรณ์จะไม่สามารถบู๊ตได้
เพื่อจำกัดการมองเห็น API ภายในและป้องกันไม่ให้แอปเข้าถึงไลบรารีของแพลตฟอร์มโดยไม่ได้ตั้งใจ Android 7.0 ได้แนะนำเนมส เปซสำหรับ Native Libraries สิ่งนี้จะแยกไลบรารีระบบออกจากไลบรารีแอปพลิเคชัน และผู้ผลิตอุปกรณ์สามารถเพิ่มไลบรารีดั้งเดิมของตนเองได้
การเริ่มต้นในแอป Android 10 ต้องมีทั้งการอนุญาตลายเซ็นและความยินยอมของผู้ใช้ใน การเข้าถึงเนื้อหาบนหน้าจอของอุปกรณ์ แอปที่ได้รับสิทธิ์ซึ่งอาศัยฟังก์ชันการจับภาพแบบเงียบ เช่น การจับภาพหน้าจอ ควรใช้คลาส MediaProjection แทน
ความโปร่งใสและความเป็นส่วนตัว
ใน Android 6.0 ขึ้นไป ที่อยู่ MAC ของโรงงานอุปกรณ์จะได้รับการปกป้องจากการเข้าถึงโดยผู้ให้บริการ Wi-Fi และตัววิเคราะห์แพ็กเก็ต ข้อจำกัดเพิ่มเติมของ Android 10 จะจำกัดไม่ให้แอปเข้าถึง ตัวระบุอุปกรณ์ (ID) ที่ไม่เปลี่ยนรูป เว้นแต่จะได้รับอนุญาตในรายการที่ อนุญาตสำหรับสิทธิ์พิเศษ (ส่วน การ เชื่อม ต่อ ให้การสนทนาที่เกี่ยวข้องเกี่ยวกับ Device Identifiers เนื่องจากสิ่งนี้ส่งผลกระทบต่อผู้ให้บริการ)
ใน Android 9 และต่ำกว่า ผู้ใช้จะเลือกอย่างต่อเนื่องเมื่อให้สิทธิ์เข้าถึงตำแหน่งแก่แอป เริ่มต้นใน Android 10 ฟีเจอร์การ อนุญาตตำแหน่งแบบ Tristate ให้ผู้ใช้สามตัวเลือกในการอนุญาตให้แอปเข้าถึงตำแหน่งของอุปกรณ์ ข้อกำหนดการอนุญาตเหล่านี้ใช้กับแอปใน Android 10 โดยไม่คำนึงถึง SDK เป้าหมาย
กำหนดค่าการอนุญาตสำหรับคุณสมบัติความโปร่งใสและความเป็นส่วนตัวอื่นๆ ที่เริ่มต้นใน Android 10
- การแจ้งเตือน ตำแหน่งการเข้าถึงในเบื้องหลัง จะแสดงให้ผู้ใช้ทราบเมื่อแอปเข้าถึงตำแหน่งอุปกรณ์โดยใช้สิทธิ์
ACCESS_FINE_LOCATION
ในเบื้องหลัง - ข้อมูลที่เกี่ยวข้องกับผู้สนใจติดต่อซึ่งจัดการโดยองค์ประกอบผู้ให้บริการรายชื่อติดต่อมีการเข้าถึงต่างกัน: แอปไม่สามารถเขียนหรืออ่านจากข้อมูลกลุ่มบุคคลใน ฐาน ข้อมูลได้ สิ่งนี้ส่งผลกระทบต่อ API ที่เกี่ยวข้องกับผู้โทร
การกำหนดค่าที่คล่องตัว
การกำหนดค่าสิทธิ์ได้รับการปรับปรุงให้มีประสิทธิภาพมากขึ้นสำหรับ Android 6.0 ขึ้นไป
- ความสามารถแวดล้อม สำหรับบริการที่เปิดตัวโดย
init
จะเก็บทุกแง่มุมของการกำหนดค่าบริการไว้ในไฟล์.rc
ไฟล์เดียว เมื่อตั้งค่าความสามารถสำหรับบริการที่ไม่ได้เปิดใช้งานโดยinit
ให้กำหนดค่าความสามารถของระบบไฟล์โดยใช้fs_config.c
แทน - Android 7.x และต่ำกว่าจะขยายกลไก Android ID (AID) โดยใช้ไฟล์
android_filesystem_config.h
เฉพาะอุปกรณ์เพื่อระบุความสามารถของระบบไฟล์และ/หรือ AID ผู้ผลิตอุปกรณ์ที่กำหนดเอง Android 8.0 ขึ้นไปรองรับ วิธีการใหม่ในการขยายความสามารถของระบบไฟล์ - ใน Android 8.0 การจัดการคำสั่ง USB จะย้ายออกจากสคริปต์
init
เฉพาะอุปกรณ์ (การแทนที่สำหรับเลเยอร์ HAL) และไปเป็น USB daemon ดั้งเดิม ต้องใช้งานอินเทอร์เฟซ USB HAL กับทุกอุปกรณ์ที่เปิดตัวบน Android 8.0 ขึ้นไป