Ketika menghidupkan telepon, seseorang secara default diminta untuk memasukkan SIM-PIN - yang merupakan langkah pengamanan yang baik, untuk mencegah "orang asing" menyebabkan Anda dikenai biaya. Sekarang hal yang sama berlaku ketika kembali dari mode pesawat: kita harus memasukkan SIM-PIN lagi. Yang membuat penghemat energi tertentu tidak berguna: jika suatu aplikasi mis memasuki mode pesawat pada kehilangan sinyal (lihat: Apa yang dimaksud dengan Siaga sel dan bagaimana saya bisa menghindarinya dari memakan baterai saya? ), Itu tidak akan dapat kembali ke operasi normal tanpa interaksi pengguna .
Saya mencari cara untuk menonaktifkan selektif ini: Minta permintaan PIN aktif saat menghidupkan perangkat - tetapi tidak diminta untuk SIM-PIN saat kembali dari mode pesawat.
Jangan tidak bingung ini dengan "Pengaman tombol": Saya tidak bertanya tentang kunci layar (PIN / pola / password). Di sini saya tahu jalan saya, karena ada API untuk aplikasi untuk digunakan (jadi saya bisa mematikan sementara ini dengan Tasker ).
Saya tahu ini bekerja dengan perangkat Samsung - tetapi saya lebih suka menginginkan solusi independen perangkat yang bekerja untuk semua produsen.
Jawaban:
PENOLAKAN
WORKAROUND
Saya menemukan solusi untuk masalah yang bekerja dengan baik pada Samsung Galaxy S2 dengan Cyanogenmod 10.2 dan Dorimanx Kernel 9.41 terinstal. Langkah-langkah yang diperlukan adalah sebagai berikut:
Pastikan perangkat Anda di-root.
Unduh dan instal Xposed Framework Installer .
Ketika Xposed meminta root di mana saja dalam waktu dekat, berikan saja .
Buka aplikasi dan klik
Framework
-Tab.Klik
Install/Update
.Mulai ulang .
Unduh dan pasang Jelly Bean 4.x Airplane Mode Helper .
Buka
Xposed Framework Installer
-App lagi dan pilihModules
.Centang (aktifkan)
Jelly Bean 4.x Airplane Mode Helper
.Mulai ulang .
Terbuka
Jelly Bean 4.x Airplane Mode Helper
.Centang (aktifkan) Diaktifkan .
Mulai ulang .
Itu dia! Mode Pesawat harus bekerja lagi seperti pada versi Android sebelumnya dan tidak lagi meminta SIM-PIN saat dimatikan. Meskipun demikian masih tetap pada saat startup, sehingga menjaga SIM-Card Anda agak aman. Saya mengatur prosedur penghematan baterai otomatis dengan Llama Location Profiles mirip dengan yang dijelaskan di sini (Thx a bunch, Izzy) dan berfungsi dengan sempurna.
Semoga beruntung, teman-teman!
sumber
Jawabannya ada di sumber ... sepertinya properti yang meminta pin-lock dibangun ke dalam
build.prop
ataudefault.prop
.Lihatlah referensi yang ditemukan dalam sumber TelephonyManager , antara baris 735 dan 755. Untuk singkatnya,
Kuncinya adalah
TelephonyProperties.PROPERTY_SIM_STATE
yang dirujuk di tempat lain , antara baris 94 dan 98.Setelah mencari melalui kode sumber di sini di mesin saya, saya akan memberi Anda gagasan tentang seberapa sering metode
getSimState
ini disebut, perhatikan nama-nama sumber java untuk mengetahui bagaimana terintegrasi dalam Android, tidak hanya di lapisan Telephony tetapi di tempat lain.Apakah nama-nama file itu memberi petunjuk, ya, di layar kunci ...
Teori
Ini membutuhkan root pada titik ini, dengan memanggil
adb shell
dan memanggilgetprop
dansetprop
untuk melakukan ini, satu-satunya bagian adalah ini, dengan memohonadb shell getprop
akan mendapatkan kembali informasi terkait seperti yang ditunjukkan di bawah iniProperti halus ini tampaknya secara dinamis bertahan menjadi toko properti pendukung, dari saat powering up dan disesuaikan sesuai, berdasarkan sejumlah hal, layanan, dan belum lagi secara tidak sengaja menjatuhkan handset yang dapat membuat kartu SIM keluar. pembacanya yang akan mengubah status kartu menjadi " tidak siap " atau " tidak dikenal ". ( ref: system / core / include / cutils / properties.h dan system / core / toolbox / [ getprop | setprop ] .c)
Sekarang pada titik ini, secara teoritis, dengan mengaktifkan setprop sebelum mengunci layar, itu bisa diatasi sementara, tapi sekali lagi, itu bisa dipasang kembali oleh lapisan telepon! Belum pernah mencobanya! Yang mengarah ke ini ...
Kesimpulan
Satu- satunya cara ini dapat dimatikan, adalah untuk secara efektif menonaktifkan permintaan pin-lock pada kartu sim yang sebenarnya . Di situlah bit-flag "magic" disimpan di situ, di mana layer RIL telepon membacanya melalui perpustakaan htc / samsung / qualcomm yang dipatenkan, dan itu akan mencegah propragasi dari tetap adanya properti "PIN_REQUIRED" melalui lapisan-lapisan Android.
Kemungkinan solusi, hanya untuk Pengembang Android :)
Ini membutuhkan peretasan dan kompilasi ulang sumber. Untuk mode pesawat, ketika memasuki mode itu dan meninggalkan mode pesawat, properti dapat dipecah menjadi dua, gsm.sim.state dapat dibiarkan apa adanya, tetapi menyusun properti lain, seperti ini, gsm.sim.state. airplane.mode dan tetapkan nilai di sepanjang baris
SIM_STATE_PIN_NOT_REQUIRED
, dan modifikasi pemeriksaan mode pesawat, untuk membaca properti itu dan jika diatur, jangan tampilkan kotak dialog pin, jika tidak seperti biasanya, minta.sumber
Saya tidak yakin Anda perlu melakukan apa yang ingin Anda lakukan.
Anda mungkin, sebagai gantinya:
Tasker
tugas untuk mengaktifkan / menonaktifkan semua yangAirplane
dilakukan oleh mode yang mengaktifkan / menonaktifkan .Airplane
mode Anda . GunakanTasker
tugas Anda .Anda mungkin harus melihat apakah ada aplikasi yang diaktifkan untuk secara otomatis menghidupkan radio perangkat keras. Tonton untuk melihat apakah suatu aplikasi mencoba menyinkronkan latar belakang atau apa pun, mereka mungkin mencoba mengaktifkan radio yang dinonaktifkan. Jika demikian, nonaktifkan kemampuan aplikasi itu untuk secara otomatis mengaktifkan misalnya WiFi Anda. Saya mengatakan ini karena
Airplane
mode pasti menghentikan koneksi WiFi yang tidak terduga sebelumnya tetapi tidak lagi, jika Anda mencoba jawaban ini.Anda juga dapat mengatur
Tasker
untuk selalu masuk keAirplane
mode saat shutdown. Dengan begitu Anda akan melihat Kunci PIN saat boot.sumber