Lazy initialize CertificateTransparencyDownloader and DataStore

To prevent Post Boot unlock regressions.

Flag: android.security.certificate_transparency_configuration
Bug: 383437444
Test: atest NetworkSecurityUnitTests
Change-Id: I9da001863998aba7cdf962275d8611e32e8efa84
This commit is contained in:
Sandro Montanari 2024-12-17 12:00:25 +00:00
commit ff3a006338
2 changed files with 8 additions and 4 deletions

View file

@ -39,6 +39,8 @@ public class CertificateTransparencyJob extends BroadcastReceiver {
private final CertificateTransparencyDownloader mCertificateTransparencyDownloader;
private final AlarmManager mAlarmManager;
private boolean mDependenciesReady = false;
/** Creates a new {@link CertificateTransparencyJob} object. */
public CertificateTransparencyJob(
Context context,
@ -51,9 +53,6 @@ public class CertificateTransparencyJob extends BroadcastReceiver {
}
void initialize() {
mDataStore.load();
mCertificateTransparencyDownloader.initialize();
mContext.registerReceiver(
this, new IntentFilter(ACTION_JOB_START), Context.RECEIVER_EXPORTED);
mAlarmManager.setInexactRepeating(
@ -77,6 +76,11 @@ public class CertificateTransparencyJob extends BroadcastReceiver {
if (Config.DEBUG) {
Log.d(TAG, "Starting CT daily job.");
}
if (!mDependenciesReady) {
mDataStore.load();
mCertificateTransparencyDownloader.initialize();
mDependenciesReady = true;
}
mDataStore.setProperty(Config.CONTENT_URL, Config.URL_LOG_LIST);
mDataStore.setProperty(Config.METADATA_URL, Config.URL_SIGNATURE);

View file

@ -43,7 +43,7 @@ public class CertificateTransparencyService extends ICertificateTransparencyMana
return DeviceConfig.getBoolean(
Config.NAMESPACE_NETWORK_SECURITY,
Config.FLAG_SERVICE_ENABLED,
/* defaultValue= */ false)
/* defaultValue= */ true)
&& certificateTransparencyService()
&& certificateTransparencyConfiguration();
}