มีอะไรใหม่สำหรับ Enterprise ใน Android 10

หน้านี้แสดงภาพรวมของ API, ฟีเจอร์ และ API ใหม่สำหรับองค์กร การเปลี่ยนแปลงลักษณะการทำงานที่เกิดขึ้นใน Android 10

โปรไฟล์งานสำหรับอุปกรณ์ของบริษัท

Android 10 เปิดตัวฟีเจอร์การจัดสรรและเอกสารรับรองใหม่สำหรับ อุปกรณ์ของบริษัทที่ต้องใช้เฉพาะโปรไฟล์งาน

เครื่องมือการจัดสรรสำหรับโปรไฟล์งานที่ปรับปรุงขึ้น

คุณสามารถจัดสรรโปรไฟล์งานในอุปกรณ์ Android 10 ขึ้นไปที่ลงทะเบียนโดยใช้ คิวอาร์โค้ด หรือZero Touch ในระหว่างการจัดสรรอุปกรณ์ของบริษัท Intent เพิ่มเติมใหม่ช่วยให้ แอปเครื่องมือควบคุมนโยบายด้านอุปกรณ์ (DPC) เพื่อเริ่มโปรไฟล์งานหรือที่มีการจัดการครบวงจร การตั้งค่า หลังจากสร้างโปรไฟล์งานหรือจัดการเต็มรูปแบบแล้ว DPC ต้องเปิดหน้าจอการปฏิบัติตามนโยบายเพื่อบังคับใช้นโยบายเบื้องต้น

ในไฟล์ Manifest ของ DPC ให้ประกาศตัวกรอง Intent ใหม่สำหรับ GET_PROVISIONING_MODE ในกิจกรรมแล้วเพิ่ม BIND_DEVICE_ADMIN สิทธิ์เพื่อป้องกันไม่ให้แอปที่กําหนดเองเริ่มกิจกรรม เช่น

<activity
    android:name=".GetProvisioningModeActivity"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <intent-filter>
        <action
            android:name="android.app.action.GET_PROVISIONING_MODE" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

ในระหว่างการจัดสรร ระบบจะเริ่มกิจกรรมที่เชื่อมโยงกับ Intent กิจกรรมนี้มีจุดประสงค์เพื่อระบุโหมดการจัดการ (โปรไฟล์งานหรือจัดการครบวงจร)

การดึงข้อมูลการจัดสรรเพิ่มเติมก่อนที่จะกำหนด โหมดการจัดการที่เหมาะสมสำหรับอุปกรณ์ สามารถเรียกกิจกรรมได้ getIntent() เพื่อดึงข้อมูล ดังต่อไปนี้

DPC ยังสร้าง Intent ของผลการค้นหาใหม่และเพิ่มส่วนเสริมต่อไปนี้ได้ด้วย

  • EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE: เพิ่มลงในแพ็กเกจที่มีอยู่หรือสร้างแพ็กเกจใหม่ ชุดข้อมูลนี้ส่งเป็น Intent เพิ่มเติมเมื่อ DPC เปิดตัวหน้าจอการปฏิบัติตามนโยบาย
  • EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE: ระบุบัญชีที่จะย้ายข้อมูลเฉพาะเมื่อเพิ่มบัญชีงานเป็นส่วนหนึ่งของงานเท่านั้น การจัดสรรโปรไฟล์
  • EXTRA_PROVISIONING_SKIP_EDUCATION_SCREENS

โทรเพื่อตั้งค่าโหมดการจัดการในอุปกรณ์ putExtra(DevicePolicyManager.EXTRA_PROVISIONING_MODE,desiredProvisioningMode), โดยที่ desiredProvisioningMode คือ:

  • โปรไฟล์งาน: PROVISIONING_MODE_MANAGED_PROFILE
  • จัดการครบวงจร: PROVISIONING_MODE_FULLY_MANAGED_DEVICE

