Google is committed to advancing racial equity for Black communities. See how.
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

สิทธิ์ Android

สิทธิ์ของ Android ให้การควบคุมที่เพิ่มการรับรู้ของผู้ใช้และ จำกัด การเข้าถึงข้อมูลที่ละเอียดอ่อนของแอป การกำหนดค่าการอนุญาตบน Android 8.0 และต่ำกว่าจะรวมถึงรายการที่อนุญาตพิเศษโดยที่แอปที่มีสิทธิพิเศษจะไม่ถูกปิดแม้ว่าจะอยู่ในเส้นทางของ priv-app ส่วนตัวก็ตาม ใน Android 9 ขึ้นไปอุปกรณ์ที่พยายามใช้แอปที่ไม่อยู่ในรายการที่อนุญาตพิเศษจะไม่สามารถบู๊ตได้

การป้องกันที่เพิ่มขึ้นจาก แอปที่อาจเป็นอันตราย (PHAs) ได้รับการปรับปรุง

  • ความโปร่งใสต่อพฤติกรรมของแอปที่อาจเป็นอันตราย
  • ผู้ใช้ควบคุมพฤติกรรมของแอป
  • ดุลยพินิจของนักพัฒนาแอปเมื่อใช้ข้อมูลส่วนตัวได้รับการคุ้มครองโดยสิทธิ์

การติดตั้งแพ็คเกจและการอนุญาต

