WireGuard యాక్టివిటీని ప్రారంభించడం యాప్‌ను ముందుకు తెస్తుంది, నిర్దిష్ట టన్నెల్‌ను పైకి లేపదు. యాప్‌ను తెరిచి నిరీక్షించే ఆటోమేషన్ పరీక్షలో ఉత్తీర్ణమవుతుంది, ఫోన్ ఇప్పటికే హోమ్ స్క్రీన్‌లో ఉన్న మొదటి సారి విఫలమవుతుంది. WireGuard పేరున్న టన్నెళ్లకు మద్దతు ఉన్న రిమోట్-కంట్రోల్ మార్గాన్ని అందిస్తుంది, అది చాలా రెసిపీలు సూచించే దానికంటే ఇరుకైనది. క్రింది చెక్‌లిస్ట్ ఆ మార్గాన్ని అనుమతి నుండి గమనించిన ఫలితం వరకు నడుస్తుంది.

రిమోట్ నియంత్రణ ప్రారంభంలో ఉందో లేదో తనిఖీ చేయండి

రిమోట్-కంట్రోల్ రిసీవర్ ఎప్పుడూ వినదు. WireGuard సెట్టింగ్‌లలో టన్నెళ్ల రిమోట్ నియంత్రణను ప్రారంభించే ఎంపిక ఉంది, అది ఆన్ అయ్యే వరకు రిసీవర్ గట్టిగా విఫలమవ్వడం బదులు అభ్యర్థనలను పట్టించుకోదు. డిఫాల్ట్ ఉద్దేశపూర్వకంగా ఉంది, ఎందుకంటే టన్నెళ్లను పైకి లేపగల ఎగుమతి చేసిన రిసీవర్ యాప్ ఇన్‌స్టాల్ చేసిన ప్రతి పరికరంలో భద్రతా రంధ్రం అవుతుంది. దాన్ని ఇంటర్‌ఫేస్ ద్వారా ఆన్ చేసి, మీరు చేశారని రాసి ఉంచండి, ఎందుకంటే ఇది భవిష్యత్ వినియోగదారు ఏది దానిపై ఆధారపడిందో తెలియకుండానే ఆఫ్ చేయగల సెట్టింగ్.

పైన ఉన్న రిసీవర్ పేరున్న UP మరియు DOWN అభ్యర్థనలను మాత్రమే నిర్వహిస్తుంది, కాబట్టి ఇక్కడ టన్నెల్ సృష్టించడానికి లేదా దాని కాన్ఫిగరేషన్ మార్చడానికి మార్గం లేదు. దానిపై ఆధారపడే ముందు ఇన్‌స్టాల్ చేసిన బిల్డ్‌లో ఆ భాగం ఉందని నిర్ధారించుకోండి: adb shell dumpsys package com.wireguard.android | grep -i receiver ప్రకటించిన రిసీవర్లను జాబితా చేస్తుంది, రిమోట్-కంట్రోల్ రిసీవర్ లేని బిల్డ్ ఎప్పటికీ సమాధానం ఇవ్వదు. వర్క్‌ఫ్లోకు మరో ఎండ్‌పాయింట్ లేదా మరో పీర్ కావాలంటే అది మరో టన్నెల్ మరియు యాప్ లోపల ప్రత్యేక మాన్యువల్ సెటప్.

కంట్రోలర్ కలిగి ఉన్న అనుమతిని తనిఖీ చేయండి

WireGuard రిసీవర్‌ను ప్రమాదకరమైన అనుమతితో రక్షిస్తుంది, com.wireguard.android.permission.CONTROL_TUNNELS, అది నియంత్రించే యాప్ కలిగి ఉండాలి. స్వంత బ్రాడ్‌కాస్ట్ పంపినవారు ఎప్పుడూ ప్రకటించని లేదా ఎప్పుడూ ఇవ్వని అనుమతిని సృష్టించలేదు. ఆటోమేషన్ రెసిపీలు ఆటోమేషన్‌కు లేని సామర్థ్యాన్ని నిశ్శబ్దంగా ఊహించే దశ ఇది.