กรอกโปรไฟล์งานหรือการจัดสรรที่มีการจัดการครบวงจรโดยการส่งการจัดสรร รายละเอียดกลับไปยังการตั้งค่าผ่าน setResult(RESULT_OK, Intent) และปิดหน้าจอที่ใช้งานอยู่ทั้งหมดด้วย finish()

หลังจากการจัดสรรเสร็จสมบูรณ์ DPC จะพร้อมเปิดตัว Intent ใหม่ การตรวจสอบการปฏิบัติตามข้อกำหนดและบังคับใช้นโยบายเริ่มต้น ในโปรไฟล์งาน อุปกรณ์ หน้าจอการปฏิบัติตามข้อกำหนดจะปรากฏในโปรไฟล์งาน DPC ของคุณจะต้อง ตรวจสอบว่าหน้าจอการปฏิบัติตามข้อกำหนดแสดงต่อผู้ใช้ แม้ว่าผู้ใช้จะหลบหนีไป ขั้นตอนการตั้งค่า

ในไฟล์ Manifest ของ DPC ให้ประกาศตัวกรอง Intent ใหม่สำหรับ ADMIN_POLICY_COMPLIANCE ในกิจกรรมแล้วเพิ่ม BIND_DEVICE_ADMIN สิทธิ์เพื่อป้องกันไม่ให้แอปที่กําหนดเองเริ่มกิจกรรม เช่น

<activity
    android:name=".PolicyComplianceActivity"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <intent-filter>
        <action android:name="android.app.action.ADMIN_POLICY_COMPLIANCE" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

DPC ของคุณต้องใช้ Intent ใหม่นี้แทนการฟังสำหรับ ACTION_PROFILE_PROVISIONING_COMPLETE ออกอากาศ

กิจกรรมที่เชื่อมโยงกับตัวกรอง Intent จะเรียกใช้ getIntent() เพื่อดึงข้อมูล เวลา EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE หลังจากปฏิบัติตามนโยบายแล้ว ADMIN_POLICY_COMPLIANCE ต้องแสดงผล setResult(RESULT_OK, Intent) และปิดหน้าจอที่ใช้งานอยู่ทั้งหมด finish()

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

เอกสารรับรองรหัสอุปกรณ์ของโปรไฟล์งาน

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

คอมโพเนนต์ผู้ดูแลระบบของโปรไฟล์งานสามารถเรียกใช้ DevicePolicyManager.generateKeyPair() โดยส่งอย่างน้อย 1 รายการ ID_TYPE_SERIAL, ID_TYPE_IMEI หรือ ID_TYPE_MEID สำหรับอาร์กิวเมนต์ idAttestationFlags

หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการดึงข้อมูลและตรวจสอบรหัสอุปกรณ์ โปรดดูการยืนยันคู่คีย์ที่รองรับฮาร์ดแวร์ด้วยเอกสารรับรองคีย์

การปรับปรุงโปรไฟล์งาน

API ใหม่พร้อมให้บริการเพื่อรองรับระดับการเข้าถึงปฏิทินข้ามโปรไฟล์และ การบล็อกการติดตั้งแอปจากแหล่งที่มาที่ไม่รู้จักทั่วทั้งอุปกรณ์

โปรไฟล์งาน แหล่งที่มาที่ไม่รู้จักทั่วทั้งอุปกรณ์

แอปที่ดาวน์โหลดจากแหล่งที่มาอื่นๆ ที่ไม่ใช่ Google Play (หรือแอปอื่นๆ ที่เชื่อถือได้ Store) จะเรียกว่าแอปจากแหล่งที่มาที่ไม่รู้จัก ใน Android 10 ผู้ดูแลระบบงาน สามารถป้องกันไม่ให้ผู้ใช้หรือโปรไฟล์ติดตั้งแอปที่ไม่รู้จัก แหล่งที่มาที่ใดก็ได้ในอุปกรณ์โดยเพิ่มข้อจำกัดผู้ใช้ใหม่ DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY อย่างไรก็ตาม หลังจากเพิ่มข้อจำกัดนี้แล้ว ผู้ที่ใช้อุปกรณ์จะยังคง ติดตั้งแอปโดยใช้ adb

