โหมดการปกป้องขั้นสูง

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

ผลกระทบ

AAPM เปลี่ยนลักษณะการทำงานของบริการระบบบางอย่างเพื่อเพิ่มความปลอดภัย หากแอปของคุณให้บริการแก่ผู้ใช้ที่ให้ความสำคัญกับความปลอดภัย คุณต้องปรับให้เข้ากับข้อจำกัดเหล่านี้

  • สัญญาณของระบบ: เมื่อผู้ใช้เปิดใช้ AAPM ระบบจะแจ้งให้แอปที่สมัครรับข้อมูลทราบเพื่อให้แอปปรับให้เข้ากับสภาพแวดล้อมที่ถูกจำกัดได้
  • การแก้ไขแอปที่จำเป็น: คุณต้องอัปเดตแอปเพื่อจัดการการเปลี่ยนแปลงลักษณะการทำงานที่เกิดจาก AAPM เช่น แอปของคุณต้องคำนึงถึงสิ่งต่อไปนี้
    • การเชื่อมต่อเครือข่าย 2G และ WEP ที่ปิดใช้
    • การบล็อกการโหลดแอปจากแหล่งที่ไม่รู้จัก
    • การบันทึกข้อมูลทางนิติวิทยาศาสตร์ที่ใช้งานอยู่
    • การบล็อกสายจากหมายเลขที่ไม่รู้จัก
    • กลไกการป้องกันสแปมที่เปิดใช้สำหรับลิงก์ในแอปรับส่งข้อความ
    • การบรรเทาผลกระทบที่กำหนดเองเพิ่มเติมเพื่อปกป้องผู้ใช้ที่มีความเสี่ยง

ผสานรวมกับ AAPM

คุณต้องประกาศสิทธิ์ต่อไปนี้จึงจะใช้ API ที่เกี่ยวข้องได้

รับสิทธิ์

<uses-permission android:name="android.permission.QUERY_ADVANCED_PROTECTION_MODE" />

ตรวจสอบสถานะ

ตรวจสอบว่าผู้ใช้เปิด AAPM ในอุปกรณ์แล้ว โดยใช้บริการของระบบ AdvancedProtectionManager

import android.security.advancedprotection.AdvancedProtectionManager

// ... inside your Activity or Service
val aapmManager = getSystemService(AdvancedProtectionManager::class.java)

if (aapmManager?.isAdvancedProtectionEnabled) {
    // 🛡️ User is in Advanced Protection Mode.
    // Engage shields: Disable risky features, enforce stricter authentication.
    // TODO: Add Method which implements extra protections
}

ฟังการเปลี่ยนแปลงรันไทม์

ผู้ใช้สามารถเปิดหรือปิด AAPM ขณะที่แอปของคุณทำงานอยู่ ลงทะเบียนการเรียกกลับ เพื่อรับข้อมูลอัปเดตแบบเรียลไทม์

import android.security.advancedprotection.AdvancedProtectionManager
import java.util.concurrent.Executor

// Define the callback
val aapmCallback = AdvancedProtectionManager.Callback { isEnabled ->
    if (isEnabled) {
        // TODO: User just engaged protections. Lock it down!
    } else {
        // TODO: User disabled protections. You may relax restrictions.
    }
}

// Register the callback (for example, in onStart)
// Ensure you use the correct executor (for example, mainExecutor for UI updates)
aapmManager?.registerAdvancedProtectionCallback(mainExecutor, aapmCallback)