టాస్క్ రాయడానికి ముందు రెండు వైపులా తనిఖీ చేయండి. మొదటి ఆదేశం ప్రకటించిన అనుమతిని జాబితా చేస్తుంది, రెండవది కంట్రోలర్ ప్యాకేజీ నిజంగా దాన్ని కలిగి ఉందో చూపిస్తుంది. మానిఫెస్ట్‌లో అనుమతిని ప్రకటించినా రన్‌టైమ్‌లో ఎప్పుడూ పొందని కంట్రోలర్ కూడా విఫలమవుతుంది, వైఫల్యం సంభాషణగా కాకుండా మౌనంగా వస్తుంది.

adb shell pm list permissions -g -d | grep -i control_tunnels
adb shell dumpsys package net.dinglisch.android.taskerm | grep -i control_tunnels

కంట్రోలర్‌కు అనుమతి లేకపోతే, చేతితో బ్రాడ్‌కాస్ట్ నిర్మించడం బదులు యాప్ నిజంగా మద్దతు ఇచ్చే ఇంటిగ్రేషన్‌ను ఉపయోగించండి. Intent పంపి కాల్ విజయవంతమైందని చూడటం Android దాన్ని అంగీకరించిందని మాత్రమే రుజువు చేస్తుంది, WireGuard దాని ప్రకారం పని చేసిందని కాదు. ధృవీకరించని పంపడాన్ని తెలియనిదిగా పరిగణించండి, విజయంగా కాదు.

Intent ఫీల్డ్‌లను ఇన్‌స్టాల్ చేసిన యాప్‌తో సరిపోల్చండి

నాలుగు ఫీల్డ్‌లు మొత్తం అభ్యర్థనను మోస్తాయి, ప్రతి దానికి మిగతావాటిలాగే కనిపించే వైఫల్య పద్ధతి ఉంది. చర్య, టన్నెల్ అదనపు ఫీల్డ్, ప్యాకేజీ మరియు లక్ష్యాన్ని ఒక సెట్‌గా సరిగ్గా పొందండి.

Action:  com.wireguard.android.action.SET_TUNNEL_UP
Extra:   tunnel:lab-wg
Package: com.wireguard.android
Target:  Broadcast Receiver

చర్య UP లేదా DOWN అని పేరు పెడుతుంది, మరేమీ కాదు, అదనపు ఫీల్డ్ సరిగ్గా కాన్ఫిగర్ చేసిన టన్నెల్ పేరును మోస్తుంది, ప్యాకేజీ డెలివరీని WireGuard కు పరిమితం చేస్తుంది, లక్ష్యం యాక్టివిటీ కాకుండా రిసీవర్ అయి ఉండాలి. టైపింగ్ పొరపాటు ఉన్న టన్నెల్ పేరు ఆఫ్ చేసిన రిసీవర్ లాంటి మౌనాన్ని కలిగిస్తుంది, కాబట్టి ఆటోమేషన్ పాడైందని నిర్ణయించే ముందు యాప్‌లో పేరు చదవండి. DOWN చర్య అదే అదనపు ఫీల్డ్ మరియు ప్యాకేజీతో com.wireguard.android.action.SET_TUNNEL_DOWN. పరీక్షిస్తున్నప్పుడు ఒక సారి ఒక అభ్యర్థన పంపండి, ఎందుకంటే ఒకదానినొకటి అధిగమించే రెండు బ్రాడ్‌కాస్ట్‌లు ఎవరూ ఆపాదించలేని స్థితిని సృష్టిస్తాయి.

Intent ను ఆటోమేషన్ నుండి వేరు చేయడానికి అదే అభ్యర్థనను పరికరంలోని షెల్ నుండి పరీక్షించండి. ఆ ఆదేశం విఫలమై Tasker టాస్క్ విజయవంతమైతే, తేడా ఫీల్డ్ విలువలు కాదు, పంపినవారి అనుమతి.

adb shell am broadcast -a com.wireguard.android.action.SET_TUNNEL_UP -e tunnel lab-wg --receiver-permission com.wireguard.android.permission.CONTROL_TUNNELS

ట్రిగ్గర్ ఏమిని కవర్ చేయదో తనిఖీ చేయండి

