diff options
author | Po-Chien Hsueh <pchsueh@google.com> | 2019-04-01 11:26:18 +0800 |
---|---|---|
committer | Po-Chien Hsueh <pchsueh@google.com> | 2019-04-03 10:29:31 +0800 |
commit | 4167b42f891232882637db2f2a606586770bf215 (patch) | |
tree | 3731abc7af76a612ff6bd1d8b2b90c6c27b379c5 /packages/DynamicSystemInstallationService/src | |
parent | c5b6931f27380bd312b74e98fc01288c2239d36f (diff) |
Use FeatureFlagPersistent to guard DynamicSystem
Check persistent feature flag 'settings_dynamic_system' before
invoking the installation service. User can still use gsi_tool if
the device is unlocked.
Bug: 119647479
Test: Verified with 'adb shell am' and test app.
Change-Id: If2265d877bc7eedf9b7a107bba04d2e95cf1b89a
Diffstat (limited to 'packages/DynamicSystemInstallationService/src')
2 files changed, 24 insertions, 0 deletions
diff --git a/packages/DynamicSystemInstallationService/src/com/android/dynandroid/BootCompletedReceiver.java b/packages/DynamicSystemInstallationService/src/com/android/dynandroid/BootCompletedReceiver.java index 38576ee47283..ea7b378eb607 100644 --- a/packages/DynamicSystemInstallationService/src/com/android/dynandroid/BootCompletedReceiver.java +++ b/packages/DynamicSystemInstallationService/src/com/android/dynandroid/BootCompletedReceiver.java @@ -19,8 +19,10 @@ package com.android.dynsystem; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.os.SystemProperties; import android.os.UserHandle; import android.os.image.DynamicSystemClient; +import android.util.FeatureFlagUtils; import android.util.Log; @@ -35,6 +37,10 @@ public class BootCompletedReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { + if (!featureFlagEnabled()) { + return; + } + String action = intent.getAction(); Log.d(TAG, "Broadcast received: " + action); @@ -47,4 +53,9 @@ public class BootCompletedReceiver extends BroadcastReceiver { context.startServiceAsUser(startServiceIntent, UserHandle.SYSTEM); } } + + private boolean featureFlagEnabled() { + return SystemProperties.getBoolean( + FeatureFlagUtils.PERSIST_PREFIX + FeatureFlagUtils.DYNAMIC_SYSTEM, false); + } } diff --git a/packages/DynamicSystemInstallationService/src/com/android/dynandroid/VerificationActivity.java b/packages/DynamicSystemInstallationService/src/com/android/dynandroid/VerificationActivity.java index 269645d8016b..b1c09381823b 100644 --- a/packages/DynamicSystemInstallationService/src/com/android/dynandroid/VerificationActivity.java +++ b/packages/DynamicSystemInstallationService/src/com/android/dynandroid/VerificationActivity.java @@ -25,8 +25,10 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; +import android.os.SystemProperties; import android.os.UserHandle; import android.os.image.DynamicSystemClient; +import android.util.FeatureFlagUtils; import android.util.Log; @@ -49,6 +51,12 @@ public class VerificationActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (!featureFlagEnabled()) { + Log.w(TAG, FeatureFlagUtils.DYNAMIC_SYSTEM + " not enabled; activity aborted."); + finish(); + return; + } + KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); if (km != null) { @@ -98,6 +106,11 @@ public class VerificationActivity extends Activity { startServiceAsUser(intent, UserHandle.SYSTEM); } + private boolean featureFlagEnabled() { + return SystemProperties.getBoolean( + FeatureFlagUtils.PERSIST_PREFIX + FeatureFlagUtils.DYNAMIC_SYSTEM, false); + } + static boolean isVerified(String url) { return sVerifiedUrl != null && sVerifiedUrl.equals(url); } |