ใน Android 9 และต่ำกว่าฟังก์ชันการติดตั้งแพ็กเกจและการควบคุมสิทธิ์จะอยู่ในแพ็คเกจ PackageInstaller ( //packages/apps/PackageInstaller ) ใน Android 10 ขึ้นไปฟังก์ชันการควบคุมสิทธิ์จะอยู่ในแพ็คเกจที่แยกต่างหาก PermissionController ( //packages/apps/PermissionController ) รูปที่ 1 แสดงให้เห็นว่าทั้งสองแพ็คเกจอยู่ที่ใดใน Android 10

การแยกฟังก์ชันการติดตั้งแพ็กเกจและการควบคุมสิทธิ์สำหรับแอพระบบและตามที่แอพที่ผู้ใช้ติดตั้งใช้
รูปที่ 1. ฟังก์ชันการติดตั้งแพ็กเกจและการควบคุมสิทธิ์ใน Android 10

รายการที่อนุญาตและการเข้าถึง

ใน Android 6.0 ขึ้นไปแอปจะขอการเข้าถึงสิทธิ์ที่เป็นอันตรายขณะ รันไทม์ Android 10 เพิ่มสิทธิ์รันไทม์การจดจำกิจกรรม (AR) ซึ่งจะแจ้งให้ผู้ใช้แก้ไขหรืออนุญาตการอนุญาตที่เป็นอันตราย

Android 8.0 ต้องการให้คุณเพิ่มแอปที่มีสิทธิ์พิเศษอย่างชัดเจนในไฟล์ XML การกำหนดค่าระบบในไดเร็กทอรี /etc/permissions ใน Android 9 ขึ้นไปต้องอนุญาตสิทธิ์ พิเศษ ไม่เช่นนั้นอุปกรณ์จะบู๊ตไม่ได้

เพื่อ จำกัด การมองเห็น API ภายในและป้องกันไม่ให้แอปเข้าถึงไลบรารีของแพลตฟอร์มโดยไม่ได้ตั้งใจ Android 7.0 ได้แนะนำ Namespaces สำหรับ Native Libraries ซึ่งจะแยกไลบรารีระบบออกจากไลบรารีแอปพลิเคชันและผู้ผลิตอุปกรณ์สามารถเพิ่มไลบรารีดั้งเดิมของตนเองได้

การเริ่มต้นในแอป Android 10 ต้องมีทั้งสิทธิ์ลายเซ็นและความยินยอมของผู้ใช้ใน การเข้าถึงเนื้อหาบนหน้าจอของอุปกรณ์ แอปที่มีสิทธิ์ซึ่งอาศัยฟังก์ชันการจับภาพแบบไม่โต้ตอบเช่นการจับภาพหน้าจอควรใช้คลาส MediaProjection แทน

ความโปร่งใสและความเป็นส่วนตัว

ใน Android 6.0 ขึ้นไปที่อยู่ MAC ของโรงงานอุปกรณ์จะได้รับการปกป้องจากการเข้าถึงโดยผู้ให้บริการ Wi-Fi และเครื่องวิเคราะห์แพ็กเก็ต ข้อ จำกัด เพิ่มเติมสำหรับ Android 10 จำกัด แอป ไม่ ให้เข้าถึง ตัวระบุอุปกรณ์ (ID) ที่ไม่เปลี่ยนรูปได้ เว้นแต่จะได้รับ อนุญาตพิเศษสำหรับสิทธิ์พิเศษ (ส่วนการ เชื่อมต่อ มีการอภิปรายที่เกี่ยวข้องเกี่ยวกับ ตัวระบุอุปกรณ์ เนื่องจากสิ่งนี้ส่งผลกระทบต่อผู้ให้บริการ)

ใน Android 9 และรุ่นที่ต่ำกว่าผู้ใช้จะตัดสินใจเลือกอย่างต่อเนื่องเมื่อให้สิทธิ์เข้าถึงตำแหน่งแก่แอป ตั้งแต่ Android 10 เป็นต้น ไป คุณลักษณะการ อนุญาตตำแหน่งแบบไตรสิกขา จะช่วยให้ผู้ใช้มีตัวเลือกสามทางในการอนุญาตให้แอปเข้าถึงตำแหน่งของอุปกรณ์ ข้อกำหนดการอนุญาตเหล่านี้ใช้กับแอปใน Android 10 โดยไม่คำนึงถึง SDK เป้าหมาย

กำหนดค่าสิทธิ์สำหรับคุณสมบัติความโปร่งใสและความเป็นส่วนตัวอื่น ๆ ที่เริ่มต้นใน Android 10

  • การแจ้งเตือน ตำแหน่งการเข้าถึงพื้นหลัง จะแสดงผู้ใช้เมื่อแอปเข้าถึงตำแหน่งอุปกรณ์ของตนโดยใช้สิทธิ์ ACCESS_FINE_LOCATION ในพื้นหลัง
  • ข้อมูลที่เกี่ยวข้องกับผู้ติดต่อ - ความสัมพันธ์ที่จัดการโดยคอมโพเนนต์ผู้ให้บริการที่ติดต่อจะเข้าถึงได้แตกต่างกัน: แอปไม่สามารถเขียนหรืออ่านจากข้อมูลผู้ ติดต่อ ในฐานข้อมูล สิ่งนี้ส่งผลกระทบต่อ API ที่เกี่ยวข้องกับผู้โทร

การกำหนดค่าที่คล่องตัว

การกำหนดค่าสิทธิ์ได้รับการปรับปรุงให้ดีขึ้นสำหรับ Android 6.0 ขึ้นไป

  • ความสามารถรอบข้าง สำหรับบริการที่เรียกใช้โดย init จะเก็บทุกแง่มุมของการกำหนดค่าบริการไว้ในไฟล์ .rc ไฟล์เดียว เมื่อตั้งค่าความสามารถสำหรับเซอร์วิสที่ไม่ได้เรียกใช้โดย init ให้กำหนดค่าความสามารถของระบบไฟล์โดยใช้ fs_config.c แทน
  • Android 7.x และต่ำกว่าจะขยายกลไก Android IDs (AIDs) โดยใช้ไฟล์ android_filesystem_config.h เฉพาะอุปกรณ์เพื่อระบุความสามารถของระบบไฟล์และ / หรือ AID ของผู้ผลิตอุปกรณ์ที่กำหนดเอง Android 8.0 ขึ้นไปรองรับ วิธีการใหม่ในการขยายความสามารถของระบบไฟล์
  • ใน Android 8.0 การจัดการคำสั่ง USB จะย้ายออกจากสคริปต์ init เฉพาะอุปกรณ์ (การแทนที่สำหรับเลเยอร์ HAL) และไปยัง USB daemon ดั้งเดิม ต้องใช้อินเทอร์เฟซ USB HAL บนอุปกรณ์ทุกเครื่องที่เปิดตัวบน Android 8.0 ขึ้นไป