เพื่อป้องกันไม่ให้ผู้ใช้ติดตั้งแอปจากแหล่งที่มาที่ไม่รู้จักโดยไม่ได้ตั้งใจ เราขอแนะนำให้เพิ่มการจำกัดผู้ใช้นี้เพราะไม่ต้องใช้ Google Play บริการที่จะติดตั้ง หากต้องการรองรับ Android เวอร์ชันเก่า ให้ทำดังนี้ ตั้งค่าการกำหนดค่าที่มีการจัดการสำหรับ Google Play

จำกัดอุปกรณ์อินพุตที่ได้รับอนุญาตให้ใช้ในโปรไฟล์งาน

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

ล้างข้อมูลโปรไฟล์งาน

เพิ่ม WIPE_SILENTLY แล้ว แจ้งว่า DevicePolicyManager.wipeData() หากตั้งค่าสถานะไว้ ผู้ใช้จะไม่ได้รับการแจ้งเตือนหลังจากล้างข้อมูลโปรไฟล์งาน ด้วย wipeData()

ฟีเจอร์ใหม่สำหรับอุปกรณ์ที่มีการจัดการครบวงจร

Android 10 เปิดตัวฟีเจอร์และ API ใหม่ๆ สำหรับอุปกรณ์ที่มีการจัดการครบวงจร ซึ่งรวมถึงการอัปเดตระบบด้วยตนเอง การขยายการใช้งานคิวอาร์โค้ดและ NFC ไปยัง ระบุข้อมูลเข้าสู่ระบบสำหรับเครือข่าย EAP Wi-Fi และการรองรับ DNS ผ่าน TLS

การติดตั้งการอัปเดตระบบด้วยตนเอง

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

  • ทดสอบการอัปเดตในอุปกรณ์จำนวนไม่มากก่อนทำการติดตั้งในวงกว้าง
  • หลีกเลี่ยงการดาวน์โหลดซ้ำบนเครือข่ายที่มีแบนด์วิดท์จำกัด
  • ทยอยติดตั้งหรืออัปเดตอุปกรณ์เฉพาะเมื่อไม่มีการใช้งาน

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

หลังจากอุปกรณ์รีสตาร์ท DPC จะต้องยืนยันว่าการติดตั้งเสร็จสมบูรณ์ โดยใช้ API เวอร์ชัน เช่น Build.FINGERPRINT หากการอัปเดต ล้มเหลว รายงานความล้มเหลวไปยังผู้ดูแลระบบไอที

การจัดสรร Wi-Fi สำหรับ EAP

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

ในการตรวจสอบสิทธิ์ Wi-Fi โดยใช้ EAP ให้เพิ่ม EXTRA_PROVISIONING_WIFI_SECURITY_TYPE เพิ่มเติมด้วยค่า "EAP" ในการระบุการตรวจสอบสิทธิ์ EAP คุณสามารถเพิ่ม ต่อไปนี้การจัดสรรบริการเพิ่มเติมตามวัตถุประสงค์ของคุณ

การรองรับ DNS ส่วนตัว

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

  • setGlobalPrivateDnsModeOpportunistic() ให้อุปกรณ์ใช้ DNS ส่วนตัวเมื่อระบบค้นพบเนมเซิร์ฟเวอร์ที่รองรับ หรือ
  • setGlobalPrivateDnsModeSpecifiedHost() เพื่อระบุชื่อโฮสต์ของเนมเซิร์ฟเวอร์ที่รองรับ RFC7858 ในอาร์กิวเมนต์ privateDnsHost

เมื่อ DPC เรียกใช้วิธีใดวิธีหนึ่ง ระบบจะแสดงผล PRIVATE_DNS_SET_NO_ERROR หาก การโทรสำเร็จแล้ว มิเช่นนั้น ระบบจะแสดงข้อผิดพลาด

