Track: QPR3 Beta (new track) | Branch point: QPR2 Beta 7.1 (CP41.260831.019) | Milestone: March 2027 stable
The first QPR3 Beta brings the most enterprise-significant changes since QPR2 Beta 1, with new APIs, deeper policy engine infrastructure, and 17 new feature flags (14 provisional, all currently false).
Managed user creation - A new @SystemApi method createManagedUser() enables programmatic creation of managed users via CreateManagedUserParams, with async callbacks for success (UserHandle) or failure (ManagedUserCreationException). This is a key building block for multi-user management (MUM) scenarios. Gated by createManagedUserApi (provisionally false).
Scoped certificate installation - installKeyPairWithScope() adds an explicit scope parameter to certificate installation, and a new installKeyPair overload takes Collection<Certificate> with a scope integer. These complement the scoped certificate APIs (remove, has, generate, grant, revoke) introduced in QPR1/QPR2. Gated by enableDeviceCertificatesPhase2 (provisionally false).
The Engine V1-to-V2 migration trigger (triggerDevicePolicyEngineMigration) has been removed entirely, confirming V2 is now the sole engine path. Seven new policyStreamlining* flags gate additional policies being migrated to the typed engine model:
CameraAccessPolicyHandler), complex-type policies, long support message, nearby app streaming, nearby notification streaming, time zone, Wi-Fi state (with new WifiStatePolicyHandler)The internal transport layer switched from string-based policy IDs to typed PolicyIdentifierTransport objects across all policy setter/getter methods. New engine/Resource and engine/Scope types provide structured device-wide vs per-user targeting.
advancedSecurityLoggingEnabled renamed to advancedSecurityTelemetryEnabled - reflects the broader scope of the security telemetry subsystemsecurityLogStreamingEnabled (provisional) - real-time streaming delivery of security log eventsrequestBugreportForMum (provisional) - bug report collection on multi-user managed devicesforceResetAdbProvisionedDo (provisional) - force-reset of ADB-provisioned device ownerscanAdminGrantSensorsPermissions now takes a user ID (per-user sensor permission granting)canAddPrivateProfile() deprecated - throws UnsupportedOperationException in "Android D" (QPR3); replaced by isUserTypeSupported()ProvisioningPreconditionChecker with delegate patternAll 14 new flags return false - none have graduated yet.