Սեղմում եք VPN-ի հաստատման կոճակը, և երկխոսությունը չի արձագանքում։ Բնական եզրակացությունն այն է, որ հավելվածը կամ սերվերը փչացել են, ուստի մարդիկ վերակայում են գաղտնաբառերը, փոխում DNS կամ վերատեղադրում հաճախորդը։ Սովորաբար դրանցից ոչ մեկը չի դիպչում խնդրին, որովհետև Android-ը դեն է նետում խոչընդոտի միջով եկած հպումները, և VPN-ի հաստատման էկրանը հենց այդպիսի զգայուն համաձայնության երկխոսություն է։ Սեղմումը երբեք չի հասնում կոճակին։

Ինչից է իրականում հրաժարվում պաշտպանությունը

Android-ը պաշտպանում է զգայուն փոխազդեցությունները tapjacking-ից, երբ մեկ այլ պատուհան նստում է երկխոսության վրա և գողանում սեղմումը կամ դարձնում այն երկիմաստ։ Տեսքը միանում է View.setFilterTouchesWhenObscured-ով, և իրադարձությունը գալիս է MotionEvent.FLAG_WINDOW_IS_OBSCURED-ով, երբ այլ պատուհանը նշված է որպես մասամբ կամ ամբողջությամբ ծածկող։ Այդ ժամանակ իրադարձությունը դեն է նետվում՝ սխալ տեղ հասցնելու փոխարեն։ Android 12 (API 31) ընդլայնեց նույն պաշտպանությունը՝ արգելափակելով անվստահելի հպումները համակարգի համաձայնության մակերևույթներում, և դրա համար է, որ հաստատման երկխոսությունը կարող է մերժել վերադրված շերտից եկած սեղմումը, որը այլ հավելվածներ դեռ կընդունեին։

Երեք բան պարբերաբար ստեղծում են խոչընդոտ՝ այլ հավելվածների վրա ցուցադրվելու թույլտվություն ունեցող հավելվածը, բովանդակություն նկարող հասանելիության ծառայությունը և էկրանի ձայնագրիչի կամ զտիչ գործիքի լողացող վիջեթը։ Որոշ արտադրողի ցուցադրման առանձնահատկություններ ավելացնում են իրենց շերտը, և դրա համար է, որ նույն երկխոսությունը կարող է տարբեր կերպ վարվել նույն Android տարբերակով երկու հեռախոսներում։ Մասամբ ծածկող պատուհանը սահմանում է FLAG_WINDOW_IS_PARTIALLY_OBSCURED, և հպումը դեն է նետվում նախքան կոճակը այն կտեսնի։ Սա էկրանի հատկություն է, ոչ թե ցանցի։ Սեղմումը դեն նետելու պահին ոչինչ չի ուղարկվել VPN սերվերին, ուստի սերվերի կողմի ոչ մի փոփոխություն չի կարող ազդել արդյունքի վրա։

Առանձնացրեք մեռած սեղմումը ձախողված կապակցումից

Տարբերությունը ողջ ախտորոշումն է և տևում է տասը վայրկյան։ Եթե սեղմումը անտեսվում է, և երկխոսությունը մնում է ճիշտ նույնը, խոչընդոտը տեղական է։ Եթե երկխոսությունը փակվում է, և հետո սխալ է հայտնվում, համաձայնությունն ընդունվել է, և դուք անցել եք մեկ այլ փուլ, որը պահանջում է հավելվածի սեփական իրադարձության տվյալները։

Տեղական ընթերցումը կարող եք հաստատել՝ ստուգելով, արդյոք հարցում անող հավելվածը ընդհանրապես կապակցում փորձել է։ Հաճախորդը, որը երբեք ձեռքսեղմման փորձ չի գրանցում, մինչ համաձայնության երկխոսությունը էկրանին է, ցանցին չի հասել։

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

Թվարկեք, թե ով ունի վերադրման թույլտվությունը և որ հասանելիության ծառայություններն են միացված, ապա համեմատեք աշխատողների հետ։ Մի անջատեք հարթակի պաշտպանությունը. հենց այն է խանգարում թաքնված պատուհանին ձեր փոխարեն պատասխանել համաձայնության երկխոսությանը։

Հեռացրեք խոչընդոտը, ապա նորից փորձեք սովորական հոսքը

