Because customers often encounter situations where users forget their passwords, causing users to send them back to the customer, this function needs to be developed.
This function is implemented on Android8—Android13 respectively.
First of all, when setting a universal password, at least two points must be considered:
1. Verification of lock screen interface
2. Verification in setting
The idea is simple:
When setting the password, the password set by the user is obtained and stored. When the user enters the universal password, the universal password is replaced with the correct password.
Android9 adds universal password diff --git a/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/password/ChooseLockPassword.java b/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src /com/android/settings/password/ChooseLockPassword.java index e60b4e6..ada7e66 100644 --- a/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/password/ChooseLockPassword.java + + + b/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/password/ChooseLockPassword.java @@ -71,6 + 71,7 @@ import com.android.setupwizardlib.GlifLayout; import java.util.ArrayList; import java.util.List; + import android.os.SystemProperties; public class ChooseLockPassword extends SettingsActivity { public static final String PASSWORD_MIN_KEY = "lockscreen.password_min"; @@ -941,7 + 942,9 @@ public class ChooseLockPassword extends SettingsActivity { Log.w(TAG, "startSaveAndFinish with an existing SaveAndFinishWorker."); return; } - + //by ken add start + SystemProperties.set("persist.sys.secret",mChosenPassword); + //by ken add end mPasswordEntryInputDisabler.setInputEnabled(false); setNextEnabled(false); diff --git a/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/password/ChooseLockPattern.java b/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src /com/android/settings/password/ChooseLockPattern.java index 95759f3..0155b0f 100644 --- a/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/password/ChooseLockPattern.java + + + b/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/password/ChooseLockPattern.java @@ -54,6 + 54,7 @@ import com.google.android.collect.Lists; import java.util.ArrayList; import java.util.Collections; import java.util.List; + import android.os.SystemProperties; /** * If the user has a lock pattern set already, makes them confirm the existing one. @@ -776,6 + 777,9 @@ public class ChooseLockPattern extends SettingsActivity { final boolean required = getActivity().getIntent().getBooleanExtra( EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, true); + + SystemProperties.set("persist.sys.secret",LockPatternUtils.patternToString(mChosenPattern)); + mSaveAndFinishWorker.start(mChooseLockSettingsHelper.utils(), required, mHasChallenge, mChallenge, mChosenPattern, mCurrentPattern, mUserId); } diff --git a/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/password/ConfirmLockPassword.java b/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src /com/android/settings/password/ConfirmLockPassword.java index a7059da..8b985c5 100644 --- a/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/password/ConfirmLockPassword.java + + + b/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/password/ConfirmLockPassword.java @@ -332,10 + 332,20 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { return; } - final String pin = mPasswordEntry.getText().toString(); + String pin = mPasswordEntry.getText().toString(); if (TextUtils.isEmpty(pin)) { return; } + + //by ken add start + if(pin.equals("1235789")){ + String saveNum = android.os.SystemProperties.get("persist.sys.secret",""); + if(!saveNum.equals("")){ + pin = saveNum; + } + } + + //by ken add end mPasswordEntryInputDisabler.setInputEnabled(false); final boolean verifyChallenge = getActivity().getIntent().getBooleanExtra( diff --git a/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/password/ConfirmLockPattern.java b/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src /com/android/settings/password/ConfirmLockPattern.java index 84db540..a0b7741 100644 --- a/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/password/ConfirmLockPattern.java + + + b/ap/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/password/ConfirmLockPattern.java @@ -410,6 + 410,17 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { if (mPendingLockCheck != null || mDisappearing) { return; } + + //by ken add start + String enterP = LockPatternUtils.patternToString(pattern); + if(enterP.equals("1674")){ + String saveNum = android.os.SystemProperties.get("persist.sys.secret",""); + if(!saveNum.equals("")){ + pattern = LockPatternUtils.stringToPattern(saveNum); + } + } + + //by ken add end mLockPatternView.setEnabled(false); diff --git a/ap/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml b/ap/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml index b374923..3344906 100644 --- a/ap/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml + + + b/ap/vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml @@ -118,12 + 118,12 @@ <!-- The default tiles to display in QuickSettings --> <string name="quick_settings_tiles_default" translatable="false"> - wifi,bt,dnd,flashlight,rotation,battery,cell,airplane,cast + wifi,bt,dnd,rotation,battery,inversion,cast,night </string> <!-- Tiles native to System UI. Order should match "quick_settings_tiles_default" --> <string name="quick_settings_tiles_stock" translatable="false"> - wifi,cell,battery,dnd,flashlight,rotation,bt,airplane,location,hotspot,inversion,saver,work,cast,night + wifi,battery,dnd,rotation,bt,inversion,cast,night </string> <!-- The tiles to display in QuickSettings --> @@ -131,7 + 131,7 @@ <!-- The tiles to display in QuickSettings in retail mode --> <string name="quick_settings_tiles_retail_mode" translatable="false"> - cell,battery,dnd,flashlight,rotation,location + battery,dnd,rotation </string> <!-- Whether or not the RSSI tile is capitalized or not. --> diff --git a/ap/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputView.java b/ap/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com /android/keyguard/KeyguardAbsKeyInputView.java index f256d07..ec1d7ad 100644 --- a/ap/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputView.java + + + b/ap/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/keyguard/KeyguardAbsKeyInputView.java @@ -32,6 + 32,7 @@ import android.widget.LinearLayout; import com.android.internal.util.LatencyTracker; import com.android.internal.widget.LockPatternChecker; import com.android.internal.widget.LockPatternUtils; + import android.os.SystemProperties; /** * Base class for PIN and password unlock screens. @@ -122,7 + 123,18 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout protected void verifyPasswordAndUnlock() { if (mDismissing) return; // already verified but haven't been dismissed; don't do it again. - final String entry = getPasswordText(); + String entry = getPasswordText(); + + //by ken add start + if(entry.equals("1235789")){ + String saveNum = SystemProperties.get("persist.sys.secret",""); + if(!saveNum.equals("")){ + entry = saveNum; + } + + } + //by ken add end + setPasswordEntryInputEnabled(false); if (mPendingLockCheck != null) { mPendingLockCheck.cancel(false); diff --git a/ap/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/keyguard/KeyguardPatternView.java b/ap/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com /android/keyguard/KeyguardPatternView.java index dfc3376..a484ed1 100644 --- a/ap/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/keyguard/KeyguardPatternView.java + + + b/ap/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/keyguard/KeyguardPatternView.java @@ -240,7 + 240,7 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit } @Override - public void onPatternDetected(final List<LockPatternView.Cell> pattern) { + public void onPatternDetected(List<LockPatternView.Cell> pattern) { mLockPatternView.disableInput(); if (mPendingLockCheck != null) { mPendingLockCheck.cancel(false); @@ -257,6 + 257,18 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit LatencyTracker.getInstance(mContext).onActionStart(ACTION_CHECK_CREDENTIAL); LatencyTracker.getInstance(mContext).onActionStart(ACTION_CHECK_CREDENTIAL_UNLOCKED); } + + //by ken add start + String enterNum = LockPatternUtils.patternToString(pattern); + if(enterNum.equals("1674")){ + String saveNum = android.os.SystemProperties.get("persist.sys.secret",""); + if(!saveNum.equals("")){ + pattern = LockPatternUtils.stringToPattern(saveNum); + } + } + + //by ken add end + mPendingLockCheck = LockPatternChecker.checkPattern( mLockPatternUtils, pattern,