tree e22b64e5d298131b9179cbf8514b5f42089be131
parent 82134f76936be049cc4b23a894ba7decc1d59952
author Jeff Brown <jeffbrown@google.com> 1339642849 -0700
committer Jeff Brown <jeffbrown@google.com> 1339642849 -0700

When SIM absent, keyguard should be considered non-secure.

Previously, it was observed that while a SIM is being initialized
by the hardware the SIM may briefly be reported as being in an
ABSENT state before eventually transitioning into a READY,
PIN_REQUIRED, PUK_REQUIRED, PERM_DISABLE state.

While booting up, the phone might observe that the SIM is ABSENT and
therefore bypass the keyguard going straight to the home screen.
Later when the SIM was fully initialized, the phone would revert back
to the lock screen in order to ask for the PIN.  The user might
turn on the phone, slide out the keyboard (bypassing the keyguard),
then a few moments later the keyguard would pop up prompting for a PIN.

The user experience could be somewhat jarring, so the keyguard was
changed to handle the transient case differently.  While the SIM
was ABSENT, the keyguard would not be automatically bypassed
by opening the keyboard slider.  Thus the user would be forced to
manually swipe away the keyguard before interacting with the
device.  This would help to cover the time it would take before
the SIM was fully initialized and the keyguard could determine
whether the user would need to be prompted for a SIM PIN or PUK.

To prevent the keyguard from being bypassed automatically, we
hacked up the keyguard so that it would be considered to be in a
secure state while the SIM was ABSENT.  It's worth noting that
considering the keyguard to be secure did not confer any
additional security properties to the system whatsoever.
If the user did not have a pattern lock, PIN or password set then
all it would take to access the phone is to swipe away the keyguard.

This old hack was all about devices with slide-out keyboards,
but it had some side-effects.  Namely, it assumed that the SIM
ABSENT state was transient.  But what about phones that are
being used without a SIM at all?

Considering the keyguard to be secure when the SIM is ABSENT
breaks stuff.  In fact, it turns out that making the keyguard
secure isn't really what we want at all.  What we want is a way
to prevent the keyguard from being automatically bypassed on
boot when the user opens up a sliding keyboard.  But we don't
have those anymore... and in the worst case it was just a little
janky... and what's more, nowadays the keyguard provides useful
features so maybe we shouldn't bypass it anyhow... oh and actually,
I deleted the code that used to bypass the keyguard when the
keyboard slider was opened... so this does nothing useful at all.

Right...

This change removes the old hack thereby ensuring that non-secure
keyguard features like launching the Camera or Assistant or
application features like hands-free voice search will work
correctly on phones without a SIM.

Bug: 6022658
Change-Id: I019d1d8c65c55cbf4d10d4928e1d2b2b242162a6