యాప్ ప్రారంభం లేదా ముందుకు రావడం ఈవెంట్ కనెక్షన్ అడగగలదు, కానీ ఆ ఈవెంట్ నిర్వహించే ముందే యాప్ ఇప్పటికే పేరు శోధన లేదా ప్రారంభ అభ్యర్థనను ప్రయత్నించి ఉండవచ్చు. సిస్టమ్ స్థితి మార్పును గమనించినప్పుడు ట్రిగ్గర్ పనిచేస్తుంది, అది యాప్ పని ప్రారంభించిన తర్వాత. యాప్ ఎప్పుడూ టన్నెల్ వెలుపల సంభాషించకూడదని ఉంటే, ప్రారంభ ట్రిగ్గర్ బ్లాకింగ్ నియమం కాదు, ఆలస్యాన్ని జోడించి దాన్ని అలా చేయలేరు. బ్లాకింగ్ ప్రవర్తన కోసం మద్దతు ఉన్న ఎల్లప్పుడూ-ఆన్ లేదా ప్రతి-యాప్ విధానాన్ని కాన్ఫిగర్ చేసి, ట్రిగ్గర్‌ను సౌలభ్యం కోసం మాత్రమే ఉంచండి.

బ్లాకింగ్ ప్రవర్తన పూర్తిగా మరో చోట నివసిస్తుంది. adb shell settings get global always_on_vpn_app ఎల్లప్పుడూ-ఆన్‌గా పిన్ చేసిన ప్యాకేజీని పేర్కొంటుంది, adb shell dumpsys connectivity | grep -i vpn సిస్టమ్ ఇప్పుడు ట్రాక్ చేస్తున్న VPN నెట్‌వర్క్‌లను చూపిస్తుంది. వాటిలో ఏదీ ప్రారంభ ట్రిగ్గర్ భర్తీ చేయగలిగినది కాదు.

అదే తర్కం సెషన్ మరో చివరకు కూడా వర్తిస్తుంది. ఒక విండో ఫోకస్ కోల్పోయినందుకు టన్నెల్ దించడం నేపథ్య పని, ప్రామాణీకరణ సహాయకులు మరియు కనెక్షన్‌పై ఆధారపడిన మరే ఇతర యాప్‌నైనా విరగ్గొడుతుంది. ఫోకస్ మార్పు బదులు ఉద్దేశపూర్వక సెషన్ ముగింపును నిర్వచించి, ఆటోమేషన్ సందర్భాలను మార్చేటప్పుడు వేగవంతమైన UP మరియు DOWN క్రమాలను నివారించండి.

ఫలితాన్ని తనిఖీ చేయండి, పంపడాన్ని కాదు

లోపం లేకుండా తిరిగి వచ్చే బ్రాడ్‌కాస్ట్‌ను Android అంగీకరించింది, అంతే. టన్నెల్ స్థితిని యాప్ నుండి చదవండి, వర్క్‌ఫ్లో సన్నద్ధతను తదుపరి దశకు నిజంగా కావాల్సిన దాని నుండి చదవండి. ఇవి రెండు వేర్వేరు తనిఖీలు, మొదటిది ఉత్తీర్ణమవడం రెండవదాన్ని సూచించదు.

ఇంటర్‌ఫేస్ స్థితిని కూడా నేరుగా చదవండి: adb shell ip -brief addr show tun0 టన్నెల్ ఇంటర్‌ఫేస్ మరియు దాని చిరునామాను ముద్రిస్తుంది, చిరునామా లేకుండా ఉన్న ఇంటర్‌ఫేస్ పైన ఉన్నా ఉపయోగించలేనిది. తర్వాత ప్రైవేట్ సేవను స్వయంగా ధృవీకరించండి, ఎందుకంటే హ్యాండ్‌షేక్ లేదా మార్గం లేకుండా పైకి లేచిన టన్నెల్ ముఖ్యమైన పనిలో ఇప్పటికీ విఫలమవుతుంది. ఒక పేరున్న కనెక్షన్‌ను దాని నిజమైన అనుమతి పరిమితిలో నియంత్రించే ఆటోమేషన్ ఇంటర్‌ఫేస్‌ను తాకాల్సిన అవసరం లేదు, root ఆదేశాన్ని అమలు చేయాల్సిన అవసరం లేదు లేదా Android నెట్‌వర్క్ రక్షణలను బలహీనపరచాల్సిన అవసరం లేదు.

సంబంధిత వ్యాసాలు