VPN təsdiq düyməsinə toxunursan, pəncərə isə reaksiya vermir. Təbii nəticə tətbiqin və ya serverin xarab olduğudur, ona görə insanlar parolu sıfırlayır, DNS-i dəyişir və ya klienti yenidən quraşdırır. Adətən bunların heç biri nasazlığa toxunmur, çünki Android maneədən gələn toxunuşları atır və VPN təsdiq ekranı məhz belə həssas razılıq pəncərəsidir. Toxunuş düyməyə heç vaxt çatmır.

Qoruma əslində nəyi rədd edir

Android həssas qarşılıqlı əlaqələri toxunuş oğurluğundan qoruyur: başqa pəncərə dialoqun üstündə oturub toxunuşu oğurlayır və ya onu qeyri-müəyyən edir. Görünüş View.setFilterTouchesWhenObscured ilə buna qoşulur və başqa pəncərə qismən və ya tam örtücü kimi işarələndikdə hadisə MotionEvent.FLAG_WINDOW_IS_OBSCURED ilə gəlir. Onda hadisə yanlış yerə çatdırılmaq əvəzinə atılır. Android 12 (API 31) eyni qorumaya sistem razılıq səthlərində etibarsız toxunuşun bloklanmasını əlavə etdi, buna görə təsdiq dialoqu digər tətbiqlərin hələ qəbul edəcəyi üst qatdan gələn toxunuşu rədd edə bilər.

Üç şey mütəmadi maneə yaradır: digər tətbiqlərin üstündə göstərmə icazəsi olan tətbiq, məzmun çəkən əlçatanlıq xidməti və ekran yazıcısından və ya filtrləmə alətindən gələn üzən vidcet. Bəzi istehsalçı ekran funksiyaları öz qatını da əlavə edir, buna görə eyni Android buraxılışı olan iki telefonda eyni dialoq fərqli davrana bilər. Qismən örtən pəncərə FLAG_WINDOW_IS_PARTIALLY_OBSCURED qurur və toxunuş düymə onu görməmişdən əvvəl atılır. Bu ekranın xassəsidir, şəbəkənin deyil. Toxunuş atıldığı anda VPN serverinə heç nə göndərilməyib, ona görə server tərəfindəki heç bir dəyişiklik nəticəyə təsir edə bilməz.

Ölü toxunuşu uğursuz bağlantıdan ayırın

Fərq bütün diaqnozdur və on saniyə çəkir. Toxunuş sayılmırsa və dialoq olduğu kimi qalırsa, maneə yerlidir. Dialoq bağlanır və sonra xəta görünürsə, razılıq qəbul edilib və tətbiqin öz hadisə məlumatını tələb edən başqa mərhələyə keçmisiniz.

Yerli oxunuşu sorğu göndərən tətbiqin ümumiyyətlə bağlantıya cəhd edib-etmədiyini yoxlamaqla təsdiqləyə bilərsiniz. Razılıq dialoqu ekranda ikən heç vaxt əl sıxma cəhdi qeyd etməyən klient şəbəkəyə çatmayıb.

adb shell cmd appops get com.example.vpn SYSTEM_ALERT_WINDOW
adb shell settings get secure enabled_accessibility_services

Üst qat icazəsini kimin saxladığını və hansı əlçatanlıq xidmətlərinin aktiv olduğunu siyahıya alın, sonra işləyənlərlə müqayisə edin. Platformanın qorumasını özünü söndürməyin; gizli pəncərənin sizin adınıza razılıq pəncərəsini cavablandırmasının qarşısını alan məhz odur.

Maneəni aradan qaldırın, sonra normal axını təkrar yoxlayın

Əvvəlcə VPN təsdiqini hansı tətbiqin istədiyini müəyyən edin ki, hansı razılığı verdiyinizi biləsiniz. Sonra konkret üst qatı sonra lazım ola biləcək geniş icazəni geri götürməklə deyil, öz ayarı ilə dayandırın. Ekran filtri adətən öz tətbiqində açar saxlayır; üzən vidcetin bağlama düyməsi var; istehsalçı ekran rejiminin Ekran ayarlarında açarı var.

Sonra VPN tətbiqinə qayıdın və yenidən təsdiq istəyin ki, dialoq təzədən yaradılsın. Toxunuş indi işləyirsə, üst qatın uyğunluq davranışını düzəldin və ya qoşularkən onu söndürülmüş saxlayın, toxunuş qorumasını isə aktiv saxlayın.

Hansı pəncərənin məsul olduğunu bilmirsinizsə, onları bir-bir çıxarın və hər dəyişiklikdən sonra razılıq dialoqunu yoxlayın. Yazıcının idarə paneli və ya üzən qısayol adi günahkardır və işləməzdən dərhal əvvəl çıxardığınız pəncərə cavabdır.

Yolda söndürdüyünüz əlaqəsiz hər şeyi bərpa edin. Ekran filtri və ya gecə rejimi düşmən deyil; dialoqla üst-üstə düşən konkret pəncərədir.

Dialoqu keçmək üçün nə etməməli

Naməlum tətbiqə düyməni basması üçün əlçatanlıq icazəsi verməyin və bunun üçün köməkçi tətbiq quraşdırmayın. Bu, qorumanın məhz qadağan etmək üçün yaradıldığı imkanı VPN-ə icazə verən ekranda verir.

Dialoqu giriş aləti ilə avtomatlaşdırmayın. Zərərli üst qatla eyni nəticəni verir və səbəb haqqında sizə heç nə öyrətmir.

İdarə olunan cihazda VPN dəyişikliklərini məhdudlaşdıran siyasət administratorun qərarıdır. Üst qat təcrübəsi onu dolanmaq üçün icazə deyil. Eynilə, reaksiya verməyən təsdiq düyməsi sertifikat yoxlamasını zəiflətmək və ya hesab məlumatlarını dəyişmək üçün səbəb deyil: heç bir ayar yerli toxunuş maneəsini aradan qaldırmır.

Hələ də alınmırsa, dəqiq davranışı bildirin

Nəticəni deyil, dialoqu təsvir edin: hansı tətbiq təsdiq istədi, dialoq açıq qaldı, yoxsa bağlandı, naməlum mənbələr və ya əlçatanlıq xəbərdarlıqları kimi digər həssas sorğular da toxunuşu saymırmı, cihaz modeli və Android buraxılışı, topladığınız üst qat və əlçatanlıq siyahıları.

Orada ikən dəstək sahibinə bir sual da verin: cihaz siyasəti VPN konfiqurasiya dəyişikliklərini ümumiyyətlə məhdudlaşdırırmı. İdarə olunan blok sayılmamış toxunuşdan fərqli görünür və hansına baxdığınızı bilmək ikinci gedişi qənaət edir.

Bu dəst örtülmüş toxunuş problemini xarab giriş cihazından, donmuş dialoqdan və ya siyasət blokundan ayırır. Növbəti adama ekrana yoxsa şəbəkəyə baxmalı olduğunu da bildirir.

Android-in toxunuş oğurluğu təlimatı örtülmüş pəncərə şərtlərini və bu davranışın arxasındakı API-ləri əhatə edir. Sübut izi istəyirsinizsə, düyməyə heç vaxt çatmayan hadisədə FLAG_WINDOW_IS_OBSCURED və FLAG_WINDOW_IS_PARTIALLY_OBSCURED axtarın. Açıq qalan dialoq tutulmalı olan şeydir, çünki toxunuşun başqa pəncərəyə verilmədiyini, saxlanıldığını göstərir.

Əlaqəli məqalələr