summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-10-23 01:07:33 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-10-23 01:07:33 +0000
commitfcf1951b381497c07bfac48b7494bb7edaf92ce8 (patch)
treeb0a8863864dc4052d14f1678b4eb3978fc587f61
parentb38f9488c1ca4a0dc5864885437074ab8daf25f9 (diff)
parent8d66f0da382ff60741fa436365fce3a95fac90e4 (diff)
downloadProvision-android12L-d2-s1-release.tar.gz
Change-Id: I262c19078422f6afedbd5ecd18bf7b02acdc32e7
-rw-r--r--src/com/android/car/provision/DefaultActivity.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/com/android/car/provision/DefaultActivity.java b/src/com/android/car/provision/DefaultActivity.java
index 96e0045..b7cd163 100644
--- a/src/com/android/car/provision/DefaultActivity.java
+++ b/src/com/android/car/provision/DefaultActivity.java
@@ -42,6 +42,7 @@ import android.content.IntentFilter;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
+import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
@@ -73,6 +74,22 @@ import java.util.List;
* <li>Add option to setup managed-provisioning mode.
* <li>Sets car-specific properties.
* </ul>
+ *
+ * <p>By default, it doesn't show the UI, unless the {@code persist.dev.car_provision.show_ui}
+ * property is set to {@code true}. For example, you can change it by running something like:
+ <pre><code>
+ adb root
+ adb shell setprop persist.dev.car_provision.show_ui true && \
+ adb shell pm enable --user cur com.android.car.provision/.DefaultActivity &&\
+ adb shell settings put secure --user cur user_setup_complete 0 && \
+ adb shell settings put secure --user 0 user_setup_complete 0 &&\
+ adb shell settings put global device_provisioned 0 &&\
+ adb shell rm -f /data/system/device_policies_version &&\
+ adb shell rm -f /data/system/device_policies.xml &&\
+ adb shell rm -f /data/system/device_owner_2.xml ;\
+ adb shell rm -f /data/system/users/`adb shell am get-current-user`/profile_owner.xml
+ adb shell stop && adb shell start
+ <code></pre>
*/
public final class DefaultActivity extends Activity {
@@ -102,6 +119,8 @@ public final class DefaultActivity extends Activity {
+ ".DeviceAdminReceiver";
private static final String LOCAL_TEST_DPC_NAME = "TestDPC (local only)";
+ private static final String SHOW_UI_SYSTEM_PROPERTY = "persist.dev.car_provision.show_ui";
+
static {
DpcInfo testDpc = new DpcInfo(TEST_DPC_NAME,
TEST_DPC_PACKAGE,
@@ -151,6 +170,13 @@ public final class DefaultActivity extends Activity {
return;
}
+ if (!showUi()) {
+ Log.w(TAG, "onCreate(): skipping UI because " + SHOW_UI_SYSTEM_PROPERTY
+ + " was not set to true");
+ finishSetup();
+ return;
+ }
+
DevicePolicyManager dpm = getSystemService(DevicePolicyManager.class);
if (dpm.isDeviceManaged()) {
Log.i(TAG, "onCreate(): skipping UI on managed device");
@@ -180,6 +206,16 @@ public final class DefaultActivity extends Activity {
startMonitor();
}
+ private boolean showUi() {
+ boolean result = false;
+ try {
+ result = SystemProperties.getBoolean(SHOW_UI_SYSTEM_PROPERTY, false);
+ } catch (Exception e) {
+ Log.w(TAG, "error getting property " + SHOW_UI_SYSTEM_PROPERTY);
+ }
+ return result;
+ }
+
private void startMonitor() {
Log.d(TAG, "startMonitor()");
registerReceiver(mDrivingStateExitReceiver,