Paslėpti „Android“ VPN pranešimą nesustabdant tunelio
„Android“ gali rodyti tris skirtingus VPN pranešimus. Išsiaiškinkite, kuri programėlė valdo matomą pranešimą, ką iš tikrųjų keičia kiekvienas valdiklis ir kas toliau veikia.
Galite paslėpti pranešimą, kad jūsų VPN veikia, o tunelis veiks ir be jo. Tai nustebina žmones, nes pranešimas ir ryšys atrodo kaip vienas objektas. Tačiau taip nėra. Daugumoje „Android“ telefonų įrašas stalčiuje, raktas būsenos juostoje ir nuolatinio serviso pranešimas gali ateiti iš trijų skirtingų savininkų, ir tik vienas iš jų paklūsta programėlės pranešimų leidimui. Suprasti, ką leidžiama pašalinti, pradedama nuo to, kas paskelbė eilutę, kurią matote.
Trys pranešimai, trys savininkai
Pirmasis savininkas – pati VPN programėlė, kuri paprastai skelbia nuolatinį pranešimą su prisijungimo arba atsijungimo veiksmu ir sesijos laikmačiu. Antrasis – „Android“ VPN indikatorius: SystemUI piešia rakto piktogramą ir, priklausomai nuo versijos bei gamintojo, sistemos lygio eilutę, kuri praneša apie aktyvų VPN tinklą. Trečiasis – įrenginio politikos pranešimas, kurį valdo darbo profilis arba administratoriaus programėlė. Nė vienas jų nėra tas pats objektas, net kai jie stovi greta stalčiuje.
Suskaidykite pranešimą prieš liesdami jungiklį:
| Notice | Who controls it |
|---|---|
| App-owned ongoing notice | The app's notification channel; a long-press shows the channel name and the owning package |
| Foreground-service notice | The service visibility Android requires while the tunnel runs; the app cannot simply drop it |
| System VPN indicator | SystemUI or the manufacturer, driven by the VPN network state rather than by the app's channel |
| Work-policy notice | The administrator or work-profile policy; the phone user may not have the switch at all |
Kokius valdiklius matysite, priklauso nuo „Android“ versijos, gamintojo kompiliavimo ir kanalo, kurį sukūrė programėlė. Pilkas jungiklis yra teiginys apie politiką, o ne kvietimas ją apeiti. Jei jungiklio jūsų kompiliavime nėra, sąžiningas atsakymas yra toks: šio konkretaus pranešimo šalinti jums neleidžiama.
Raskite paketą už eilutės
Ilgai paspauskite pranešimą ir atidarykite jo nustatymus, prieš skaitydami ką nors kita. Ekranas, į kurį pateksite, įvardija kanalą, o nuo „Android“ 8 šis kanalas priklauso tiksliai vienam paketui. Jei kanalas vadinasi kažkaip panašiai į VPN būseną, o programėlė yra jūsų klientas, pranešimas priklauso programėlei, todėl žiūrėkite programėlės nustatymų puslapyje. Jei pateksite į sistemos puslapį be jokio kanalo, matote platformos indikatorių, ir programėlė jums nepadės.
Kai ilgas paspaudimas nepasako pakankamai, vienas adb iškvietimas išvardija, kas iš tikrųjų paskelbta ir kas tai padarė: adb shell dumpsys notification --noredact, tada išvestyje ieškokite įtartino paketo. Jums reikia paskelbusio paketo ir kanalo ID, o ne kažko, ką galima redaguoti iš ten. Traktuokite išvestį kaip diagnostiką, nes niekas tame sąraše nekeičia pranešimo.
Valdomame telefone atsakymas kartais nuobodus: pranešimas ateina iš įrenginio politikos programėlės, o telefoną laikantis žmogus nėra tas, kuris gali jį išjungti. Tokiu atveju administratoriaus konsolė yra vienintelis palaikomas valdiklis, o paties telefono nustatymai lieka pilki, kad ir kokį meniu rastumėte.
Ką iš tikrųjų keičia „Android 13“ leidimas
„Android 13“ pavertė pranešimus vykdymo metu suteikiamu leidimu, todėl programėlė, taikanti į API 33, turi paklausti prieš ką nors skelbdama. Atsisakykite šio prašymo, ir programėlės pranešimai nustos rodytis stalčiuje, o tai atrodo kaip ieškomas sprendimas. Tačiau fono paslauga už VPN toliau veikia, ir sistema vis tiek rodo paslaugą užduočių tvarkyklėje, net kai jos pranešimas dingo iš stalčiaus. Pats VPN leidimas lieka nepaliestas: tunelis laikosi tol, kol jo neatsijungsite arba neatšauksite programėlės VPN sutikimo.
Šis mainas blogesnis, nei atrodo, nes pranešimas yra ir greičiausias būdas pamatyti sesiją bei ją užbaigti. Pašalinkite jį, ir telefoną bus sunkiau suprasti, nors maršrutizavimo nepakeitėte. Pranešimų leidimo dokumentacija aprašo stalčiaus elgesį; ji neaprašo palaikomo būdo nutildyti veikiantį tunelį.
Yra dar viena versijos ypatybė, kurią verta žinoti: fono paslaugos pranešimą reikalauja paslaugų modelis, ir programėlė negali jo tiesiog paslėpti vien todėl, kad atmetėte leidimą. Kai kurios kompiliacijos palieka matomą sutrumpintą versiją, kitos perkelia įrodymą į užduočių tvarkyklę, ir šis skirtumas yra gamintojo pasirinkimas, o ne nustatymas, kurį praleidote.
Demonstracinis režimas ir piktogramų triukai nėra sprendimas
Rasite patarimų apie demonstracinį režimą, apie piktogramų slėpimą nedokumentuotomis adb komandomis ir apie UI klaidą, dėl kurios raktas dingsta. Visa tai keičia pateikimą. Niekas iš to nekeičia maršrutizavimo, politikos ar VPN leidimo, kurį seka sistema, o telefonas, kurio tinklo būsena nematoma, diagnozuojamas sunkiau nei tas, kuriame stalčiuje yra papildoma eilutė.
Programėlės ryšio piktograma taip pat nėra būsenos patikra. Tunelis gali būti išjungtas, kol senas sąsaja ar pasenęs pranešimas lieka, o vietinė filtravimo paslauga gali pakelti VPN raktą nesiųsdama nė vieno baito į nuotolinę išėjimą. Tikrinkite tikrąją būseną sistemos VPN nustatymuose, o ne stalčiuje.
Ką pakeisčiau, iš eilės
Pradėkite nuo savininko nustatymo, tada naudokite tik tą valdiklį, kurį tas savininkas siūlo. Jei pranešimas priklauso programėlei ir yra neprivalomas, išjunkite tą kanalą ir palikite tarnybos kanalą ramybėje. Jei tai sistemos indikatorius, priimkite jį, nes jis praneša faktą apie įrenginį, o ne reklamuoja programėlę. Valdomame įrenginyje sustokite ties administratoriaus politika ir neieškokite apėjimo.
Tada patvirtinkite, kad vis dar turite palaikomą būdą patikrinti tunelį ir jį atjungti, ar tai būtų pačios programėlės ekranas, ar sistemos VPN nustatymų puslapis. Telefonas su vienu baneriu mažiau ir aiškiu būdu užbaigti sesiją yra norimas rezultatas. Priešingai, tylesnis stalčius ir jokio supratimo, ar srautas maršrutizuojamas, nėra pagerinimas.