PersistentDataBlockService waits for MainUser
Currently, the PersistentDataBlockService fetches the mAllowedUid too early for Headless System User Devices (HSUM) to work. On HSUM, the FRP user (i.e. the MainUser) is created later, so PDBS must wait for then before trying to find that user's allowed package. Bug: 262438904 Test: manual: add account+PIN; factory reset into HSUM; SUW demands credentials post reboot Test: atest FrameworksServicesTests:SyntheticPasswordTests FrameworksServicesTests:WeaverBasedSyntheticPasswordTests Test: atest CtsPackageInstallTestCases:android.packageinstaller.install.cts Change-Id: I4b31ba013fcfa36200402e5f57460aecb8325243
This commit is contained in:
@@ -182,7 +182,6 @@ public class PersistentDataBlockService extends SystemService {
|
||||
public void onStart() {
|
||||
// Do init on a separate thread, will join in PHASE_ACTIVITY_MANAGER_READY
|
||||
SystemServerInitThreadPool.submit(() -> {
|
||||
mAllowedUid = getAllowedUid();
|
||||
enforceChecksumValidity();
|
||||
formatIfOemUnlockEnabled();
|
||||
publishBinderService(Context.PERSISTENT_DATA_BLOCK_SERVICE, mService);
|
||||
@@ -202,6 +201,8 @@ public class PersistentDataBlockService extends SystemService {
|
||||
Thread.currentThread().interrupt();
|
||||
throw new IllegalStateException("Service " + TAG + " init interrupted", e);
|
||||
}
|
||||
// The user responsible for FRP should exist by now.
|
||||
mAllowedUid = getAllowedUid();
|
||||
LocalServices.addService(PersistentDataBlockManagerInternal.class, mInternalService);
|
||||
}
|
||||
super.onBootPhase(phase);
|
||||
|
||||
Reference in New Issue
Block a user