Al encender el teléfono, por defecto se le pide a uno que ingrese el PIN de la SIM, que es una buena medida de seguridad, para evitar que "extraños" le causen costos. Ahora lo mismo se aplica al regresar del modo avión: uno tiene que ingresar el PIN SIM nuevamente. Lo que hace que ciertos ahorradores de energía sean inútiles: si una aplicación, por ejemplo, ingresa al modo avión con pérdida de señal (consulte: ¿Qué es el modo de espera de la celda y cómo puedo evitar que se quede sin batería? ), No podría volver al funcionamiento normal sin la interacción del usuario .
Estoy buscando una forma de desactivar esto selectivamente : tener activa la solicitud de PIN al encender el dispositivo, pero no se me solicita el PIN de SIM al regresar del modo avión.
Por favor, no confunda esto con "el bloqueo de teclas": No estoy preguntando por el bloqueo de la pantalla (PIN / patrón / contraseña). Aquí conozco mi camino, ya que hay una API para que las aplicaciones usen (por lo que, por ejemplo, puedo desactivar esto temporalmente con Tasker ).
Sé que esto funciona con dispositivos Samsung, pero preferiblemente quiero una solución independiente del dispositivo que funcione para todos los fabricantes.
Respuestas:
DESCARGO DE RESPONSABILIDAD
SOLUCIÓN ALTERNA
Encontré una solución para el problema que funciona maravillosamente en un Samsung Galaxy S2 con Cyanogenmod 10.2 y Dorimanx Kernel 9.41 instalado. Los pasos necesarios son los siguientes:
Asegúreses de que su dispositivo esté hackeado.
Descargue e instale Xposed Framework Installer .
Cuando Xposed pide raíz en cualquier lugar en el futuro cercano, concédelo .
Abra la aplicación y haga clic en
Framework
-Tab.Haga clic
Install/Update
.Reinicio .
Descargue e instale Jelly Bean 4.x Airplane Mode Helper .
Abra
Xposed Framework Installer
-App nuevamente y seleccioneModules
.Marque (conjunto activo)
Jelly Bean 4.x Airplane Mode Helper
.Reinicio .
Abierto
Jelly Bean 4.x Airplane Mode Helper
.Marcar (activar) Activado .
Reinicio .
¡Eso es! El Modo avión debería funcionar nuevamente como en las versiones anteriores de Android y ya no solicita el PIN de la SIM cuando se apaga. Sin embargo, todavía lo hace al inicio, lo que mantiene su tarjeta SIM algo segura. Configuré un procedimiento de ahorro de batería automatizado con Llama Location Profiles similar al descrito aquí (Thx un montón, Izzy) y funciona perfectamente.
Buena suerte amigos!
fuente
La respuesta se encuentra en la fuente ... parece ser que la propiedad para solicitar el bloqueo de clavija está integrada en
build.prop
odefault.prop
.Eche un vistazo a la referencia que se encuentra en la fuente de TelephonyManager , entre las líneas 735 y 755. Por brevedad,
La clave es la
TelephonyProperties.PROPERTY_SIM_STATE
que se menciona en otra parte , entre las líneas 94 y 98.Después de buscar a través del código fuente aquí en mi máquina, le daré la idea de la frecuencia con la que
getSimState
se llama a este método , observe los nombres de la fuente de Java para saber cómo se integra en Android, no solo en la capa de telefonía sino en otra parte.¿Esos nombres de archivo dan una pista, sí, en la pantalla de bloqueo ...
Teoría
Esto requiere root en este punto, invocando
adb shell
y llamandogetprop
ysetprop
para hacer esto, la única parte es esta, invocandoadb shell getprop
recuperará la información pertinente como se muestra a continuaciónEsta propiedad sutil parece persistir dinámicamente en una tienda de propiedades de respaldo, desde el momento del encendido y se ajusta en consecuencia, en función de la cantidad de cosas, el servicio, y sin mencionar la caída accidental del teléfono que puede sacar la tarjeta SIM de su lector que cambiaría el estado de la tarjeta a " no preparado " o " desconocido ". ( ref: system / core / include / cutils / properties.h y system / core / toolbox / [ getprop | setprop ] .c)
Ahora, en este punto, teóricamente, al invocar setprop antes de bloquear la pantalla, se puede evitar temporalmente, pero, de nuevo, ¡la capa de telefonía podría restablecerla! No he probado eso! Lo que lleva a esto ...
Conclusión
La única forma en que esto se puede desactivar es deshabilitar efectivamente la solicitud de bloqueo de pin en la tarjeta SIM real . Ahí es donde se almacena el indicador de bits "mágico", en el que la capa RIL de la telefonía lo lee a través de la biblioteca patentada de htc / samsung / qualcomm, y eso evitaría la propagación de la persistencia de la propiedad "PIN_REQUIRED" a través de Las capas de Android.
Una posible solución, solo para desarrolladores de Android :)
Esto requeriría piratear y recompilar la fuente. Para el modo avión, al ingresar a ese modo y salir del modo avión, la propiedad podría dividirse en dos, gsm.sim.state puede dejarse como está, pero idear otra propiedad, algo como esto, gsm.sim.state. avión.mode y asigne un valor a lo largo de las líneas de
SIM_STATE_PIN_NOT_REQUIRED
, y modifique la verificación del modo avión, para leer esa propiedad y, si se establece en eso, no muestre el cuadro de diálogo de pin, de lo contrario, como siempre lo hace, solicítelo.fuente
No estoy seguro de que necesite hacer lo que está tratando de hacer.
Podría, en cambio:
Tasker
tareas para activar / desactivar todo lo queAirplane
hace el modo de activación / desactivación .Airplane
modo. Usa tusTasker
tareas.Es posible que tenga que ver si alguna aplicación está habilitada para encender automáticamente una radio de hardware. Observe si una aplicación intenta sincronizar en segundo plano o lo que sea, podrían intentar activar las radios desactivadas. Si es así, desactive la capacidad de esa aplicación para encender automáticamente, por ejemplo, su WiFi. Digo esto porque el
Airplane
modo ciertamente detuvo las conexiones WiFi inesperadas antes, pero ya no, si intentas esta respuesta.También puede configurarlo
Tasker
para que siempre entre enAirplane
modo al apagar. De esa forma verías el PIN Lock en el momento del arranque.fuente