หน้านี้แสดงภาพรวมของ 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 คุณสามารถเพิ่ม
ต่อไปนี้การจัดสรรบริการเพิ่มเติมตามวัตถุประสงค์ของคุณ
EXTRA_PROVISIONING_WIFI_EAP_METHOD
EXTRA_PROVISIONING_WIFI_IDENTITY
EXTRA_PROVISIONING_WIFI_ANONYMOUS_IDENTITY
EXTRA_PROVISIONING_WIFI_DOMAIN
EXTRA_PROVISIONING_WIFI_PHASE2_AUTH
EXTRA_PROVISIONING_WIFI_USER_CERTIFICATE
EXTRA_PROVISIONING_WIFI_CA_CERTIFICATE
การรองรับ 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 รายการ
DELEGATION_NETWORK_LOGGING
เพื่อมอบสิทธิ์การบันทึกกิจกรรมของเครือข่ายDELEGATION_CERT_SELECTION
เพื่อมอบสิทธิ์การเลือกใบรับรอง
Android 10 เปิดตัวคลาสใหม่
DelegatedAdminReceiver
สำหรับแอปที่มอบสิทธิ์ ระบบใช้ Broadcast Receiver เพื่อส่งเช่นเดียวกับ DPC
Callback เพื่อมอบสิทธิ์แอป แอปที่ได้รับมอบสิทธิ์กิจกรรมในเครือข่าย
การเลือกการบันทึกและใบรับรองควรใช้คลาสนี้ หากต้องการเพิ่มรายการนี้
ให้กับแอปที่ได้รับมอบสิทธิ์ ให้ทำตามขั้นตอนต่อไปนี้
- เพิ่มคลาสย่อยของ
DelegatedAdminReceiver
ไปยังแอปมอบสิทธิ์ - ประกาศ
<receiver>
ใน ไฟล์ Manifest ของแอป ซึ่งเป็นการเพิ่มการดำเนินการตามตัวกรอง Intent สำหรับ Callback แต่ละรายการ ตัวอย่างเช่นACTION_NETWORK_LOGS_AVAILABLE
หรือACTION_CHOOSE_PRIVATE_KEY_ALIAS
- ปกป้อง 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
USES_POLICY_DISABLE_CAMERA
USES_POLICY_DISABLE_KEYGUARD_FEATURES
USES_POLICY_EXPIRE_PASSWORD
USES_POLICY_LIMIT_PASSWORD
แอปพลิเคชันบางอย่างจะใช้ผู้ดูแลระบบอุปกรณ์สำหรับการดูแลระบบอุปกรณ์ของผู้บริโภค สำหรับ เช่น การล็อกและล้างข้อมูลในอุปกรณ์ที่สูญหาย ในการเปิดใช้ ให้ทำดังนี้ นโยบายที่จะใช้งานได้ต่อไป:
โปรดอ่านข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงเหล่านี้ที่หัวข้อผู้ดูแลระบบอุปกรณ์ การเลิกใช้งาน
ฟีเจอร์ใหม่สำหรับแอป
แอปที่กำหนดเป้าหมายเป็น Android 10 สามารถค้นหาความซับซ้อนของการล็อกหน้าจอที่ตั้งค่าไว้ในอุปกรณ์
ก่อนแสดงข้อมูลลับหรือเปิดตัวฟีเจอร์ที่สำคัญ กำลังโทรจากแอป
ประโยชน์ของ KeyChain
API
ที่มีการปรับปรุงการทำงาน ในขณะที่ฟีเจอร์ใหม่ๆ ก็พร้อมใช้งานสำหรับแอป VPN ด้วยเช่นกัน
การตรวจสอบคุณภาพการล็อกหน้าจอ
เริ่มตั้งแต่ Android 10 เป็นต้นไป แอปซึ่งมีฟีเจอร์สำคัญที่ต้องใช้การล็อกหน้าจอ สามารถค้นหาความซับซ้อนในการล็อกหน้าจอของอุปกรณ์หรือโปรไฟล์งาน แอปต้องมี การล็อกหน้าจอที่รัดกุมยิ่งขึ้นจะนําผู้ใช้ไปยังการตั้งค่าการล็อกหน้าจอของระบบได้ ซึ่งช่วยให้อัปเดตการตั้งค่าความปลอดภัยได้
วิธีตรวจสอบคุณภาพการล็อกหน้าจอ
- เพิ่มสิทธิ์
REQUEST_PASSWORD_COMPLEXITY
ใหม่ไปยัง ไฟล์ Manifest ของแอป - โทร
DevicePolicyManager.getPasswordComplexity()
ความซับซ้อนแบ่งออกเป็น 4 หมวดหมู่ ดังนี้
หากต้องการเปิดการตั้งค่าการล็อกหน้าจอระบบ ให้ใช้
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 ได้
นำเข้าแล้ว