หากต้องการเรียกข้อมูลโหมด DNS ส่วนตัวและโฮสต์ที่ตั้งไว้ในอุปกรณ์ ให้เรียกใช้ getGlobalPrivateDnsMode() และ getGlobalPrivateDnsHost() คุณสามารถป้องกันไม่ให้ผู้ใช้เปลี่ยนการตั้งค่า DNS ส่วนตัวได้โดยการเพิ่ม DISALLOW_CONFIG_PRIVATE_DNS ข้อจำกัดของผู้ใช้

การยกเว้นโหมดปิดล็อกของ VPN

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

หากต้องการยกเว้นแอปจากโหมดปิดล็อก ให้เรียกใช้ เมธอด DevicePolicyManager setAlwaysOnVpnPackage() ที่ยอมรับรายการแพ็กเกจแอปที่ได้รับการยกเว้น แพ็กเกจแอปทั้งหมดที่ DPC เพิ่ม ต้องติดตั้งในอุปกรณ์เมื่อมีการเรียกใช้เมธอด หากแอปคือ ถอนการติดตั้งแล้วติดตั้งอีกครั้ง แอปนั้นจะต้องได้รับการยกเว้นอีกครั้ง วิธีดาวน์โหลดแอป ได้รับการยกเว้นจากโหมดปิดล็อกก่อนหน้านี้ โทร getAlwaysOnVpnLockdownWhitelist()

ช่วยผู้ดูแลระบบของอุปกรณ์ที่มีการจัดการครบวงจรและโปรไฟล์งานได้โหมดปิดล็อก Android 10 จะเพิ่ม isAlwaysOnVpnLockdownEnabled()

ขอบเขตการมอบสิทธิ์ใหม่

Android 10 มีรายการฟังก์ชันที่ DPC สามารถมอบสิทธิ์ให้ฟังก์ชันอื่นๆ แอปเฉพาะทาง Android จะจัดกลุ่มเมธอด API ที่จำเป็นสำหรับงานไว้เป็น ขอบเขต หากต้องการมอบสิทธิ์ขอบเขต โปรดเรียกใช้ setDelegatedScopes() และส่งผ่านขอบเขตต่อไปนี้อย่างน้อย 1 รายการ

Android 10 เปิดตัวคลาสใหม่ DelegatedAdminReceiver สำหรับแอปที่มอบสิทธิ์ ระบบใช้ Broadcast Receiver เพื่อส่งเช่นเดียวกับ DPC Callback เพื่อมอบสิทธิ์แอป แอปที่ได้รับมอบสิทธิ์กิจกรรมในเครือข่าย การเลือกการบันทึกและใบรับรองควรใช้คลาสนี้ หากต้องการเพิ่มรายการนี้ ให้กับแอปที่ได้รับมอบสิทธิ์ ให้ทำตามขั้นตอนต่อไปนี้

  1. เพิ่มคลาสย่อยของ DelegatedAdminReceiver ไปยังแอปมอบสิทธิ์
  2. ประกาศ <receiver> ใน ไฟล์ Manifest ของแอป ซึ่งเป็นการเพิ่มการดำเนินการตามตัวกรอง Intent สำหรับ Callback แต่ละรายการ ตัวอย่างเช่น ACTION_NETWORK_LOGS_AVAILABLE หรือ ACTION_CHOOSE_PRIVATE_KEY_ALIAS
  3. ปกป้อง Broadcast Receiver ด้วย BIND_DEVICE_ADMIN สิทธิ์

ข้อมูลโค้ดต่อไปนี้แสดงไฟล์ Manifest ของแอปของแอปที่ได้รับมอบสิทธิ์แอปเดียว จัดการทั้งการบันทึกเครือข่ายและการเลือกใบรับรอง

<receiver android:name=".app.DelegatedAdminReceiver"
        android:permission="android.permission.BIND_DELEGATED_ADMIN">
    <intent-filter>
        <action android:name="android.app.admin.action.NETWORK_LOGS_AVAILABLE">
        <action android:name="android.app.action.CHOOSE_PRIVATE_KEY_ALIAS">
    </intent-filter>
    </receiver>