Նախ պարզեք, թե որ հավելվածն է VPN-ի հաստատում խնդրել, որպեսզի իմանաք, թե ինչ համաձայնություն եք տալիս։ Հետո դադարեցրեք կոնկրետ վերադրումն իր իսկ կարգավորումից, ոչ թե հետ վերցնելով լայն թույլտվություն, որը կարող է ավելի ուշ պետք գալ։ Էկրանի զտիչը սովորաբար ունի անջատիչ իր հավելվածում. լողացող վիջեթն ունի փակման կառավարում. արտադրողի ցուցադրման ռեժիմն ունի անջատիչ ցուցադրման կարգավորումներում։

Հետո վերադարձեք VPN հավելվածին և նորից խնդրեք հաստատում, որպեսզի երկխոսությունը նորից ստեղծվի։ Եթե սեղմումն այժմ աշխատում է, կարգավորեք վերադրման համատեղելիության վարքը կամ թողեք այն անջատված՝ միանալու ընթացքում, և պահեք հպման պաշտպանությունը միացված։

Եթե չեք կարող որոշել, թե որ պատուհանն է պատասխանատու, հերթով հեռացրեք դրանք և ամեն փոփոխությունից հետո փորձեք համաձայնության երկխոսությունը։ Ձայնագրիչի կառավարման վահանակը կամ լողացող դյուրանցումը սովորական մեղավորն է, և հենց այն, ինչ հեռացրիք հաջողությունից առաջ, պատասխանն է։

Վերականգնեք ճանապարհին անջատած ամեն անկապ բան։ Էկրանի զտիչը կամ գիշերային ռեժիմը թշնամի չեն. թշնամին կոնկրետ պատուհանն է, որը ծածկում է երկխոսությունը։

Ինչ չանել երկխոսությունը շրջանցելու համար

Անծանոթ հավելվածին հասանելիություն մի տվեք, որ կոճակը սեղմի, և դրա համար օժանդակ հավելված մի տեղադրեք։ Դա տալիս է հենց այն կարողությունը, որի մերժման համար գոյություն ունի պաշտպանությունը, VPN-ին լիազորող էկրանին։

Երկխոսությունը մուտքային գործիքով ինքնաշխատ մի դարձրեք։ Այն տալիս է նույն արդյունքը, ինչ չարամիտ վերադրումը, և ոչինչ չի սովորեցնում պատճառի մասին։

Կառավարվող սարքում VPN-ի փոփոխությունները սահմանափակող քաղաքականությունը ադմինիստրատորի որոշումն է։ Վերադրման փորձը դա շրջանցելու թույլտվություն չէ։ Նույն կերպ, չարձագանքող հաստատման կոճակը պատճառ չէ թուլացնել վկայագրի ստուգումը կամ փոխել հաշվի տվյալները. կարգավորումներից ոչ մեկը չի հեռացնում տեղական հպման խոչընդոտը։

Եթե դեռ չի ստացվում, նշեք ճշգրիտ վարքը

Նկարագրեք երկխոսությունը, ոչ թե եզրակացությունը. որ հավելվածն է հաստատում խնդրել, արդյոք երկխոսությունը բաց մնաց կամ փակվեց, արդյոք անհայտ աղբյուրների կամ հասանելիության նախազգուշացումները նույնպես անտեսում են հպումները, սարքի մոդելը և Android տարբերակը, և ձեր հավաքած վերադրման ու հասանելիության ցանկերը։

Այնտեղ եղած ժամանակ աջակցության պատասխանատուին ևս մեկ բան հարցրեք. արդյոք սարքի քաղաքականությունն ընդհանրապես սահմանափակում է VPN կազմաձևի փոփոխությունները։ Կառավարվող արգելափակումը տարբերվում է անտեսված սեղմումից, և իմանալը, թե որն է ձեր առջև, խնայում է երկրորդ փուլը։

Այդ հավաքածուն տարբերում է ծածկված հպման խնդիրը փչացած մուտքային սարքից, սառած երկխոսությունից կամ քաղաքականության արգելափակումից։ Այն նաև ասում է հաջորդ մարդուն՝ նայի՞ էկրանին, թե՞ ցանցին։

Android-ի tapjacking ուղեցույցը նկարագրում է ծածկված պատուհանների պայմանները և այս վարքի հետևում գտնվող API-ները։ Եթե ապացույցների հետք եք ուզում, փնտրեք FLAG_WINDOW_IS_OBSCURED և FLAG_WINDOW_IS_PARTIALLY_OBSCURED այն իրադարձության մեջ, որը երբեք չհասավ կոճակին։ Բաց մնացող երկխոսությունը հենց այն է, ինչ պետք է գրանցել, որովհետև այն ցույց է տալիս, որ սեղմումը հետ է պահվել, այլ ոչ թե փոխանցվել այլ պատուհանի։

Առնչվող հոդվածներ