Track: Canary | Predecessor: Canary 6 | Note: canary builds are forward-looking and may not ship in the next stable release
A major canary update introducing an advanced security telemetry subsystem (51 new classes for process and network monitoring), a full Data Leak Prevention system service, managed user creation, three new policy engine handlers, and a wave of 21 new flags covering policy streamlining, security telemetry, and multi-user management.
DPC capabilities
advancedSecurityTelemetryEnabled. Provides enterprise threat detection via process lifecycle events (ProcessExecEvent, ProcessTerminateEvent), network flow monitoring (NetworkFlowEvent, NetworkSocketListenEvent), and security agent health checks (AgentStartEvent, AgentHeartbeatEvent). This is kernel-level security telemetry for enterprise devices - a significant new capability with no predecessor on any track@SystemApi system service (DataLeakPreventionManager) for content URI access checks, batch DLP operations, and print/screen capture enforcement. Methods include checkContentUriAccess(), batchCheckContentUriAccess(), checkPrintingAction(), and precheckScreenCaptureAction(). Supports three UI handling modes: SILENT, SYSTEM_OWNED, and CALLER_OWNED. Not present in the previous canary - this is the first appearance of a standalone DLP system servicecreateManagedUser(CreateManagedUserParams, Executor, OutcomeReceiver) on DevicePolicyManager. Asynchronous creation of dedicated-task users for multi-user managed device deployments. Gated by createManagedUserApi (false). Only accepts USER_TYPE_FULL_DEDICATED_TASKinstallKeyPair overload with Collection<Certificate> and explicit scope parameter. Gated by enableDeviceCertificatesPhase2. Enables certificate scoping to specific contextsfalse. The largest single-build flag batch to date, covering 13 policy streamlining domains (Bluetooth, camera access, content capture, long support message, nearby app/notification streaming, Wi-Fi state/Direct, set time zone, complex types, application policy), plus advanced security telemetry, security log streaming, managed user creation, per-user sensor permissions, bug reports for multi-user management, and several bug fix and refactoring gatesPolicyHandler subclasses landed. CameraAccessPolicyHandler maps USER_CHOICE/ENABLED/DISABLED to camera restrictions. TetheringPolicyHandler enforces tethering and Wi-Fi tethering restrictions. WifiStatePolicyHandler enforces the Wi-Fi state restriction. Each integrates with the typed policy engine V2policyIdentifier.getId() to policyIdentifier.toTransport() across setPolicy, getPolicy, getResolvedDeviceWidePolicy, getResolvedPerUserPolicy, and getEnforcingAdminsForPolicyIdentifier. The new PolicyIdentifierTransport Parcelable enables richer typed policy identification across process boundariesUSER_TYPE_FULL_KIOSK renamed to USER_TYPE_FULL_DEDICATED_TASK and isUserTypeKiosk() to isUserTypeDedicatedTask(). Canary now aligns with the beta track naming (beta adopted this in QPR2 Beta 5). The scope broadens from kiosk-only to general dedicated-task user typessecurityLogStreamingEnabled signals future real-time security event delivery. Currently canary has both the telemetry subsystem and streaming flag - together they represent a step-change in enterprise security monitoring capabilitycanAdminGrantSensorsPermissionsPerUser flag and corresponding per-user userId parameter on canAdminGrantSensorsPermissions(). Sensor permissions can now be granted per-user rather than device-wideOther enterprise changes
CONTENT_PROTECTION and MEMORY_TAGGING_EXTENSION now conditionally handled by Engine V2 via setIsHandledByEngineV2Supplier(). New buildOrThrow() method on PolicyDefinition for safer construction. Resource and Scope interfaces added for formalised policy resource targetingLegacyPermissionRegistry extracts DO/PO/financed DO permission lists from inline DPMS code into a single registry classisVisibleBackgroundUsersSupported() deprecated in favour of isVisibleBackgroundFullUsersSupported(). The "Full" qualifier disambiguates from profile-type background usersConfirmationActivity removed from manifest, layout renames, and localisation string updates across all locales. No new enterprise permissions or componentsCross-track note: a notable convergence - canary now uses USER_TYPE_FULL_DEDICATED_TASK, matching QPR2 Beta's independent rename from USER_TYPE_FULL_KIOSK. The remaining cross-track divergences persist: canary carries crossUserSuspensionEnabledRo and isRecursiveRequiredAppMergingEnabled at true, the beta track still has streaming network log infrastructure that canary lacks, and several beta-track flags (advancedSecurityLoggingEnabled, permissionManageAffiliationIds) are not present on canary. The new security telemetry and DLP Manager subsystems are canary-first - not yet present on the beta track.