การบันทึกกิจกรรมของเครือข่าย

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

ในการเรียกบันทึกเครือข่ายหลังจากที่ระบบ ทำให้กลุ่มพร้อมใช้งาน แอปที่ได้รับมอบสิทธิ์ควรใช้คลาสย่อยก่อน DelegatedAdminReceiver (อธิบายไว้ก่อนหน้านี้) ในคลาสย่อย ให้ใช้ onNetworkLogsAvailable() Callback โดยทำตามคำแนะนำในเรียกข้อมูลบันทึก

แอปที่ได้รับมอบสิทธิ์จะเรียกรายการต่อไปนี้ได้ DevicePolicyManager วิธี (กำลังส่ง null สำหรับอาร์กิวเมนต์ admin):

DPC ไม่ควรเปิดใช้การบันทึกเครือข่ายเพื่อหลีกเลี่ยงการสูญเสียบันทึก หากวางแผนที่จะมอบสิทธิ์ให้กับแอปอื่น แอปที่ได้รับมอบสิทธิ์ควรเปิดใช้และ เก็บรวบรวมบันทึกของเครือข่าย หลังจากที่ DPC มอบสิทธิ์การบันทึกเครือข่าย เครือข่ายจะไม่ได้รับ onNetworkLogsAvailable() เพิ่มเติม Callback

หากต้องการดูวิธีรายงานการบันทึกกิจกรรมของเครือข่ายจากแอปที่ได้รับมอบสิทธิ์ โปรดอ่าน ในคู่มือสำหรับนักพัฒนาซอฟต์แวร์การบันทึกกิจกรรมของเครือข่าย

การเลือกใบรับรอง

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

หากต้องการเลือกชื่อแทนใบรับรอง แอปที่ได้รับสิทธิ์ควรใช้คลาสย่อยก่อน DelegatedAdminReceiver (อธิบายไว้ก่อนหน้านี้) ในคลาสย่อย ให้ใช้ onChoosePrivateKeyAlias() Callback และส่งคืนชื่อแทนสำหรับ ใบรับรอง หรือแสดงข้อความแจ้งให้ผู้ใช้เลือกใบรับรอง ให้แสดงผล null

การเลิกใช้งานนโยบายผู้ดูแลระบบอุปกรณ์

Android 10 ป้องกันไม่ให้แอปและ DPC ใช้อุปกรณ์เดิม admin เราขอแนะนำให้ลูกค้า และพาร์ทเนอร์จะเปลี่ยนไปใช้อุปกรณ์ที่มีการจัดการครบวงจรหรือโปรไฟล์งาน ดังต่อไปนี้ ส่งSecurityException เมื่อเรียกใช้โดยผู้ดูแลระบบอุปกรณ์ที่กำหนดเป้าหมายเป็น Android 10

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

โปรดอ่านข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงเหล่านี้ที่หัวข้อผู้ดูแลระบบอุปกรณ์ การเลิกใช้งาน

ฟีเจอร์ใหม่สำหรับแอป

แอปที่กำหนดเป้าหมายเป็น Android 10 สามารถค้นหาความซับซ้อนของการล็อกหน้าจอที่ตั้งค่าไว้ในอุปกรณ์ ก่อนแสดงข้อมูลลับหรือเปิดตัวฟีเจอร์ที่สำคัญ กำลังโทรจากแอป ประโยชน์ของ KeyChain API ที่มีการปรับปรุงการทำงาน ในขณะที่ฟีเจอร์ใหม่ๆ ก็พร้อมใช้งานสำหรับแอป VPN ด้วยเช่นกัน

การตรวจสอบคุณภาพการล็อกหน้าจอ

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

วิธีตรวจสอบคุณภาพการล็อกหน้าจอ

