Loading AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> <uses-permission android:name="android.permission.MANAGE_USERS" /> <uses-permission android:name="android.permission.MANAGE_USER_OEM_UNLOCK_STATE" /> <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" /> <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" /> <uses-permission android:name="lineageos.permission.HARDWARE_ABSTRACTION_ACCESS" /> Loading privapp_whitelist_org.lineageos.setupwizard.xml +1 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ <permission name="android.permission.INTERACT_ACROSS_USERS"/> <permission name="android.permission.LOCAL_MAC_ADDRESS"/> <permission name="android.permission.MANAGE_USERS"/> <permission name="android.permission.MANAGE_USER_OEM_UNLOCK_STATE" /> <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/> <permission name="android.permission.SET_TIME"/> <permission name="android.permission.SET_TIME_ZONE"/> Loading src/org/lineageos/setupwizard/SetupWizardApp.java +8 −0 Original line number Diff line number Diff line /* * Copyright (C) 2013 The CyanogenMod Project * Copyright (C) 2017-2021 The LineageOS Project * Copyright (C) 2022 The Calyx Institute * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. Loading @@ -21,6 +22,7 @@ package org.lineageos.setupwizard; import android.app.Application; import android.os.Bundle; import android.os.Handler; import android.service.oemlock.OemLockManager; import android.util.Log; import org.lineageos.setupwizard.util.NetworkMonitor; Loading Loading @@ -97,6 +99,12 @@ public class SetupWizardApp extends Application { SetupWizardUtils.disableComponentsForMissingFeatures(this); SetupWizardUtils.setMobileDataEnabled(this, false); mHandler.postDelayed(mRadioTimeoutRunnable, SetupWizardApp.RADIO_READY_TIMEOUT); // If the bootloader is locked, and OEM unlocking is allowed, turn it off if (SetupWizardUtils.isOwner() && !SetupWizardUtils.isBootloaderUnlocked(this) && SetupWizardUtils.isOemunlockAllowed(this)) { getSystemService(OemLockManager.class).setOemUnlockAllowedByUser(false); } } public boolean isRadioReady() { Loading src/org/lineageos/setupwizard/WelcomeActivity.java +0 −30 Original line number Diff line number Diff line Loading @@ -18,13 +18,10 @@ package org.lineageos.setupwizard; import android.os.Bundle; import android.os.Handler; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import org.lineageos.setupwizard.util.EnableAccessibilityController; import org.lineageos.setupwizard.util.SetupWizardUtils; public class WelcomeActivity extends BaseSetupWizardActivity { Loading @@ -33,9 +30,6 @@ public class WelcomeActivity extends BaseSetupWizardActivity { private View mRootView; private EnableAccessibilityController mEnableAccessibilityController; private int mVolumeUpCount = 0; private Handler mHandler = new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Loading @@ -58,30 +52,6 @@ public class WelcomeActivity extends BaseSetupWizardActivity { startEmergencyDialer(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) { mVolumeUpCount++; if (mVolumeUpCount == 1) { // Schedule a runnable to reset the count after 1 second mHandler.postDelayed(new Runnable() { @Override public void run() { mVolumeUpCount = 0; } }, 1000); // 1 second delay } } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN && mVolumeUpCount == 2) { // If the volume down key is pressed and the volume up count is 2 // Finish the setup wizard and enable the status bar SetupWizardUtils.finishSetupWizard(getApplicationContext()); SetupWizardUtils.enableStatusBar(getApplicationContext()); finish(); } return super.onKeyDown(keyCode, event); } @Override protected int getLayoutResId() { return R.layout.welcome_activity; Loading src/org/lineageos/setupwizard/util/SetupWizardUtils.java +18 −0 Original line number Diff line number Diff line /* * Copyright (C) 2013 The CyanogenMod Project * Copyright (C) 2017 The LineageOS Project * Copyright (C) 2022 The Calyx Institute * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. Loading Loading @@ -49,6 +50,7 @@ import android.os.SystemProperties; import android.os.UserHandle; import android.net.ConnectivityManager; import android.provider.Settings; import android.service.oemlock.OemLockManager; import android.telephony.ServiceState; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; Loading Loading @@ -258,6 +260,22 @@ public class SetupWizardUtils { return PhoneMonitor.getInstance().simMissing(); } public static boolean isBootloaderUnlocked(Context context) { OemLockManager oemLockManager = context.getSystemService(OemLockManager.class); if (oemLockManager != null) { return oemLockManager.isDeviceOemUnlocked(); } return true; // Default to unlocked } public static boolean isOemunlockAllowed(Context context) { OemLockManager oemLockManager = context.getSystemService(OemLockManager.class); if (oemLockManager != null) { return oemLockManager.isOemUnlockAllowed(); } return true; // Default to unlock allowed } public static void disableComponentsForMissingFeatures(Context context) { if (!hasLeanback(context)) { disableComponent(context, BluetoothSetupActivity.class); Loading Loading
AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> <uses-permission android:name="android.permission.MANAGE_USERS" /> <uses-permission android:name="android.permission.MANAGE_USER_OEM_UNLOCK_STATE" /> <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" /> <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" /> <uses-permission android:name="lineageos.permission.HARDWARE_ABSTRACTION_ACCESS" /> Loading
privapp_whitelist_org.lineageos.setupwizard.xml +1 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ <permission name="android.permission.INTERACT_ACROSS_USERS"/> <permission name="android.permission.LOCAL_MAC_ADDRESS"/> <permission name="android.permission.MANAGE_USERS"/> <permission name="android.permission.MANAGE_USER_OEM_UNLOCK_STATE" /> <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/> <permission name="android.permission.SET_TIME"/> <permission name="android.permission.SET_TIME_ZONE"/> Loading
src/org/lineageos/setupwizard/SetupWizardApp.java +8 −0 Original line number Diff line number Diff line /* * Copyright (C) 2013 The CyanogenMod Project * Copyright (C) 2017-2021 The LineageOS Project * Copyright (C) 2022 The Calyx Institute * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. Loading @@ -21,6 +22,7 @@ package org.lineageos.setupwizard; import android.app.Application; import android.os.Bundle; import android.os.Handler; import android.service.oemlock.OemLockManager; import android.util.Log; import org.lineageos.setupwizard.util.NetworkMonitor; Loading Loading @@ -97,6 +99,12 @@ public class SetupWizardApp extends Application { SetupWizardUtils.disableComponentsForMissingFeatures(this); SetupWizardUtils.setMobileDataEnabled(this, false); mHandler.postDelayed(mRadioTimeoutRunnable, SetupWizardApp.RADIO_READY_TIMEOUT); // If the bootloader is locked, and OEM unlocking is allowed, turn it off if (SetupWizardUtils.isOwner() && !SetupWizardUtils.isBootloaderUnlocked(this) && SetupWizardUtils.isOemunlockAllowed(this)) { getSystemService(OemLockManager.class).setOemUnlockAllowedByUser(false); } } public boolean isRadioReady() { Loading
src/org/lineageos/setupwizard/WelcomeActivity.java +0 −30 Original line number Diff line number Diff line Loading @@ -18,13 +18,10 @@ package org.lineageos.setupwizard; import android.os.Bundle; import android.os.Handler; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import org.lineageos.setupwizard.util.EnableAccessibilityController; import org.lineageos.setupwizard.util.SetupWizardUtils; public class WelcomeActivity extends BaseSetupWizardActivity { Loading @@ -33,9 +30,6 @@ public class WelcomeActivity extends BaseSetupWizardActivity { private View mRootView; private EnableAccessibilityController mEnableAccessibilityController; private int mVolumeUpCount = 0; private Handler mHandler = new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Loading @@ -58,30 +52,6 @@ public class WelcomeActivity extends BaseSetupWizardActivity { startEmergencyDialer(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) { mVolumeUpCount++; if (mVolumeUpCount == 1) { // Schedule a runnable to reset the count after 1 second mHandler.postDelayed(new Runnable() { @Override public void run() { mVolumeUpCount = 0; } }, 1000); // 1 second delay } } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN && mVolumeUpCount == 2) { // If the volume down key is pressed and the volume up count is 2 // Finish the setup wizard and enable the status bar SetupWizardUtils.finishSetupWizard(getApplicationContext()); SetupWizardUtils.enableStatusBar(getApplicationContext()); finish(); } return super.onKeyDown(keyCode, event); } @Override protected int getLayoutResId() { return R.layout.welcome_activity; Loading
src/org/lineageos/setupwizard/util/SetupWizardUtils.java +18 −0 Original line number Diff line number Diff line /* * Copyright (C) 2013 The CyanogenMod Project * Copyright (C) 2017 The LineageOS Project * Copyright (C) 2022 The Calyx Institute * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. Loading Loading @@ -49,6 +50,7 @@ import android.os.SystemProperties; import android.os.UserHandle; import android.net.ConnectivityManager; import android.provider.Settings; import android.service.oemlock.OemLockManager; import android.telephony.ServiceState; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; Loading Loading @@ -258,6 +260,22 @@ public class SetupWizardUtils { return PhoneMonitor.getInstance().simMissing(); } public static boolean isBootloaderUnlocked(Context context) { OemLockManager oemLockManager = context.getSystemService(OemLockManager.class); if (oemLockManager != null) { return oemLockManager.isDeviceOemUnlocked(); } return true; // Default to unlocked } public static boolean isOemunlockAllowed(Context context) { OemLockManager oemLockManager = context.getSystemService(OemLockManager.class); if (oemLockManager != null) { return oemLockManager.isOemUnlockAllowed(); } return true; // Default to unlock allowed } public static void disableComponentsForMissingFeatures(Context context) { if (!hasLeanback(context)) { disableComponent(context, BluetoothSetupActivity.class); Loading