Android mengabaikan ketikan kelulusan VPN? Semak tindihan dahulu
Butang persetujuan yang tidak menerima ketikan biasanya halangan sentuhan setempat, bukan kerosakan pelayan atau akaun. Buang tindihan, kekalkan perlindungan.
Anda mengetik butang kelulusan VPN dan dialog tidak bertindak balas. Kesimpulan semula jadi ialah aplikasi VPN atau pelayan rosak, jadi orang menetapkan semula kata laluan, menukar DNS atau memasang semula klien. Dalam kebiasaan, tiada satu pun daripada itu menyentuh kerosakan, kerana Android membuang sentuhan yang datang melalui halangan, dan skrin kelulusan VPN memang jenis gesaan persetujuan sensitif yang mendapat perlindungan itu. Ketikan itu tidak pernah sampai ke butang.
Apa yang sebenarnya ditolak oleh perlindungan
Android melindungi interaksi sensitif daripada tapjacking, apabila tetingkap lain duduk di atas dialog dan sama ada mencuri ketikan atau menjadikannya samar. Sesuatu paparan menyertai dengan View.setFilterTouchesWhenObscured, dan peristiwa tiba membawa MotionEvent.FLAG_WINDOW_IS_OBSCURED apabila tetingkap lain ditandakan sebagai menyekat sebahagian atau sepenuhnya. Apabila itu berlaku, peristiwa digugurkan dan bukan dihantar ke tempat yang salah. Android 12 (API 31) melanjutkan perlindungan yang sama dengan penyekatan sentuhan tidak dipercayai dalam permukaan persetujuan sistem, sebab itulah dialog kelulusan boleh menolak ketikan daripada tindihan yang masih diterima oleh aplikasi lain.
Tiga perkara biasa menghasilkan halangan: aplikasi yang memegang kebenaran papar-di-atas-aplikasi-lain, perkhidmatan kebolehcapaian yang melukis kandungan, dan widget terapung daripada perakam skrin atau alat penapis. Sesetengah ciri paparan vendor menambah lapisan sendiri juga, sebab itulah dialog yang sama boleh berkelakuan berbeza pada dua telefon dengan versi Android yang sama. Tetingkap yang menyekat sebahagian menetapkan FLAG_WINDOW_IS_PARTIALLY_OBSCURED, dan sentuhan digugurkan sebelum butang melihatnya. Ini sifat skrin, bukan rangkaian. Tiada apa-apa dihantar ke pelayan VPN pada saat ketikan itu digugurkan, jadi tiada perubahan di pihak pelayan boleh mempengaruhi hasilnya.
Bezakan ketikan mati daripada sambungan yang gagal
Perbezaan itu ialah keseluruhan diagnosis dan ia mengambil sepuluh saat. Jika ketikan diabaikan dan dialog kekal sama, halangan itu setempat. Jika dialog tertutup dan ralat muncul selepas itu, persetujuan telah diterima dan anda telah beralih ke peringkat lain yang memerlukan maklumat peristiwa aplikasi VPN sendiri.
Anda boleh mengesahkan bacaan setempat dengan menyemak sama ada aplikasi yang meminta itu mencuba sambungan. Klien yang tidak pernah merekod percubaan jabat tangan semasa dialog persetujuan di skrin belum sampai ke rangkaian.
adb shell cmd appops get com.example.vpn SYSTEM_ALERT_WINDOW
adb shell settings get secure enabled_accessibility_servicesSenaraikan apa yang memegang kebenaran tindihan dan perkhidmatan kebolehcapaian mana yang diaktifkan, kemudian padankan dengan apa yang sedang berjalan. Jangan lumpuhkan perlindungan platform itu sendiri; iaitu perkara yang menghalang tetingkap tersembunyi daripada menjawab gesaan persetujuan bagi pihak anda.
Buang halangan, kemudian cuba semula aliran biasa
Kenal pasti aplikasi yang meminta kelulusan VPN dahulu, supaya anda tahu persetujuan yang anda berikan. Kemudian hentikan tindihan tertentu melalui tetapan sendiri dan bukan dengan membatalkan kebenaran luas yang mungkin anda perlukan kemudian. Penapis skrin biasanya mempunyai suis dalam aplikasinya; widget terapung mempunyai kawalan tutup; mod paparan vendor mempunyai suis dalam Tetapan Paparan.
Kembali ke aplikasi VPN selepas itu dan minta kelulusan sekali lagi, supaya dialog dicipta semula. Jika ketikan kini berfungsi, laraskan tingkah laku keserasian tindihan atau biarkan ia dimatikan semasa anda menyambung, dan kekalkan perlindungan sentuhan dihidupkan.
Jika anda tidak dapat menentukan tetingkap mana yang bertanggungjawab, buang satu demi satu dan cuba semula dialog persetujuan selepas setiap perubahan. Bar kawalan perakam atau pintasan terapung biasanya punca, dan yang anda buang sejurus sebelum ia berjaya ialah jawapannya.
Pulihkan apa-apa yang tidak berkaitan yang anda matikan sepanjang jalan. Penapis skrin atau mod malam bukan musuh; tetingkap tertentu yang bertindih dengan dialog itulah musuh.
Apa yang tidak patut dilakukan untuk melepasi dialog
Jangan beri akses kebolehcapaian kepada aplikasi yang tidak dikenali supaya ia boleh menekan butang, dan jangan pasang aplikasi pembantu untuk tujuan itu. Itu memberikan tepat keupayaan yang perlindungan wujud untuk menolak, pada skrin yang memberi kuasa kepada VPN.
Jangan automasikan dialog dengan alat input juga. Ia menghasilkan hasil yang sama seperti tindihan berniat jahat dan tidak mengajar anda apa-apa tentang puncanya.
Pada peranti terurus, dasar yang mengehadkan perubahan VPN ialah keputusan pentadbir. Eksperimen tindihan bukan kebenaran untuk memintasnya. Begitu juga, butang persetujuan yang tidak bertindak balas bukan alasan untuk melemahkan pengesahan sijil atau menukar kelayakan akaun: tiada tetapan yang membuang halangan sentuhan setempat.
Jika masih gagal, laporkan tingkah laku yang tepat
Terangkan dialog itu dan bukan kesimpulannya: aplikasi mana yang meminta kelulusan, sama ada dialog kekal terbuka atau tertutup, sama ada gesaan sensitif lain seperti amaran sumber tidak dikenali atau kebolehcapaian juga mengabaikan ketikan, model peranti dan versi Android, serta senarai tindihan dan kebolehcapaian yang anda rakam.
Tanya pemilik sokongan satu lagi soalan semasa anda di sana: sama ada dasar peranti menyekat perubahan konfigurasi VPN sama sekali. Sekatan terurus kelihatan berbeza daripada ketikan yang diabaikan, dan mengetahui yang mana anda hadapi menjimatkan pusingan kedua.
Set itu membezakan masalah sentuhan tersekat daripada peranti input rosak, dialog beku, atau sekatan dasar. Ia juga memberitahu orang seterusnya sama ada untuk melihat skrin atau rangkaian.
Panduan tapjacking Android merangkumi syarat tetingkap tersekat dan API di sebalik tingkah laku ini. Jika anda mahu jejak bukti, cari FLAG_WINDOW_IS_OBSCURED dan FLAG_WINDOW_IS_PARTIALLY_OBSCURED pada peristiwa yang tidak pernah sampai ke butang. Dialog yang kekal terbuka ialah perkara yang perlu dirakam, kerana ia menunjukkan ketikan ditahan dan bukan dihantar ke tetingkap lain.