สิทธิ์ 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 สำหรับห้องสมุดพื้นเมือง สิ่งนี้จะแยกไลบรารีระบบออกจากไลบรารีแอปพลิเคชัน และผู้ผลิตอุปกรณ์สามารถเพิ่มไลบรารีดั้งเดิมของตนเองได้

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

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

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

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

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

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

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

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

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