Някой е създал автоматизация, която включва VPN при поява на раздел инкогнито, и тя не работи надеждно. Причината е структурна и си струва да се разбере, преди да се настройва автоматизацията: правилата на Android за отделни приложения избират пакети на приложения, а инкогнито е състояние вътре в един пакет. Правилото не може да различи двете. Известието също идва едва след като браузърът е започнал работа, така че дори правилен тригер закъснява. Преминете петте проверки по ред; провал на четвъртата означава, че трябва да се смени подходът, а не настройките.

Проверка първа: какво може да избере правилото

Приложението VPN изгражда тунела си от списъци с разрешени или забранени приложения, а тези списъци приемат имена на пакети. Chrome в нормален режим и Chrome в инкогнито са един и същ пакет, с еднакъв потребителски идентификатор и еднакво мрежово разрешение, затова правило, което включва или изключва Chrome, се отнася еднакво за двете. Платформата няма идентичност на ниво раздел, с която да се сравнява.

Това не е дефект за заобикаляне; това е точността, която API предлага. Ако ви трябва трафикът на Chrome в тунела, а всичко останало извън него, правило за отделно приложение изразява точно това. Ако ви трябват само лични раздели в тунела, а обикновените да минават директно, никое правило за отделно приложение не може да го изрази и никаква логика с известия не добавя селектор, който платформата не притежава.

Пазете се от капана с идентичността на пакета: бета или доставчикова сборка е различен пакет от стабилния браузър, затова правило, което покрива единия, тихо пропуска другия:

adb shell pm list packages | grep -i chrome

Проверка втора: може ли тригерът някога да е достатъчно ранен

Слушателят на известия наблюдава известията, които му е позволено да вижда. Наблюдението не е прихващане: когато известието съществува, браузърът вече е разрешил името и е отворил връзката, и нищо по този път не чака вашата автоматизация. Задача, която после стартира VPN клиента, трябва да изчака интерфейса на клиента, евентуален въпрос за съгласие и ръкостискането на тунела, което се измерва в секунди, докато първата заявка се измерва в милисекунди.

Откриването е крехко и по втора причина. Текстът на известията се променя между версии и локализации, затова шаблон, който съвпада с едно издание, спира да съвпада след актуализация, а провалът е безшумен. Липсващо известие не доказва, че частното сърфиране отсъства; то може да значи само, че низът се е променил или каналът е заглушен.

Има законен вариант на този работен процес и той е подреден, а не реактивен: първо свържете одобрения VPN, потвърдете сигнал за готовност, който наистина доказва, че тунелът носи трафик, после отворете сесията инкогнито чрез поддържаните контроли на браузъра и спрете, ако проверката за готовност се провали. Това защитава сесията, която ще започнете, без да се преструва, че защитава тази, която вече тече.

Проверка трета: одитирайте разрешението, което ще дадете

Достъпът до известия е чувствително разрешение, което позволява на услуга да чете известията на всяко приложение, не само на браузъра. Даването му на непознат инструмент за автоматизация, за да следи едно състояние на браузъра, е лоша сделка и достъпът остава след експеримента. Докосванията през достъпност са по-лоши: те са скриптов слой над интерфейса, а не поддържан интерфейс за управление на VPN, и всяка промяна в оформлението ги чупи.

Преди да дадете каквото и да е, попитайте дали същият резултат е постижим с поддържан механизъм. Ако отговорът е изискване на политика, обикновено е така: платформата може да наложи тунел за приложение или профил без никаква слушаща услуга.

Проверка четвърта: постоянно включване и блокиране, когато трябва налагане

Ако браузърът никога не бива да комуникира извън тунела, налагането принадлежи в настройките на платформата, не в макрос. Android поддържа постоянно включен VPN с режим на блокиране, който спира трафика, когато тунелът не е установен, а управляваните устройства могат да го получат чрез политика. Потвърдете какво има устройството сега, вместо да предполагате:

adb shell settings get global always_on_vpn_app
adb shell settings get global always_on_vpn_lockdown

Непразна стойност за приложение означава, че пакет е настроен като постоянно включен, а стойност за заключване 1 означава, че връзките извън тунела са блокирани. Двойката превръща навика с най-добро усилие в гаранция и премахва надпреварата напълно, защото тунелът се установява преди да бъде разрешен трафикът на приложенията.

Тук има две граници. Работните профили носят собствена VPN конфигурация, затова правило, проверено в личния профил, не казва нищо за работния. И отделно инсталиран браузър, персонализиран раздел, отворен от друго приложение, или вграден уеб изглед е различен пакет или контекст със собствено маршрутизиране, затова проверете действителния пакет, вместо да предполагате, че различно изглеждащ прозорец е отделен домейн.

Проверка пета: опишете процеса и тествайте пътя на отказа

Каквото и да изберете, документирайте реда и условието за спиране. За удобния процес това означава: тунелът е вдигнат, готовността е доказана, инкогнито е отворено и има твърдо спиране, ако готовността се провали. За пътя на налагане означава: постоянно включено приложение е настроено, заключването е включено и очакваното поведение, когато тунелът изобщо не може да се вдигне, а именно липса на трафик, а не незащитен трафик.

После тествайте отказа, не само успеха. Прекъснете тунела по време на сесия и вижте какво прави браузърът; блокирайте процеса на VPN приложението и потвърдете, че нищо не изтича. Накрая, дръжте двата модела на поверителност отделно в документацията: инкогнито управлява временно състояние на браузъра и не крие трафика от мрежата, докато VPN носи трафика, но не изтрива влизания или нещо изпратено в частната сесия.

Подобни статии