หากต้องการเปิดการตั้งค่าการล็อกหน้าจอระบบ ให้ใช้ ACTION_SET_NEW_PASSWORD พร้อมตัวเลือก EXTRA_PASSWORD_COMPLEXITY เพิ่มเติม ซึ่งจะไม่ ตรงตามความซับซ้อนที่ระบุไว้ใน Intent เพิ่มเติมจะเป็นสีเทา ผู้ใช้สามารถ เลือกจากตัวเลือกการล็อกหน้าจอที่มีอยู่หรือออกจากหน้าจอ

แนวทางปฏิบัติแนะนำ: แสดงข้อความในแอปก่อนเปิดตัวระบบ ล็อกหน้าจอ เมื่อแอปกลับมาทํางานอีกครั้ง ให้โทร DevicePolicyManager.getPasswordComplexity() อีกครั้ง หากยังจําเป็นต้องใช้การล็อกหน้าจอที่รัดกุมยิ่งขึ้น ให้จํากัดการเข้าถึงแทน การแจ้งให้ผู้ใช้อัปเดตการตั้งค่าความปลอดภัยซ้ำๆ

การรองรับพร็อกซี HTTP ในแอป VPN

ใน Android 10 แอป VPN จะตั้งค่าพร็อกซี HTTP ได้ สำหรับการเชื่อมต่อ VPN ในการเพิ่มพร็อกซี HTTP แอป VPN ต้องกำหนดค่า อินสแตนซ์ ProxyInfo ที่มีโฮสต์และพอร์ต ก่อนโทร VpnService.Builder.setHttpProxy() ระบบและไลบรารีเครือข่ายจำนวนมากใช้การตั้งค่าพร็อกซีนี้ แต่ระบบ ไม่บังคับให้แอปส่งคำขอ HTTP ไปยังพร็อกซี

สำหรับโค้ดตัวอย่างที่แสดงวิธีตั้งค่าพร็อกซี HTTP โปรดดู ToyVPN แอปตัวอย่าง

โหมดของบริการ VPN

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

แอป VPN สามารถเรียกใช้ VpnService ต่อไปนี้ หลังจากเชื่อมต่อกับบริการ และสร้างอินเทอร์เฟซภายใน

  • isAlwaysOn() ถึง ดูว่าระบบเริ่มใช้บริการเนื่องจากมี VPN แบบเปิดตลอดเวลาหรือไม่
  • isLockdownEnabled() เพื่อดูว่าระบบบล็อกการเชื่อมต่อที่ไม่ได้ใช้ VPN อยู่หรือไม่

สถานะเปิดตลอดเวลาจะยังคงเหมือนเดิมขณะที่บริการยังทำงานอยู่ แต่ สถานะโหมดปิดล็อกอาจมีการเปลี่ยนแปลง

การปรับปรุงพวงกุญแจ

Android 10 มีการปรับปรุงหลายอย่างเกี่ยวกับ KeyChain API

เมื่อแอปโทรหา KeyChain.choosePrivateKeyAlias(), Android 10 ขึ้นไป จะกรองรายการใบรับรองที่ผู้ใช้สามารถเลือกได้โดยอิงจาก ผู้ออกบัตรและอัลกอริทึมหลักที่ระบุในการเรียกใช้

เช่น เมื่อเซิร์ฟเวอร์ TLS ส่งคำขอใบรับรอง ข้อความที่เป็นส่วนหนึ่งของแฮนด์เชค TLS และการเรียกเบราว์เซอร์ KeyChain.choosePrivateKeyAlias() เฉพาะข้อความแจ้งให้เลือกใบรับรองเท่านั้น มีตัวเลือกที่ตรงกับพารามิเตอร์ผู้ออกบัตร หากไม่มีตัวเลือกที่ตรงกัน พร้อมใช้งาน หรือไม่มีใบรับรองที่ติดตั้งไว้ในอุปกรณ์ จากนั้น ระบบจะไม่แสดงข้อความแจ้งให้เลือกแก่ผู้ใช้

นอกจากนี้ KeyChain จะไม่สามารถใช้งานได้ อุปกรณ์ต้องมีการล็อกหน้าจอก่อนจึงจะใช้คีย์หรือใบรับรอง CA ได้ นำเข้าแล้ว