Lors de la mise sous tension du téléphone, il est demandé par défaut d'entrer le code PIN SIM - ce qui est une bonne mesure de sécurité, pour éviter que des «étrangers» ne vous causent des frais. Maintenant, la même chose s'applique au retour du mode avion: il faut saisir à nouveau le SIM-PIN. Ce qui rend certains économiseurs d'énergie inutiles: si une application passe par exemple en mode avion en cas de perte de signal (voir: Qu'est-ce que la veille cellulaire et comment puis-je l'empêcher de manger ma batterie? ), Elle ne pourrait pas revenir à un fonctionnement normal sans intervention de l'utilisateur .
Je cherche un moyen de désactiver cela de manière sélective : avoir la demande de code PIN active lors de la mise sous tension de l'appareil - mais ne pas demander le code PIN SIM lors du retour du mode avion.
Veuillez ne pas confondre cela avec "keyguard": je ne pose pas de question sur le verrouillage de l'écran (PIN / motif / mot de passe). Ici, je connais mon chemin, car il existe une API pour les applications à utiliser (donc je peux par exemple désactiver temporairement cela avec Tasker ).
Je sais que cela fonctionne avec les appareils Samsung - mais je souhaite de préférence une solution indépendante de l'appareil qui fonctionne pour tous les fabricants.
Réponses:
AVERTISSEMENT
SOLUTION DE CONTOURNEMENT
J'ai trouvé une solution de contournement pour le problème qui fonctionne à merveille sur un Samsung Galaxy S2 avec Cyanogenmod 10.2 et Dorimanx Kernel 9.41 installés. Les étapes nécessaires sont les suivantes:
Assurez-vous que votre appareil est enraciné.
Téléchargez et installez Xposed Framework Installer .
Lorsque Xposed demande la racine n'importe où dans un avenir proche, accordez-la .
Ouvrez l'application et cliquez sur
Framework
-Tab.Cliquez
Install/Update
.Redémarrez .
Téléchargez et installez Jelly Bean 4.x Airplane Mode Helper .
Ouvrez à
Xposed Framework Installer
nouveau -App et sélectionnezModules
.Cochez (définir actif)
Jelly Bean 4.x Airplane Mode Helper
.Redémarrez .
Ouvrez
Jelly Bean 4.x Airplane Mode Helper
.Cochez (définir actif) activé .
Redémarrez .
C'est ça! Mode avion devrait fonctionner à nouveau comme dans les versions Android précédentes et ne pas demander SIM-PIN plus longtemps lorsqu'il est désactivé. Il le fait toujours au démarrage, gardant ainsi votre carte SIM quelque peu en sécurité. J'ai mis en place une procédure d'économie de batterie automatisée avec des profils d'emplacement de lamas similaires à celui décrit ici (Thx a bunch, Izzy) et cela fonctionne parfaitement.
Bonne chance, les amis!
la source
La réponse se trouve dans la source ... il semble que la propriété de demander le verrouillage des broches soit intégrée à
build.prop
oudefault.prop
.Jetez un œil à la référence trouvée dans la source TelephonyManager , entre les lignes 735 et 755. Par souci de concision,
La clé est celle
TelephonyProperties.PROPERTY_SIM_STATE
qui est référencée ailleurs , entre les lignes 94 et 98.Après avoir recherché le code source ici sur ma machine, je vais vous donner une idée de la fréquence à laquelle cette méthode
getSimState
est appelée, notez les noms de la source java pour savoir comment elle est intégrée dans Android, pas seulement dans la couche Téléphonie mais autre part.Est-ce que ces noms de fichiers donnent un indice, yup, dans l'écran de verrouillage ...
Théorie
Cela nécessite root à ce stade, en
adb shell
appelant et en appelantgetprop
etsetprop
pour ce faire, la seule partie est la suivante, en invoquantadb shell getprop
récupérera les informations pertinentes comme indiqué ci-dessousCette propriété subtile semble persister dynamiquement dans un magasin de propriétés de support, à partir du moment de la mise sous tension et est ajustée en conséquence, en fonction du nombre de choses, du service, et sans parler de la chute accidentelle du combiné qui peut faire tomber la carte SIM de son lecteur qui changerait l'état de la carte en " non prêt " ou " inconnu ". ( réf: system / core / include / cutils / properties.h et system / core / toolbox / [ getprop | setprop ] .c )
Maintenant, à ce stade, théoriquement, en invoquant setprop avant de verrouiller l'écran, il pourrait être contourné temporairement, mais là encore, cela pourrait être réinitialisé par la couche de téléphonie! Je n'ai pas essayé ça! Ce qui mène à cela ...
Conclusion
La seule façon de désactiver cela est de désactiver efficacement la demande de verrouillage des broches sur la carte SIM réelle . C'est là que le bit-flag "magique" est stocké sur celui-ci, dans lequel la couche RIL de la téléphonie le lit via la bibliothèque propriétaire de htc / samsung / qualcomm, et cela empêcherait la propagation de la persistance de la propriété "PIN_REQUIRED" jusqu'à les couches d'Android.
Une solution de contournement possible, pour les développeurs Android uniquement :)
Cela nécessiterait le piratage et la recompilation de la source. Pour le mode avion, lorsque vous entrez dans ce mode et quittez le mode avion, la propriété peut être divisée en deux, gsm.sim.state peut être laissé tel quel , mais créez une autre propriété, quelque chose comme ceci, gsm.sim.state. Avion.mode et attribuez une valeur dans le sens de
SIM_STATE_PIN_NOT_REQUIRED
, et modifiez la vérification du mode avion, pour lire cette propriété et si elle est définie sur celle-ci, n'affichez pas la boîte de dialogue de broche, sinon comme d'habitude, invitez-la.la source
Je ne suis pas sûr que vous ayez besoin de faire ce que vous essayez de faire.
Vous pourriez plutôt:
Tasker
tâches pour activer / désactiver tout ce queAirplane
fait le mode d' activation / désactivation .Airplane
mode. Utilisez vosTasker
tâches.Vous devrez peut-être voir si des applications sont activées pour activer automatiquement une radio matérielle. Regardez pour voir si une application essaie de se synchroniser en arrière-plan ou autre, elle peut essayer d'activer les radios désactivées. Si c'est le cas, désactivez la capacité de cette application à allumer automatiquement votre WiFi par exemple. Je dis cela parce que le
Airplane
mode a certainement arrêté les connexions WiFi inattendues avant, mais plus maintenant, si vous essayez cette réponse.Vous pouvez également configurer
Tasker
pour toujours passer enAirplane
mode à l'arrêt. De cette façon, vous verriez le PIN Lock au démarrage.la source