am da0e4483: am aad8d90c: am b4881f79: am 451d8225: am 49187c94: am 53a56ad8: am 447415f4: am 78708503: am 77aa51e5: Make sure that external callers cannot pass in the confirm bypass extra

* commit 'da0e448379ff4bcc778fbbe1f203ec322378244f':
  Make sure that external callers cannot pass in the confirm bypass extra
This commit is contained in:
Amith Yamasani
2013-09-27 11:55:35 -07:00
committed by Android Git Automerger
4 changed files with 20 additions and 4 deletions

View File

@@ -988,7 +988,6 @@
<!-- Second and third-level settings -->
<!-- Lock screen settings -->
<activity android:name="ConfirmLockPattern"/>
@@ -1004,6 +1003,11 @@
</intent-filter>
</activity>
<activity android:name="ChooseLockGeneric$InternalActivity" android:exported="false"
android:label="@string/lockpassword_choose_lock_generic_header"
android:excludeFromRecents="true"
/>
<activity android:name="ChooseLockPattern" android:exported="false"/>
<activity android:name="ChooseLockPassword" android:exported="false"

View File

@@ -49,6 +49,9 @@ public class ChooseLockGeneric extends PreferenceActivity {
return modIntent;
}
public static class InternalActivity extends ChooseLockGeneric {
}
public static class ChooseLockGenericFragment extends SettingsPreferenceFragment {
private static final int MIN_PASSWORD_LENGTH = 4;
private static final String KEY_UNLOCK_BACKUP_INFO = "unlock_backup_info";
@@ -86,7 +89,9 @@ public class ChooseLockGeneric extends PreferenceActivity {
// Defaults to needing to confirm credentials
final boolean confirmCredentials = getActivity().getIntent()
.getBooleanExtra(CONFIRM_CREDENTIALS, true);
mPasswordConfirmed = !confirmCredentials;
if (getActivity() instanceof ChooseLockGeneric.InternalActivity) {
mPasswordConfirmed = !confirmCredentials;
}
if (savedInstanceState != null) {
mPasswordConfirmed = savedInstanceState.getBoolean(PASSWORD_CONFIRMED);
@@ -325,7 +330,8 @@ public class ChooseLockGeneric extends PreferenceActivity {
}
private Intent getBiometricSensorIntent() {
Intent fallBackIntent = new Intent().setClass(getActivity(), ChooseLockGeneric.class);
Intent fallBackIntent = new Intent().setClass(getActivity(),
ChooseLockGeneric.InternalActivity.class);
fallBackIntent.putExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_WEAK_FALLBACK, true);
fallBackIntent.putExtra(CONFIRM_CREDENTIALS, false);
fallBackIntent.putExtra(EXTRA_SHOW_FRAGMENT_TITLE,

View File

@@ -154,6 +154,9 @@ public class ChooseLockPassword extends PreferenceActivity {
super.onCreate(savedInstanceState);
mLockPatternUtils = new LockPatternUtils(getActivity());
Intent intent = getActivity().getIntent();
if (!(getActivity() instanceof ChooseLockPassword)) {
throw new SecurityException("Fragment contained in wrong activity");
}
mRequestedQuality = Math.max(intent.getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY,
mRequestedQuality), mLockPatternUtils.getRequestedPasswordQuality());
mPasswordMinLength = Math.max(

View File

@@ -301,6 +301,9 @@ public class ChooseLockPattern extends PreferenceActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity());
if (!(getActivity() instanceof ChooseLockPattern)) {
throw new SecurityException("Fragment contained in wrong activity");
}
}
@Override
@@ -331,7 +334,7 @@ public class ChooseLockPattern extends PreferenceActivity {
topLayout.setDefaultTouchRecepient(mLockPatternView);
final boolean confirmCredentials = getActivity().getIntent()
.getBooleanExtra("confirm_credentials", false);
.getBooleanExtra("confirm_credentials", true);
if (savedInstanceState == null) {
if (confirmCredentials) {